Bench images: the FSK build.

Listener v1.1.0, built 2026-09-18. This is Build 3 of the Radio Sensor Listener: the same sketch with the FSK decoder set, for Ecowitt and Ambient Weather sensors, La Crosse View and IT+, and the Bresser 5-in-1 family, on 433, 868, 915 or 920 MHz. These images compile, and they have not yet heard a sensor, on our bench or anyone’s. They are here for the people who would rather find out than wait. Nothing can be damaged by trying: the radio only receives.

The order we will run it in, and you can too.

  1. Prove the wiring with on-off keying first. On the public page, flash ESP32 (classic) + CC1101. With an AcuRite Iris nearby, stations should show acurite-5n1:… with a dBm figure. Note frames per minute against the bare receiver in the same spot.
  2. Flash the FSK image below. Band 915.00 (the default). With an Ecowitt sensor beside it, stations should show fineoffset-… within a couple of minutes, and status should list no unmapped keys.
  3. Retune. set band 433.92 with the Iris talking: nothing should decode, because this image is FSK. set band 915.00: the Ecowitt sensor returns.
  4. Pull and refit the sensor’s battery. The same id should come back; the row goes silent, then re-claims.
  5. Soak for a day on the heap-reporting image: heap flat, no reboot, frames climbing.

Which CC1101 module is on the bench matters for the range figure: the “868/915” kind is the right one at 915; a “433” module will hear across the bench and not much further. Antenna wire: 8.2 cm at 915.

Flash.

Use Chrome or Edge on a desktop. This page must be served over HTTPS to flash. same pins as the on-off-keying image · default band 915.00 · unbenched
the soak image: the library prints heap use · unbenched
same pins as the on-off-keying image · unbenched
same pins as the on-off-keying image · unbenched
same pins as the on-off-keying image · unbenched
SX1276; a 433 MHz V2 is the wrong board for 868 / 915 · unbenched
V3 pins only · unbenched
SCK 32 · MOSI 27 · MISO 35 · CS 25 · GDO0 33 · GDO2 36 · unbenched
If the board won't take the flash, or it restarts over and over

Hold the BOOT button down while you plug the USB cable in. Let go once it is plugged in, then press the install button above. That is the whole fix, and it is worth trying first any time a board is being stubborn.

Here is what is going on. A board with no working firmware on it restarts several times a second, forever, because it looks for a program to run and finds nothing. The installer needs the board to hold still long enough to write a megabyte and a half, and it cannot get hold of one that keeps restarting. Holding BOOT as the power arrives puts the chip into the loading mode it was built with, where no program runs at all, so there is nothing to restart and the installer gets a still target.

If you have a serial monitor open, you will know it worked because the scrolling stops. Quiet is what you want.

You may also see invalid header: 0xffffffff repeating in the monitor. That reads like damage and it is not: it is what an empty chip looks like, which is exactly where a board lands if a write was interrupted. The board is fine. Flash it again with BOOT held and it will come back.

If it flashes and runs fine on its own but fails the moment the sensor is connected, suspect whatever sits between them before you suspect either one. A screw-terminal carrier, an adapter board or a breakout is a component too, and a bridged or cracked terminal on one will stop the board booting while the sensor and the ESP32 are both perfectly good. Detaching the sensor is the quickest test: if the board comes back to life, neither it nor the sensor is at fault, and the thing in the middle is where to look. That exact fault cost us most of a night.

Two other things are worth checking before you decide a board is bad. Use a data USB cable, since a charge-only cable carries power but no signal and gives you the same symptoms. And plug straight into the computer rather than through a hub, because a write that browns out part way through leaves the board empty in just this way.