Hardware

Hardware Reference

Deep dive into the RT-900's hardware — MCU, RF chip, display, storage, and complete EEPROM memory map.

Physical Details

FeatureDetail
Antenna connectorSMA-Female
Charging portUSB-C (bottom of radio)
Battery2200 mAh Li-Ion
Speaker/Mic jackKenwood-type 2-pin (2.5mm + 3.5mm)
Top knobsPower/Volume (left), Channel/Frequency (right)

MCU — BT32F0x

PropertyValue
CoreARM Cortex-M0
Clock72 MHz
Flash256 KB (0x08000000–0x0803FFFF)
RAM32 KB (0x20000000–0x20007FFF)
Oscillator8 MHz external (HSE)

Note

Despite being a newer radio than the UV-K5, the RT-900 uses a weaker MCU — ARM Cortex-M0 — versus the UV-K5's Cortex-M0+ DP32G030. The M0 lacks the M0+'s single-cycle I/O port and improved pipeline, which affects GPIO-heavy tasks like bit-banged protocols and display rendering.

RF Transceiver — BK4819

The RT-900 uses the same BK4819 RF transceiver as the Quansheng UV-K5. The chips are register-compatible, which means firmware drivers and calibration tooling written for the UV-K5 translate directly.

SignalPinDescription
SCNPB10Chip select (active low)
SCKPB11Serial clock
SDAPB2Serial data (bidirectional)
  • Modulation: FM, AM, FSK, DTMF
  • Tone signaling: CTCSS and DCS encode/decode in hardware
  • RSSI: Hardware RSSI register — no external signal-strength hardware needed
  • Squelch: Hardware squelch detection
  • Audio: Integrated DAC/ADC — no separate audio codec IC required

Display — ST7735S

160×128 pixel color TFT LCD, driven over SPI2. The ST7735S is a common, well-documented controller with broad library support.

SignalPinDescription
SCKPA5SPI2 clock
MISOPA6SPI2 MISO
MOSIPA7SPI2 MOSI
CSPB12Chip select
DCPB14Data / Command select
RSTPA8Hardware reset
160x128 color TFT output showing dual VFO display rendered in RGB565
160x128 color TFT output — dual VFO display rendered in RGB565

Color depth: 16-bit RGB565 — 65,536 colors.

Storage — SPI NOR Flash

External SPI NOR flash holds all persistent radio data: channels, settings, calibration, splash screen, fonts, and voice prompts. It is connected on SPI1, sharing the bus with the display but using a separate chip select.

SignalPin
SCKPA5
MISOPA6
MOSIPA7
CSPA4
  • Page size: 256 bytes
  • Sector size: 4 KB (smallest erasable unit)
  • Block size: 32 KB / 64 KB

FM Receiver — RDA5807

Broadcast FM reception is handled by a dedicated RDA5807 IC, separate from the BK4819 transceiver. It communicates over I2C.

  • Bus: I2C
  • Address: 0x20 (write) / 0x21 (read)
  • Standard range: 76–108 MHz
  • Extended range: 65–76 MHz

Keyboard

The main keypad is a 5×4 resistive matrix providing 20 keys, plus two independent side buttons.

RolePins
Drive (columns)PB0, PB1, PB2, PB3, PB4
Sense (rows)PC13, PC14, PC15, PB9
Side buttonsIndependent GPIO lines

EEPROM Memory Map

All data lives in the external SPI NOR flash. The layout below covers the full address space as used by the stock RT-900 firmware.

AddressSizePurpose
0x0000–0x7FFF32 KBChannel data (1000 × 32 bytes)
0x8000–0x807F128 BVFO A/B settings
0x9000–0x90FF256 BRadio settings (wear-leveled)
0x9040–0x90FF192 BFM presets
0xA000–0xA03F64 BDTMF settings
0xA200–0xA3FF512 BBank names
0xB000–0xB0BF192 BMachine ID
0xB0C0–0xB0FF64 BMachine name / callsign
0xB500+varCustom channel names
0xC000–0xCFFF4 KBFactory calibration
0xD000+4 KBExtended frequency ranges
0xE000–0xEFFF4 KBSystem runtime data
0xF000–0xF250~600 BRF calibration
0x1000064 KBSplash screen
0x20000704 KBFont bitmaps
0x90000512 KBVoice prompt audio

Channel Data Structure (32 bytes)

Each of the 1000 channel slots occupies exactly 32 bytes starting at 0x0000. Channel n starts at offset n × 32.

OffsetSizeField
04RX frequency (Hz)
44TX frequency (Hz)
82RX CTCSS/DCS code
102TX CTCSS/DCS code
121DTMF group
131PTT ID mode
141TX power (0=High, 1=Mid, 2=Low)
151Flags: bit6=BW, bit5-4=RX tone mode, bit3=optional tones, bit2=scan, bit0=enabled
164Decoder code
2012Channel name (ASCII)