work on docs

This commit is contained in:
Andreas Eversberg 2016-07-10 16:00:34 +02:00
parent b3b42e8bc4
commit ce86f62b11
20 changed files with 1229 additions and 227 deletions

23
README
View File

@ -15,19 +15,24 @@ USE AT YOUR OWN RISK!
Acknowledgements:
Hans Wigger for providing valuable informations about A-Netz and B-Netz.
Carsten Wollesen for donating Telefunken 4015 B-Netz phone back in the 90's.
Klaus Adler for helping me to retrieve complete NMT specification and donating
a BSA44 (magnetic card C-Netz hackable phone) back in the 90's.
Andy Zauner for providing signalling specification of C-Netz back in the 90's.
Hans Wigger for providing valuable informations about A-Netz and B-Netz and
helping me to get an A-Netz phone.
Stephan Hessberger for his work on oebl.de, that provides valuable informations
about A-Netz, B-Netz and C-Netz.
Friedhelm Hillebrand for providing complete specification for mobile phone of
C-Netz.
Friedhelm Hillebrand for providing complete specification of the mobile phone
of C-Netz.
Klaus Adler for helping me to retrieve complete NMT specification back in the
90's.
Mikko Ristila for providing newer NMT specs (with DMS/SMS specifications).
Andy Zauner for providing me signalling specification of C-Netz back in the
90's.
Carsten Wollesen for donating Telefunken 4015 B-Netz phone back in the 90's.
Dieter and Mark for prividing AMPS specifications and tester recordings to
verify and debug AMPS support.

View File

@ -29,7 +29,7 @@ Only big cars could carry these units in their trunk.
It used full duplex radio link.
The call was placed by an operator.
After full deployment, there were 136 base stations with a sum of 317 radio transceivers.
A maximum of 10,784 subscribers were counted 1971. The basic charge was 65 German Marks (A1-Netz), 45 German Marks (A2-Netz / A3-netz).
A maximum of 10,784 subscribers were counted 1971. The basic charge was 65 German Marks (A1-Netz), 45 German Marks (A2-Netz / A3-Netz).
The German Federal Post Office then raised the price to 270 German Marks in 1972. Also the second mobile network (B-Netz) was deployed.
The number of subscribers decreased to 787 on shutdown in 1977.
</p>
@ -59,7 +59,7 @@ How it works
<p>
1. Idle state
<br><br>
A base station transmits a continuous 2280 Hz idle tone on downlink channel.
A base station transmits a continuous 2280 Hz idle tone on down-link channel.
A mobile station detects this tone and indicates a green light.
If the channel is busy or unused in that area, the green light does not appear.
The user must switch channel using the dial.
@ -71,7 +71,7 @@ The user must switch channel using the dial.
2. Call from mobile station
<br><br>
The mobile station will only seize the channel, if the green light is on, otherwise it is blocked.
When the user picks up the handset, the phone switches on its transmitter on uplink channel and transmits a continous 1750 Hz calling tone.
When the user picks up the handset, the phone switches on its transmitter on up-link channel and transmits a continuous 1750 Hz calling tone.
The base station receives this tone and turns off its 2280 Hz idle tone.
The mobile station detects the tone is missing and turns off its 1750 calling tone.
The the speech path is connected through to an operator.
@ -163,11 +163,11 @@ Because our 5th digit is 7, we find 442.5 Hz in group 1.
Because our 6th digit is 9, we find 622.5 Hz in group 2.
Because our 7th digit is 0, we find 787.5 Hz in group 3.
<br><br>
All these tones are sent simultaniously from the base station to the mobile startion.
All these tones are sent simultaneously from the base station to the mobile station.
The mobile stations has four detectors for the four frequencies.
If all four tones are detected by the mobile station, a yellow light and a buzzing sound is indicated.
There is no ringback indication from the mobile station to the base station.
When the user picks up the handset, the phone switches on its transmitter on uplink channel and transmits a continous 1750 Hz answer tone.
There is no ring-back indication from the mobile station to the base station.
When the user picks up the handset, the phone switches on its transmitter on up-link channel and transmits a continuous 1750 Hz answer tone.
The base station receives this tone and turns off the four paging tones.
The mobile station detects the tone is missing and turns off its 1750 answer tone.
The the speech path is connected through to the caller (or operator).
@ -178,15 +178,15 @@ The the speech path is connected through to the caller (or operator).
<p>
4. Release by the mobile station
<br><br>
If the user hangs up, the mobile station transmits a continous 1750 Hz release tone.
The base station receives this tone and disconnects the call. It transmits the continous 2280 Hz idle tone.
If the user hangs up, the mobile station transmits a continuous 1750 Hz release tone.
The base station receives this tone and disconnects the call. It transmits the continuous 2280 Hz idle tone.
The mobile station receives this tone and turns off the transmitter.
</p>
<p>
5. Release by the base station
<br><br>
If the caller or the operator hangs up, the base station returns to idle. It transmits the continous 2280 Hz idle tone.
If the caller or the operator hangs up, the base station returns to idle. It transmits the continuous 2280 Hz idle tone.
The mobile station receives this tone and turns off the transmitter.
</p>
@ -197,9 +197,9 @@ Setup of a base station
<p>
Now run your base station on channel 30.
Tune the transmitter to 162.050 MHz and the receiver to 157.550.
You should tune the receiver to 164.050 first, to check if you hear the idle signal from the base station.
Then tune to actually uplink frequency 157.550 MHz.
Tune the transmitter to 162.050 MHz and the receiver to 157.550 MHz.
You should tune the receiver to 164.050 MHz first, to check if you hear the idle signal from the base station.
Then tune to actually up-link frequency 157.550 MHz.
The actual level is not yet relevant.
(You may check the quality using '-L 2' command line option and build a radio loop by tuning the receiver to the transmitter.)
</p>
@ -226,13 +226,13 @@ Or if you can't increase the audio level on the transmitter, do it with 'alsamix
<pre>
dsp.c:150 info : Detecting continous 1750 Hz tone. (level = 137%)
dsp.c:150 info : Detecting continuous 1750 Hz tone. (level = 137%)
anetz.c:244 info : Received 1750 Hz calling signal from mobile station, removing idle signal.
dsp.c:133 info : Lost 1750 Hz tone after 0 ms.
anetz.c:256 info : 1750 Hz signal from mobile station is gone, setup call.
call.c:574 info : Incomming call from '' to 'operator'
call.c:574 info : Incoming call from '' to 'operator'
... after hangup...
dsp.c:150 info : Detecting continous 1750 Hz tone. (level = 141%)
dsp.c:150 info : Detecting continuous 1750 Hz tone. (level = 141%)
anetz.c:272 info : Received 1750 Hz release signal from mobile station, sending idle signal.
anetz.c:201 info : Entering IDLE state, sending 2280 Hz tone.
call.c:695 info : Call has been released with cause=16
@ -244,7 +244,7 @@ call disconnected: hangup (enter h=hangup)
<p>
When you pick up the phone, the phone transmits a 1750 Hz calling tone.
On reception at the base station, the base station removes the 2280 Hz idle tone.
After that the call is establised.
After that the call is established.
After establishment, you can use the headset, if present, for speech communication with the phone.
On hangup, the phone transmit a 1750 Hz hangup tone.
Then the base station returns to idle again and sends the 2280 Hz idle tone.
@ -253,18 +253,19 @@ Be sure that the phone turns off the transmitter and indicates the (green) light
<p>
Level adjustment:
We see a receive level of arround 140%.
Use the variable resistor (connecting your receiver) to reduce the volume until the level matches about 100% (+- 10%).
Then start the base station using '-L 2' option for loopback and tune receiver to the transmitter.
The base station generates a 1750 Hz test signal, just like the phone.
Use the other variable resistor (connecting your transmitter) to match the same level of your phone.
In this case it is the 100% you adjusted the receiver to.
Now, whatever frequency deviation the phone transmits at 1750 Hz, so does your base station.
We see a receive level of around 140%.
Then start the base station using '-L 2' option for loop-back and tune receiver to the transmitter.
The base station generates a 1750 Hz test signal, just like the mobile phone.
Use the variable resistor (connecting your transmitter) to adjust the volume until the received level matches the same level of your previously received signal.
In my case I adjust the transmitter to match around 140%. (+- 10% is good)
Now, whatever frequency deviation the mobile phone transmits at 1750 Hz, so does your base station.
Use the other variable resistor (connecting your receiver) to adjust the volume until the level matches about 100%. (+- 10% is good)
Switch back the receiver to up-link frequency and restart the phone.
</p>
<p>
To call to the phone, be sure that your transmitter transmits 'loud' enough to send the four paging sine waves.
The frequncy deviation should be between 11 and 15 KHz.
The frequency deviation should be between 11 and 15 KHz.
If transmitter limits the deviation, check if the limit can be adjusted up.
Alternatively a direct connection to the PLL is suggested.
</p>
@ -274,18 +275,18 @@ Start the base station, if not running already.
Enter the last 5 digits of the phone's number and press 'd' to dial.
If you listen to the transmit signal, you should hear 4 low pitched tones at once.
They are quite loud, if you use the pre-empfasis inside your transmitter. (default)
The phone should now turn off the green light and indicate an incomming call with a yellow light and a buzzer sound.
There is no acknowledgement from the phone until you pick up the call.
If the phone does not indicate an incomming call, increase the volume of the transmit signal, but be sure not to overdrive it.
The phone should now turn off the green light and indicate an incoming call with a yellow light and a buzzer sound.
There is no acknowledgment from the phone until you pick up the call.
If the phone does not indicate an incoming call, increase the volume of the transmit signal, but be sure not to overdrive it.
Also be sure that you are actually dialing the right number, so the base station generates the correct paging tones for your phone.
</p>
<p>
Instead of transmitting all 4 tones at once, they can be transmitted after each other.
Each tone is playes for a short time.
Each tone is plays for a short time.
After the last tone has been played, base station starts again with the first tone.
My phone also responds to a call, even if the tones cycle rather than sent simultaniously.
In this case the level of each tone is two times highter (+3 dB), but the peak level is two times lower (-3 dB) than the peak level of 4 simultanious tones.
My phone also responds to a call, even if the tones cycle rather than sent simultaneously.
In this case the level of each tone is two times higher (+3 dB), but the peak level is two times lower (-3 dB) than the peak level of 4 simultaneous tones.
Add command line option "-P 50" to send each tone for 50 milliseconds.
Try something between 20-100 milliseconds, if the phone still doesn't ring.
Be sure to check: Does your transmitter has enough frequency deviation (15 KHz is suggested)? Do you really send the correct number of your phone, check the frequencies of your phone and use "-D 0" option to see what 4 frequencies the base station actually transmits.
@ -294,7 +295,7 @@ Be sure to check: Does your transmitter has enough frequency deviation (15 KHz i
<p>
Detecting loss of carrier signal:
To automatically release the call, when the carrier signal gets lost, look at the B-Netz page.
It is the same priciple.
It is the same principle.
</p>
[<a href="index.html">Back to main page</a>]

View File

@ -38,7 +38,7 @@ History
<li>Duplex distance: 45 MHz
<li>Channel spacing: 30 KHz
<li>Voice modulation: FM
<li>Signalling modulation: carrier FSK
<li>Signaling modulation: carrier FSK
<li>Frequency deviation: 8 KHz (FSK)
<li>Mobile station transmit power: 4 Watts (vehicular) 1.6 or 0.6 Watts
<li>Base station transmit power: ??? (around 50 Watts)
@ -58,6 +58,13 @@ History
*TBD* SID and System A/B
</p>
<p>
To reduce radio noise, a syllabic compandor is used on both ends.
This compresses the audio level dynamics by 2.
An audio level of 25% is raised to 50% by the compressor and lowered to 25% by the expandor.
A radio noise floor of 10% would be reduced to 1% by the expandor.
</p>
<p class="toppic">
<a name="basestation"></a>
Setup of a base station
@ -140,7 +147,7 @@ frame.c:2691 info : Transmit: Word 2 - Extended Address Word (SCC != 11)
transaction.c:175 info : Transaction state CALL ASSIGN MOBILE ORIGINATING SEND -&gt; CALL
amps.c:951 info : Staying on combined control + voice channel 334
amps.c:959 info : Setup call to network.
call.c:590 info : Incomming call from '617XXXXXXX' to '5551212'
call.c:590 info : Incoming call from '617XXXXXXX' to '5551212'
dsp.c:678 notice : SAT level 72.31% quality 98%p)
dsp.c:678 notice : SAT level 78.63% quality 100%)
dsp.c:678 notice : SAT level 78.76% quality 100%)
@ -151,7 +158,7 @@ dsp.c:678 notice : SAT level 78.66% quality 100%)
<pre>
amps.c:525 info : Detected Signalling Tone with quality=100.
amps.c:525 info : Detected Signaling Tone with quality=100.
transaction.c:117 info : Destroying transaction for subscriber '617XXXXXXX'
transaction.c:175 info : Transaction state CALL -&gt; IDLE
call.c:711 info : Call has been released with cause=16
@ -203,7 +210,7 @@ dsp.c:678 notice : SAT level 78.58% quality 99%
amps.c:585 info : Detected SAT signal with quality=99.
frame.c:2691 info : Transmit: Mobile Station Control Message Word 1 (SCC == 11)
dsp.c:678 notice : SAT level 79.75% quality 100%
amps.c:525 info : Detected Signalling Tone with quality=100.
amps.c:525 info : Detected Signaling Tone with quality=100.
call.c:646 info : Call is alerting
transaction.c:175 info : Transaction state CALL ALERT MOBILE TERMINATING -&gt;
CALL ALERT MOBILE TERMINATING SEND
@ -216,7 +223,7 @@ dsp.c:678 notice : SAT level 80.08% quality 100%
<pre>
mps.c:527 info : Lost Signalling Tone signal
mps.c:527 info : Lost Signaling Tone signal
call.c:689 info : Call has been answered by '617XXXXXXX'
transaction.c:175 info : Transaction state CALL ALERT MOBILE TERMINATING SEND -&gt; CALL

