User Tools

Site Tools


packet:ninotnc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
packet:ninotnc [2024/10/15 16:17] – [Cheat sheet] m0ltepacket:ninotnc [2025/10/27 14:19] (current) – [Operating modes] m0gzp
Line 21: Line 21:
 ===== UK Stock ===== ===== UK Stock =====
  
-By agreement, Tom M0LTE holds stock of PCB + microcontroller only kits in the UK. These are available with circa 2 day shipping from [[https://ko-fi.com/s/981d919ea3|https://ko-fi.com/s/981d919ea3]]. Two sets of components from Mouser takes you over their free shipping threshold.+By agreement, Tom M0LTE sometimes holds stock of PCB + microcontroller only kits in the UK. These are available from [[https://ko-fi.com/s/981d919ea3|https://ko-fi.com/s/981d919ea3]]. Two sets of components from Mouser takes you over their free shipping threshold.
  
 ===== Operating modes ===== ===== Operating modes =====
Line 27: Line 27:
 Current modes as of firmware release 3.40 / 4.40 / v40 (all refer to the same version) Current modes as of firmware release 3.40 / 4.40 / v40 (all refer to the same version)
  
-^# ^ Mode ^ Baud  ^ bps   ^ Mod  ^ Proto ^ Usage  ^ BW     ^ Typical use                                                                                ^ +^# ^ Mode ^QtSM Mode ^ Baud  ^ bps   ^ Mod  ^ Proto ^ Usage  ^ BW     ^ Typical use                                                                                ^ 
-|1 | 0001 | 19200 | 19200 | 4FSK | IL2Pc | FM     | 25k    | High SNR links between dedicated data radios. v41 firmware required in practice.           | +|1 | 0001 | ? |19200 | 19200 | 4FSK | IL2Pc | FM     | 25k    | High SNR links between dedicated data radios. v41 firmware required in practice.           | 
-|3 | 0011 | 9600  | 9600  | 4FSK | IL2Pc | FM     | 12.5k  | High SNR links between dedicated data radios. Suitable for UK 2m band.                     | +|3 | 0011 | ? | 9600  | 9600  | 4FSK | IL2Pc | FM     | 12.5k  | High SNR links between dedicated data radios. Suitable for UK 2m band.                     | 
-|2 | 0010 | 9600  | 9600  | GFSK | IL2Pc | FM     | 25k    | Current recommended mode for new 70cm (25kHz) links where both ends are compatible         | +|2 | 0010 | ? | 9600  | 9600  | GFSK | IL2Pc | FM     | 25k    | Current recommended mode for new 70cm (25kHz) links where both ends are compatible         | 
-|5 | 0101 | 3600  | 3600  | QPSK | IL2Pc | FM     | 12.5k  | For situations where only a speaker/mic connection is available but > 1200 baud is desired | +|5 | 0101 | ? | 3600  | 3600  | QPSK | IL2Pc | FM     | 12.5k  | For situations where only a speaker/mic connection is available but > 1200 baud is desired | 
-|11| 1011 | 1200  | 2400  | QPSK | IL2Pc | SSB/FM | 2.4kHz | HF - quadrature version of 1200 BPSK, twice the throughput for +3dB SNR.                   | +|11| 1011 | QPSK v26a | 1200  | 2400  | QPSK | IL2Pc | SSB/FM | 2.4kHz | HF - quadrature version of 1200 BPSK, twice the throughput for +3dB SNR.                   | 
-|10| 1010 | 1200  | 1200  | BPSK | IL2Pc | SSB/FM | 2.4kHz | HF - use for circuits where wider transmission is acceptable.                              | +|10| 1010 | ? | 1200  | 1200  | BPSK | IL2Pc | SSB/FM | 2.4kHz | HF - use for circuits where wider transmission is acceptable.                              | 
-|9 | 1001 | 300   | 600   | QPSK | IL2Pc | SSB    | 500Hz  | HF - quadrature version of 300 BPSK, twice the throughput for +3dB SNR                     | +|9 | 1001 | ? | 300   | 600   | QPSK | IL2Pc | SSB    | 500Hz  | HF - quadrature version of 300 BPSK, twice the throughput for +3dB SNR                     | 
-|8 | 1000 | 300   | 300   | BPSK | IL2Pc | SSB    | 500Hz  | HF - slowest but best performing mode. ~7dB better than classic 300 baud FSK AX.25         | +|8 | 1000 | BPSK AX.25 300bd | 300   | 300   | BPSK | IL2Pc | SSB    | 500Hz  | HF - slowest but best performing mode. ~7dB better than classic 300 baud FSK AX.25         | 
-|14| 1110 | 300   | 300   | AFSK | IL2Pc | SSB    | 500Hz  | CRC improvement of IL2P 300 baud AX.25. Recommended if you can't do BPSK / QPSK on HF.     | +|14| 1110 | AFSK AX.25 300bd | 300   | 300   | AFSK | IL2Pc | SSB    | 500Hz  | CRC improvement of IL2P 300 baud AX.25. Recommended if you can't do BPSK / QPSK on HF.     | 
-|- | 1111 | n/a   | n/a   | n/a  | n/a   | n/a    | n/a    | Allows the mode to be set by a SETHW KISS command (v41+).                                  |+|- | 1111 | ? | n/a   | n/a   | n/a  | n/a   | n/a    | n/a    | Allows the mode to be set by a SETHW KISS command (v41+).                                  |
  
 IL2Pc is shorthand for IL2P plus CRC. IL2Pc is shorthand for IL2P plus CRC.
 +
 +**QtSM NOTE: For IL2P and CRC modes, these need to be enabled per modem in the Settings/Modems menu**
 +
  
 Superseded (but still supported) modes: Superseded (but still supported) modes:
Line 57: Line 60:
  
 Baud is symbols per second, bps is bits per second. Where baud=bps, that means each symbol carries 1 bit (i.e. a symbol can have two states, 0 or 1). Where baud is 2x bps, that means each symbol carries 2 bits (i.e. a symbol can have four states: 00, 01, 10, 11). Baud is symbols per second, bps is bits per second. Where baud=bps, that means each symbol carries 1 bit (i.e. a symbol can have two states, 0 or 1). Where baud is 2x bps, that means each symbol carries 2 bits (i.e. a symbol can have four states: 00, 01, 10, 11).
 +
 +** Decoding Operating Modes from BrdSwchMod **
 +
 +When the test button is pressed on the TNC, along with the frame it emits to the radio, it will emit a different frame to the KISS client that is connected.  The BrdSwchMod value in the test frame can be decoded to share information about the TNC:
 +
 +  * the first two digits the board version (a decimal number, e.g. 04)
 +  * the next two are the physical MODE switch setting (encoded as binary, for example 06 is 0110)
 +  * the last four are the operating mode
 +
 +For example, for a value of ''BrdSwchMod:040F0023'' as used on the HF interface of GB7WEM, we can see:
 +
 +  * Board Revision 04
 +  * MODE switch setting 1111 (set by SETHW hardware command)
 +  * Current Operating Mode 0x23 (MODE_300_AFSKPLL_IL2P_CRC)
 +
 +The Operating Mode values are **internal** and **may change with firmware version**, so you can use the following table to map the operating mode values **for Version .44 of the Firmware** (current at time of writing):
 +
 +^ Switch Mode ^ BrdSwchMod Value ^ Mode Name                 ^
 +| 0 (0000)    | 0x00             | MODE_9600_GFSK_AX25       |
 +| 1 (0001)    | 0x41             | MODE_19200_4FSK           |
 +| 2 (0010)    | 0xB0             | MODE_9600_GFSK_IL2P_CRC   |
 +| 3 (0011)    | 0x40             | MODE_9600_4FSK            |
 +| 4 (0100)    | 0xA3             | MODE_4800_GFSK_IL2P_CRC   |
 +| 5 (0101)    | 0xF1             | MODE_3600_QPSK_IL2P_CRC   |
 +| 6 (0110)    | 0x02             | MODE_1200_AFSK_AX25       |
 +| 7 (0111)    | 0x93             | MODE_1200_AFSK_IL2P_CRC   |
 +| 8 (1000)    | 0x91             | MODE_300_BPSK_IL2P_CRC    |
 +| 9 (1001)    | 0x92             | MODE_600_QPSK_IL2P_CRC    |
 +| 10 (1010)   | 0xA0             | MODE_1200_BPSK_IL2P_CRC   |
 +| 11 (1011)   | 0xA2             | MODE_2400_QPSK_IL2P_CRC   |
 +| 12 (1100)   | 0x31             | MODE_300_AFSK_AX25        |
 +| 13 (1101)   | 0x22             | MODE_300_AFSKPLL_IL2P     |
 +| 14 (1110)   | 0x23             | MODE_300_AFSKPLL_IL2P_CRC |
 +| 15 (1111)   | 0xF3             | MODE_SET_FROM_KISS        |
 ===== Signals settings ===== ===== Signals settings =====
  
Line 219: Line 256:
 [[https://www.printables.com/model/562738-nino-tnc-a4-case|LEDs in a line]] - modified by Jeremy M0JXW [[https://www.printables.com/model/562738-nino-tnc-a4-case|LEDs in a line]] - modified by Jeremy M0JXW
  
 +[[packet:ninotnc-ka2dew-case|KA2DEW case]]
 ===== SLOTTIME and PERSIST ===== ===== SLOTTIME and PERSIST =====
  
Line 272: Line 310:
 0110, 0111: 1248 Hz tone for 3.0kHz deviation \\ 0110, 0111: 1248 Hz tone for 3.0kHz deviation \\
 0101:       2079 Hz tone for 5.0kHz deviation \\ 0101:       2079 Hz tone for 5.0kHz deviation \\
 +C4FSK 9600 - 1039Hz for 2.5kHz outer deviation \\
 +C4FSK 19200 - 2079Hz for 5.0kHz outer deviation \\
 +
 +==== Frequency misalignment ====
 +
 +TL;DR: +/- 4kHz is absolute maximum misalignment for narrow channel, that will still be decoded
 +
 +Tested using a 25kHz Tait TM8105, programmed with a 12.5kHz channel, using a 4k8 GFSK signal with 1.2kHz deviation, and tested with a signal generator. The receive performance was fairly consistent with frequency misalignment up to +-4kHz. At that limit, the Tait's RSSI pin was indicating 3dB less signal strength than when the frequency was perfectly aligned. At +- 5kHz misalignment, receive performance disappeared. All packets lost.
 +
 +Narrowband Kenwood TK-760, nearly the same as the Tait. Also tried a FTM-3100 set to narrow. Similar, but less accurate and wider. It worked +4kHz to -6kHz, suggesting a couple kHz oscillator misalignment.
  
 ===== Misc Linux Notes ===== ===== Misc Linux Notes =====
Line 287: Line 335:
  
 ''git clone https://github.com/g5dsg/2221aTool.git'' ''git clone https://github.com/g5dsg/2221aTool.git''
 +
 +''sudo pip3 install Click''
 +
 +''sudo pip3 install pyusb''
  
 ''sudo python3 ./2221aTool.py enum-serial 1'' ''sudo python3 ./2221aTool.py enum-serial 1''
Line 317: Line 369:
  
 The KISS MODE setting is written to flash memory. To prevent an immediate flash memory write, add 16 to the mode number in the KISS SETHW command - for example, the value 14 would become 30. The KISS MODE setting is written to flash memory. To prevent an immediate flash memory write, add 16 to the mode number in the KISS SETHW command - for example, the value 14 would become 30.
 +
 +**BPQ**
  
 BPQ supports this via the ''KISS'' command. For this command to work, you must set the mode DIP switches to 1-1-1-1 (or //on-on-on-on//), and be in SYSOP mode. To enter SYSOP mode, type ''password'' at the prompt. The prompt will respond with ''OK''. At this point, enter the command below: BPQ supports this via the ''KISS'' command. For this command to work, you must set the mode DIP switches to 1-1-1-1 (or //on-on-on-on//), and be in SYSOP mode. To enter SYSOP mode, type ''password'' at the prompt. The prompt will respond with ''OK''. At this point, enter the command below:
Line 326: Line 380:
 * Remembering to add 16 to the value if you don't want the setting written to memory. * Remembering to add 16 to the value if you don't want the setting written to memory.
  
 +**BPQ Examples**
 +
 +kiss n is the port number - port 3 in these examples
 +
 +the 6 is always constant
 +
 +^ Set port n to mode         ^ temporary       ^ persistent      ^
 +| FSK300 IL2Pc (40m slot 1)  | ''kiss 3 6 30'' | ''kiss 3 6 14'' |
 +| BPSK300 IL2Pc (40m slot 3) | ''kiss 3 6 24'' | ''kiss 3 6 8'' 
 +| QPSK600 IL2Pc              | ''kiss 3 6 25'' | ''kiss 3 6 9'' 
 +
 +**Linux Kernel**
 +
 +When configuring the linux kernel you can add the value required to the ''kissparms'' command in your startup script. For this command to work, you must set the mode DIP switches to 1-1-1-1 (or //on-on-on-on//).  You would then modify the command to include the ''-h'' parameter with whatever value you require:
 +<code>
 +kissparms -p <port> -h <value as determined above*> <any other needed parameters> 
 +</code>
 +
 +* Remembering to add 16 to the value if you don't want the setting written to memory.
 +
 +**Linux Kernel Examples**
 +
 +^ Set port n to mode         ^ temporary*       ^ persistent      ^
 +| FSK300 IL2Pc (40m slot 1)  | ''kissparms -p HF -h 30'' | ''kissparms -p HF -h 14'' |
 +| BPSK300 IL2Pc (40m slot 3) | ''kissparms -p HF -h 24'' | ''kissparms -p HF -h 8'' 
 +| QPSK600 IL2Pc              | ''kissparms -p HF -h 25'' | ''kissparms -p HF -h 9'' 
 +
 +* Note - for a startup script you should always use the temporary value rather than writing to memory each time
 === GPIO === === GPIO ===
 With Raspberry Pi GPIO, put /usr/bin in the crontab path, and add the following to /etc/crontab: With Raspberry Pi GPIO, put /usr/bin in the crontab path, and add the following to /etc/crontab:
Line 380: Line 462:
  
 ===== Firmware ===== ===== Firmware =====
 +
 +To check your firmware version, press the test (red) button on TNC and observe the decoded packet.
 +
 +<code>
 +=FirmwareVr:3.41=SerialNmbr:=UptimeMilS:0196CC43=BrdSwchMod:040F0002=AX25RxPkts:000008E5=IL2PRxPkts:
 +00000000=IL2PRxUnCr:00000000=TxPktCount:000008F6=PreamblCnt:0000000B=LoopCycles:0C0281E9=LostADCSmp:00000000
 +</code>
  
 To upgrade the firmware, see https://github.com/ninocarrillo/flashtnc/blob/master/README.md. To upgrade the firmware, see https://github.com/ninocarrillo/flashtnc/blob/master/README.md.
Line 408: Line 497:
  
 Available from [[https://tarpn.net/t/nino-tnc/n9600a/n9600a4/n9600a4-assembly.html|tarpn.net]], mirror {{ :packet:2020-11-21-ninotnc-n9600a4r2-sch.pdf | here }} Available from [[https://tarpn.net/t/nino-tnc/n9600a/n9600a4/n9600a4-assembly.html|tarpn.net]], mirror {{ :packet:2020-11-21-ninotnc-n9600a4r2-sch.pdf | here }}
 +
 +===== Flashing CRC =====
 +
 +If your CRC light is flashing, you are driving the modem's RXA pin with too much audio, which is clipping. This is normally harmless but if you want to reduce it:
 +
 +{{:radios:tait-volume.jpeg?400|}}
packet/ninotnc.1729009028.txt.gz · Last modified: by m0lte