# homeThing built iPod-style ESPHome remotes for Home Assistant

> homeThing is a finished open source project for physical smart home remotes: a 3D printable case and PCB, an ESPHome menu system with an iPod-like scroll wheel, and components for controlling Home Assistant, now superseded by homeThing C6.

**landonr/homeThing** — Wifi Smart Home Remotes that run on ESPHome

- Repository: https://github.com/landonr/homeThing
- Website: https://homething.io
- Stars: 547 · Forks: 42
- Language: C++
- License: GPL-3.0
- Published: 2026-10-22 · Updated: 2026-10-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/landonr-homething

## Three pieces: a case and board, a menu system, and ESPHome components

homeThing is a collection of software and hardware for creating universal remotes that control smart home devices, and the README splits it into three components that belong together. The first is the case and circuit board, described as open source, customizable and 3D printable. The second is the menu system code, an ESP32 menu system for controlling smart home devices in a way the README compares to an iPod menu. The third is a set of ESPHome components for controlling Home Assistant devices, which live in a separate repository, landonr/esphome-components.

That structure is the thing to understand before picking a board. homeThing is not an app you install and it is not a firmware image you flash. It is a design you reproduce: hardware files you order or print, an ESPHome configuration you adapt, and a menu layer that turns a scroll wheel into navigation. The project is written in C++, and the repository carries the case design files, the fonts, the shared components and a set of per-device ESPHome yaml configurations.

The homepage is homething.io, and the GettingStarted.md file in the repository is the entry point for anyone who wants to build their own remote.

## Two screen remotes, and the reasons the first one lost

There are two hardware designs in the tree. The TDisplay homeThing is based on the Lilygo TTGo TDisplay, an ESP32 with an integrated screen, described as a low cost remote with minimal parts, a scroll wheel and 2 configurable buttons, USB-C charging and a 3D printable case with 3 parts. The TDisplay S3 homeThing is based on the Lilygo TDisplay S3, an ESP32 S3 with an integrated screen, with a faster processor, a larger display, a custom PCB for easier setup, an IR blaster, an internal microphone for a voice assistant, a scroll wheel with 5 configurable buttons, USB-C charging and a case with 2 parts.

The README explains the move from the first to the second in plain terms: the original device had slow performance, lacked buttons, and had challenges with assembly. That is a useful summary of what a first hardware revision gets wrong, and it is the reason the earlier design is not available for purchase while the S3 can still be ordered fully assembled from PCBWay.

Both remotes are battery powered, and the README notes they can also be plugged into USB and left in one place. The sales figures in the table, 27 assembled units and 32 PCBs, tell you the scale of the run behind the design, which is a small one compared with a commercial product.

## The menu is a scroll wheel with apps behind it

The menu system is the part of homeThing that is a software project rather than a piece of hardware, and its stated goal is minimal configuration. The interaction model is deliberately simple: you scroll through a list and press the centre to select, and with a scroll wheel the top button goes back. On the M5Stack, going up past the top of the list goes back instead. A scroll bar appears when the list extends past the screen, and a header is always shown at the top with information about the current state.

There are two behaviours that come from the fact that this is a battery device with a small screen. The display sleeps after 10 seconds of idle and the device sleeps after 2 hours of idle, and the screen returns to the now playing view after it wakes. Font size and UI size are adjustable in the yaml configuration, and the configuration stays short because the complicated code is pulled in from other files, with a common directory and a components directory at the top level of the repository.

The apps that sit on top of this are what make it a remote rather than a menu demo. The repository carries demo gifs for the TDisplay, the M5Stack Fire and the Lilygo T4, which is how the different board targets are shown working.

## The Now Playing app drives speakers and televisions

The Now Playing screen is the core app, and it has two halves. In the music mode, you control media players with the scroll wheel and scroll for volume, and the target devices are smart speakers such as Sonos, Spotify and Google Home. You can change the source from Spotify playlists, Sonos favorites and custom lists, and you can manage speaker groups.

The television mode is a separate menu layout. It offers menu navigation with up, down, left, right and select on the scroll wheel, then a second menu with power, back, home and pause, plus a change source action over the TV source list. Soundbar support is listed as optional.

The interesting design decision is that the physical inputs stay fixed while the app changes. A single scroll wheel and a small button set have to cover a media player, a TV, an infrared toy and a game, and the way that is achieved is by putting each domain behind its own screen and its own menu logic rather than by adding more hardware. The S3 design with 5 configurable buttons has the same goal with a slightly larger input budget, and the successor C6 takes the scroll wheel further and removes the screen entirely.

## Infrared toys, games, and the C6 successor

Beyond media control there is an IR Remote app with its own custom UI and buttons for controlling infrared cat toys, and a Games section with Snake and Breakout. The IR path exists because the S3 board carries an IR blaster, and the app is written for the custom hardware rather than being a generic infrared blaster utility.

The C6 is worth understanding because it explains where the design went. The successor named in the README is homeThing C6, a universal remote with a scroll wheel, no screen, better battery life, and also sponsored by PCBWay. Removing the display is a large simplification: no fonts to size, no screen sleep rules, no display to hold the header, and a device that spends less time awake. The screen was the source of the original device's performance complaints, so the design answered its own critique by getting rid of it.

