Skip to content
ATS Mini Controller
Offline
ReferenceFirmware & recovery5 min read

Installing H. J. Berndt’s firmware

Where this firmware comes from, what you actually download, why one binary covers both PSRAM types, what stops working in this app once it runs, and how to get back to the official 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.

  1. Unpack the ZIP so you have the .bin on its own.
  2. In the installer, run steps 1 and 2 as usual — the chip reading is still worth having even though the firmware has no variants.
  3. 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.
  4. Confirm the override. A bare .bin carries 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.
  5. 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.

  1. Write the backup you took — a complete image at 0x0, the same way it came off. Firmware backup and recovery covers it.
  2. 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.
  3. 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.

Frequently asked questions

Where do I get H. J. Berndt’s ATS Mini firmware?
From the author’s own page at hjberndt.de rather than from GitHub. There are two downloads, one build with Bluetooth LE and one without, and each is a ZIP containing a single .bin file. The page is a devlog rather than a manual, and there are no version numbers or release notes.
Does Berndt’s firmware need the OSPI or the QSPI build?
Neither. There is only one binary and it covers both PSRAM types. The author states that the build is deliberately kept to a single file with no OSPI/QSPI distinction, so the variant question that applies to the official firmware does not arise.
How is Berndt’s firmware flashed?
As one complete image at address 0x0. The single .bin inside the ZIP contains the bootloader, the partition table and the firmware together, laid out like the official firmware’s merged file, so there is no three-file option. Any ESP32-S3 flashing tool will write it, including the installer on this site through its raw image option.
How do I go back to the official firmware after flashing Berndt’s?
Write the backup you took before flashing, at 0x0, or install an official release from scratch — which means picking the right OSPI or QSPI build for your board again. Then clear the app’s stored firmware answer with “Not this firmware?” in the Connection panel so it re-detects on the next connection.

More

Device

Explore

Settings

Theme

Welcome to ATS Mini Controller

This web app connects to your ATS Mini radio over USB or Bluetooth LE and lets you control it directly from a computer or phone. It adds remote tuning, memory slot management, screenshot capture, audio streaming, spectrum scanning, theme editing and other features on top of the device's built-in firmware.

Firmware 2.34+: pick a connection method

Starting with firmware 2.34 the radio accepts remote control over USB or Bluetooth LE. Pick by what matters more for you: fast screenshots (USB) or clean audio from the radio’s 3.5 mm output (Bluetooth) — the two transports trade off in opposite directions.

  • USB Serial

    Settings USB Port change Off to Ad hoc

    Works in any Chromium-based browser. Requires a data-capable USB-C cable (opens in a new tab).

    Best for screenshots and theme work. Transfers complete in a second or two. Audio capture is noisy while the cable is connected — the radio lacks the filtering needed to isolate its 3.5 mm output from the USB power rail, so hum and switching noise bleed into the audio path.

  • Bluetooth LE

    Settings Bluetooth set mode to Ad hoc

    Chrome / Edge / Opera on desktop or Android. BLE is experimental in firmware 2.34.

    Best for clean audio. Bluetooth LE carries the remote control only, never sound: the audio still travels by cable from the radio’s 3.5 mm output to your computer. With no USB cable attached the radio runs on its battery, so that output stays free of the USB power-rail noise that bleeds through on a wired connection. Screenshots are much slower (~30 s) because of the firmware's BLE throughput cap.

More than one firmware

Besides the official firmware, the app carries profiles for the Monster fork and for H. J. Berndt's firmware. It works out which one your radio runs from the replies it gets, so there is nothing to pick. When nothing matches, it says so instead of guessing.

  • Berndt firmware is never assumed. It reuses some of the official firmware's keys and what they do there is not established, so the app asks you before switching to it.
  • Missing controls are deliberate. Whatever a firmware cannot do is left off the page rather than greyed out, and on Berndt firmware, commands go out one at a time, a few seconds apart.
How the app handles other firmwares (opens in a new tab)

Keyboard shortcuts

Single keys control the radio on the Controller page, except while you type in a field.

←→
Tune one step
↑↓
Volume up / down
Enter
OK
BN
Next / previous band
MV
Next / previous mode
SA
Next / previous step
WQ
Next / previous bandwidth
GF
AGC up / down
LK
Backlight up / down
IU
Calibration up / down
OP
Sleep on / off
T
Toggle status log
C
Screenshot
H
Log reception
D
Cockpit view
⌘K
Search pages & stations