BinRange tracks six wheelie bins with ultra-wideband radios

The author describes BinRange, a home project he admits is ridiculously over-engineered. Home Assistant already knows which bins are due for collection and can send a reminder, but it cannot tell whether he has actually put them out. He has six bins at one house (general waste, food compost, garden waste, two recycling bins and a glass bin), and they are not all on the same collection schedule. The Waste Collection Schedule integration for Home Assistant scrapes the council's schedules and tracks what is due.

Years ago he tried cheap Bluetooth tags on the bins with an outdoor Bluetooth proxy. It was frustrating: batteries drained quickly, proximity readings wandered, and the proxy was unreliable in that installation. The approach estimates distance from RSSI (received signal strength), which depends on walls, parked cars, reflections, antenna orientation and differences between radios, so a weak signal can mean the bin moved or that something got in the way. Ultra-wideband (UWB) instead measures the time radio signals take to travel between devices, which gives a distance without guessing from signal strength. As he puts it, choosing a different radio does not make parked cars disappear. AirTags first got him interested in UWB.

Over a few weeks the idea became BinRange: a fixed radio anchor, six small battery tags, and a Home Assistant setup that combines where the bins have been seen with when they are due. It also has a printed enclosure, custom firmware and wireless updates. He leaned heavily on Codex throughout the build. For the bins, one anchor is enough: he only needs to know whether a bin has moved far enough from its storage area to count as Out. He uses a ten-metre boundary, where inside is Home and beyond it is Out when there is a fresh reading. He notes this is specific to his installation.

The first experiment used two Makerfabs ESP32-WROVER/DW3000 boards powered over USB, with a local web view to separate them and watch the results. Antenna orientation mattered a great deal: at about ten metres, changing the boards from flat to upright took the observed success rate from 37% to 100% in that test. A slower radio setting with a longer preamble also worked where the initial fast setting struggled. In his first calibration the reported distance differed from a tape measure by less than two centimetres, though he stresses that is not a promise for every tag, orientation or outdoor position. In a later recorded test, a measured gap of 10.1 metres gave an average reading of about 10.09 metres, with a standard deviation of three centimetres. In an outdoor walk, readings were reliable to roughly thirty metres and intermittent further out; the furthest recorded reading was 37.28 metres, with gaps, and a car could block the path completely.

The anchor publishes readings over MQTT, and Home Assistant discovers a separate device for each tag. He considered an ESPHome component but it added little. There is no extra BinRange server or cloud service, and the radios keep ranging if Home Assistant or the MQTT connection is unavailable.

For the bin-side hardware he wanted a small self-contained puck and needed tags that would run his own firmware with his own anchor, since a small UWB tag is not automatically compatible with another UWB product. He bought KKM K4W tags, which have an nRF52833 processor, a DW3110 radio and a LIS3DH accelerometer, and take removable CR2477 coin cells. The two Makerfabs boards cost US$123.64 including shipping; ten sample tags at US$25 each, a programming jig and shipping came to another US$330. He says that is what the experiment cost at the time, not a shopping list or the cost of a finished six-bin kit. The supplier said the tags could run his firmware and offered a jig for the programming connections. He used a spare Nesso device as a programming probe for the pogo-pin jig and commissioned each tag in turn: programme it, establish its identity, pair it, label it, assign it to a bin and reassemble it.

The accelerometer's interrupt output is wired to a GPIO pin on the nRF, so a tag can sleep for long periods with no radio traffic and wake on a physical event. When things settle it returns to occasional check-ins, with the UWB radio asleep between attempts. The firmware default is ten minutes when stationary; he has changed the installed fleet to thirty minutes through Home Assistant controls, keeping five-second reports while a tag is moving. He has not yet measured how much battery life this buys, and the voltage trace so far does not support an estimate in months or years.

