<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://maemo.octonezd.me/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=188.195.163.148</id>
	<title>Maemo Wiki Mirror - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://maemo.octonezd.me/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=188.195.163.148"/>
	<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php/Special:Contributions/188.195.163.148"/>
	<updated>2026-04-22T06:09:11Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=N900_FM_radio_transmitter&amp;diff=27456</id>
		<title>N900 FM radio transmitter</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=N900_FM_radio_transmitter&amp;diff=27456"/>
		<updated>2014-01-05T22:19:22Z</updated>

		<summary type="html">&lt;p&gt;188.195.163.148: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The N900 has a FM radio transmitter capable of sending audio several meters.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
The SI4713 chip is used to transmit FM radio with radiotext in the range 76-108MHz from a digital or analog audio input.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
From the datasheet:&lt;br /&gt;
* Integrated receiver for receive power measurement&lt;br /&gt;
* Worldwide FM band support (76–108 MHz) for transmit&lt;br /&gt;
* Requires only two external components&lt;br /&gt;
* Frequency synthesizer with integrated VCO&lt;br /&gt;
* Digital stereo modulator&lt;br /&gt;
* Programmable pre-emphasis (50/75 µs)&lt;br /&gt;
* Analog/digital audio interface&lt;br /&gt;
* Programmable reference clock&lt;br /&gt;
* RDS/RBDS transmit encoder (Si4713 only)&lt;br /&gt;
* PCB loop antenna support with self calibrated capacitor tuning&lt;br /&gt;
* Programmable transmit level&lt;br /&gt;
* Programmable modulation&lt;br /&gt;
* 2.7 to 5.5 V supply voltage&lt;br /&gt;
* Digital gain compression&lt;br /&gt;
* Integrated LDO regulator&lt;br /&gt;
* 3 × 3 × 0.55 mm 20-pin QFN&lt;br /&gt;
* Pb-free and RoHS Compliant&lt;br /&gt;
&lt;br /&gt;
It is short range only, see the section on [[#Typical Range|typical range]].&lt;br /&gt;
&lt;br /&gt;
It can also receive the signal level on the tuned frequency. This enables transmitter application to scan all frequencies, checking for vacant ones, and suggesting empty frequencies to the user for selection as transmission frequencies.&lt;br /&gt;
&lt;br /&gt;
The [[Nokia N900|N900]] controls the FM transmitter through the I2C(2) bus, and supplies analog audio (same audio lines as HP-AMP) to the transmitter. The transmitter&#039;s digital audio inputs are unused (NC).&lt;br /&gt;
&lt;br /&gt;
The FM signal is transmitted from a loop antenna built into the case, and connected to the PCB with clips.&lt;br /&gt;
&lt;br /&gt;
product marketing sheet: [http://www.silabs.com/Support%20Documents/TechnicalDocs/Si4712-13-B30.pdf Si4713]&lt;br /&gt;
Full datasheet http://www.silabs.com/Support%20Documents/TechnicalDocs/AN332.pdf.&lt;br /&gt;
&lt;br /&gt;
The documentation for the driver, along with some information on the chip is at&lt;br /&gt;
http://www.mjmwired.net/kernel/Documentation/video4linux/si4713.txt&lt;br /&gt;
&lt;br /&gt;
It is connected to the [[N900 Hardware Bus I2C|I2C]] bus-2.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
===Kernel===&lt;br /&gt;
It is controlled through the kernel module fmtx_si4713, which implements the interfaces /dev/radio0 - a video4linux device. &lt;br /&gt;
&lt;br /&gt;
v4l2-ctl dumps the following information about the device. &lt;br /&gt;
&lt;br /&gt;
 v4l2-ctl --all -d /dev/radio0&lt;br /&gt;
  Driver Info:&lt;br /&gt;
  Driver name   : radio-si4713&lt;br /&gt;
  Card type     : Silicon Labs Si4713 FM Radio Tr&lt;br /&gt;
  Bus info      : I2C: 0x63&lt;br /&gt;
  Driver version: 1&lt;br /&gt;
  Capabilities  : 0x00010000&lt;br /&gt;
   Tuner&lt;br /&gt;
 Video input : 0&lt;br /&gt;
 Frequency: 1400000 (87.500000 MHz)&lt;br /&gt;
 Video Standard = 0x00000000&lt;br /&gt;
 Streaming Parameters Video Capture:&lt;br /&gt;
 Frames per second: 25.000 (25/1)&lt;br /&gt;
 Read buffers     : 0&lt;br /&gt;
 Tuner:&lt;br /&gt;
  Name                 : FM Transmitter&lt;br /&gt;
 Capabilities         : 62.5 Hz stereo &lt;br /&gt;
 Frequency range      : 87.5 MHz - 108.0 MHz&lt;br /&gt;
 Signal strength/AFC  : 0%/0&lt;br /&gt;
 Current audio mode   : stereo&lt;br /&gt;
 Available subchannels: stereo &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See [http://www.stanford.edu/~blp/fmtools/ for more information on the video4linux API].&lt;br /&gt;
The driver also exposes the sysfs directory ./class/i2c-adapter/i2c-2/2-0063/ .&lt;br /&gt;
&lt;br /&gt;
===User===&lt;br /&gt;
The FM transmitter can be enabled in the settings application, and there are third party applications to more easily enable it.&lt;br /&gt;
&lt;br /&gt;
No software currently uses the ability of the chip to scan for free channels. &lt;br /&gt;
&lt;br /&gt;
The package [http://maemo.org/packages/view/fm-boost/ FM boost] maximizes the transmitter power. In some cases, this may improve reception. In others, the transmitter will already be set to highest output. &lt;br /&gt;
&lt;br /&gt;
There are several bugs open with regards the FM transmitter [https://bugs.maemo.org/show_bug.cgi?id=6792 this one] for example is regarding the policy to turn off the FM transmitter when the device is plugged into a computer using the USB cable.&lt;br /&gt;
&lt;br /&gt;
The D-Bus interface is documented in [http://maemo.org/api_refs/5.0/5.0-final/fmtx-middleware/fmtx_api.html this page]&lt;br /&gt;
&lt;br /&gt;
==Typical Range==&lt;br /&gt;
&lt;br /&gt;
Low power transmitters that are license compliant - do not exceed the regulations - are inherently short range devices and will have poor performance in many desired use-cases simply due to the regulatory limit on power usage.&lt;br /&gt;
&lt;br /&gt;
In the US - the limit is approximately 15 nW, in the UK, 50 nW.&lt;br /&gt;
&lt;br /&gt;
The below OFCOM document lists ranges to a good receiver with a fully extended antenna as 4m for 15nW and 8m for 50nW. (to achieve &#039;noiseless&#039; reception)&lt;br /&gt;
&lt;br /&gt;
[http://www.ofcom.org.uk/radiocomms/ifi/licensing/classes/rlans/technical/tests/srdtests.pdf This document from OFCOM (UK licensing agency) outlines test results for 50nW devices)] [http://www.ofcom.org.uk/consult/condocs/wtexemption/responses/bbc.pdf and this is a BBC response to the OFCOM proposal to legalise them in the UK]. Quoting the second:&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;The BBC appreciates the advantage in principle of authorising for licence-exempt use low-power Band II transmitters constructed strictly to a common European type-approval regime and ‘CE’ marked.&lt;br /&gt;
&lt;br /&gt;
:However, the chosen maximum ERP of 50 nW is neither sufficiently small to avoid creating interference to broadcast reception nor sufficiently large to guarantee that such ‘Micro’ FM transmitters will actually work as intended in areas where Band II is utilised intensively, such as London.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Category:N900]]&lt;br /&gt;
[[Category:N900_Hardware]]&lt;/div&gt;</summary>
		<author><name>188.195.163.148</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=N900_Hardware_Audio_Codec&amp;diff=27548</id>
		<title>N900 Hardware Audio Codec</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=N900_Hardware_Audio_Codec&amp;diff=27548"/>
		<updated>2014-01-05T22:12:47Z</updated>

		<summary type="html">&lt;p&gt;188.195.163.148: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Audio codec encodes and decodes audio.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
The audio codec is a low-power 4 channel codec IC [http://focus.ti.com/docs/prod/folders/print/tlv320aic34.html TLV320AIC34].&lt;br /&gt;
&lt;br /&gt;
It is connected to the CPU using [[N900 Hardware Bus I2C|I2C]] and the MCBSP serial digital audio interface.&lt;br /&gt;
===Unutilised Functions===&lt;br /&gt;
The audio codec supports a flexible digital filter on both the input and output.&lt;br /&gt;
This can be used to perform equalization with no CPU load.&lt;br /&gt;
&lt;br /&gt;
This function is not used, and pulseaudio is used for this task when speakers are enabled. &lt;br /&gt;
&lt;br /&gt;
It can also route the audio directly from the FM receiver to the speakers or the headphones, optionally through this hardware EQ module, also reducing power in this usecase, by entirely eliminating CPU usage.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
===User===&lt;br /&gt;
The audio codec is driven by pulseaudio, through ALSA.&lt;br /&gt;
The ALSA interface is usually not exposed in maemo 5 - adding:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pcm.real {&lt;br /&gt;
	type hw&lt;br /&gt;
	card 0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ctl.real {&lt;br /&gt;
	type hw           &lt;br /&gt;
	card 0&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to /etc/asound.conf enables a hardware device.&lt;br /&gt;
Stopping pulseaudio may be required to use this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Kernel===&lt;br /&gt;
&lt;br /&gt;
The codec is driven by [http://mxr.maemo.org/fremantle/source/kernel/sound/soc/omap/rx51.c a driver built into the kernel].&lt;br /&gt;
&lt;br /&gt;
[[Category:N900 Hardware]]&lt;/div&gt;</summary>
		<author><name>188.195.163.148</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=N900_Hardware_Subsystems&amp;diff=27961</id>
		<title>N900 Hardware Subsystems</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=N900_Hardware_Subsystems&amp;diff=27961"/>
		<updated>2014-01-05T21:46:04Z</updated>

		<summary type="html">&lt;p&gt;188.195.163.148: /* Touchscreen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are many interacting hardware subsystems in the [[Nokia N900|N900]].&lt;br /&gt;
&lt;br /&gt;
These can be split roughly into several areas.&lt;br /&gt;
&lt;br /&gt;
==Audio==&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
&lt;br /&gt;
Most of the audio on the N900 is handled by gstreamer and PulseAudio.&lt;br /&gt;
See [[Documentation/Maemo_5_Developer_Guide/Using_Multimedia_Components/Introduction|the API documentation on sound]]&lt;br /&gt;
&lt;br /&gt;
===Main Speakers===&lt;br /&gt;
===Earpiece===&lt;br /&gt;
===Headphones===&lt;br /&gt;
&lt;br /&gt;
The [[N900 headphone amplifier|headphone amplifier]] is a TPA6130a2 manufactured by Texas Instruments.&lt;br /&gt;
&lt;br /&gt;
===Composite out===&lt;br /&gt;
&lt;br /&gt;
===FM radio transmitter===&lt;br /&gt;
&lt;br /&gt;
{{main|N900 FM radio transmitter}}&lt;br /&gt;
&lt;br /&gt;
===FM radio receiver===&lt;br /&gt;
&lt;br /&gt;
{{main|N900 FM radio receiver}}&lt;br /&gt;
&lt;br /&gt;
===Bluetooth audio===&lt;br /&gt;
&lt;br /&gt;
==Video==&lt;br /&gt;
&lt;br /&gt;
The GPU is a SGX530 licensed from Imagination Technologies.&lt;br /&gt;
&lt;br /&gt;
===Display===&lt;br /&gt;
====Built in LCD====&lt;br /&gt;
&lt;br /&gt;
{{main|N900 LCD panel}}&lt;br /&gt;
&lt;br /&gt;
====Composite out====&lt;br /&gt;
===Front camera (VGA)===&lt;br /&gt;
&lt;br /&gt;
{{main|N900 VGA camera}}&lt;br /&gt;
&lt;br /&gt;
===Rear camera (5MP)===&lt;br /&gt;
&lt;br /&gt;
{{main|N900 camera sensor}}&lt;br /&gt;
&lt;br /&gt;
====Rear camera autofocus====&lt;br /&gt;
&lt;br /&gt;
{{main|N900 Hardware Autofocus}}&lt;br /&gt;
&lt;br /&gt;
====Rear camera LED flash====&lt;br /&gt;
&lt;br /&gt;
{{main|N900 Hardware Flash Torch}}&lt;br /&gt;
&lt;br /&gt;
====Rear camera warning light====&lt;br /&gt;
====Rear camera shutter====&lt;br /&gt;
&lt;br /&gt;
==USB==&lt;br /&gt;
&lt;br /&gt;
{{main|N900 Hardware USB}}&lt;br /&gt;
&lt;br /&gt;
===USB socket===&lt;br /&gt;
&lt;br /&gt;
{{main|N900 Hardware USB Socket}}&lt;br /&gt;
&lt;br /&gt;
==User interaction==&lt;br /&gt;
&lt;br /&gt;
===Touchscreen===&lt;br /&gt;
&lt;br /&gt;
The touch screen controller is a [http://www.ti.com/product/tsc2005 TSC 2005].&lt;br /&gt;
&lt;br /&gt;
===Accelerometer===&lt;br /&gt;
&lt;br /&gt;
{{main|N900 accelerometer}}&lt;br /&gt;
&lt;br /&gt;
===Switches===&lt;br /&gt;
====Lock Switch====&lt;br /&gt;
====Headset Switch====&lt;br /&gt;
====Jack Switch====&lt;br /&gt;
====Camera Button====&lt;br /&gt;
====Power Button====&lt;br /&gt;
====Volume control====&lt;br /&gt;
====Rear cover presence switch====&lt;br /&gt;
====Camera cover====&lt;br /&gt;
&lt;br /&gt;
===Keyboard===&lt;br /&gt;
Matrix keyboard connected to row[7:0] x col[7:0] dedicated matrixscanner IO at GAIA.&lt;br /&gt;
&lt;br /&gt;
All QCOL traces and QROW7 trace are equipped with ESD protection against static discharge.&lt;br /&gt;
&lt;br /&gt;
Each switch under a key is connected to one col and one row trace&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(QCOL-&amp;gt; 7    6    5    4    3    2    1    0)&lt;br /&gt;
QROW7:                           VOL- VOL+ I&lt;br /&gt;
QROW6:                                     U&lt;br /&gt;
QROW5:                                     Y&lt;br /&gt;
QROW4:       Shft Fn   CTRL      Rght Down T&lt;br /&gt;
QROW3:  Left      SPC  M    N    B    V    R&lt;br /&gt;
QROW2:  C    X    Z         CR   Up   .    E&lt;br /&gt;
QROW1:  L    K    J    H    G    F    D    W&lt;br /&gt;
QROW0:  S    A         Del  ,    P    O    Q&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example pressing W connects QCOL0 to QROW1.&amp;lt;br&amp;gt;&lt;br /&gt;
The matrix controller applies a certain level (say +3V) to first col QCOL0 and checks which rows are going to same level (QROW1 for &#039;W&#039;). Then next col is the one to get +3V, and so on.&lt;br /&gt;
&lt;br /&gt;
For Shift-X QCOL6 will pull up QROW4 and QROW2. For Shift-T QCOL6 and QCOL0 will pull up QROW4.&lt;br /&gt;
&lt;br /&gt;
Now the nasty part of it:&amp;lt;br&amp;gt;&lt;br /&gt;
Shift-Fn-K means QCOL5 will pull up QROW4, and QCOL6 will pull up QROW4 and QROW1. BUT: when QROW4 is pulled high by QCOL5, then via the closed Shift key QROW4 will pull high QCOL6, and QCOL6 will pull high QROW1 via K switch. So the matrix controller will see QROW4 and QROW1 both be high, for either of QCOL5 and QCOL6, which looks like 4 keys shift, Fn, K, and(!) J are pressed. Situation for Shift-Fn-J is absolutely identical, and so Sh-Fn-J and Sh-Fn-K are not distinguishable.&amp;lt;br&amp;gt;&lt;br /&gt;
for 3-key tupels the combinations are:&amp;lt;br&amp;gt;&lt;br /&gt;
Sh-Fn-J/K&amp;lt;br&amp;gt;&lt;br /&gt;
Sh-Fn-X/Z&amp;lt;br&amp;gt;&lt;br /&gt;
Sh-CTL-K/H&amp;lt;br&amp;gt;&lt;br /&gt;
Sh-CTL-A/Del&amp;lt;br&amp;gt;&lt;br /&gt;
Fn-CTL-Space/M&amp;lt;br&amp;gt;&lt;br /&gt;
Fn-CTL-J/H&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Looking at this matrix, we notice two things:&amp;lt;br&amp;gt;&lt;br /&gt;
1: Nokia missed to give real dedicated col-lines to the qualifier keys, though there would have been plenty, by simply arranging the keys in matrix in a smarter way. That would have completely avoided the above described N-key rollover issue&amp;lt;br&amp;gt;&lt;br /&gt;
Another common method to fix this problem is to use diodes in series with the key switches. A diode for Ctrl, Shift, and Fn would be just enough here, adding to the BOM with only 3 parts a 2ct each.&amp;lt;br&amp;gt;&lt;br /&gt;
2: U has its own row, and U is used for flashing (USB-flashing mode). Coincidence?&lt;br /&gt;
Let&#039;s assume Nokia EE thought (for whatever weird reason) it might be clever to have a dedicated row for U (so they just pull high QCOL0 in NOLO bootloader and check the 8 row lines by reading in that byte). Then we might start to wonder what&#039;s with Y. And with I? And with T R W E Q? Nota bene press&amp;amp;hold multiple of those keys will always still deliver a nice clean easy-to-read 8bit result, on the presumed test during boot in NOLO&lt;br /&gt;
&lt;br /&gt;
(p.s: maybe the rows are driven high - or even low - and the cols are the sensing inputs. I&#039;ve not checked this, as it doesn&#039;t change anything in the basic function principle and neither changes the problem with N-key rollover. For the NOLO speculations it makes more sense to have inputs on rows and drivers on cols, though)&lt;br /&gt;
&lt;br /&gt;
====Keyboard Slide====&lt;br /&gt;
&lt;br /&gt;
===Proximity sensor===&lt;br /&gt;
&lt;br /&gt;
===Ambient Light Meter===&lt;br /&gt;
&lt;br /&gt;
{{main|N900 light meter}}&lt;br /&gt;
&lt;br /&gt;
==Power management==&lt;br /&gt;
&lt;br /&gt;
{{main|N900 Hardware Power management}}&lt;br /&gt;
&lt;br /&gt;
===Battery===&lt;br /&gt;
&lt;br /&gt;
====Charge meter====&lt;br /&gt;
&lt;br /&gt;
{{main|N900 Hardware Charge Meter}}&lt;br /&gt;
&lt;br /&gt;
===Battery Charger===&lt;br /&gt;
&lt;br /&gt;
{{main|N900 Hardware Battery Charger}}&lt;br /&gt;
&lt;br /&gt;
===Gaia===&lt;br /&gt;
===CPU===&lt;br /&gt;
&lt;br /&gt;
==Phone==&lt;br /&gt;
&lt;br /&gt;
{{main|N900 Hardware Phone}}&lt;br /&gt;
&lt;br /&gt;
===GPS===&lt;br /&gt;
&lt;br /&gt;
{{main|N900 Hardware GPS}}&lt;br /&gt;
&lt;br /&gt;
===2G/3G phone module===&lt;br /&gt;
===SIM===&lt;br /&gt;
&lt;br /&gt;
==Local Network==&lt;br /&gt;
===Bluetooth===&lt;br /&gt;
&lt;br /&gt;
{{main|N900 Hardware Bluetooth}}&lt;br /&gt;
&lt;br /&gt;
===Wifi===&lt;br /&gt;
&lt;br /&gt;
{{main|N900 Hardware Wifi}}&lt;br /&gt;
&lt;br /&gt;
===USB Networking===&lt;br /&gt;
&lt;br /&gt;
==Computing==&lt;br /&gt;
===CPU===&lt;br /&gt;
&lt;br /&gt;
{{main|N900 CPU}}&lt;br /&gt;
&lt;br /&gt;
====Many functional blocks of the CPU====&lt;br /&gt;
====Chipset====&lt;br /&gt;
&lt;br /&gt;
{{main|N900 Hardware Chipset}}&lt;br /&gt;
&lt;br /&gt;
===Memory===&lt;br /&gt;
====Flash Memory====&lt;br /&gt;
=====Internal 32GB eMMC=====&lt;br /&gt;
=====Internal &#039;OneNand&#039; 256MB=====&lt;br /&gt;
=====External microSD card=====&lt;br /&gt;
&lt;br /&gt;
====RAM====&lt;br /&gt;
&lt;br /&gt;
==Other hardware (needs merging into hierarchy above)==&lt;br /&gt;
&lt;br /&gt;
(Click on device for wiki page with more information)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
!Device&lt;br /&gt;
!Model (Manufacturer)&lt;br /&gt;
!Description&lt;br /&gt;
!Driver&lt;br /&gt;
|-&lt;br /&gt;
|[[N900 Hardware LED|LED Controller]] || LP5523  || ||&lt;br /&gt;
|-&lt;br /&gt;
|[[N900 Hardware Digital Audio Data Serial Interface|Digital Audio Data Serial Interface]] || TLV320AIC3x || ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For those wanting to hack on the hardware drivers, the Maemo Kernel source code can be downloaded here:&lt;br /&gt;
 http://repository.maemo.org/pool/fremantle/free/k/kernel/&lt;br /&gt;
&lt;br /&gt;
[[Category:N900 Hardware]]&lt;/div&gt;</summary>
		<author><name>188.195.163.148</name></author>
	</entry>
</feed>