SG90 Radio MDB Definitions

This page has the MDB definitions for the radio.

MDB Variables

INDEX mdb Variable Name Description Affects RF Board Status (Get) Only Requires Reset
2 bitrateLo Radio Data Rate in units of bits per second. The value is a 32 bit value with the upper portion in BITRATEHI and the lower portion in BITRATELO.      
3 bitrateHi See BITRATELO description above.      
4 centerFreqLo The Radio Center Frequency in units of Hz stored as a 32 bit number. CENTERFREQHI is the most significant portion of the number Y    
5 centerFreqHi The Radio Center Frequency least significant portion. Y    
14 fecMode Forward Error Correction (FEC) mode. See FEC Mode below.      
15 txPower Radio Transmit Power Level in tenths of a dB (17.0 to 32.0 dBm). See Transmit Power Control below. Y    
22 rssi The Received Signal Strength Indication in dB. In the downlink, this is from the last packet received. In the uplink, this is from the last Block Sync word received.   Y  
23 ber Bit Error Rate estimate in parts per million. Not currently implemented.   Y  
24 temp Internal temperature measurement in degrees centigrade   Y  
25 alarm Alarm status variable. See Alarm Status   Y  
27 ipAddressLo Lower 16 bits of Static IP address for the Ethernet Port. The IP address is stored in network order. See IP Addresses.      
28 ipAddressHi Upper 16 bits of Static IP address for Ethernet Port.      
29 netMaskLo Lower 16 bits of the netmask. See IP Addresses.      
30 netMaskHi Upper 16 bits of the netmask.      
31 gatewayLo Lower 16 bits of the gateway address. IP Addresses.      
32 gatewayHi Upper 16 bits of the gateway address.      
37 fskDeviation FSK Deviation as a percentage of symbol rate.      
38 broadcastAddrLo Lower 16 bits of IP Broadcast address. See IP Addresses      
39 broadcastAddrHi Upper 16 bits of IP Broadcast address.      
40 serverAddrLo Lower 16 bits of IP Server address. IP Addresses      
41 serverAddrHi Upper 16 bits of IP Server address.      
42 flashUpdate Setting any value to this variable causes the radio to attempt a code update via tftp to the server address above. The processor attempts to download a main.bin from the server.      
43 xilinxUpdate Setting any value to this variable causes the radio to attempt a xilinx code update via tftp to the server address above. The processor attempts to download a fpga.bin file from the server.      
44 restartNetwork Setting any value to this variable causes a network restart. This can be used to force the radio to start using changes to the network settings above.      
45 rfStatus contains the status bits from the RF Board.      
46 ethAddressLo Reports the Ethernet address. See Ethernet Address   Y  
47 ethAddressMid Reports the Ethernet address. See Ethernet Address   Y  
48 ethAddressHi Reports the Ethernet address. See Ethernet Address   Y  
50 tempLoThreshold Temperature Fault Low Threshold in degrees C.      
51 tempHiThreshold Temperature Fault Hi Threshold in degress C.      
52 presetConfigs Preset Configurations for the radio including bit rates and filters. See Preset Configurations      
53 resetBoard Reset the board      
54 rfSerialNumber RF Board Serial Number   Y  
55 rfType RF Board Type (Band of Operation). See Rf Type   Y  
56 dbSerialNumber Digital Board Serial Number   Y  
57 dbCpuVersion CPU Firmware Version Number   Y  
58 fpgaVersion FPGA Version Number   Y  
59 rfMcuVersion RF Board MCU Firmware Version   Y  
60 radioSerialNumber Overall Product Serial Number   Y  
63 radioIpAddressLo Radio Ethernet Interface Lower 16 bits of Static IP address for the Ethernet Port. The IP address is stored in network order. See IP Addresses.      
64 radioIpAddressHi Radio Ethernet Interface Upper 16 bits of Static IP address for Ethernet Port.      
65 radioNetMaskLo Radio Ethernet Interface Lower 16 bits of the netmask. See IP Addresses.      
66 radioNetMaskHi Radio Ethernet Interface Upper 16 bits of the netmask.      
67 radioGatewayLo Radio Ethernet Interface Lower 16 bits of the gateway address. IP Addresses.      
68 radioGatewayHi Radio Ethernet Interface Upper 16 bits of the gateway address.      
69 radioBroadcastAddrLo Radio Ethernet Interface Lower 16 bits of IP Broadcast address. See IP Addresses      
70 radioBroadcastAddrHi Radio Ethernet Interface Upper 16 bits of IP Broadcast address.      
90 modbusSlaveID modbus Slave ID for the radio itself      
93 restartCount Number of restarts for this radio. This variable can be written so that it can be set to 0 if desired.      
105 debugLevel Debug level or mask      
111 dbType Digital Board Type. See Digital Board Types      
112 dbCpuAppsVersion Digital Board CPU Apps tree version      
131 ntpServerAddrLo Network Time Protocol (NTP) Server Lower 16 bits of the address. See IP Addresses.      
132 ntpServerAddrHi Network Time Protocol (NTP) Server Upper 16 bits of the address.      