Because the C6 is a different repository with its own hardware, anyone evaluating homeThing today is effectively choosing between reproducing a finished design or starting from the successor.

## The project is finished, and the files are the point

The status is stated at the top of the README in a way that leaves no room for interpretation: this project is no longer in active development. The homeThing S3 can still be ordered fully assembled from PCBWay, and the code, case files and PCB files stay in the repository for anyone who wants to build their own. Neither the TDisplay nor the S3 is in active development any more, and the work has moved to homeThing C6.

The mechanics of that arrangement are worth spelling out for anyone who adopts it. The GPL-3.0 licence covers the code in this repository. The hardware side is sold as a board you order, and the case is a set of 3D print files under the Case Design directory, with the same directory holding the files for both remotes. The build guide is the GettingStarted.md file, and the release scripts in the repository, buildremote.sh and release.sh, show how the published tarball, homeThing_0.0.6.tar.gz, was produced.

The last push to the repository was on 2026-10-13, and the only tagged release is 0.0.6 from 2023-06-12. A recent commit and a finished product are different things, and this is the case where they differ.

## The parts list, and what to verify before ordering a board

homeThing was not designed for one specific device, and the README says it can run on almost any ESP32, listing examples: the M5Stack Fire, the M5Stick C, the Lilygo T4, the Lilygo T-Display TTGO, the Lilygo T-Display S3 and the Lilygo T-Display S3 AMOLED. The repository ships a matching ESPHome configuration for each, named tdisplay-ipod.yaml for the first remote, tdisplay-s3.yaml for the second, tdisplay-s3-amoled.yaml for the AMOLED variant, tdisplay-t4.yaml for the T4, m5stack-fire.yaml for the M5Stack Fire, and basic.yaml as a starting point.

Those file names are the practical checklist. Each configuration encodes the pins, the display, the scroll wheel and the buttons for that board, so a device without a matching file means writing one, which means working inside the ESPHome component model rather than simply copying a yaml file. The per-board files also carry the applications, so a board with no infrared hardware cannot run the IR app as configured.

The other half of the checklist is the printing. The case for the first remote is 3 parts and the S3 case is 2 parts, and the files sit in the Case Design directory, with a more specific subdirectory for the S3 design. Assembly difficulty was one of the three reasons the first device was retired, and the S3 design with its custom PCB was the response, so the assembly effort is lower but not zero. If you want a ready-made board, the README points at the PCBWay pages for ordering parts or a fully assembled unit.

## Conclusion

Adopt homeThing only if you want to reproduce a physical scroll wheel remote for Home Assistant and are willing to work from the archived design files, since the case, PCB and menu code are all in the repository and the S3 board can still be ordered assembled from PCBWay. Do not start a new product on it, because the README states the project is no longer in active development and points to homeThing C6 as the successor, a screenless remote with a scroll wheel and better battery life. Before you build, check three things: that the ESPHome yaml for your exact board exists in the repository, since configurations are per device including tdisplay-ipod.yaml, tdisplay-s3.yaml, tdisplay-s3-amoled.yaml, tdisplay-t4.yaml, m5stack-fire.yaml and basic.yaml, that your printer can produce the case parts from the Case Design directory, and that you are comfortable with the GPL-3.0 terms of the code and the PCB files. The last push to the repository was on 2026-10-13 and the only release is 0.0.6 from 2023-06-12.

## FAQ

### Is homeThing still being developed?

No. The README states that the project is no longer in active development, and that work has moved to homeThing C6, a screenless universal remote with a scroll wheel and better battery life. The homeThing S3 can still be ordered fully assembled from PCBWay, and the code, case files and PCB files remain in the repository.

### Which ESP32 boards can homeThing run on?

The README says it can run on almost any ESP32, listing the M5Stack Fire, M5Stick C, Lilygo T4, Lilygo T-Display TTGO, Lilygo T-Display S3 and Lilygo T-Display S3 AMOLED. The repository ships a matching ESPHome configuration for each of those boards.

### What does the homeThing remote control besides media players?

The menu system includes an IR Remote app with a custom UI for controlling infrared cat toys, a Games section with Snake and Breakout, and a Now Playing screen that controls speakers such as Sonos, Spotify and Google Home as well as televisions, with optional soundbar support.

### How do I build a homeThing remote myself?

The repository's GettingStarted.md is the entry point. You need the hardware, either the TDisplay S3 board or an ESP32 you already own, the 3D printable case files from the Case Design directory, and the ESPHome yaml configuration for your specific board, such as tdisplay-s3.yaml or m5stack-fire.yaml.

### What licence does homeThing use?

The repository is licensed under GPL-3.0, with the licence text in the LICENSE.md file at the top level of the project.

## Sources

- [landonr/homeThing on GitHub](https://github.com/landonr/homeThing)
- [License: GPL-3.0](https://github.com/landonr/homeThing/blob/main/LICENSE)
- [Project website](https://homething.io)
- [README](https://github.com/landonr/homeThing/blob/main/README.md)
- [Releases](https://github.com/landonr/homeThing/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/landonr-homething