The anchor can now deliver signed firmware updates to paired tags over Bluetooth. The previous application is kept so a bad update can roll back, and success is reported only when the tag runs the exact expected image and confirms its own health. Codex helped him generate and simulate test conditions and failure modes. He tested corrupt images, interrupted transfers, selected power-loss points and watchdog recovery, and checked that a tag can confirm it is healthy without a radio reply, rather than abandon working firmware because the anchor is unreachable. Going from one tag to several exposed a bug: a record in the Bluetooth library was sized for the number of simultaneous connections rather than paired devices, so adding a further tag could fail even though its keys had been stored. After the fix a new tag could pair without clearing the existing ones. He has since updated the installed anchor and all six tags wirelessly without re-pairing or using the jig, but some earlier connection attempts needed retries, so he wants more evidence before calling the process reliably unattended. The programming probe remains the rescue route. The text then moves to the anchor's enclosure, which he says took several goes.

Key facts

  • BinRange is one fixed UWB anchor plus six battery tags on wheelie bins; Home Assistant combines sightings with the council collection schedule to show whether bins are Out.
  • At about ten metres, turning the test boards from flat to upright raised the observed ranging success rate from 37% to 100% in that test; a later test gave an average of about 10.09 metres for a true 10.1 metres.
  • KKM K4W tags (nRF52833, DW3110, LIS3DH accelerometer) run the author's own firmware; stationary check-ins were moved from the ten-minute default to thirty minutes, and battery life is not yet measured.
  • The experiment cost US$123.64 for two Makerfabs boards plus US$330 for ten sample tags, a jig and shipping; the author says this is not the cost of a finished six-bin kit.
  • The anchor sends signed firmware updates to tags over Bluetooth with rollback; all six tags were updated wirelessly, though some earlier attempts needed retries.

Why it matters

This is a personal hobby build, not an industry development, and the author is open about having over-engineered a trivial problem. Its interest is as a concrete worked example of why UWB can beat Bluetooth signal strength for a simple presence question: time-of-flight ranging avoids guessing distance from signal strength, which walls, cars and antenna orientation distort. The write-up also shows practical details a builder would otherwise find out the hard way, such as the effect of antenna orientation on ranging success and the need for tags that accept your own firmware.

Who it affects

Mainly home automation hobbyists, especially Home Assistant users with MQTT, and embedded developers who work with nRF52 chips or UWB radios. The author says he has used nRF52 devices for years. The build is tied to his house, with six bins on different council schedules and a ten-metre Home/Out boundary he describes as specific to his installation.

How to use it

No code, firmware or hardware designs are offered for reuse in the text. What a reader can take away is the approach. Use one powered UWB anchor and decide a distance boundary for your own storage area. Publish readings over MQTT so Home Assistant discovers each tag as a device, and combine them with the Waste Collection Schedule integration. Check that any tag you buy lets you run your own firmware and is compatible with your anchor. Test antenna orientation early, and calibrate against a tape measure. The author's costs were US$123.64 for two Makerfabs boards and US$330 for ten tags, a jig and shipping, which he says is not a current shopping list.

How solid is it

This is a first-person account from the builder, and the numbers are his own measurements in specific tests, not independent results. He is careful about scope: the under-two-centimetre accuracy was seen in the first calibration only, and the 37% to 100% change applies to that test. The account here covers the build up to the anchor's enclosure. The mention of Codex is incidental to the hardware story.

Risks and caveats

Outdoor range was reliable only to roughly thirty metres with development boards, with gaps beyond that, and a car could block the path completely. Mounting a tag under a bin rim will behave differently from holding a board upright in the open. Battery life for the installed tags is unknown, since the author has not measured the effect of the thirty-minute stationary interval and says the voltage trace does not support an estimate in months or years. Over-the-air updates worked on the installed fleet, but some earlier connection attempts needed retries and he wants more evidence before calling the process reliably unattended. A tag that can run your own firmware is not guaranteed for any given UWB product.

“Choosing a different radio doesn’t make parked cars disappear.”

— The author of the BinRange write-up