Skip to content

Latest commit

 

History

History
73 lines (51 loc) · 1.79 KB

File metadata and controls

73 lines (51 loc) · 1.79 KB

rQuansheng

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.

Flashing the firmware

  1. cd to cross/rquansheng
  2. put the radio in DFU (PTT + turn on)
  3. run the command cargo run --release

A k5prog binary is vendored, from this fork: https://github.com/nica-f/k5prog

PC Software

rQuansheng can run on a normal PC, controlling the radio chip on a physical device through the serial cable

  1. flash the rQuansheng firmware
  2. CTRL+C at the flasher logcat
  3. go to the host_sw directory
  4. run RUST_LOG=INFO cargo run --release --bin emulator -- --serial /dev/ttyUSB0

photo

Roadmap

Basics

  • 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

High level

  • 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)

In the far future, probably never

  • spectrum analysis
  • scanning
  • ARDF

photo

Hardware support

This is developed and works for devices with this label

photo