This is an highly experimental from-scratch reimplementation for a firmware for the Quansheng UV-K5 (v1) radio, made in Rust
This is not a black box reimplementation, some low-level parts are rewritten from C, some are inspired then refactored, some are original.
All the UI code is original.
cdtocross/rquansheng- put the radio in DFU (PTT + turn on)
- run the command
cargo run --release
A k5prog binary is vendored, from this fork: https://github.com/nica-f/k5prog
rQuansheng can run on a normal PC, controlling the radio chip on a physical device through the serial cable
- flash the rQuansheng firmware
- CTRL+C at the flasher logcat
- go to the
host_swdirectory - run
RUST_LOG=INFO cargo run --release --bin emulator -- --serial /dev/ttyUSB0
- run a binary
- pac driver
- run RTIC
- hal drivers
- adc / battery level
- bk4819 bitbang driver
- bk4819 hal and library
- bk1080 driver
- keyboard driver and events
- display driver
- eeprom driver
- fm radio rx
- fm radio tx
- serial protocol for remote control
- defmt logs wrapped by the serial protocol
- UI for transceiver state
- UI for menu
- UI for wfm rx (bk1080)
- eeprom settings save
- support high / medium / low power tx (from eeprom calib. tables)
- support 10 squelch levels (from eeprom calib. tables)
- support for CTCSS / DCS etc etc
- support AM / SSB / raw etc reception
- AM fix (not tested)
- spectrum analysis
- scanning
- ARDF
This is developed and works for devices with this label