Preset Configurations

For AWR operation as an SG90 Uplink Transmitter, set the following using the Maintenance tab of the EMS tool:
  1. Set presetConfigs (52) to 11
  2. Set presetConfigs (52) to 0
  3. Set bitrate (2/3) to the desired SG90 bitrate
  4. Set fecMode (14) to 10 (for no FEC) or 13 (for R1/2 FEC)
  5. Set nodeType (18) to 1
  6. Go to the SW/HW tab and click on the Reset Radio button.
HINT: It is often useful to have a background ping running to the radio so you can see when it resets and when it returns.

For AWR operation as an SG90 Uplink Receiver, set the following using the Maintenance tab of the EMS tool:
  1. Set presetConfigs (52) to 12
  2. Set presetConfigs (52) to 0
  3. Set bitrate (2/3) to the desired SG90 bitrate
  4. Set fecMode (14) to 10 (for no FEC) or 13 (for R1/2 FEC)
  5. Set nodeType (18) to 1
  6. Go to the SW/HW tab and click on the Reset Radio button.

For ATR operation as an SG90 Downlink Transmitter or Receiver without FEC, set the following using the Maintenance tab of the EMS tool:
  1. Set presetConfigs (52) to 2
  2. Set presetConfigs (52) to 0
  3. Set nodeType (18) to 1
  4. Go to the SW/HW tab and click on the Reset Radio button.

For ATR operation as an SG90 Downlink Transmitter with R1/2 FEC, set the following using the Maintenance tab of the EMS tool:
  1. Set presetConfigs (52) to 3
  2. Set presetConfigs (52) to 0
  3. Set nodeType (18) to 1
  4. Go to the SW/HW tab and click on the Reset Radio button.

Value Description
0 Operational Startup
1 T200 Emulation
2 SG90 Downlink
3 SG90 Downlink w/FEC
4 Unused
5 Unused
6 Unused
7 CW Test Mode
8 Unused
9 2FSK Test Mode
10 Test Mode Startup
11 SG90 Uplink Transmitter
12 SG90 Uplink Receiver

Alarm Status

The alarm status bits are defined as
Bit Description
0 VSWR Fault
1 PA Output Fault
2 Synthesizer Fault
3 RSSI Fault
4 Temperature Fault
5 Configuration Fault

Ethernet Address

The Ethernet address is reported in three consecutive mdb variables that are get only. It is reported as an array of bytes where the first byte of the Ethernet address is the first byte of the array and the first byte of the array is returned as the LSB of the ethAddressLo mdb variable. So for example, an Ethernet address of 00:24:4a:01:02:03 gets reported as:
ethAddressLo 0x2400
ethAddressMid 0x014a
ethAddressHi 0x0302

IP Addresses

IP addresses are stored in byte reversed order. Thus an IP address of 10.20.30.40 would be stored as 0x281e140a. This 32 bit unsigned integer is then stored in two mdb variables with the low portion holding the 0x140a or "10.20" piece and the hi portion holding 0x281e or "30.40" piece.

RF Type

The rfType field describes the band of operation.
Type Band
15 145 - 225 MHz
16 210 - 320 MHz
24 210 - 320 MHz
25 137.5 - 225 MHz
28 450 - 698 MHz
29 225 - 380 MHz

Digital Board Types

Value Type
0 ADR - out of production
1 ATRV1
2 AMRV1
3 AWRV1
7 ATRV2
8 AMRV2
11 AWR_SG90

Left Justified Unsigned Fractions

Left Justified Unsigned Fractions are given as the fraction of a full scale 16 bit number. It is defined by multiplying the desired fraction by 65536. For example a fraction of 0.25 is given by 0.25*65536=16384.

FEC Mode

Value Mode
10 SG90 No FEC
11 SG90 R7/8
12 SG90 R3/4
13 SG90 R1/2

Transmit Power

  • Bits 8-0: Transmit Power Level - This sets the transmit power level. It is an unsigned integer in units of tenths of a dBm. For instance, to set the radio for 2 Watts (33 dBm) of transmit power, one would load this variable with 330. The valid range for AxR radios is 10 to 36 dBm.

MDB Variables for radio statistics

