Skip to content

Releases

OpenDMR 0.3.1

Choose a tag to compare

@va3bpf va3bpf released this 13 Nov 19:18
000eb1e

OpenDMR 0.3.1 for the Baofeng DM-32 / DM-32UV. 中文说明在下面。

Downloads

  • OpenDMR-0.3.1.zip: the firmware (opendmr.bin), the Chinese font (cjk.bin), our codeplug software
    (opendmr-cps.html)
    , the tools, the installation guide and the user manual.
  • opendmr-cps.html: OpenDMR CPS 0.4.0 on its own: open it in Chrome or Edge, nothing to install.
  • SHA256SUMS.txt: certutil -hashfile OpenDMR-0.3.1.zip SHA256

Updating from 0.3.0: keep the radio on with the cable plugged in and run
py tools\debug\fw_update.py opendmr.bin --port COM6. Settings and codeplug are kept. The Chinese font is unchanged.
New install: follow docs/installation.en.md (back up both flash chips first).

New

  • Spanish interface: Options → Language now steps through English, 中文 and Espanol. The language row is
    "Language" in every language, so it can always be found. Thanks to Pablo (@Pablog5395) for the translation.
    (#13)
  • The caller's position on DMR receive: when the other radio sends its GPS position with the call (ETSI GPS
    Info), the receive screen shows the distance and direction from ours (or its coordinates when ours is not known),
    and so does Last heard. (#19)
  • APRS: "Send beacon now" in Options → APRS, and the beacon key is SK1 + 3 (it sends in any mode but Off).
    The bottom bar shows @ while beaconing is on. (#18,
    #22)

Fixed

  • Back from the VFO to the channel, the radio stayed on the VFO's frequency (no DMR, the S meter of the VFO)
    until the channel was changed. (#20)
  • The quick menu and the channel details change things at once: the radio follows while the menu is open, and
    the right key keeps the change (before, only the left key applied it).
    (#20)
  • AM / SSB squelch no longer closes in every pause: it closes after the signal stayed under the level for
    0.2 s (AM) or 0.5 s (USB / LSB). (#21)
  • APRS beacons go out with the APRS configurations of the 2025 CPS, a GPS position without a fix is no longer
    used, and a beacon that cannot go out gives the error tone. (#18)
  • Key settings showed one action too few (the last one could not be changed).
    (#18)

Known limits

  • P25: simplex group calls in clear only (no encryption, private calls, trunking or Phase 2); see docs/p25.md
  • No voice prompts; calibration is read only; no themes
  • "Safe Pwr-On" and "Sat (Manual / Auto)" have no effect yet
  • Not fully tested on the air yet: APRS decoding, the hotspot's CW ID, satellite passes, talkaround, distance sort,
    the AM / SSB squelch hold, the caller's position
  • The Spanish interface has no accented letters (the fonts are ASCII)
  • Non-commercial use only (see LICENSE)

OpenDMR 0.3.1,Baofeng DM-32 / DM-32UV 的开源固件。

  • OpenDMR-0.3.1.zip:固件、中文字库、我们自己的写频软件(opendmr-cps.html)、工具、安装手册和使用说明书。
  • opendmr-cps.html:单独的 OpenDMR CPS 0.4.0,用 Chrome 或 Edge 打开,不用安装。
  • 从 0.3.0 升级:电台开机、插着写频线,运行 py tools\debug\fw_update.py opendmr.bin --port COM6,设置和码表都保留。
    中文字库没有变化,不用重新写。新装机按 docs/installation.md 操作(先备份两颗 Flash)。

新增

  • 西班牙语界面:选项 → 语言现在在 English、中文、Espanol 之间切换。语言这一行在任何语言下都显示「Language」,
    切到看不懂的语言也找得到。感谢 Pablo 的翻译。
  • DMR 接收时显示对方位置:对方电台随通话发送 GPS 位置(ETSI GPS Info)时,接收界面显示离我们的距离和方向
    (不知道自己位置时显示对方坐标),最近呼叫列表里也有。
  • APRS「立即发送信标」:在选项 → APRS 设置里;发信标键改为 SK1 + 3(除了「关」以外的模式都能发)。
    信标开着时底栏显示 @。

修复

  • 从 VFO 回到信道后,电台还停在 VFO 的频率上(收不到 DMR,S 表是 VFO 的),要换一次信道才恢复。
  • 快捷菜单和信道详情里的修改立即生效:菜单开着时电台就跟着变,按右键返回也保留(以前只有按左键才生效)。
  • AM / SSB 静噪不再在每个停顿处关闭:信号低于门限后 AM 等 0.2 秒、USB / LSB 等 0.5 秒才关。
  • APRS 信标:能用 2025 版 CPS 写的 APRS 配置发出去;没有定位时不再用 GPS 的旧位置;发不出去时有错误提示音。
  • 按键设置少显示了一个动作(最后一个改不了)。

已知限制

  • P25 只有直通组呼明语(没有加密、个呼、集群、Phase 2),见 docs/p25.md
  • 没有语音提示;校准只读;不能换主题
  • 「安全开机」「星(手动 / 自动)」暂时没有作用
  • 以下功能还没有在空中完整实测:APRS 解码、热点的 CW ID、卫星过境、脱网、按距离排序、AM / SSB 静噪延时、对方位置显示
  • 西班牙语界面没有重音字母(字体只有 ASCII)
  • 仅限非商业用途(见 LICENSE)

OpenDMR 0.3.0

Choose a tag to compare

@va3bpf va3bpf released this 13 Nov 01:57
adaa548

OpenDMR 0.3.0 for the Baofeng DM-32 / DM-32UV. 中文说明在下面。

Downloads

  • OpenDMR-0.3.0.zip: the firmware (opendmr.bin), the Chinese font (cjk.bin), our codeplug software
    (opendmr-cps.html)
    , the tools, the installation guide and the user manual.
  • opendmr-cps.html: OpenDMR CPS 0.4.0 on its own: open it in Chrome or Edge, nothing to install.
  • SHA256SUMS.txt: certutil -hashfile OpenDMR-0.3.0.zip SHA256

Updating from 0.2.0: keep the radio on with the cable plugged in and run
py tools\debug\fw_update.py opendmr.bin --port COM6. Settings and codeplug are kept. The Chinese font is unchanged.
New install: follow docs/installation.en.md (back up both flash chips first).

New

  • P25 Phase 1 voice, simplex, group calls, clear: a new mode (SK1 + *: … DMR → P25) for channels and VFOs. The
    NAC is set per channel / VFO (channel details; F7E receives any), the talk group is chosen as in DMR. Two DM-32UV
    talk to each other, and an MMDVM hotspot receives us (BER 0.4 %). Key to speaker about 250 ms. Our own IMBE vocoder
    and air interface (p25-core). Known issues: docs/p25.md section 6.
    (#14)
  • OpenDMR CPS in the release: a codeplug editor in the browser that also writes the radio's settings, P25 / AM /
    SSB channels and Chinese names (GB2312). The OpenGD77 CPS still works (and writes the DMR ID database).
    (opendmr-cps, #16)
  • Power levels up to 10 W: 50 mW, 500 mW, 1, 2, 3, 4, 5, 7, 10 W, +W-; 1 / 4 / 10 W are the factory calibration
    points (the stock Low / Middle / High). Each channel and each VFO keeps its own power (SK2 + ◀ ▶);
    Options → Radio has the default power and "Power To All". (#11)

Fixed

  • Factory calibration: the receive frequency adjustment is read from the calibration table instead of being
    worked out from the transmit one (2 steps off on some radios), and the 4FSK level is interpolated between the
    calibration points. (#12)
  • Watchdog: a stalled radio is now reset even while the cable link was in use.

For developers

  • docs/p25.md: how P25 works on the HR_C7000 (its physical layer mode) and what we found the modem does.
  • docs/i18n.md: the design for more interface languages. (#15)

Known limits

  • P25: simplex group calls in clear only (no encryption, private calls, trunking or Phase 2); see docs/p25.md
  • No voice prompts; calibration is read only; no themes
  • "Safe Pwr-On" and "Sat (Manual / Auto)" have no effect yet
  • Not fully tested on the air yet: APRS decoding, the hotspot's CW ID, satellite passes, talkaround, distance sort
  • Non-commercial use only (see LICENSE)

OpenDMR 0.3.0,Baofeng DM-32 / DM-32UV 的开源固件。

  • OpenDMR-0.3.0.zip:固件、中文字库、我们自己的写频软件(opendmr-cps.html)、工具、安装手册和使用说明书。
  • opendmr-cps.html:单独的 OpenDMR CPS 0.4.0,用 Chrome 或 Edge 打开,不用安装。
  • 从 0.2.0 升级:电台开机、插着写频线,运行 py tools\debug\fw_update.py opendmr.bin --port COM6,设置和码表都保留。
    中文字库没有变化,不用重新写。新装机按 docs/installation.md 操作(先备份两颗 Flash)。

新增

  • P25 Phase 1 语音(直通、组呼、明语):新的模式(SK1 + *:…… DMR → P25),信道和 VFO 都能用。NAC 每个信道 / VFO
    单独设(信道详情里;F7E 收所有的),通话组和 DMR 一样选。两台 DM-32UV 之间互通,MMDVM 热点能收到(BER 0.4%),
    按键到出声约 250 ms。IMBE 声码器和空中接口都是我们自己写的(p25-core)。
    已知问题见 docs/p25.md 第 6 节。
  • 发布包带上 OpenDMR CPS:浏览器里的写频软件,能读写电台的设置、P25 / AM / SSB 信道,中文名称按 GB2312 写。
    OpenGD77 CPS 仍然可以用(DMR ID 数据库要用它写)。
  • 功率最高 10 W:50 mW、500 mW、1、2、3、4、5、7、10 W、+W-;1 / 4 / 10 W 是工厂校准点(原厂的低 / 中 / 高)。
    每个信道、每个 VFO 各自保存功率(SK2 + ◀ ▶);选项 → 电台设置里有「默认功率」和「功率应用到全部」。

修复

  • 工厂校准:接收频率校准值直接从校准表读(以前由发射的值推算,有的机器差 2),4FSK 电平在校准点之间插值。
  • 看门狗:电台卡死时,即使数据线刚用过也会复位。

给开发者

  • docs/p25.md:P25 怎样用 HR_C7000 的物理层模式实现,以及我们摸清的调制解调器行为。
  • docs/i18n.md:界面多语言的设计。

已知限制

  • P25 只有直通组呼明语(没有加密、个呼、集群、Phase 2),见 docs/p25.md
  • 没有语音提示;校准只读;不能换主题
  • 「安全开机」「星(手动 / 自动)」暂时没有作用
  • 以下功能还没有在空中完整实测:APRS 解码、热点的 CW ID、卫星过境、脱网、按距离排序
  • 仅限非商业用途(见 LICENSE)

OpenDMR 0.2.0

Choose a tag to compare

@va3bpf va3bpf released this 10 Nov 18:12
df87625

OpenDMR 0.2.0 for the Baofeng DM-32 / DM-32UV. 中文说明在下面。

Everyone on 0.1.0 should update. 0.1.0 damaged the first voice frame of every DMR burst it sent, so other
radios heard choppy, robotic audio. It also always used colour code 1, whatever the channel said.

Downloads

  • OpenDMR-0.2.0.zip: the firmware (opendmr.bin), the Chinese font (cjk.bin), the tools, the installation
    guide and the user manual.
  • SHA256SUMS.txt: certutil -hashfile OpenDMR-0.2.0.zip SHA256

Updating from 0.1.0: keep the radio on with the cable plugged in and run
py tools\debug\fw_update.py opendmr.bin --port COM6. Settings and codeplug are kept. The Chinese font is unchanged,
so it does not need uploading again.
New install: follow docs/installation.en.md (back up both flash chips first).

Fixed

  • DMR transmit audio. The first voice frame of every burst went out while the PA was still switching on. The
    receiving radio repeated those frames, so the voice sounded choppy and robotic. The Tx interrupt now comes 3.2 ms
    ahead of the burst, as in the stock repeater mode, and uses the stock PA timing (VHF 1.6 ms, UHF 1.2 ms). Measured
    between two DM-32s with a weak signal: bad frames went from up to 77 % of the first frames to 0.
    (#6)
  • DMR colour code. The colour code was never written to the modem, so the radio sent and received colour code 1
    whatever the channel said. A repeater on another colour code showed a signal but gave no audio.
    (#8, issues #1,
    #3)
  • Pops on networked DMR calls. The vocoder muted "erasure" frames, which repeaters and networks put in for lost
    packets: a 60 ms gap and then a pop. It now repeats the last frame and fades out, as the stock DVSI decoder does.
    (dmr-vocoder #1)
  • DMR S meter. It read 13–16 dB low (the receiver follows the timeslots, and half the readings were the noise
    floor) and stopped at about S8 close to a station (fixed AGC). It now takes the timeslot's peak with automatic AGC,
    and reads like FM. (#5)
  • Options → LEDs off now turns the LEDs off. (#4)

New

  • AM, USB and LSB receive (receive only; PTT is refused in these modes). SK1 + * cycles FM → AM → USB → LSB →
    DMR. AM and SSB use an RSSI squelch, and SSB tunes in 100 Hz steps: tune to the suppressed carrier.
    (#2)
  • For developers: make RX_CAPTURE=1 records every received AMBE frame to the data flash, and
    tools/debug/rx_capture.py reads it back. Off in release builds. (#7)

Known limits

  • AM and LSB have not been fully tested on the air (USB has)
  • No voice prompts; calibration is read only; no themes
  • "Safe Pwr-On" and "Sat (Manual / Auto)" have no effect yet
  • Not fully tested on the air yet: APRS decoding, the hotspot's CW ID, satellite passes, talkaround, distance sort,
    DMR transmit timing on 220 MHz
  • Non-commercial use only (see LICENSE)

OpenDMR 0.2.0,Baofeng DM-32 / DM-32UV 的开源固件。

使用 0.1.0 的都建议升级。 0.1.0 发射 DMR 时,每个突发的第一个语音帧都会损坏,对方听到的声音断续、发"机器味"。
另外它不管信道设的是什么色码,实际都只用色码 1。

  • OpenDMR-0.2.0.zip:固件、中文字库、工具、安装手册和使用说明书。
  • 从 0.1.0 升级:电台开机、插着写频线,运行 py tools\debug\fw_update.py opendmr.bin --port COM6,设置和码表都保留。
    中文字库没有变化,不用重新写。新装机按 docs/installation.md 操作(先备份两颗 Flash)。

修复

  • DMR 发射声音:每个突发开头的语音帧是在功放还没打开稳定时发出去的,对方会重复这些帧,声音断续、发"机器味"。
    现在发射中断提前 3.2 ms(和原厂中继模式一样),并使用原厂的功放时序(VHF 1.6 ms,UHF 1.2 ms)。两台 DM-32 在弱信号下实测,
    第一帧的坏帧率从最高 77% 降到 0。
  • DMR 色码:色码从来没有写进调制芯片,不管信道设的是什么,实际都用色码 1 收发;色码不是 1 的中继有信号但没有声音
    (issue #1、#3)。
  • 网络 DMR 通话的"噗"声:中继和网络丢包时会补上"擦除帧",原来的声码器会把它静音,造成 60 ms 断音和"噗"声。
    现在和原厂 DVSI 解码器一样,重复上一帧再淡出。
  • DMR S 表:原来偏低 13–16 dB(接收机跟着时隙切换,一半读数是底噪),离电台很近时最多也只显示到 S8 左右(AGC 固定)。
    现在取时隙内的峰值并使用自动 AGC,读数和 FM 一致。
  • 选项 → 关闭 LED 现在真正生效。

新增

  • AM、USB、LSB 接收(只收,这几种模式下按 PTT 会被拒绝):SK1 + * 按 FM → AM → USB → LSB → DMR 循环切换;
    AM 和 SSB 用 RSSI 静噪,SSB 以 100 Hz 步进调谐,要调到被抑制的载波频率上。
  • 开发用:make RX_CAPTURE=1 会把收到的每个 AMBE 帧记录到数据 Flash,用 tools/debug/rx_capture.py 读出。正式版里不包含。

限制:AM 和 LSB 还没有完整的空中实测(USB 测过);没有语音提示;校准只读;没有主题;APRS 解码、热点 CW ID、卫星过境、
脱网、按距离排序、220 MHz 的 DMR 发射时序还没有完整空中实测;仅限非商业用途。

OpenDMR 0.1.0

Choose a tag to compare

@va3bpf va3bpf released this 08 Nov 14:51

First public version of OpenDMR, open firmware for the Baofeng DM-32 / DM-32UV. 中文说明在下面。

⚠️ Flashing can brick the radio; you do it at your own risk. Back up both flash chips first
(installation guide, section 2): the backup
holds this radio's own calibration.

Downloads

  • OpenDMR-0.1.0.zip: the firmware (opendmr.bin), the Chinese font (cjk.bin), the backup / flash / update
    tools, the installation guide and the user manual. Unzip it and follow docs/installation.en.md.
  • SHA256SUMS.txt: certutil -hashfile OpenDMR-0.1.0.zip SHA256
  • The codeplug software is the OpenGD77 CPS (Radio type DM32/UV008), from https://www.opengd77.com/.

First install: dm32_dump.py through the chip's bootloader (radio off, run, switch on). Later updates:
fw_update.py over the cable while OpenDMR runs (about 35 s).

What's in it

  • Rewritten on FreeRTOS, with the features of RA4FHE's OpenDM32 (the DM-32 port of OpenGD77)
  • New interface at the native 240×320, English / 中文
  • DMR on our own AMBE+2 compatible vocoder (dmr-vocoder): no stock
    firmware code
  • DMR / FM, channels and VFO, scan, dual watch, contacts, last heard, FM broadcast radio with RDS, GPS, APRS
    beacons, amateur satellite passes, DMR hotspot (MMDVM), VOX, user-defined keys
  • A watchdog: a radio that stalls (or hits a CPU exception) restarts by itself within about 8 s
  • User manual with screenshots from the radio

Known limits

  • No voice prompts; calibration is read only; no themes
  • "Safe Pwr-On" and "Sat (Manual / Auto)" have no effect yet
  • Not fully tested on the air yet: APRS decoding, the hotspot's CW ID, satellite passes, talkaround, distance sort
  • Non-commercial use only (see LICENSE)

OpenDMR 第一个公开版本,Baofeng DM-32 / DM-32UV 的开源固件。

⚠️ 刷机有变砖风险,后果自负。先备份两颗 Flash(安装手册 第 2 节),备份里有本机独有的校准数据。

  • OpenDMR-0.1.0.zip:固件、中文字库、备份 / 刷机 / 升级工具、安装手册和使用说明书。解压后按 docs/installation.md 操作。
  • 写码表用 OpenGD77 CPS(Radio type 选 DM32/UV008),从 https://www.opengd77.com/ 下载。
  • 第一次安装用 dm32_dump.py(关机、运行、开机握手);以后升级用 fw_update.py(约 35 秒)。
  • 功能:DMR / FM、信道和 VFO、扫描、双守、联系人、最近通话、收音机(RDS)、GPS、APRS 信标、业余卫星、DMR 热点、声控、自定义按键;界面中文 / English;DMR 用我们自己的声码器,不含原厂代码;看门狗:死机(或 CPU 异常)后约 8 秒内自动重启。
  • 限制:没有语音提示;校准只读;没有主题;APRS 解码、热点 CW ID、卫星过境、脱网、按距离排序还没有完整空中实测;仅限非商业用途。