Installing H. J. Berndt’s firmware
H. J. Berndt’s firmware (hjberndt.de) runs on the same hardware as the official firmware and shares almost nothing else with it. It is a separate project, not a fork, with its own console, its own command set and no status frame at all — which is why most of this app goes quiet on it. What survives the switch is set out in Alternative firmware. This page is about getting it on, and off.
What you download
The firmware lives on the author’s own page rather than on GitHub, as two downloads: a build with Bluetooth LE and one without. Each is a ZIP holding a single .bin, and that is all — no changelog, no version file, no separate images.
That single file is a complete image: bootloader at 0x0, partition table at 0x8000 and the firmware at 0x10000, all in one, exactly the way the official firmware’s merged file is laid out. Reading one here confirms it. So it is written as one file at 0x0 and there is no three-file alternative. Because it starts at 0x0 it also covers the small area the official firmware keeps its settings in, so those do not survive the switch. It is a much smaller file than the official merged image — about three-quarters of a megabyte against 8 MB — because it carries no padding, so the write is quick.
One binary covers both PSRAM types. The author’s own notes say the build is deliberately kept to a single binary with no OSPI/QSPI distinction, and describes trimming memory to keep it that way. The variant question that dominates official firmware installs simply does not arise here — which also means there is nothing to check, and nothing that can be checked wrong.
What it was written for
Worth reading before you decide. The author develops and tests on ATS-Mini V1/V3 hardware with his own modifications — a wire link for the RTTY/CW decoder, and an I2S microphone for the newer decoders — and states plainly that a V4 has never been available to him, so he makes no claims about that revision. The firmware targets the open V1 hardware and boards compatible with it.
The Bluetooth build carries an extra warning from its own author: very little memory headroom without PSRAM, a ring buffer of only 2000 characters, no I2S alongside it, and a note that it will probably not be developed further — he describes it as a stopgap for radios with failing rotary encoders. That matches what this project found from the other end: across an entire Bluetooth session with the radio here, not one byte ever came back.
Writing it
The write itself is unremarkable: one complete image at 0x0, so any of the tools in Installing firmware will do it, and so will the installer on this site.
- Unpack the ZIP so you have the
.binon its own. - In the installer, run steps 1 and 2 as usual — the chip reading is still worth having even though the firmware has no variants.
- In step 4, tick I have a raw .bin image rather than a release archive and load the file. The app reads its header, recognises a complete image and offers
0x0. - Confirm the override. A bare
.bincarries no variant marker, so nothing can be verified against your hardware; here that costs you less than usual, because this firmware has no variant to get wrong. - Back up first in step 5, then write.
Most of this app goes quiet
This firmware sends no status frame, so the readings that fill the status panel, the logbook and the band display have nothing to fill them, and unreported values show as — rather than a misleading zero. The app also removes the controls it cannot support instead of greying them out: on a radio confirmed as Berndt, the memory sidebar, the theme editor, calibration, sleep, the spectrum scanner and the seek panel are absent from the page, along with their keyboard shortcuts. And it accepts roughly one command every five seconds, so the app paces itself to match and shows you a countdown.
The app never adopts this profile by itself — it asks, once per radio, and remembers your answer for that device. Why it asks, and what it sends once you say yes, is in Alternative firmware.
Going back to the official firmware
Nothing about this firmware makes the return trip harder. It is an ordinary ESP32-S3 flash write in the other direction.
- Write the backup you took — a complete image at
0x0, the same way it came off. Firmware backup and recovery covers it. - Or install an official release from scratch with the installer or one of the routes in Installing firmware. This time the variant matters again, so let step 2 read your board.
- Clear the app’s stored answer. Not this firmware? in the Connection panel forgets the confirmation you gave for that radio, so detection starts from scratch on your next connection.
Once you are back on the official firmware, Firmware versions covers what the version number on it actually buys you.