The radio statistics are available as status (read-only) variables beginning at index 256. The statics are all in the form of 32 bit counters with the low portion stored at even indices and the high portion stored at odd indices. A read to any index in this statistics range causes all the counts to be reset so it is best to do a multi-register read beginning at 256 with a count of 48 to get all of them. The following table lists the counters.

MDB Indices Name Description SG90 Uplink?
256-257 tx_good successful packet transmitted of any type  
258-259 tx_control_packet control packets transmitted (used for controlling access to the channel)  
260-261 tx_raw_packet raw packets transmitted (non-Ethernet)  
262-263 tx_eth_packet Ethernet packets transmitted  
264-265 tx_count count of all attempted transmit packets  
266-267 tx_complete successful packet transmitted of any type (currently identical to tx_good)  
268-269 tx_dropped transmit packet dropped for any reason  
270-271 rx_good packets received without error of any type Y
272-273 rx_control_packet Preamble Frames received Y
274-275 rx_raw_packet Streaming frames received Y
276-277 rx_eth_packet TCPIP or UDPIP frames received Y
278-279 rx_los_count the number of times the radio has experienced a loss of sync Y
280-281 rx_crc_errors not currently used  
282-283 rx_dropped received packet dropped for any reason Y
284-285 rx_resource_errors no memory available to store received packet Y
286-287 rx_overrun_errors not currently used  
288-289 rx_short_frames Management (DMF or LMF) frames received Y
290-291 rx_too_long_frames An illegal frame length was received Y
292-293 rx_symbol_errors not currently used  
294-295 interrupts counts all interrupts for transmit or receive Y
296-297 rx_count counts all packets received before error processing is done  
298-299 rx_deliver counts all packets delivered to any upper layer Y
300-301 rx_resource not currently used  
302-303 rx_restart not currently used  

Software Upgrades

Download the software images to your computer from the attachments below. If you are upgrading both the CPU and FPGA images, upgrade the CPU image first. Set up a continuous ping of the radio you are upgrading so you can easily tell when the radio resets following the upgrade.

To upgrade the CPU code using the EMS tool:
  1. Start the ping.
  2. Go to the SW/HW tab.
  3. Choose the "Using EMS" update method.
  4. Select the "CPU" component
  5. Browse to where you stored the CPU software image on your computer and select the image.
  6. Click on the Start button.
  7. Observe the download progress in the lower left corner of the EMS tool
  8. After the download is complete, the radio will flash the image and reset. Use the ping to tell when the unit resets.
  9. Press the Get button and check the CPU and Apps version numbers to make sure the upgrade was successful.
To upgrade the FPGA code using the EMS tool:
  1. Start the ping.
  2. Go to the SW/HW tab.
  3. Choose the "Using EMS" update method.
  4. Select the "FPGA" component
  5. Browse to where you stored the FPGA software image on your computer and select the image.
  6. Click on the Start button.
  7. Observe the download progress in the lower left corner of the EMS tool
  8. After the download is complete, the radio will flash the image and reset. Use the ping to tell when the unit resets.
  9. Press the Get button and check the FPGA version numbers to make sure the upgrade was successful.
CAUTION:
If you upgrade the CPU with an FPGA image, you will make the radio inoperable. The only way to recover the unit is to send it back to KTS.

-- LarryKoos - 27 Jul 2022
I Attachment Action Size Date WhoSorted descending Comment
EMS_2.4.53.jarjar EMS_2.4.53.jar manage 931 K 05 Aug 2022 - 22:39 LarryKoos  
RFCommsRadioAPI_V0p1.pdfpdf RFCommsRadioAPI_V0p1.pdf manage 741 K 05 Aug 2022 - 23:01 LarryKoos  
sendSG90TestCmd.pl.txttxt sendSG90TestCmd.pl.txt manage 833 bytes 09 Aug 2022 - 18:42 LarryKoos Perl script for sending a test UDP message to the radio to transmit
sg90CmdLoop.batbat sg90CmdLoop.bat manage 61 bytes 09 Aug 2022 - 18:46 LarryKoos Windows batch file for executing the transmit perl script multiple times.
sg90Listener.pl.txttxt sg90Listener.pl.txt manage 1 K 09 Aug 2022 - 18:44 LarryKoos Perl script for listening on UDP port for packets from the radio
sg90_1083_26.binbin sg90_1083_26.bin manage 821 K 26 Aug 2022 - 19:26 LarryKoos SG90 CPU code - Version 1083-26
sg90dlAtrV2FpgaV9.binbin sg90dlAtrV2FpgaV9.bin manage 782 K 26 Aug 2022 - 19:23 LarryKoos SG90 Downlink FPGA image - Version 9
Topic revision: r5 - 26 Aug 2022, LarryKoos
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding KTS Projects? Send feedback