View File

@ -27,7 +27,7 @@ It was the successor of the A-Netz.
It existed between 1972 and 1994.
Using digital technology and later microprocessors, the phone were still as big as a suitcase.
It used full duplex radio link.
The call was placed by atomatic dialing in both direction, so no requirement for an operator.
The call was placed by automatic dialing in both direction, so no requirement for an operator.
After full deployment in 1986, there were 158 base stations.
Early devices used up to 38 voice channels. Later units used up to 75 voice channels.
A maximum of about 27,000 subscribers were counted 1986.
@ -42,7 +42,7 @@ This helped to lower the channel allocation time.
<p>
<ul>
<li>Frequency range: 153.01 - 153.73 MHz (downlink); 148.41 - 149.13 MHz (uplink)
<li>Frequency range: 153.01 - 153.73 MHz (down-link); 148.41 - 149.13 MHz (up-link)
<li>38 voice channels for B1-Netz
<li>75 voice channels for B2-Netz
<li>1 paging channel
@ -65,7 +65,7 @@ Note that the following protocol description is based on my research. It may be
</p>
<p>
Two tones are used for signalling:
Two tones are used for signaling:
</p>
<p>
@ -87,7 +87,7 @@ Continuous tones used by mobile station:
<p>
<ul>
<li>Kanalbelegung: F0 is sent by the mobile to allocate a channel for outgoing call.
<li>Rufbest&auml;tigung: F1 is sent by the mobile to acknowledge incomming call.
<li>Rufbest&auml;tigung: F1 is sent by the mobile to acknowledge incoming call.
<li>Beginnsignal: F0 is sent by mobile to indicate answer of the mobile subscriber.
</ul>
</p>
@ -107,7 +107,7 @@ Continuous tones used by base station:
<p>
Digits are coded as 16 bits and transferred at a rate of 100 bits per second.
Each bit consists of the signalling tones F0 and F1 and has a duration of 10 ms.
Each bit consists of the signaling tones F0 and F1 and has a duration of 10 ms.
All digit starts with sync pattern ("0 1 1 1 0").
</p>
@ -279,7 +279,7 @@ Idle base station:
</p>
<p>
When a base station transceiver is idle, it repeatingly sends one idle pattern ("Gruppenfreisignal") on downlink.
When a base station transceiver is idle, it repeatedly sends one idle pattern ("Gruppenfreisignal") on down-link.
This signal can be used by the mobile subscriber to select a particular base stations to lower call fees or to select the base station that a car is driving close to.
If no pattern is selected, the mobile station selects any base station on mobile originated call.
If a pattern 1..9 is selected, the mobile station selects only the base stations which sends that idle pattern.
@ -306,7 +306,7 @@ If no channel is found, a busy signal is indicated to the mobile subscriber.
</p>
<p>
If a free and suitable channel was found, the mobile station sends channel allocation signal ("Kanalbelegung") on uplink channel and waits for dial request signal ("Wahlabruf") from the base station.
If a free and suitable channel was found, the mobile station sends channel allocation signal ("Kanalbelegung") on up-link channel and waits for dial request signal ("Wahlabruf") from the base station.
</p>
<p>
@ -352,18 +352,18 @@ Only the (bare) 5 digits of the mobile identity are repeated, not the other digi
</p>
<p>
The mobile station compares the repeated identiy and turns transmitter off, if it mismatches.
The mobile station compares the repeated identity and turns transmitter off, if it mismatches.
No clear signal is sent.
If another mobile station dials at the same time, this wrong identity indicates that the base station receives the other mobile station and not our mobile station.
</p>
<p>
The dial string is repeated once again by the mobile station.
Afterwards the mobile station connects the speech path and conversation takes place.
Afterward the mobile station connects the speech path and conversation takes place.
</p>
<p>
If the dial string is received correctly once again by the base station, it connectes the speech path and conversation takes place.
If the dial string is received correctly once again by the base station, it connects the speech path and conversation takes place.
</p>
<p>
@ -403,7 +403,7 @@ The transceiver of the base station switches to channel 19 and sends a paging se
<p>
Then the base station returns to the ordered channel and waits 2 seconds for the mobile station to send the call acknowledge signal ("Rufbest&auml;tigung").
If it is not received, the base station repeats the paging sequence again.
If there is still no call acknowledge signal, it returns to idle state and indicates announcenemnt to the calling party that the mobile station is (currently) not available.
If there is still no call acknowledge signal, it returns to idle state and indicates announcement to the calling party that the mobile station is (currently) not available.
(German announcement sais: "Dieser Anschlu&szlig; ist vorr&uuml;bergehend nicht erreichbar!")
</p>
@ -485,6 +485,15 @@ When the signal gets lost for more than 9,6 seconds, the mobile station will ret
The base station will *TBD*, clears the call and returns to idle state.
</p>
<p>
Reduced transmit power:
</p>
<p>
When the mobile phone starts outgoing call on a channel that uses GFS ('Gruppenfreisignal') 19, the transmit power is reduced to 100 mW.
Even if no GFS is selected, the power is reduced on a channel that broadcasts GFS 19.
</p>
<p class="toppic">
<a name="basestation"></a>
Setup of a base station
@ -492,20 +501,21 @@ Setup of a base station
<p>
Before testing this software, power on your B-Netz.
Refer to the manual how to dial a number.
Refer to the phone's manual on how to dial a number.
Start dialing and after some seconds you should hear a busy signal.
This means that the phone sweeps over all channels to find a base startion.
This means that the phone sweeps over all channels to find a base station.
But you get a busy signal, that means there is no channel.
</p>
<p>
Now run your base station on channel 1.
You may add '-g x' or '--gfs x' command line option to change the station ID from default to any value you like. (see help)
Tune the transmitter to 153.010 and the receiver to 148.410.
You should tune the receiver to 153.010 first, to check if you can hear and decode the idle signal from the base station.
Then tune to actually uplink frequency 148.410 MHz.
If you have a phone that supports GFS 19, please use this GFS 19 to reduce the transmit power of the phone to 100 mW instead of 15 Watts.
To see if your phone supports it, try to preselect GFS 19.
Tune the transmitter to 153.010 MHz and the receiver to 148.410 MHz.
You should tune the receiver to 153.010 MHz first, to check if you can hear and decode the idle signal from the base station.
Then tune to actually up-link frequency 148.410 MHz.
The actual level is not yet relevant.
(You may check the quality using '-L 2' command line option and build a radio loop by tuning the receiver to the transmitter.)
</p>
<pre>
@ -525,7 +535,7 @@ on-hook: ..... (enter 0..9 or d=dial)
Enter a phone number (just a few digits, like "0310") on your phone.
Start dialing and watch the base station receiving the call.
If there is no reaction from the base station, check the volume again.
Also check if you can receive yourself, if you tune the receiver to the downlink channel.
Also check if you can receive yourself, if you tune the receiver to the down-link channel.
Set the selector for the base station ID ("Gruppenfreisignal") to 0.
</p>
@ -582,7 +592,7 @@ bnetz.c:509 info : Digit RX Level: 81% Quality=100
bnetz.c:524 info : Received telegramm digit 'Funkwahlende'.
bnetz.c:629 info : Dialing complete 50993-&gt;0310, call established.
bnetz.c:635 info : Setup call to network.
call.c:585 info : Incomming call from '50993' to '0310'
call.c:585 info : Incoming call from '50993' to '0310'
call.c:606 info : Sending MNCC call towards Network
...
bnetz.c:509 info : Digit RX Level: 86% Quality=98
@ -615,21 +625,21 @@ The base station returns to idle.
<p>
Level adjustment:
We see a receive level of arround 85%.
Use the variable resistor (connecting your receiver) to reduce the volume until the level matches about 100% (+- 10%).
Then start the base station using '-L 2' option for loopback and tune receiver to the transmitter.
The base station generates test digits and displays them after decodeing.
Use the other variable resistor (connecting your transmitter) to match the same level of your phone.
In this case it is the 100% you adjusted the receiver to.
Now, whatever frequency deviation the phone transmits for signalling, so does your base station.
We see a receive level of around 85%.
Tune your receiver to the up-link frequency, so you get loop-back of base station broadcast.
Use the variable resistor (connecting your transmitter) to adjust the volume until the received level matches the same level of your previously received bust.
In my case I adjust the transmitter to match around 85%. (+- 10% is good)
Now, whatever frequency deviation the phone transmits for signaling, so does your base station.
Use the other variable resistor (connecting your receiver) to adjust the volume until the level matches about 100%. (+- 10% is good)
Switch back the receiver to up-link frequency and restart the phone.
</p>
<p>
In order to call the phone from the base station, you need to transmit channel 19.
Your transmitter must temporarily tune to 153.370 MHz in order to page the phone.
The phones listens to incomming signals from the base station.
The phones listens to incoming signals from the base station.
In order to transmit on channel 19, you may use a second transmitter or re-tune your single transmitter.
There are many ways todo that, but it is actually up to your own how to couple it and how to control your transmitter.
There are many ways to do that, but it is actually up to your own how to couple it and how to control your transmitter.
I use an optocoupler to tell my transmitter to switch to channel 19.
</p>
@ -638,8 +648,8 @@ I use an optocoupler to tell my transmitter to switch to channel 19.
<center><img src="trigger-2.jpg"/><img src="trigger-3.jpg"/></center>
<p>
I measure about 3 Volts peak on the ouput of the USB chip I use.
Since my optocoupler triggers at arround 1 Volts, I have two Volts on the Resistor, which results in 10 mA current.
I measure about 3 Volts peak on the output of the USB chip I use.
Since my optocoupler triggers at around 1 Volts, I have two Volts on the Resistor, which results in 10 mA current.
In order to check and change the voltage, use '-P positive' or '-P negative' option to select trigger level on one audio channel.
Run the base station and enter a 5 digit number.
Measure the voltage on both audio output channels.
@ -651,10 +661,10 @@ Once the base station timed out, press 'h' for hangup and try again.
<p>
Instead of using a tone or a level, the base station can write to a file. Use '-P &lt;file&gt;=&lt;on&gt;:&lt;off&gt;'.
When switching to channel 19, the base station writes the string &lt;on&gt; to &lt;file&gt;, afterwards it writes &lt;off&gt; to &lt;file&gt;.
When switching to channel 19, the base station writes the string &lt;on&gt; to &lt;file&gt;, afterward it writes &lt;off&gt; to &lt;file&gt;.
You may write your own tool that uses a pipe to receive the switching information. Then set &lt;file&gt; to your pipe.
I tried it with a Raspberry PI and used GPIO to switch: '-P /sys/class/gpio/gpio17/value=1:0'
This writes a 1 to GPIO 17 when switchting to channel 19 and a 0 when switching back.
This writes a 1 to GPIO 17 when switching to channel 19 and a 0 when switching back.
</p>
<pre>

View File

