TIDRADIO TD-H9 Experimental Firmware: Pushing the 10W APRS Handheld Toward 928 MHz
TIDRADIO TD-H9 Experimental Firmware: Pushing the 10W APRS Handheld Toward 928 MHz
TL;DR: The TIDRADIO TD-H9 (official product page, from $69.98) is a 10W VHF/UHF handheld with built-in GPS APRS tracking, Bluetooth 5.1, a spectrum analyzer, SMS texting, 128MB memory, and a customizable color screen. Community developer mjwgeek has published an experimental firmware project (GitHub) based on official v1.0.33 that extends the UHF tuning range to 928 MHz and bypasses the stock PTT validator rejection above roughly 599 MHz, using four surgical patches documented down to the byte. This post tours the stock radio, explains exactly what the patches do, and lays out how to experiment lawfully and safely with a dummy load, test gear, and strict respect for band plans.
Budget handhelds keep getting more interesting. A few years ago a $70 radio meant 5W, two bands, and a cryptic menu. The TIDRADIO TD-H9 ships 10W, GPS APRS, a spectrum scope, Bluetooth, and roomy memory at that price, then adds USB-C upgradable firmware that invites community work. The mjwgeek experimental firmware is the first public deep patch for this platform: real reverse engineering on the JieLi-based firmware with honest documentation of both the working patch and the failed attempts. For licensed amateurs who enjoy bench testing and pushing hardware understanding forward, it is worth knowing about, with eyes wide open about legality and RF safety.
What Is the TIDRADIO TD-H9 Experimental Firmware Project?
The TIDRADIO TD-H9 experimental firmware project is an independent community reverse-engineering effort that patches official v1.0.33 firmware to extend UHF tuning to 928 MHz and bypass final PTT rejection above the stock ceiling while preserving normal transmit setup, flashed with the unmodified factory updater.
+-----------------------------------------------------------------------------------+
| TD-H9 EXPERIMENTAL FIRMWARE PATCH ARCHITECTURE |
+-----------------------------------------------------------------------------------+
| |
| +---------------------------+ +---------------------------------------+ |
| | RANGE LOGIC PATCHES (3) | | TRANSMIT PATH PATCH (1) | |
| | UHF limit 520->928 MHz | | Validator call KEPT intact | |
| | Classifier span widened | | Final jz reject -> Pi32v2 NOP | |
| | Range table 520->928 | | TX setup + side effects preserved | |
| +---------------------------+ +---------------------------------------+ |
| | | |
| +---------------------------------------------------------------------------------+ |
| | JIELI UFW CONTAINER REBUILD (7-STEP CRC CHAIN) | |
| | Stock USB-C updater accepts package • No patched updater needed | |
| +---------------------------------------------------------------------------------+ |
| | | |
| +---------------------------+ +---------------------------------------+ |
| | SAFETY DISCIPLINE | | RECOVERY PATH | |
| | Dummy load first • PLL | | Official v1.0.33 re-flash with | |
| | power, harmonics, spur | | original updater restores stock | |
| +---------------------------+ +---------------------------------------+ |
| |
+-----------------------------------------------------------------------------------+
The repository is small and focused: one experimental .fw image, byte-level PATCH_NOTES.md, a version-locked patcher under tools/, four commits, and prominent regulatory warnings. It isn’t affiliated with or endorsed by TIDRADIO.
Part 1: The Stock TD-H9 Is Already a Lot of Radio
Before the patches, understand the base hardware. The TD-H9 sits at the top of TIDRADIO’s current handheld line, above the TD-H8 and TD-H3 families.
Stock Specification Table
| Item | TD-H9 specification |
|---|---|
| Power output | 10W |
| Stock TX ranges | 136-174 MHz, 220-259 MHz, 300-390 MHz, 400-590 MHz |
| RX coverage | FM 76-108 MHz, AM airband 108-136 MHz, VHF 136-174 and 220-230 MHz, UHF 350-390 and 400-520 MHz, NOAA weather channels |
| Screen | 1.77inch color, 3 display modes, 18 menu colors |
| APRS and GPS | Built-in GPS APRS tracker, live map via aprs.fi and Odmaster web |
| Bluetooth | 5.1 BR/EDR/BLE: headsets, wireless PTT buttons, wireless mics, wireless programming |
| Spectrum analyzer | Built-in spectrum scope for busy versus clear channel checks |
| SMS texting | Radio-to-radio texts between TD-H9 units (and TD-H3 Plus) on the same frequency |
| Memory | 1MB plus 128MB large memory |
| Battery | 2400mAh, USB-C charging |
| Extras | Morse emergency mode, AM/FM broadcast RX, VFO mode, wireless full-radio cloning, frog-call tones, voice scrambling, scan limits, multi-language menus |
| Versions and colors | Unlocked, Ham, GMRS versions; Black, Orange, Green, Crystal shells |
| Price and rating | From $69.98 (list $99.99), 109 reviews on the official store |
| Accessories | TD-771 whip, 2400mAh spare cell, TD-Q2L wireless mic, CH340 cable, USB-C audio adapter |
TD-H9 Versus Its Siblings
| Feature | TD-H9 | TD-H8 (3rd gen) | TD-H3 |
|---|---|---|---|
| Screen | 1.77inch | 1.77inch | 1.44inch |
| Power | 10W | 10W | 5W |
| APRS and GPS | Yes | No | No |
| Bluetooth data plus audio | Device plus programming | Programming only | Programming only |
| Spectrum analyzer | Yes | No | No |
| SMS texting | Yes | No | No |
| Storage | 1MB plus 128MB | 56KB plus 1MB | 56KB plus 1MB |
For APRS operators the comparison ends quickly: only the H9 has GPS and APRS, which makes it the natural pick for trackers, SOTA beacons, and event logistics. The spectrum scope and 128MB memory are bonuses that matter every time you arrive at a new site and wonder which simplex channel is actually quiet.
Why Hams Like the Stock Radio
- APRS tracker in the hand: GPS position reports onto the APRS-IS network via RF, viewable on aprs.fi, with no phone or external TNC. Perfect for hikes, bike events, and summit activations.
- Spectrum scope on arrival: Check 2m and 70cm calling channels and repeater inputs before calling CQ from a new grid.
- Bluetooth freedom: Wireless PTT and mic accessories plus app-based programming cut the cable clutter that plagues field kits.
- SMS for quiet coordination: Short radio-to-radio texts handle frequency changes and logistics without voice traffic.
- Morse emergency mode: A last-resort beacon when voice won’t get through.
Part 2: What the Experimental Firmware Changes
Stock firmware caps UHF tuning at 520 MHz in the range logic and rejects PTT above roughly 599 MHz. The experimental build TD-H9-V1.0.33-928-PTT-VALIDATOR-BYPASS.fw (base v1.0.33, SHA-256 0fe4ef04...73c7f published in the README) makes four targeted changes to app.bin, with frequencies stored in 10 Hz units.
The Four Patches
| Offset in app.bin | Stock value | Patched value | Purpose |
|---|---|---|---|
0x72FF8 |
52,000,000 (520 MHz) | 92,800,000 (928 MHz) | UHF upper-limit constant |
0x8306A |
120,000,010 | 528,000,010 | Widen the 400 MHz classifier span so extended UHF survives range classification |
0xCDCBC |
52,000,000 (520 MHz) | 92,800,000 (928 MHz) | UHF range-table upper limit |
0x5B60C |
00 50 (jz to TX_REJECT) |
00 00 (Pi32v2 NOP) |
Remove the final PTT rejection branch after the validator call |
Why the NOP Approach Matters
The transmit path at app+0x5B608 calls the validator at app+0x56D46, then conditionally jumps to rejection. Earlier experiments tried bolder surgery and broke things:
- Forcing a return value at
app+0x5B50Ekilled normal TX entirely, proving that routine does required setup work beyond returning a boolean. - Changing the 600 MHz executable value at
app+0x57232to 928 MHz disabled TX globally, showing it feeds a required RF setup calculation. - Changing the 600 MHz RF-table value at
app+0xCF598didn’t unlock anything above 599 MHz.
The working insight is elegant: leave the validator and all setup routines untouched, and NOP out only the two-byte conditional rejection that follows. Normal 2m and 70cm transmit behavior is preserved, and the radio can enter transmit above the old ceiling. The patcher is version-locked and refuses inputs whose embedded flash image SHA-256 doesn’t match stock v1.0.33 (d0df6074...18dc0), which prevents patching the wrong base.
The JieLi Container Chain
The factory USB-C .fw file is a JieLi UFW package. A modified image is rejected by the stock updater unless every checksum is rebuilt, so the patcher regenerates a seven-step chain: app.bin data CRC, app.bin header CRC, app MD5 record plus its CRC and header CRC, parent app-area CRC and header CRC, outer flash.bin CRC, encrypted UFW entry-list CRC, and UFW header CRC. The payoff is convenience and safety: you flash with the original, unmodified TIDRADIO updater, and no patched updater executable ever touches your PC.
Part 3: Flashing and Recovery
- Save a recovery copy of official v1.0.33 firmware first.
- Load the experimental
.fwin the original TIDRADIO USB-C updater. No patched updater needed. - Flash normally over USB-C.
- Verify ordinary 2m and 70cm operation first: receive, transmit into a dummy load, repeater access, APRS beacon.
- Bench-test newly unlocked frequencies into a dummy load before any antenna connection.
If anything misbehaves, re-flash official v1.0.33 with the original updater to return to stock. Keep that recovery image on your PC and on a USB stick in the go-bag.
Part 4: The Lawful Playground and the Bench Discipline
This section is the price of admission. A selectable frequency isn’t authorization to transmit, and unlocking a software check says nothing about PA matching, filtering, spectral purity, or synthesizer lock outside the design range.
Know Your Band Plan First
The 600-928 MHz span crosses many services. Rules differ by country and ITU region, and your license class adds further limits:
- Amateur allocations vary sharply by region. In ITU Region 2 (the Americas), 902-928 MHz is the 33cm amateur band, the most plausible lawful TX playground for this experiment. In ITU Region 3 (including Malaysia), 902-928 MHz is generally not amateur spectrum, so transmitting there with any power is off limits regardless of firmware.
- Shared and primary users exist. Broadcasting, cellular, navigation, military, and ISM users occupy parts of this span depending on jurisdiction. Never assume a quiet frequency is an available frequency.
- Equipment rules apply. Some administrations require type-approved or standard-compliant equipment. Modified firmware can void that status.
- Power, bandwidth, and emission rules still bind. Even where a band is amateur, your license sets the ceiling.
Practical rule: look up your national band plan before flashing, write down the exact segments where you may transmit, and treat everything else as receive-and-dummy-load only.
Bench Test Protocol for Unlocked Ranges
- Dummy load first, always. Every new frequency gets first key-down into a rated dummy load, never an antenna.
- Confirm PLL lock. Check the radio indicates lock and the carrier is on frequency with a counter or SDR.
- Measure output power. Record watts across the unlocked span. Expect folds, dropouts, and surprises where the PA network was never designed to work.
- Inspect harmonics and spurious. A spectrum analyzer or SDR with attenuators shows whether the second harmonic or spurs exceed acceptable limits. Fail here means no antenna, ever, on that frequency.
- Check the stock bands again. Confirm 2m and 70cm behavior is unchanged after the patch.
- Log everything. Frequency, power, SWR into the load, spur levels, firmware version, date. Good notes are what separate experimentation from guessing.
What the New Range Is Genuinely Good For
- Receive exploration: Scanning, spectrum scope surveys, and signal identification across the extended tuning range are lawful receive activities in most places.
- 33cm amateur work where allocated: In Region 2, 902-928 MHz SSB, FM, and mesh experimentation with proper antennas is real amateur radio. Verify performance first.
- Lab and education: Demonstrating PLL behavior, PA roll-off, and spurious products on the bench teaches more RF engineering than a semester of slides.
- Firmware research: Tracing validators and classifiers builds reverse-engineering skill applicable to many embedded platforms.
Part 5: How This Compares to Other Firmware Hacking Projects
| Project | Target | Approach | Standing |
|---|---|---|---|
| mjwgeek TIDRADIO_TD-H9 | TD-H9 v1.0.33, JieLi Pi32v2 | 4 surgical patches plus UFW rebuild, stock updater | New, 4 commits, hardware-tested working build |
| nicsure TD-H8-Engineering | TIDRADIO TD-H8 | Community engineering notes and tooling | Cited as prior art by this project |
| yobabyte tid_umod | TIDRADIO mods | Modification utilities | Cited as prior art by this project |
| Quansheng UV-K5 custom firmware | UV-K5 and kin | Full open firmware replacements (Egzumer and others) | Mature scene, many builds, large community |
| kagaimiq jl-misctools | JieLi chips | Reverse-engineering tooling | Foundation tooling this work builds on |
| quarkslab ghidra-jieli | JieLi chips | Ghidra processor support | Foundation tooling this work builds on |
The TD-H9 project is at the careful beginning: minimal diff, maximal documentation, failed paths preserved. That conservatism is a feature. Compared with the sprawling UV-K5 scene, there is more room here for contributors who test methodically and write up results.
Credits and Prior Art
Reverse engineering stands on public tooling. The README credits kagaimiq/jl-misctools, quarkslab/ghidra-jieli, nicsure/TD-H8-Engineering, and yobabyte/tid_umod. Original firmware and trademarks belong to their owners, and the repo is an independent community project with no TIDRADIO affiliation. If the project helps your bench work, star the repo and consider contributing measurements back.
Frequently Asked Questions
What does the experimental firmware actually unlock?
It extends UHF tuning to 928 MHz and removes final PTT rejection above the stock ceiling via four documented patches, while keeping normal 2m and 70cm transmit behavior intact.
Can I flash it with the factory updater?
Yes. The patcher rebuilds the full JieLi UFW checksum chain, so the original unmodified TIDRADIO USB-C updater accepts and flashes the image normally.
Is transmitting on the new frequencies legal?
Only where your license and band plan allow. In Region 2, 902-928 MHz is amateur 33cm; in Region 3 including Malaysia it generally isn’t. Verify locally first.
Will it damage my radio or void warranty?
Flashing can brick the radio and likely voids warranty. Keep official v1.0.33 for recovery, and bench-test new ranges into a dummy load before any antenna use.
How do I return to stock firmware?
Re-flash official TD-H9 v1.0.33 with the original updater. Always verify normal 2m and 70cm operation after recovery.
Conclusion
The stock TD-H9 is already one of the strongest value handhelds in its class: 10W, APRS with GPS, spectrum scope, Bluetooth, SMS, and 128MB memory near $70. The mjwgeek experimental firmware adds something rarer: careful, documented, hardware-tested reverse engineering that opens the UHF range toward 928 MHz with a minimal four-patch diff and a clean stock-updater install path. Treat it as what it is, a bench and research project for licensed amateurs with a dummy load, a spectrum display, and a current band plan on the desk. Do that, and it repays the effort with real RF knowledge and a better-understood radio.
Star the repo, read the patch notes twice, test methodically, and share lawful measurements back to the community.
73, and keep it clean on the spectrum.
Sources and Further Reading
- mjwgeek TIDRADIO_TD-H9 Experimental Firmware (GitHub): https://github.com/mjwgeek/TIDRADIO_TD-H9
- Patch Notes with Byte-Level Details: https://github.com/mjwgeek/TIDRADIO_TD-H9/blob/main/PATCH_NOTES.md
- TIDRADIO TD-H9 Official Product Page: https://tidradio.com/products/td-h9-10w-bluetooth-aprs-radio-handheld
- TIDRADIO Official Firmware Page: https://tidradio.com/pages/tidradio-firmware
- TD-H8 Engineering by nicsure (Prior Art): https://github.com/nicsure/TD-H8-Engineering
- tid_umod by yobabyte (Prior Art): https://github.com/yobabyte/tid_umod
- jl-misctools by kagaimiq (JieLi Tooling): https://github.com/kagaimiq/jl-misctools
- ghidra-jieli by Quarkslab (Processor Support): https://github.com/quarkslab/ghidra-jieli
- APRS Live Map (aprs.fi): http://aprs.fi
- Odmaster Web Portal: https://web.odmaster.net/login
- HamRadio.my Open Source Tools and Tech Guides: https://hamradio.my/
- About 9M2PJU Station Profile and Software Projects: https://hamradio.my/about/



Post Comment