@ -24,35 +24,39 @@ History
<p>
C-Netz was the third mobile telephone network in Germany.
It existed between 1984 (officially Mai 1985) and December 2000.
In 1989, the German Wall came down and C-Netz was quickly deployed in eastern Germany to support the congested fixed network.
It was the first cellular system, so frequencies could be used more efficiently.
It offered handover capability, so moving phones could change cells during a call.
In 1989, the German Wall came down and C-Netz was quickly deployed in eastern Germany to support the congested telephone network.
It was the first cellular system in Germany, so frequencies could be used more efficiently, as it had been done in the USA with AMPS.
It offered handover capability, so moving phones could change the smaller cells during a call.
The SIM card was introduced, which is similar to GSM.
This card allowed to use phones by different subscribers with different subscriber numbers.
Authentication was used to prevent fraud, but it was used only with SIM card phones. The magnetic cards could be cloned by receiving 'roaming' messages.
Extra services (e.g. conditional call forwarding, answering machine) were installed in the mobile exchange.
A scrambler inside the phone and base station prevented eavedropping with radio scanners.
Phones became smaller and portable, even handheld phones were available.
All phones were available under a dedicated prefix, so the caller must not know the location of the phone anymore.
Authentication was used to prevent fraud, but it was used only with SIM card phones.
The magnetic cards could be cloned by receiving 'roaming update' messages.
Extra services (e. g. conditional call forwarding, answering machine) were installed in the mobile exchange.
A voice scrambler inside the phone and base station prevented eavesdropping with radio scanners.
The scrambler inverted the audio spectrum, so one cannot understand any word without de-scrambling.
Phones became smaller and portable, even hand-held phones were available.
In Germany these hand-held phones are called 'Handies'.
All phones were available under a dedicated prefix.
A caller must not know the location of the phone anymore to reach the right base station.
</p>
<center><img src="c-netz-c130.jpg"/></center>
<p>
<ul>
<li>Frequency range: 461.300 - 465.740 MHz (downlink); 451.300 - 465.740 MHz (uplink)
<li>Frequency range: 461.300 - 465.740 MHz (down-link); 451.300 - 465.740 MHz (up-link)
<li>222 voice channels
<li>237 voice channels since Mai 1988
<li>287 voice channels since September 1989
<li>1 organisation channel (call setup and paging)
<li>1 organization channel (call setup and paging)
<li>Duplex distance: 10 MHz
<li>Channel spacing: 10 KHz and optionally 12.5 KHz
<li>Voice modulation: FM
<li>Signalling modulation: carrier FSK
<li>Signaling modulation: carrier FSK
<li>Frequency deviation: 2.4 KHz (FSK)
<li>Mobile station transmit power: 50 mW up to 15 Watts
<li>Base station transmit power: 25 Watts
<li>Features: Speech Compandor, Audio scrambling
</ul>
</p>
@ -64,66 +68,68 @@ How it works
<p>
Like AMPS (Advanced Mobile Phone Service), the C-Netz is a cellular network.
Smaller cells allowed more calls to be made with same amount of radio channels.
</p>
<center><img src="c-netz_zellstruktur.png"/></center>
<p>
Base stations are grouped into clusters.
Each cluster has arround 7 base stations.
Each cluster is made of around 7 base stations.
Each base station in a cluster must have different channels.
As depictet, the frequency of a base station marked with "1" can be re-used in other clusters.
To handle more calls with the same amount of channels, the size of a cell must be reduced.
By using small cell structure, it is likely to loose radio link while calling and moving at the same time.
To prevent loss of radio link while moving to far away from a cell, handover to stronger or closer cell is performed.
As depicted, the channels of a base station marked with "1" can be re-used in other clusters that is marked "1" also.
To handle more calls with the same amount of channels, the size of a cell was reduced in highly populated areas.
By using small cell structure, it was likely to loose radio link while calling and moving at the same time.
To prevent loss of radio link while moving too far away from a cell, handover to stronger or closer cell is performed.
</p>
<center><img src="c-netz_frequenzen.png"/></center>
<p>
Two frequency bands are used, one for uplink and one downlink.
Only one exception is the control channel "131".
It is the same for all base stations.
Two frequency bands are used, one for up-link and one down-link.
Only one exception is the control channel #131 ('Orgakanal').
It is the same channels for all base stations.
To avoid collisions, the channel is divided into time slots.
The time slots are re-used in the same way as channels are re-used in other clusters.
This reduces the number of channels for call setup to only one channel.
The mobile phone does not have to search for a valid control channel first.
This reduces the number of channels for call setup and paging to only one single channel.
The mobile phone does not have to search for a valid control channel first, it just has to tune to channel 131.
Also it is possible to have a dedicated control channel for cells in high traffic areas.
</p>
<center><img src="c-netz_zeitschlitze.png"/></center>
<p>
As depicted, the base station and mobile station use one or more time slots.
Generally every 8th time slot is used.
In this case the base station transmits every 600ms.
The mobile phone transmits two time slots later.
As depicted, the base station and mobile station use one or more time slots on the control channel.
Generally, every 8th time slot was used and is used by this project.
The base station transmits every 600ms in this case.
The mobile phone transmits two time slots later, if required.
Every time slot contains two message blocks.
One block is used for call setup.
The other block is used for periodic check if the phone is still available.
The other block is used for periodic check, if the phone is still available.
</p>
<p>
Message blocks contain 70 bits.
Message blocks have 70 bits.
The first 6 bits define the message type.
The other 64 bits depend on the message type.
The other 64 bits are information elements, depend on the message type.
The 70 bits are grouped into 10 words of 7 bits each.
Eeach word gets 8 redudancy bits by using a BCH code.
The redundany allows to correct up to two bit errors in a word.
Each word gets additional 8 bits redundancy from a BCH code.
The redundancy allows to correct up to two bit errors in a word.
</p>
<center><img src="c-netz_interleaving.png"/></center>
<p>
To correct burst errors (several bit errors after each other), the bits are interleaved before transmitted.
To correct burst errors (up to 20 bits), the bits are interleaved before transmitted.
As depicted above, the first bit of all words are transmitted first, then the next bit and so on.
</p>
<center><img src="c-netz_frame_k.png"/></center>
<p>
A sync word of 11 bits is added in front of each message three times.
A sync word of 11 bits is added in front of each message three times, followed by one unused bit.
Additional 14 guard bits are used to allow the transmitter to ramp up and down RF power between time slots.
This gives a total of 198 bits per message and a duration of 37.5 ms.
</p>
<center><img src="c-netz_frame_v.png"/></center>
@ -131,53 +137,70 @@ Additional 14 guard bits are used to allow the transmitter to ramp up and down R
<p>
Also message blocks are transmitted during voice conversation.
The blocks are used to terminate the call, perform handover, measure link or transmit metering information.
4 bits the message is transmitted every 12.5 ms. After 600 ms, the complete frame is transmitted.
4 bits of the message is transmitted every 12.5 ms. After 600 ms, the complete frame is transmitted.
To remove the 4 bits from audio stream, the voice is time compressed (speed up) to 10/11th.
The 4 bits + 2 guard bits are transmitted in the 1/11th gap between voice chunks.
The 4 bits + 2 guard bits are inserted in the gap between voice chunks.
On the receiving end, the voice chunks are expanded again.
The phone will keep in sync with the voice chunks by keeping in sync with the message bits.
The phone will keep in sync with the voice chunks by keeping the decoder in sync with the received message bits.
</p>
<center><img src="c-netz_frame_v2.png"/></center>
<p>
The level at the end of one voice chunk may not match the level of the beginning of the next chunk.
The offset must be removed by the receiver.
The audio level at the end of one voice chunk may not match the level at the beginning of the next chunk.
This offset must be removed by the receiver using a filter.
</p>
<center><img src="c-netz_lr.png"/></center>
<p>
This is an example of a broadcast message by a base station on the control channel.
The message type 'O' (letter o) is "100111", so this message block contains cell informations and access informations.
The message type 'O' (letter o) is "100111", so this message block contains cell and access information.
</p>
<center><img src="c-netz_symbole.png"/></center>
<p>
The location of parameters inside a message (information elements) are shown by letters.
Each letter is a different parameter as depicted above.
Each letter is a different information element as depicted above.
</p>
<center><img src="c-netz_call.png"/></center>
<p>
The first thing a phone does is looking for a strongest cell.
The first thing a phone does is looking for the strongest cell.
The phone accesses the cell by transmitting a location update message.
The cell acknowledges or rejects the phone.
</p>
<p>
The call setup is depiced above.
The call setup is depicted above.
The mobile phone transmits a message that it wishes to make a normal call or emergency call.
If the channel is available, the base station requests the dialed number from the phone.
The phone transmits the dialed number.
If the number is ok, the base station acknowledges the dialed number.
After a voice channel is allocated, the phone is requested to change to that channel two time slots later.
On this voice channel, the mobe phone and the base station transmit 8 messages to prove quality of channel.
After a voice channel is allocated, the base station orders the phone to change to that channel two time slots later.
On this voice channel, the mobile phone and the base station transmit 8 messages to prove quality of channel.
Messages VH1 and VHK are transmitted while the call is set up.
Then the phone is ordered to switch to voice conversation.
The following messages are transmitted between the voice chunks.
All following messages are then transmitted between the voice chunks.
</p>
<p>
To reduce radio noise, a syllabic compandor is used on both ends.
This compresses the audio level dynamics by 2.
An audio level of 25% is raised to 50% by the compressor and lowered to 25% by the expander.
A radio noise floor of 10% would be reduced to 1% this way.
</p>
<p>
Scrambling is used to prevent eavesdropping with radio scanners.
The audio spectrum of 300 - 3300 Hz is inverted by mirroring frequencies about 1650 Hz at the transmitter.
(1000 Hz becomes 2300 Hz and vice versa.)
The receiver mirrors again to unscramble audio.
To scramble audio efficiently, a carrier frequency of 3300 Hz is amplitude modulated (multiplied) by the audio signal.
The result is a shifted spectrum above 3300 Hz and a mirrored spectrum below 3300 Hz.
The spectrum above 3300 Hz is filtered out, so the mirrored spectrum remains.
</p>
<p class="toppic">
@ -186,14 +209,14 @@ Setup of a base station
</p>
<p>
When I first started with testing early C-Netz implementation, I had great trouble getting a response from a mobile phone.
When I first started testing my early C-Netz implementation, I had great trouble getting a response from any mobile phone.
The main problem was clock speed of the transmitted signal.
The base stations were all synchronized with a high precision clock.
In the real network, the base stations were all synchronized with a high precision clock.
All base stations transmit on the same control channel 131 ('Orgakanal'), but at different time slots.
The phone expects that the time slots repeat precisely every 2.4 seconds.
The specs say that the phone requires clock speed deviation of +- 1 PPM (Parts Per Million) or less.
The specification say that the mobile phone requires clock speed deviation of +- 1 PPM (Parts Per Million) or less.
To comply with the specs, the base stations needs to have a clock deviation far below 1 PPM.
(I guess that there is a tollerance, so maybe a few PPM deviation would make no big problem.)
(I guess that there is a tolerance, so maybe a few PPM deviation would make no big problem.)
We need to calibrate the speed of our transmit signal (and receive signal as well).
</p>
@ -203,14 +226,15 @@ We need to calibrate the speed of our transmit signal (and receive signal as wel
<p>
First of all we need a reference clock.
Since most computer systems have standard crystals, we cannot use our system clock as reference without any help.
I decided to use the NTP daemon.
After running the system for several days, the clock speed should be accurate enough for our needs.
Since most computers have standard crystal clocks, we cannot use our system clock without any help.
I decided to use the help of the NTP daemon.
After running my system for several days (5 days), the clock speed was accurate enough for a base station.
Be sure to choose a place for your PC with constant temperature.
A room inside a building is sufficient.
</p>
<p>
In /etc/ntp.conf define one or more servers to get the time from. I suggest to use the German atom clock of the PTB:
In /etc/ntp.conf define one or more NTP servers to get the time from. I use the German atom clock of the PTB:
</p>
<pre>
@ -221,7 +245,7 @@ server ntp3.ptb.de
<p>
This clock provides time base for European radio clocks and most German clocks.
It accurate enough for this project, so please use this clock.
It accurate enough for this project, so please use this clock for my project.
</p>
<pre>
@ -240,26 +264,25 @@ ntp_adjtime() returns code 0 (<font color="red">OK</font>)
</pre>
<p>
One notices that I have quite an unprecise crystal in my test machine.
Since I have NTP running, the system clock is now far below 1 PPM.
One notices that I have quite an low precision crystal in my test machine.
Since I have NTP running for at least 5 days, the system clock is now far below 1 PPM.
</p>
<p>
The second problem is the clock of our sound adapter.
They use own crystals.
They use own crystals that are also not accurate.
Because they are made for audio signals (and not for high precise base stations), they can't be used without calibration.
Cheap USB adapters may even have different clocks on TX and RX.
I found out that the clock speed changes when the USB voltage changes.
The USB voltage changes, when the current changes, due to different volumes on the output.
To minimize this effect, don't use extension cables.
Be sure to use no extension cables for USB sound adapters, since the voltage may drop undefined and so the clock speed will change.
</p>
<p>
Since we have precise system clock now, we can measure the speed of our sound adapter.
Later we will use the measurement result to adjust our signal processor.
Since we have precise system clock now (thanx to NTP), we can measure the speed difference of our sound adapter.
Later we will use the measurement result to adjust our signal processor, so the signal clock is below 1 ppm.
Be sure to have your machine running for at least 5 to 7 days (with your sound adapter attached, in case you have USB sound adapter).
The machine must have network connection to the NTP server.
I suggest to use 'ntp1.ptb.de' and 'ntp2.ptb.de' as reference.
Use other servers if you are sure that the source is an atomic clock.
Use command line option '-M' or '--measure' to measure my sound adapter.
Let it run for one hour.
</p>
@ -282,9 +305,9 @@ dsp.c:218 notice : Clock: RX=19.44 TX=19.49; Signal: RX=19.35 TX=19.43 ppm
<p>
One can see that the measured clock from the sound card (sample rate) differs about +19.45 PPM.
Because I did not do any correction to the signal processing, the same error applies to the signal.
Because I did not do any correction to the signal processing, the same error applies to the signal processing.
Use command line option '-S 19.45,19.45' or '--clock-speed 19.45,19.45' to compensate the clock error by adjusting the signal processor.
Let it run again for one hour and you will see that clock deviation is below 1 PPM.
Let it run again for one hour and you will see that clock deviation of the signal is below 1 PPM.
</p>
<p>
@ -292,7 +315,7 @@ Let it run again for one hour and you will see that clock deviation is below 1 P
</p>
<p>
C-Netz does not use a modulated tone to carry bits of information, instead it modulates the carrier directly.
C-Netz does not use a modulated tone to carry bits of information, instead it modulates the radio carrier directly.
This image shows the demodulated signal from a receiver:
</p>
@ -301,15 +324,17 @@ This image shows the demodulated signal from a receiver:
<p>
Generally a receiver will do de-emphasis and filtering after demodulating the signal.
We don't want that.
It may work, but be sure to get a receiver with disciminator output.
Many receivers can be modified, so search the Web for more infos.
It may work, but be sure to use a receiver with discriminator output.
This output gives direct signal of the frequency deviation of the received signal.
The signal on the sound card represents the frequency shift of the received signal.
Many receivers can be modified, so search the Web for more info.
</p>
<p>
On the transmitter we don't want to have filtering and pre-emphasis.
It may work, but be sure to get a transmitter that allows to disable emphasis.
I took the schematics of my transmitter and connected the sound card
directly to the PLL.
It may work, but be sure to use a transmitter that allows to disable emphasis.
I took the schematics of my transmitter and connected the sound card directly to the PLL.
The transmitter will now shift frequency according the the level of the sound card.
</p>
<p>
@ -319,34 +344,36 @@ directly to the PLL.
<center><img src="c-netz-burst_part.png"/></center>
<p>
C-Netz uses FSK (Frequency Shift Keying) by directly modulating the carrier, rather than modulating a tone, which is then transmitted via FM.
C-Netz uses FSK (Frequency Shift Keying) by directly modulating the carrier frequency, rather than modulating a tone.
The advantage is much higher data rate.
The base station's carrier frequency is raised by 2.5 KHz to transmit a logical "1" and lowered by 2.5 KHz to transmit a logial "0".
(The mobile station transmits reversed polarity.)
The mobile station will only detect the correct polarity.
The mobile station will only decode signals with the correct polarity.
The three sync words of "11100010010", is shown in the picture above.
In the picture above, the polarity is wrong.
(The logical "1" points down and the logical "0" points up.)
To change polarty, use command line option '-F yes|no|auto' or '--flip-polarity yes|no|auto'.
To change transmitted polarity, use command line option '-F yes|no|auto' or '--flip-polarity yes|no|auto'.
(Note: don't confuse with '-P'!)
</p>
<p>
The 'auto' option (default) will generate a signal of two base stations.
Since we have time division multiplex on the main control channel, we can transmit a second base station easily.
If we don't know the polarity of our sound card or transmitter, this helps to detect the right polarity.
Since we have time division multiplex on the main control channel, we can transmit a second base station by using different time slots.
The second base station uses reversed polarity, so there is one base station with correct and one with wrong polarity.
The two base stations have different time slots and different IDs.
If a first registration message is received from the phone, we check which base station this response belongs to.
If a first registration message is received from the mobile phone, the software checks to which base station this response belongs to.
Then we found the correct polarity and turn off the base station with the wrong polarity.
</p>
<p>
The decoder itself does not care about what polarity it receives from the mobile station.
It just checks for sync words with both polarities and chooses right polarity automatically.
We don't need to know the polarity of the receiver or the sound card's input.
The software just checks for sync words with both possible polarities and chooses right polarity automatically.
</p>
<p>
I have a transmitter and a receiver without emphasis, my soundcard has a clock error of about 19.2 PPM.
I have a transmitter and a receiver without emphasis, my sound card has a clock error of about 19.2 PPM.
To run the base station I the following command line options:
</p>
@ -365,28 +392,28 @@ ceiver to 455.090 MHz.
</pre>
<p>
The sofware complains about using control channel 131 for voice traffic too.
The software complains about using control channel 131 for voice traffic too.
This is the easiest way to use a single transmitter and receiver without switching.
But this is not compliant, so especially newer phone will reject this, like the Nokia C130.
Old phones like BSA, Storno or Phillips phones don't care.
When we make a call and another phone is regisered, the phone will loose coverage when we switch from control channel to traffic channel.
After the call, the other phone re-registers again.
When we make a call and another phone is registered, the other phone will loose coverage when the software switches from control channel to traffic channel.
After the call has been terminated, the control channel is restored and the other phone re-registers again.
</p>
<p>
You should tune the receiver to 465.090 first, to check if you can hear and decode the idle signal from the base station.
Then tune to actually uplink frequency 455.090 MHz.
Then tune to actually up-link frequency 455.090 MHz.
The actual level is not yet relevant.
(You may check the quality using '-L 2' command line option and build a radio loop by tuning the receiver to the transmitter.)
</p>
<p>
Now power up a phone.
Depening on your card reader, insert chip or magnetic card.
Depending on your card reader, insert chip or magnetic card.
Hopefully you get a response from the phone.
If it responds, you will hear a short burs on receiver.
This bursts is just 37.5 ms long and sounds a bit less noisy than the noise floor.
If the burst is received and correctly decoded, the base station knows the transmitter's polarty and selects it.
If the burst is received and correctly decoded, the base station knows the transmitter's polarity and selects it.
</p>
<pre>
@ -410,14 +437,14 @@ transaction.c:208 info : Transaction state EM -&gt; IDLE
<p>
Level adjustment:
We see a receive level of arround 96%.
We see a receive level of around 96%.
This is already good, since I did the adjustment previously.
Tune your receiver to the uplink frequency, so you get loopback of base station broadcast.
Use the variable resistor (connecting your transmitter) to adjust the volume until the RX level matches the same level of your previously received bust.
In my case I adjust the transmitter to match arround 96%. (+- 10% is good)
Now, whatever frequency deviation the phone transmits for signalling, so does your base station.
Use the other variable resistor (connecting your receviver) to adjust the volume until the level matches about 100%. (+- 10% is good)
Switch back the receiver to uplink frequency and restart the phone.
Tune your receiver to the up-link frequency, so you get loop-back of base station broadcast.
Use the variable resistor (connecting your transmitter) to adjust the volume until the received level matches the same level of your previously received bust.
In my case I adjust the transmitter to match around 96%. (+- 10% is good)
Now, whatever frequency deviation the phone transmits for signaling, so does your base station.
Use the other variable resistor (connecting your receiver) to adjust the volume until the level matches about 100%. (+- 10% is good)
Switch back the receiver to up-link frequency and restart the phone.
</p>
<p>
@ -444,7 +471,7 @@ transaction.c:208 info : Transaction state MFT -&gt; IDLE
</pre>
<p>
To make a call from the phone to the base station, just enter some digits and press the dial button on the phone.
To make a call from the mobile phone to the base station, just enter some digits at the mobile phone and press the dial button.
The phone requests a call (VWG).
The base station requests dialed number (WAF).
The phone transmits dialed number (WUE).
@ -486,7 +513,7 @@ cnetz.c:1024 info : Sending 'Quittung Verbindung halten' on traffic channel
telegramm.c:1486 info : RX Level: 96% Jitter: 0.03 Sync Time: 10691.98 (TS 27.00) POSITIVE
cnetz.c:1118 info : Received allocation 'Belegung' message.
...
call.c:623 info : Incomming call from '6215784' to '02123839349'
call.c:623 info : Incoming call from '6215784' to '02123839349'
transaction.c:208 info : Transaction state VHQ -&gt; DS
telegramm.c:1486 info : RX Level: 96% Jitter: 0.02 Sync Time: 11286.00 (TS 28.50) POSITIVE
cnetz.c:1145 info : Received connection hold 'Verbindung halten' message.
@ -521,9 +548,9 @@ cnetz.c:1238 info : Sending 'Quittung Verbindung halten' on traffic channel
</pre>
<p>
When calling to the phone, enter the mobile station's ID and press 'd' for dial.
To call to the mobile phone, enter the mobile station's ID and press 'd' for dial.
If the phone is attached, the base station orders the phone to switch to speech channel (VAK).
The rest is similar to incomming calls, excpet the the phone has to answer before the speech is throughconnected:
The rest is similar to incoming calls, except the the phone has to answer before the speech is through-connected:
</p>
<pre>
@ -549,7 +576,7 @@ cnetz.c:1118 info : Received allocation 'Belegung' message.
</pre>
<p>
When the mobile phon terminates, it sends the AT message.
When the mobile phone is hung up, it sends the AT message.
The base station responds with AF message and switches back to control channel.
</p>
@ -570,7 +597,7 @@ cnetz.c:274 info : Entering IDLE state on channel 131.
telegramm.c:1486 info : RX Level: 96% Jitter: 0.06 Sync Time: 5543.98 (TS 14.00) POSITIVE
dsp.c:641 info : Switching channel (mode)
telegramm.c:1484 info : RX Level: 97% Jitter: 0.08 Sync Time: 9333.99 (TS 23.57) Bit errors: 6 POSITIVE
telegramm.c:1525 notice : Received Telegramm that is not used OgK channel signalling, ignoring! (opcode 22 = AT(V))
telegramm.c:1525 notice : Received Telegramm that is not used OgK channel signaling, ignoring! (opcode 22 = AT(V))
</pre>

View File

@ -24,7 +24,7 @@ Press 'F6' to select the headset or the sound adapter connected to the headset.
<center><img src="alsa-select.png"/></center>
<p>
Mute the microphone, so you wount hear yourself if you speak into the microphone.
Mute the microphone, so you wont hear yourself if you speak into the microphone.
Be sure to press 'F3' to change into Playback view.
Mute playback and not recording from microphone.
To mute, select he microphone with the cursor keys and press 'm'.
@ -58,8 +58,8 @@ Connect the second sound device to your headset and use '-c hw:2,0" (card 2, dev
<p>
To calibrate audio level, run some music player and adjust output volume, so you hear the music at regular speech volume.
Use 'alsamixer' to change the output volume of your second sound card.
This calibartion must be done before calibrating the microphone.
To calibarte input level (mircrophone), run the B-Netz base station with loopback test 3.
This calibration must be done before calibrating the microphone.
To calibrate input level (microphone), run the B-Netz base station with loop-back test 3.
</p>
<pre>

View File

@ -14,16 +14,21 @@
<center>
<img src="a-netz_small.jpg" title="A-Netz"/><img src="b-netz_small.jpg" title="B-Netz"/><br>
A-Netz phone in a Merceds Benz ; B-Netz cell tower in Bredstedt<br>
<img src="c-netz_small.jpg" title="C-Netz"/><img src="nmt_small.jpg" title="Nordisk Mobil Telefon"/><br>
my mother's C-Netz SIM card ; countries that developed NMT (Nordic Mobile Phone)<br>
<img src="amps_small.jpg" title="Advanced Mobile Phone Service"/><img src="setup_small.jpg"/><br>
AMPS (Advanced Mobile Phone Service) ; my radio setup<br>
</center>
<br><br>
<p>
A base station implementation of classic mobile networks. All these networks use analog voice transmission. The signalling is done by tones and/or FSK modulated digital messages. It started with the idea to make a base station for the German B-Netz, but more networks followed.
A base station implementation of classic mobile networks. All these networks use analog voice transmission. The signaling is done by tones and/or FSK modulated digital messages. It started with the idea to make a base station for the German B-Netz, but more networks followed.
</p>
<h1>*this doc is under construction*</h1>
<center>
<ul>
<li><a href="setup.html">Radio setup</a></li>

View File

@ -9,7 +9,7 @@
<h2><center>Software installation</center></h2>
<p>
To run this software, you need a linux PC with development environment (gcc compiler).
To run this software, you need a Linux PC with development environment (gcc compiler).
At least one Alsa sound interfaces is required.
Two sound interfaces are required to talk and listen trough the base station using a headset with microphone.
</p>
@ -59,7 +59,7 @@ To call phone, switch transmitter using pilot tone to 153.370 MHz
</pre>
<p>
Do you hear the whisteling sound on your speaker/headset? Now you can continue with the radio setup.
Do you hear the whistling sound on your speaker/headset? Now you can continue with the radio setup.
</p>
[<a href="index.html">Back to main page</a>]

View File

@ -10,33 +10,963 @@
<center><img src="nmt.jpg"/></center>
<p>
<ul>
<li><a href="#history">History</a>
<li><a href="#howitworks">How it works</a>
<li><a href="#basestation">Setup of a base station</a>
<li><a href="#sms">Sending and receiving SMS</a>
</ul>
<p class="toppic">
<a name="history"></a>
History
</p>
*TBD*
<p>
Now run your base station on channel 1.
Tune the transmitter to 463.000 MHz and the receiver to 453.000.
You should tune the receiver to 463.000 first, to check if you hear the idle signal from the base station.
Then tune to actually uplink frequency 453.000 MHz.
(You may check the quality using '-L 2' command line option and build a radio loop by tuning the receiver to the transmitter.)
NMT was a Scandinavian cellular network, developed by and used in Scandinavian countries.
If was used in the Baltic countries, Switzerland, Netherlands, Hungary, Poland, Bulgaria, Romania, Czech Republic, Slovakia, Slovenia, Serbia, Turkey, Croatia, Bosnia, Russia, Ukraine and in Asia.
The NMT network was opened in Sweden and Norway in 1981, and in Denmark and Finland in 1982. Iceland joined in 1986.
Networks where shut down in 2000 (Estonia), 2002 (Finland), 2004 (Norway), 2007 (Sweden), 2010 (Iceland).
In 1989, the German Wall came down and C-Netz was quickly deployed in eastern Germany to support the congested fixed network.
It was a cellular system, so frequencies could be used efficiently..
It offered handover capability, so moving phones could change cells during a call.
Authentication was introduces (SIS), to prevent fraud, but it was optional.
Older phones without SIS could be cloned by receiving and decoding the roaming update message.
Extra services (e. g. conditional call forwarding, answering machine) were installed in the mobile exchange.
Phones were build in cars but also hand-held phones were available.
All phones were available under a dedicated prefix, so the caller must only dial the phone number to reach the phone anywhere.
The networks offered a data service (DMS) that re-used the signaling modem to transfer data to a terminal or PC.
This data service was used to transfer short messages (SMS) between service center (SMSC) and the mobile phone.
</p>
<p>
NMT-450:
</p>
<p>
<ul>
<li>Frequency range: 462.500 - 467.500 MHz (down-link); 452.500 - 467.500 MHz (up-link)
<li>181 voice channels (463.000 - 467.500)
<li>20 optional channels (462.500 - 462.975)
<li>any channel can be control channel or traffic channel or combined channel
<li>Duplex distance: 10 MHz
<li>Channel spacing: 25 KHz and optionally 12.5 KHz
<li>Voice modulation: FM
<li>Signaling modulation: carrier FSK
<li>Frequency deviation: 3.5 KHz mean (FSK)
<li>Mobile station transmit power: to 15 Watts (1 Watts hand-held)
<li>Base station transmit power: 50 Watts
<li>Features: Speech Compandor, DMS (data service), SMS
</ul>
</p>
<p>
NMT-900:
</p>
<p>
<ul>
<li>Frequency range: 935 - 960 MHz (down-link); 890 - 915 MHz (up-link)
<li>100 voice channels
<li>any channel can be control channel or traffic channel or combined channel
<li>Duplex distance: 45 MHz
<li>Channel spacing: 25 KHz and optionally 12.5 KHz
<li>Voice modulation: FM
<li>Signaling modulation: carrier FSK
<li>Frequency deviation: 3.5 KHz mean (FSK)
<li>Mobile station transmit power: to 6 Watts (1 Watts hand-held)
<li>Base station transmit power: 25 Watts
<li>Features: Speech Compandor, DMS (data service), SMS
</ul>
</p>
<p class="toppic">
<a name="howitworks"></a>
How it works
</p>
<p>
The NMT system is made up of 3 major parts:
</p>
<ul>
<li><b>The Mobile Telephone Exchange (MTX)</b> is the brain of the system and is technically the most complicated part.
Several MTXs form the interface between the NMT system and the fixed telephone network.
Whereas signaling and other system components of NMT are the same in all countries, their telephone networks differ in some respects.
One of the functions of the MTXs is therefore to compensate for these differences.
<br><br>
<li><b>The Base Station (BS)</b> are intermediary links without switching function between the wire (MTX) and radio path.
It is basically a transmitter, connected to the MTX via leased line.
<br><br>
<li><b>The Mobile Station (MS)</b> is the telephone itself.
It can be vehicle-borne, portable, hand-held or of coin-box type.
A mobile station is owned or leased by the subscriber.
</ul>
<center><img src="nmt_ta.jpg"/></center>
<p>
Each country is divided into a number of traffic areas.
In a traffic ares there are a number of base stations spaced about between 8 and 80 km apart.
Each traffic area belongs to a single exchange (MTX).
This means that all base stations in the area are connected to this exchange and that all traffic in the are is channeled through it.
The exchange communicates with the telephone network via trunk exchanges.
</p>
<p>
Every mobile subscriber is registered in a so-called home MTX, usually the MTX controlling the traffic area in which the subscriber normally resides.
</p>
<p>
Setting up of calls
</p>
<p>
A call from an ordinary telephone subscriber is connected on the basis of the first digits of the mobile subscriber's number to his home MTX.
The latter stores the data of his present location and transmits a call signal over all base stations in that traffic area.
The mobile station answers automatically with a call acknowledgment and the MTX then assigns the mobile station a traffic channel.
The call is set up.
</p>
<p>
A call by a mobile subscriber causes the mobile station to search for a traffic channel in the current traffic area automatically.
The call is set up and forwarded through the current MTX to the destination network.
</p>
<p>
If the mobile subscriber is in a traffic are not belonging to his home MTX, the home MTX hands over the call to the MTX controlling the visited traffic areas, and then latter MTX takes over the subsequent setting up of the call.
</p>
<p>
In this example charging is done in the calling subscriber's local exchange.
If the call had been initiated by the mobile subscriber, it would have been charged in the MTX.
</p>
<p>
Roaming
</p>
<p>
The special function which enables a person to call a mobile subscriber without knowing where he or she is, is called roaming.
One need not even know whether the mobile subscriber has gone to another country.
Roaming is made possible by the fact that a mobile station which leaves a traffic areas and enters a new one automatically notifies the MTX that it has entered the new areas. (location update)
The location of the mobile station is stored in the mobile station's home MTX and used for routing calls to the correct area.
</p>
<p>
Transfer of calls to other base station
</p>
<p>
During a conversion it may happen that a mobile subscriber leaves the coverage area of the base station in which the conversation started.
This results in impaired speech quality.
The conversation should then be conducted over another base station.
</p>
<p>
The speech quality is supervised by means of a supervisory signal (&Oslash; signal) one of four tones around 4 kHz.
The base station sends the &Oslash; signal to the mobile station, which sends it back to the base station.
The quality of the returned &Oslash; signal is measured in the base station and, if it is unsatisfactory, the base station transmits alarm to the MTX.
The latter then orders the base station and neighboring base stations to measure the field-strength of the radio signal from the mobile station.
The base stations transmit the results to the MTX, which then switches the call to the base station with the best reception.
</p>
<center><img src="nmt_freq.jpg"/></center>
<p>
Small cell technique
</p>
<p>
The NMT system has been allotted 180 (and optional 20) radio channels.
In the high-traffic urban areas this number of channels would not suffice the future with conventional cell size (the coverage area of a base station).
To increase the traffic capacity in these areas the small-cell technique will be adopted, i. e. the cell size is considerably reduced, so that this distance between base stations having the same radio channel can be reduced.
The channels are thus used more efficiently.
In small-cell areas both base stations and mobile stations transmit with reduced power.
Change of power output of a mobile station takes place automatically on order from the MTX.
</p>
<center><img src="nmt_routing.jpg"/></center>
<p>
The Danish and Norwegian telephone networks permit a maximum of 7 digits after the trunk prefix P<sub>N</sub>.
With an access code of type P<sub>N</sub> M<sub>1</sub> M<sub>2</sub> there remain 5 digits for the subscriber number.
It was anticipated, however, that the system would be constructed for 6-digit subscriber number.
The problem was solved by adding a sixth digit (X<sub>1</sub>) to the dialed number (X<sub>2</sub> X<sub>3</sub> X<sub>4</sub> X<sub>5</sub> X<sub>6</sub>) in all signaling in the NMT system and between MTXs.
The sixth digit will be added automatically by the mobile subscriber's home MTX.
The system thus provides for 6-digit subscriber number in the countries which cannot introduce this length of number when their systems first come into operation.
</p>
<p>
In the Finnish and Swedish fixed telephone network the setting up of calls is done with the digits P<sub>N</sub> M<sub>1</sub> M<sub>2</sub> X<sub>1</sub> X<sub>2</sub>.
The digits X<sub>1</sub> X<sub>2</sub> are the code for the subscriber's home-traffic area.
P<sub>N</sub> M<sub>1</sub> M<sub>2</sub> X<sub>1</sub> X<sub>2</sub> thus constitutes sufficient information for routing the call to the mobile subscriber's home MTX.
In Denmark and Norway the connection is similarly set up with the digits P<sub>N</sub> M<sub>1</sub> M<sub>2</sub> X<sub>2</sub>.
</p>
<p>
To distinguish between subscribers with the same number in different countries and additional digit, the nationality digit Z, is required.
This number is not dialed by the subscriber but added to the subscriber number by the mobile subscriber's home MTX.
The digit Z then accompanies the other signaling in the NMT system.
On signaling from a mobile subscriber, Z is sent automatically by the mobile station.
The receiving MTX can thus distinguish between calling mobile subscribers from different countries.
</p>
<p>
Charging principles
</p>
<p>
The NMT system's character of joint Nordic mobile telephone network has made it natural to adopt common principles als for charging of call.
An important principle is that the charge should be the same in both directions.
A NMT subscriber will pay three compulsory charges:
</p>
<p>
<ul>
<li><b>Initial charge.</b> This charge shall cover the costs involved in opening a subscription, e. g. correspondence, introduction in the accounting routines, registration in the central equipment, directory listing.
<br><br>
<li><b>Subscription fee.</b> A recurring fixed charge for coverage of traffic unrelated costs, e. g. MTX equipment dependent on number of subscribers, costs relating to roaming, administrative costs for billing, keeping of records and telephone directory.
<br><br>
<li><b>Call charge.</b> Variable charge covering traffic-related costs, e. g. transmission in telephone network, operation/maintenance of MTS and base stations, lines to base station, data transfer between MTXs.
</ul>
</p>
<p>
The NMT system will offer a number of special facilities, e. g. barring of certain outgoing calls, transfer to other telephone number/announcing macine.
Special charges will be made for these facilities.
</p>
<p>
The technical form of the system imposes certain limitation on the rate structure.
Charging in the NMT system will thus differ in some respects from that in the fixed telephone network:
</p>
<p>
<ul>
<li><b>Domestic traffic.</b> A Call from an ordinary telephone subscriber to a mobile subscriber <i>registered</i> in the same country is charged in the ordinary subscriber's local exchange.
The charge is based on the digits dialed and the call is routed to the mobile subscriber's home MTX.
In this case there is a technical possibility of price differentiation only between calls to different MTXs.
For the eventual transfer to another MTS (possibly abroad) and for the link MTX - base station there are no means for price differentiation.
Bit as all mobile telephone calls are switched over the trunk network, it may very well happen that local calls as well are routed over long distances.
The cost difference for different domestic calls will therefore in fact be small.
It has therefore been considered that a uniform rate should be charged.
<br><br>
For calls from home mobile to ordinary subscriber in the same country there are technical possibilities for price differentiation, but in accordance with the principle of equal charge in both directions a uniform rate is adopted here as well.
<br><br>
<li><b>Inter-Nordic traffic.</b> For calls from an ordinary to a mobile subscriber <i>registered</i> abroad the charge is based on the international prefix.
The following digits, which route the call to a MTX, cannot be analyzed by the caller's local exchange.
The call will therefore be charged as an ordinary international call.
<br><br>
For calls in the other direction the mobile subscriber is charged by toll ticketing in MTX.
In this case price differentiation is possible, but owing to the desire for equal rates, the international rate is used here as well.
The national mobile telephone rate is used, however, if the international rate is lower than the mobile telephone rate.
</ul>
</p>
<p>
Many types of signal are used between the different parts of the NMT system.
The signals have the following main objectives:
</p>
<p>
<b>MTX - MS</b>
</p>
<ul>
<li>Setting up and clearing of calls
<li>Switching of call in progress
<li>Updating
<li>Ordering of power-reduction
</ul>
<p>
<b>MTX - BS</b>
</p>
<ul>
<li>Remote control of base station
<li>Transmission of alarm / measurement
</ul>
<p>
<b>MTX - MTX</b>
</p>
<ul>
<li>Updating of subscriber register and roaming register
<li>Transfer of call to roaming subscriber
</ul>
<p>
<b>MTX - Telephone Network</b>
</p>
<ul>
<li>Setting up of calls
</ul>
<p>
<b>BS - MS</b>
</p>
<ul>
<li>Supervision of transmission quality
</ul>
<p>
Signals are sent in the form of so-called frames.
All frames have the same length.
They are divided into fields, each of which contains a given type of information.
Two frame formats exist depending on whether the frame is sent to or from MTX.
</p>
<p>
From MTX:
<table class="nmt">
<tr>
<td class="nmt">
N<sub>1</sub>
N<sub>2</sub>
N<sub>3</sub>
</td>
<td class="nmt">
P
</td>
<td class="nmt">
Y<sub>1</sub>
Y<sub>2</sub>
</td>
<td class="nmt">
Z
X<sub>1</sub>
X<sub>2</sub>
X<sub>3</sub>
X<sub>4</sub>
X<sub>5</sub>
X<sub>6</sub>
</td>
<td class="nmt">
J<sub>1</sub>
J<sub>2</sub>
J<sub>3</sub>
</td>
</tr>
</table>
</p>
<p>
To MTX:
<table class="nmt">
<tr>
<td class="nmt">
N<sub>1</sub>
N<sub>2</sub>
N<sub>3</sub>
</td>
<td class="nmt">
P
</td>
<td class="nmt">
Z
X<sub>1</sub>
X<sub>2</sub>
X<sub>3</sub>
X<sub>4</sub>
X<sub>5</sub>
X<sub>6</sub>
</td>
<td class="nmt">
J<sub>1</sub>
J<sub>2</sub>
J<sub>3</sub>
J<sub>4</sub>
J<sub>5</sub>
</td>
</tr>
</table>
</p>
<p>
N = Channel Number<br>
P = Prefix (frame ID)<br>
Y = Traffic area number<br>
Z/X = Subscriber number<br>
J = Information<br>
</p>
<p>
Each character (N, P etc) consists of a hexadecimal digit, i. e. four bits.
All frames start with the number of the channel on which the frame is sent.
If the number does not match with that of the channel to which the receiver is locked, the frame is ignored.
Faults due to inter-modulation are thus avoided.
The character after the channel number, the prefix P, defines the kind of message to which the frame relates.
The actual message is found in the information field.
On signaling from a mobile station the mobile subscriber's number is always sent.
It is also sent on signaling from MTX to a specific subscriber.
Furthermore the MTX always sends the traffic area number of the base station in use.
</p>
<p>
Examples of signal frames:
</p>
<pre class="doc">
1.a Calling channel indication
Channel No. Prefix TA No. Additional info
----------------------------------------------------
N1N2N3 P(12) Y1Y2 H1H2H3H4H5H6H7H8H9H10
----------------------------------------------------
</pre>
<p>
Calling channel indication.
The frame is recognized by the prefix P, which has the value 12.
N<sub>1</sub>..N<sub>3</sub> = the number of the calling channel, on which the frame is sent.
Y<sub>1</sub>Y<sub>2</sub> = the number of the traffic area in which the base station is situated.
H<sub>1</sub>..H<sub>10</sub> = additional information, like battery saving info and additional information.
</p>
<pre class="doc">
3.a Traffic channel allocation on traffic channel
Channel No. Prefix TA No. Mobile TC No.
subscriber no
----------------------------------------------------
N1N2N3 P(5) Y1Y2 ZX1X2X3X4X5X6 NaNbNc
----------------------------------------------------
</pre>
<p>
Allocation of traffic channel.
The frame is sent on the calling channel N<sub>1</sub>..N<sub>3</sub>.
The mobile station ZX<sub>1</sub>..X<sub>6</sub> to which a connection is to be set up is ordered over to traffic channel number N<sub>a</sub>..N<sub>c</sub>.
</p>
<pre class="doc">
10.b Seizure from ordinary MS and identity on traffic
channel
Channel No. Prefix Mobile Area Pass-
subscriber No info word
----------------------------------------------------
N1N2N3 P(1) ZX1X2X3X4X5X6 TY2 K1K2K3
----------------------------------------------------
</pre>
<p>
Transmission of identity on traffic channel.
The frame is sent on traffic channel by the mobile station, either as acknowledegment of an identity request or as seizure signal on a call from the mobile station.
</p>
<p>
As appears from the above, a frame consists of 4 x 16 = 64 bits.
To increase the reliability the frame is sent with an error-correcting code, so that the length of the message will be 140 bits.
An additional 15 + 11 bit are used for synchronization.
The transmitted signal frame will have the following form:
</p>
<pre class="doc">
Bit sync Frame Sync Message (example) 140 bits
101010101010101 11100010010 10010001101...011010010111
</pre>
<p>
The selected error-correcting code is of convolution type and permits correction of error bursts with up to 6 false bits in sequence for at least 19 correct bits between error bursts.
</p>
<center><img src="nmt_mod.jpg"/></center>
<p>
The binary position in the signal frames are transmitted by FFSK (Fast Frequency Shift Keying) modulation.
Logic "1" is represented by a cycle of the frequency 1200 Hz and a logic "0" by 1.5 cycles of 1800 Hz.
Changes between "1" and "0" takes place at the zero crossing of the signal.
The data speed is thus 1200 bits per second.
</p>
<p>
Call from mobile station:
</p>
<center><img src="nmt_mo_call.jpg"/></center>
<p>
Call to mobile station:
</p>
<center><img src="nmt_mt_call.jpg"/></center>
<p>
Handover to another cell:
</p>
<center><img src="nmt_handover.jpg"/></center>
<p>
Roaming:
</p>
<center><img src="nmt_roaming.jpg"/></center>
<p>
Other features:
</p>
<p>
To reduce radio noise, a syllabic compandor is used on both ends.
This compresses the audio level dynamics by 2.
An audio level of 25% is raised to 50% by the compressor and lowered to 25% by the expander.
A radio noise floor of 10% would be reduced to 1% by the expander.
</p>
<p>
SMS transmitted via a protocol that it similar to the GSM 04.11 standard.
To transport SMS data, the user data facility (DMS) of the NMT network is used.
DMS re-uses the existing signaling hardware of the mobile phone and offers a data link protocol with backward error correction.
</p>
<p>
Caller ID was added to the system.
The caller ID is transmitted before the first ringing order.
It is repeated between ringing orders, in case of lost frames.
</p>
<p class="toppic">
<a name="basestation"></a>
Setup of a base station
</p>
<p>
Before running the base station, you need to select a network.
To make the phone access the network, it needs to have the same network selected.
Check out what networks are available:
</p>
<pre>
# src/nmt/nmt -k 1 -y SE,1
# nmt -y list
TA Short Country (Provider)
------------------------------------------------------------------------
5 DK Denmark (Tele Danmark Mobile)
6 SE Sweden (Telia Mobitel)
7 NO Norway (Telenor Mobil)
8 FI Finland (Telecom Finland)
8 IS Iceland (Post &amp; Telecom)
5 FO Faroe Island (Faroese Telecom)
7 EE Estonia (Eesti Mobiiltelefon)
...
nmt.c:376 info : Entering IDLE state, sending idle frames on combined calling &amp; traffic channel.
Base station ready, please tune transmitter to 463.000 MHz and receiver to 453.000 MHz.
on-hook: ....... (enter 0..9 or d=dial)
</pre>
<p>
In this example we select 'Sweden'.
You must set you phone to network 'Sweden' or 'SE'.
Then use the command line parameter '-y SE,1' or '--traffic-area SE,1' to select cell area 1 in Sweden.
In this example we set the two digits 'traffic area' to 61.
If the phone was not in this area recently, it will send roaming update, as soon as it finds our network.
</p>
<p>
Now run your base station on channel 1.
Tune the transmitter to 463.000 MHz and the receiver to 453.000 MHz.
You should tune the receiver to 463.000 MHz first, to check if you can hear and decode the idle signal from the base station.
Then tune to actually up-link frequency 453.000 MHz.
The actual level is not yet relevant.
</p>
<p>
Whenever you want to make your phone register to the network again, change the traffic area.
Use a traffic are of 'SE,2', so the phone registers, if it was previously registered to 'SE,1'.
</p>
<pre>
nmt -k 1 -y SE,2
nmt.c:278 info : Selecting country code 6 of SE,Sweden (provider 'Telia Mobitel')
...
nmt.c:402 info : Entering IDLE state, sending idle frames on combined calling &amp; traffic channel.
Base station on channel 1 ready, please tune transmitter to 463.000 MHz and receiver to 453.000 MHz.
nmt.c:1364 info : RX Level: 181% Quality=68
nmt.c:663 info : Received roaming seizure from subscriber 3,735859
nmt.c:703 info : Sending identity request.
nmt.c:1364 info : RX Level: 182% Quality=82
nmt.c:1364 info : RX Level: 181% Quality=76
nmt.c:725 info : Received identity confirm (password 949).
nmt.c:738 info : Send 'Roaming updating confirmation'.
nmt.c:1364 info : RX Level: 181% Quality=69
nmt.c:421 info : Releasing connection towards mobile station.
nmt.c:1364 info : RX Level: 182% Quality=80
nmt.c:1194 info : Send release.
nmt.c:1364 info : RX Level: 183% Quality=96
nmt.c:1364 info : RX Level: 182% Quality=70
nmt.c:1207 info : Received release guard.
nmt.c:402 info : Entering IDLE state, sending idle frames on combined calling &amp; traffic channel.
nmt.c:1364 info : RX Level: 183% Quality=68
nmt.c:1364 info : RX Level: 184% Quality=79
nmt.c:1364 info : RX Level: 186% Quality=95
</pre>
<p>
The phone searches for the previous traffic area it was registered to.
If it does not find it, it searches for the strongest calling channel.
Because this channel has different traffic area, the phone registers to it sending a channel seizure.
The base station requests identity, so the phone sends its secret password.
The base station accepts the password and send the line signal 'Roaming updating confirmation' and releases the connection.
The phone stores the new traffic area and acknowledges the release request.
</p>
<p>
Level adjustment:
We see a receive level of around 182%.
Tune your receiver to the up-link frequency, so you get loop-back of base station broadcast.
Use the variable resistor (connecting your transmitter) to adjust the volume until the received level matches the same level of your previously received bust.
In my case I adjust the transmitter to match around 182%. (+- 10% is good)
Now, whatever frequency deviation the phone transmits for signaling, so does your base station. Use the other variable resistor (connecting your receiver) to adjust the volume until the level matches about 100%. (+- 10% is good)
Switch back the receiver to up-link frequency and change the traffic area to see the result of your adjustment.
</p>
<p>
Enter a phone number (just a few digits, like "0310") on your phone.
Start dialing and watch the base station receiving the call.
The output looks like this:
</p>
<pre>
nmt.c:682 info : Received call from subscriber 3,735859
nmt.c:758 info : Sending identity request.
nmt.c:1364 info : RX Level: 102% Quality=67
nmt.c:1364 info : RX Level: 104% Quality=97
nmt.c:779 info : Received identity confirm (password 949).
nmt.c:793 info : Send 'Proceed to send'.
nmt.c:1364 info : RX Level: 101% Quality=68
nmt.c:1364 info : RX Level: 103% Quality=70
nmt.c:796 info : Send dial tone.
nmt.c:1364 info : RX Level: 103% Quality=89
nmt.c:1364 info : RX Level: 103% Quality=92
nmt.c:1364 info : RX Level: 102% Quality=67
nmt.c:829 info : Received (odd) digit 0.
nmt.c:1364 info : RX Level: 104% Quality=70
nmt.c:1364 info : RX Level: 103% Quality=89
nmt.c:855 info : Received (even) digit 1.
nmt.c:1364 info : RX Level: 104% Quality=95
nmt.c:1364 info : RX Level: 103% Quality=67
nmt.c:829 info : Received (odd) digit 3.
nmt.c:1364 info : RX Level: 104% Quality=70
nmt.c:1364 info : RX Level: 103% Quality=87
nmt.c:829 info : Received (odd) digit 0.
nmt.c:1364 info : RX Level: 104% Quality=71
nmt.c:861 info : Dialing complete 3735859-&gt;0130, call established.
nmt.c:870 info : Setup call to network.
call.c:629 info : Incoming call from '3735859' to '0130'
nmt.c:899 info : Send 'address complete'.
nmt.c:1364 info : RX Level: 104% Quality=94
nmt.c:1364 info : RX Level: 102% Quality=69
nmt.c:904 info : Send 'compandor in'.
nmt.c:908 info : Connect audio.
</pre>
<p>
The first thing the phone does is to tune to the channel.
It sweeps through all the supported channels.
On the channel it decodes the channel type and selects the channel, if it is a traffic channel type.
Then the phone sends a seizure.
Similar to registration, the base station acknowledges the call after receiving the the identity.
Then the phone dials the number.
The base station then accepts the number, switches the compandor in and through-connects audio path.
</p>
<p>
To make a call to the phone, enter the 7 digits of the phone number.
You know this number already, since you saw it while register to the network or start a call from the phone.
</p>
<pre>
call.c:491 info : Outgoing call to 3735859
nmt.c:1598 info : Call to mobile station, paging station id '3735859'
nmt.c:434 info : Entering paging state (try 1), sending call to '3,735859'.
nmt.c:443 info : Paging on our channel 1.
nmt.c:941 info : Send call to mobile.
nmt.c:1364 info : RX Level: 108% Quality=91
nmt.c:971 info : Received call acknowledgment on channel 1.
nmt.c:995 info : Send channel activation to mobile.
nmt.c:1007 info : Sending identity request.
nmt.c:1364 info : RX Level: 103% Quality=96
nmt.c:1024 info : Received identity (password 949).
call.c:690 info : Call is alerting
nmt.c:1095 info : Send 'ringing order'.
nmt.c:1364 info : RX Level: 101% Quality=68
nmt.c:1364 info : RX Level: 102% Quality=70
nmt.c:1364 info : RX Level: 103% Quality=87
nmt.c:1364 info : RX Level: 103% Quality=95
nmt.c:1364 info : RX Level: 102% Quality=69
nmt.c:1364 info : RX Level: 102% Quality=71
nmt.c:1364 info : RX Level: 103% Quality=85
nmt.c:1095 info : Send 'ringing order'.
nmt.c:1095 info : Send 'ringing order'.
nmt.c:1095 info : Send 'ringing order'.
...
nmt.c:1364 info : RX Level: 102% Quality=73
nmt.c:1129 info : Received 'answer' from phone.
call.c:743 info : Call has been answered by '3735859'
nmt.c:1144 info : Send 'compandor in'.
nmt.c:1364 info : RX Level: 103% Quality=93
nmt.c:1364 info : RX Level: 102% Quality=86
nmt.c:1364 info : RX Level: 101% Quality=68
nmt.c:1149 info : Connect audio.
</pre>
<p>
The base station transmit a paging message on the control channel.
If the station ID matches, the phone will send an acknowledgment.
After requesting identity, the base station orders the phone to ring.
After answering the call, the compander is switched in and the audio is through-connected.
</p>
<pre>
nmt.c:1363 info : RX Level: 102% Quality=68
nmt.c:1389 info : Received clearing by mobile phone in state ACTIVE.
nmt.c:1394 info : Release call towards network.
call.c:788 info : Call has been released with cause=16
nmt.c:1180 info : Send release.
nmt.c:1363 info : RX Level: 103% Quality=68
nmt.c:1363 info : RX Level: 104% Quality=83
nmt.c:402 info : Entering IDLE state, sending idle frames on combined calling &amp; traffic channel.
</pre>
<p>
If the phone hangs up, the base station releases the call towards the network and acknowledge the release towards the phone.
</p>
<pre>
call.c:513 info : Call hangup
nmt.c:1672 info : Call has been released by network, releasing call.
nmt.c:1689 notice : Outgoing release, during active call, releasing!
nmt.c:421 info : Releasing connection towards mobile station.
nmt.c:1194 info : Send release.
nmt.c:1364 info : RX Level: 105% Quality=95
nmt.c:1207 info : Received release guard.
nmt.c:402 info : Entering IDLE state, sending idle frames on combined calling &amp; traffic channel.
</pre>
<p>
If the network hangs up, the base station sends a release towards the phone.
The phone acknowledges the release.
</p>
<p class="toppic">
<a name="sms"></a>
Sending and receiving SMS
</p>
<p>
NMT supports SMS protocol.
It uses the lower DMS layer to transfer data between network and mobile station
If the phone supports SMS, try sending a test SMS to any number.
Be sure to set the SMSC (Short Message Service Center) to '767'.
This software will detect SMS call when the phone dials '767'.
If you cannot define the SMSC on your phone, send an SMS and check what number was dialed, then use '-I <number>' to define SMSC at this software.
Also be sure not to enable encryption for SMS.
The process looks like this:
</p>
<pre>
nmt.c:1363 info : RX Level: 102% Quality=95
nmt.c:682 info : Received call from subscriber 3,735859
nmt.c:758 info : Sending identity request.
nmt.c:1363 info : RX Level: 100% Quality=68
nmt.c:1363 info : RX Level: 102% Quality=96
nmt.c:779 info : Received identity confirm (password 949).
nmt.c:793 info : Send 'Proceed to send'.
nmt.c:1363 info : RX Level: 100% Quality=67
nmt.c:1363 info : RX Level: 101% Quality=70
nmt.c:796 info : Send dial tone.
nmt.c:1363 info : RX Level: 102% Quality=87
nmt.c:1363 info : RX Level: 102% Quality=94
nmt.c:1363 info : RX Level: 100% Quality=67
nmt.c:829 info : Received (odd) digit 7.
nmt.c:1363 info : RX Level: 101% Quality=69
nmt.c:1363 info : RX Level: 100% Quality=87
nmt.c:855 info : Received (even) digit 6.
nmt.c:1363 info : RX Level: 101% Quality=97
nmt.c:1363 info : RX Level: 100% Quality=68
nmt.c:829 info : Received (odd) digit 7.
nmt.c:1363 info : RX Level: 101% Quality=69
nmt.c:1363 info : RX Level: 102% Quality=85
nmt.c:861 info : Dialing complete 3735859-&gt;767, call established.
nmt.c:865 info : Setup call to SMSC.
nmt.c:899 info : Send 'address complete'.
nmt.c:1363 info : RX Level: 102% Quality=95
nmt.c:1363 info : RX Level: 100% Quality=69
nmt.c:904 info : Send 'compandor in'.
nmt.c:908 info : Connect audio.
dms.c:460 info : Starting DMS transfer (mobile originated)
dms.c:481 info : Received valid DMS frame: CT(0) = ID 73 51 0 0 0 0 0 0
dms.c:481 info : Received valid DMS frame: CT(1) = RAND 82 0 40 0 116 0 120 56
dms.c:252 info : Sending DMS frame: CT(0) = RAND 82 64 109 0 3 64 68 56
dms.c:252 info : Sending DMS frame: CT(0) = RAND 82 64 109 0 3 64 68 56
dms.c:567 info : Received valid DMS frame: RR(1) (s = 1)
dms.c:481 info : Received valid DMS frame: DT(2) = 0x00 0x01 0x00 0xa1 0x41 0x10 0x11
dms.c:481 info : Received valid DMS frame: DT(3) = 0x01 0x04 0xa1 0x1a 0xa3 0x00 0x00
dms.c:481 info : Received valid DMS frame: DT(4) = 0x00 0x00 0xff 0x06 0xc8 0x22 0x93
dms.c:481 info : Received valid DMS frame: DT(5) = 0x09 0x0b 0xa1 0x00 0x00 0x00 0x00
sms.c:546 info : Submitting SMS to upper layer
nmt.c:1743 notice : Received SMS from '3735859' to '0130'
SMS received '3735859' -&gt; '0130': HELL0!
sms.c:342 info : Sending Submit Report (ok)
dms.c:252 info : Sending DMS frame: DT(1) = 0x01 0x18 0x53 0x4d 0x53 0x48 0x18
dms.c:252 info : Sending DMS frame: DT(2) = 0x41 0x42 0x43 0x02 0x03 0x01 0x00
dms.c:567 info : Received valid DMS frame: RR(2) (s = 1)
dms.c:252 info : Sending DMS frame: DT(2) = 0x41 0x42 0x43 0x02 0x03 0x01 0x00
dms.c:252 info : Sending DMS frame: DT(2) = 0x41 0x42 0x43 0x02 0x03 0x01 0x00
dms.c:252 info : Sending DMS frame: DT(2) = 0x41 0x42 0x43 0x02 0x03 0x01 0x00
dms.c:252 info : Sending DMS frame: DT(2) = 0x41 0x42 0x43 0x02 0x03 0x01 0x00
dms.c:252 info : Sending DMS frame: DT(2) = 0x41 0x42 0x43 0x02 0x03 0x01 0x00
dms.c:252 info : Sending DMS frame: DT(2) = 0x41 0x42 0x43 0x02 0x03 0x01 0x00
dms.c:252 info : Sending DMS frame: DT(2) = 0x41 0x42 0x43 0x02 0x03 0x01 0x00
dms.c:252 info : Sending DMS frame: DT(2) = 0x41 0x42 0x43 0x02 0x03 0x01 0x00
dms.c:252 info : Sending DMS frame: DT(2) = 0x41 0x42 0x43 0x02 0x03 0x01 0x00
nmt.c:1363 info : RX Level: 103% Quality=81
nmt.c:1389 info : Received clearing by mobile phone in state ACTIVE.
nmt.c:1180 info : Send release.
nmt.c:1363 info : RX Level: 102% Quality=66
nmt.c:1363 info : RX Level: 103% Quality=75
nmt.c:1363 info : RX Level: 104% Quality=92
nmt.c:402 info : Entering IDLE state, sending idle frames on combined calling &amp; traffic channel.
</pre>
<p>
After establishing the call, the SMS is received via DMS frames.
The DMS protocol assembles all chunks of the SMS forwards it to the SMS protocol.
The SMS protocol decodes the SMS and appends it to the file "/tmp/nmt_sms_submit":
</p>
<pre>
# cat /tmp/nmt_sms_submit
3735859,0130,HELL0!
#
</pre>
<p>
To deliver an SMS to the phone, run the base station and write to the socket "/tmp/nmt_sms_deliver":
</p>
<pre>
# echo "1234,3735859,This is a test!" &gt;/tmp/nmt_sms_deliver
#
</pre>
<p>
The process looks like this:
</p>
<pre>
nmt.c:1807 info : SMS for subscriber '3735859'
SMS sending '1234' -&gt; '3735859': 1234,3735859,This is a test!
nmt.c:1597 info : Call to mobile station, paging station id '3735859'
nmt.c:434 info : Entering paging state (try 1), sending call to '3,735859'.
nmt.c:443 info : Paging on our channel 1.
nmt.c:941 info : Send call to mobile.
nmt.c:1363 info : RX Level: 107% Quality=86
nmt.c:971 info : Received call acknowledgment on channel 1.
nmt.c:995 info : Send channel activation to mobile.
nmt.c:1007 info : Sending identity request.
nmt.c:1363 info : RX Level: 102% Quality=94
nmt.c:1024 info : Received identity (password 949).
nmt.c:1363 info : RX Level: 101% Quality=80
nmt.c:1363 info : RX Level: 101% Quality=68
nmt.c:1363 info : RX Level: 101% Quality=76
nmt.c:1363 info : RX Level: 102% Quality=93
nmt.c:1056 info : Send 'autoanswer order'.
nmt.c:1363 info : RX Level: 101% Quality=78
nmt.c:1363 info : RX Level: 101% Quality=69
nmt.c:1363 info : RX Level: 103% Quality=76
nmt.c:1081 info : Received acknowledge to autoanswer.
nmt.c:1363 info : RX Level: 103% Quality=94
nmt.c:1363 info : RX Level: 102% Quality=80
nmt.c:1363 info : RX Level: 101% Quality=66
nmt.c:1148 info : Connect audio.
sms.c:295 info : Delivering SMS from upper layer
dms.c:252 info : Sending DMS frame: CT(0) = ID 73 3 0 0 0 0 0 0
dms.c:252 info : Sending DMS frame: CT(1) = RAND 82 0 93 64 81 0 0 56
dms.c:252 info : Sending DMS frame: CT(0) = ID 73 3 0 0 0 0 0 0
dms.c:252 info : Sending DMS frame: CT(1) = RAND 82 0 93 64 81 0 0 56
dms.c:252 info : Sending DMS frame: CT(0) = ID 73 3 0 0 0 0 0 0
dms.c:252 info : Sending DMS frame: CT(1) = RAND 82 0 93 64 81 0 0 56
dms.c:252 info : Sending DMS frame: CT(0) = ID 73 3 0 0 0 0 0 0
dms.c:252 info : Sending DMS frame: CT(1) = RAND 82 0 93 64 81 0 0 56
dms.c:252 info : Sending DMS frame: CT(0) = ID 73 3 0 0 0 0 0 0
dms.c:252 info : Sending DMS frame: CT(1) = RAND 82 0 93 64 81 0 0 56
dms.c:252 info : Sending DMS frame: CT(0) = ID 73 3 0 0 0 0 0 0
dms.c:252 info : Sending DMS frame: CT(1) = RAND 82 0 93 64 81 0 0 56
dms.c:252 info : Sending DMS frame: CT(0) = ID 73 3 0 0 0 0 0 0
dms.c:567 info : Received valid DMS frame: RR(1) (s = 1)
dms.c:252 info : Sending DMS frame: CT(1) = RAND 82 0 93 64 81 0 0 56
dms.c:481 info : Received valid DMS frame: CT(0) = RAND 82 64 117 0 12 64 92 56
dms.c:567 info : Received valid DMS frame: RR(2) (s = 1)
dms.c:252 info : Sending DMS frame: DT(2) = 0x01 0x18 0x53 0x4d 0x53 0x48 0x18
dms.c:252 info : Sending DMS frame: DT(3) = 0x41 0x42 0x43 0x02 0x01 0x00 0x41
dms.c:252 info : Sending DMS frame: DT(4) = 0x1d 0x04 0x04 0xa1 0x21 0x43 0x00
dms.c:567 info : Received valid DMS frame: RR(3) (s = 1)
dms.c:567 info : Received valid DMS frame: RR(4) (s = 1)
dms.c:252 info : Sending DMS frame: DT(5) = 0x00 0x00 0x61 0x7a 0x42 0x9a 0x23
dms.c:252 info : Sending DMS frame: DT(6) = 0x62 0x48 0x0f 0x54 0x74 0x7a 0x0e
dms.c:567 info : Received valid DMS frame: RR(5) (s = 1)
dms.c:252 info : Sending DMS frame: DT(7) = 0x4a 0xcf 0x41 0x61 0x10 0xbd 0x3c
dms.c:567 info : Received valid DMS frame: RR(6) (s = 1)
dms.c:252 info : Sending DMS frame: DT(0) = 0xa7 0x87 0x00 0x00 0x00 0x00 0x00
dms.c:252 info : Sending DMS frame: DT(1) = 0x00 0x00 0x00 0x00 0x00 0x00 0x00
dms.c:252 info : Sending DMS frame: DT(6) = 0x62 0x48 0x0f 0x54 0x74 0x7a 0x0e
dms.c:252 info : Sending DMS frame: DT(7) = 0x4a 0xcf 0x41 0x61 0x10 0xbd 0x3c
dms.c:252 info : Sending DMS frame: DT(0) = 0xa7 0x87 0x00 0x00 0x00 0x00 0x00
dms.c:567 info : Received valid DMS frame: RR(7) (s = 1)
dms.c:252 info : Sending DMS frame: DT(1) = 0x00 0x00 0x00 0x00 0x00 0x00 0x00
dms.c:252 info : Sending DMS frame: DT(7) = 0x4a 0xcf 0x41 0x61 0x10 0xbd 0x3c
dms.c:252 info : Sending DMS frame: DT(0) = 0xa7 0x87 0x00 0x00 0x00 0x00 0x00
dms.c:252 info : Sending DMS frame: DT(1) = 0x00 0x00 0x00 0x00 0x00 0x00 0x00
dms.c:567 info : Received valid DMS frame: RR(0) (s = 1)
dms.c:252 info : Sending DMS frame: DT(0) = 0xa7 0x87 0x00 0x00 0x00 0x00 0x00
dms.c:567 info : Received valid DMS frame: RR(1) (s = 1)
dms.c:252 info : Sending DMS frame: DT(1) = 0x00 0x00 0x00 0x00 0x00 0x00 0x00
dms.c:567 info : Received valid DMS frame: RR(2) (s = 1)
dms.c:481 info : Received valid DMS frame: DT(1) = 0x02 0x00 0x00 0x00 0x00 0x00 0x00
dms.c:481 info : Received valid DMS frame: DT(2) = 0x00 0x00 0x00 0x00 0x00 0x00 0x00
sms.c:578 info : Received Delivery report: OK
nmt.c:1753 notice : Got SMS deliver report
SMS sent!
nmt.c:1732 notice : Outgoing release, by SMS layer!
nmt.c:421 info : Releasing connection towards mobile station.
nmt.c:1193 info : Send release.
nmt.c:1363 info : RX Level: 103% Quality=69
nmt.c:1206 info : Received release guard.
nmt.c:402 info : Entering IDLE state, sending idle frames on combined calling &amp; traffic channel.
</pre>
<p>
The base station calls the mobile phone.
Instead of ringing, the phone is ordered to answer the call.
If it does not support auto answer, the user must accept the call.
The SMS, which was encoded by the SMS layer, is delivered using DMS frames.
After sending all DMS frames, the call is released toward the mobile station.
</p>
[<a href="index.html">Back to main page</a>]
</td></tr></table></center>

BIN
docs/nmt_freq.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

BIN
docs/nmt_handover.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 602 KiB

BIN
docs/nmt_mo_call.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 474 KiB

BIN
docs/nmt_mod.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

BIN
docs/nmt_mt_call.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 KiB

BIN
docs/nmt_roaming.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 660 KiB

BIN
docs/nmt_routing.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

BIN
docs/nmt_ta.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 KiB

View File

@ -24,11 +24,11 @@ This software uses <a href="http://www.alsa-project.org">Alsa</a> kernel driver
<p>
Use a radio transmitter for 2-meter band to transmit to A-Netz or B-Netz phones.
Use a radio transmitter for 70-cm band to transmit to C-Netz or NMT phones.
An amateur radio can be used, but be sure it is not limited to amateur radio frequencies and channel rasters.
For A-Netz the transmitter must be able to transmit arround 162 MHz.
For B-Netz the transmitter must be able to transmit arround 153 MHz.
For C-Netz the transmitter must be able to transmit arround 465 MHz.
For NMT the transmitter must be able to transmit arround 463 MHz.
An amateur radio can be used, but be sure it is not limited to amateur radio frequencies and channel spacing.
For A-Netz the transmitter must be able to transmit around 162 MHz.
For B-Netz the transmitter must be able to transmit around 153 MHz.
For C-Netz the transmitter must be able to transmit around 465 MHz.
For NMT the transmitter must be able to transmit around 463 MHz.
</p>
<p>
@ -39,8 +39,8 @@ This image shows a two-band amateur radio receiver without limitations for the f
<p>
I built several transmitters out of modified taxi radios.
It features a simple digital PLL (configurable by junpers) and allows to directly connect the audio signal to the oscillator.
This is highly recommended for the C-Netz, because signalling is done by sifting the carrier directly.
It features a simple digital PLL (configurable by jumpers) and allows to directly connect the audio signal to the oscillator.
This is highly recommended for the C-Netz, because signaling is done by sifting the carrier directly.
One unit has a switch to change between A-Netz and B-Netz (2-meter version) and the other units to change between C-Netz and NMT (70-cm version).
I added an input to switch between two channels for the B-Netz.
(Whenever a B-Netz phone is paged, the channel must be temporarily switched to the paging channel.)
@ -51,13 +51,13 @@ I added an input to switch between two channels for the B-Netz.
<p>
Use radio receiver for 2-meter band to receive from A-Netz or B-Netz phones.
Use radio receiver for 70-cm band to receive from C-Netz or NMT phones.
The transmitter cannot be re-usedr, because all networks are full duplex.
A seperate radio is required to simultaniously transmit and receive.
For A-Netz the receiver must be able to receive arround 162 MHz and 157 MHz.
For B-Netz the receiver must be able to receive arround 153 MHz and 148 MHz.
For C-Netz the receiver must be able to receive arround 465 MHz and 455 MHz.
For NMT the receiver must be able to receive arround 463 MHz and 453 MHz.
The receiver must support both uplink and downlink frequencies, to make a test loop for the calibration process.
The transmitter cannot be re-used, because all networks are full duplex.
A separate radio is required to simultaneously transmit and receive.
For A-Netz the receiver must be able to receive around 162 MHz and 157 MHz.
For B-Netz the receiver must be able to receive around 153 MHz and 148 MHz.
For C-Netz the receiver must be able to receive around 465 MHz and 455 MHz.
For NMT the receiver must be able to receive around 463 MHz and 453 MHz.
The receiver must support both up-link and down-link frequencies, to make a test loop for the calibration process.
</p>
<p>
@ -71,7 +71,7 @@ This image shows a two-band amateur radio receiver that supports all the frequen
The best solution I could find for low price is the Uniden UBC360CLT.
It is actually some kind of clock radio with scanner.
It supports all relevant bands up to about 950 MHz.
In all bands the channel raster is freely selectable.
In all bands the channel spacing is freely selectable.
Up to 300 channels can be stored and simply selected by using up/down keys.
</p>
@ -79,14 +79,14 @@ Up to 300 channels can be stored and simply selected by using up/down keys.
<p>
I added a discriminator output to the radio, to get undistorted receive signal.
This is highly recommended for the C-Netz, because signalling is done by sifting the carrier directly.
This is highly recommended for the C-Netz, because signaling is done by sifting the carrier directly.
</p>
<center><img src="discriminator.jpg"/></center>
<p>
In order to keep RF emission low, use a dummy load for lab test.
Use two seperated antennas for outside use of the mobile phone.
Use two separated antennas for outside use of the mobile phone.
Connect one dummy load to the transmitter and another one to the mobile phone's antenna connector.
</p>
@ -99,11 +99,11 @@ My phone did not work correctly with a 5 Ampere 12 Volts regulated power supply.
I suggest to use an amateur radio power supply with low ripple.
In my case I use modified ATX-2 power supply for 12 or 13.8 Volts.
The voltage can be adjusted in most power supplies, but 12 Volts is good enough.
These power supplies have built-in overcurrent/overvoltage protection.
These power supplies have built-in over-current/over-voltage protection.
The ATX-2 power supplies are regulated on the 12 Volts rail.
I added two plugs and a switch.
The switch connects to the PS-On line.
In case of an overcurrent, the switch can be used to reset the protection circuit.
In case of an over-current, the switch can be used to reset the protection circuit.
Note that opening a switching power supply can be dangerous and may cause death.
If you don't have the knowledge about power supplies, ask an expert to help you.
</p>
@ -111,18 +111,18 @@ If you don't have the knowledge about power supplies, ask an expert to help you.
<center><img src="power.jpg"/></center>
<p>
Early tests were done without any wireing between radios and sound adapter.
Early tests were done without any wiring between radios and sound adapter.
This may worked for early tests with the B-Netz, but turned out to be a pain in the as.
It is not possible to keep the levels and avoid feedbacks.
It is not possible to keep the levels and avoid feed-backs.
</p>
<center><img src="headphone.jpg"/><img src="microphone.jpg"/></center>
<p>
The sound adapter must be connected to a transmitter and a receiver.
Coils are suggested for galvanic seperation.
Coils are suggested for galvanic separation.
I don't use coils, instead I add extra grounding wire between earth (power supply) and sound interface.
For adjustemnt I highly recommend to use variable resistors.
For adjustmnt I highly recommend to use variable resistors.
This makes the adjustment process faster.
I use 4.7 K resistor for connecting headphone output to radio input.
I use 10 K resistor for connecting radio output (discriminator) to microphone input.

View File

@ -77,7 +77,7 @@ To adjust input and output levels of your sound card, run 'alsamixer'.
<p>
To avoid echo of audio input (mic), mute the input (select item and press 'm').
We want to capture microphone, but not echo it back to the audio output.
Also we want audio on line/headset output and capture from microphone imput.
Also we want audio on line/headset output and capture from microphone input.
Do not use input gain on the microphone.
</p>
@ -97,19 +97,19 @@ To call phone, switch transmitter (using pilot signal) to 153.370 MHz.
</pre>
<p>
Tune your transmitter AND reciever to 153.010 MHz.
Tune your transmitter AND receiver to 153.010 MHz.
Press the PTT button on you transmitter and talk into it.
Check if you hear your voice at a normal level from the receiver.
Then connect the audio output (headphone) of your sound adapter to your transmitter, by using a variable resistor.
You should hear now the whistle sound clearly on the receiver, once you turn up the variable resistor.
Adjust the audio output so that the tone is not overdriven, but the volume similar to your voice when you talked into the transmitter.
Adjust the audio output so that the tone is not over-driven, but the volume similar to your voice when you talked into the transmitter.
The sound must be clear without any background noise or distortion.
</p>
<p>
Now connect the audio input (microphone) to your receiver, by using a variable resistor.
Enable the transmitter. (PTT button)
You should now see the signal beeing decoded by the base station:
You should now see the signal being decoded by the base station:
</p>
<pre>
@ -126,12 +126,12 @@ bnetz.c:478 notice : Round trip delay is 0.054 seconds
</pre>
<p>
Adjust the input level so that the received signal level is arround 100%.
If the input level cannot be ajusted up to 100%, leave it as it is.
Adjust the input level so that the received signal level is around 100%.
If the input level cannot be adjusted up to 100%, leave it as it is.
There is an option later in this manual to add RX gain.
The quality should be 90% or better.
Now you have connected the base station to your radio eqipment and roughly adjusted the levels.
For finetuning, refer to each network description.
Now you have connected the base station to your radio equipment and roughly adjusted the levels.
For fine-tuning, refer to each network description.
</p>
<p>
@ -217,7 +217,7 @@ In my experiments it helps to amplify the amplitude by factor two in order adjus
A gain of 6 dB will amplify the amplitude by factor two.
Also the noise of the sound adapter will be amplified by factor two, but this is not relevant at 16 bit resolution.
Use the command line option '-G 6' or '--rx-gain 6'.
In this example I use both, transmitter and receiver without emphasis and add extra 6 dB gain to the input from the receiver:
In this example I use both, transmitter and receiver without emphasis (so software must do it) and add extra 6 dB gain to the input from the receiver:
</p>
<pre>
@ -227,15 +227,15 @@ In this example I use both, transmitter and receiver without emphasis and add ex
</pre>
<p class="toppic">
Loopback Test
Loop-back Test
</p>
<p>
As used before, the loopback test can be used to verify the signal process, such as level, delay and quality.
As used before, the loop-back test can be used to verify the signal process, such as level, delay and quality.
</p>
<p>
If command line option '-L 1' or '--loopback 1' is given, a loopback inside the software is performed.
If command line option '-L 1' or '--loopback 1' is given, a loop-back inside the software is performed.
Also the audio signal is sent to the audio adapter, but not received from it.
This test is used to debug the software.
It can be used to see what the output of an external loop would look like.
@ -266,7 +266,7 @@ bnetz.c:528 notice : Round trip delay is 0.001 seconds
</pre>
<p>
If command line option '-L 2' or '--loopback 2' is given, an external loopback is performed.
If command line option '-L 2' or '--loopback 2' is given, an external loop-back is performed.
The receiver needs to be tuned to transmitter, so the software receives its own signal.
The received quality level is relevant. It should be not less than 90 for B-Netz.
</p>

View File

@ -57,6 +57,12 @@ pre.list {
background-color: #ffffff;
}
pre.doc {
font-size: 16px;
color: #000000;
background-color: #ffffff;
}
table {
width: 816px;
border-spacing: 0px;
@ -65,6 +71,17 @@ td {
padding: 0px;
}
table.nmt {
width: 400px;
border-spacing: 0px;
border:4px solid black;
border-collapse:collapse;
}
td.nmt {
padding: 3px;
border:4px solid black
}
li {
font-size: 20;
color: #000000;