Includes

September 15, 2026 · View on GitHub

homeThing logo

homeThing C6

A handheld remote for TV, Sonos, Zigbee lights, and Home Assistant.
Physical buttons, a rotary control, fast access, and long idle life. No touchscreen, no apps, no daily charging.

Discord Instagram Website homeThing on GitHub

Prototype and fab costs sponsored by PCBWay. Boards arrive fully assembled, no soldering required.
PCBWay

Summary

The prototype uses a Seeed Studio XIAO ESP32-C6.

Features

  • Control a TV with on-board IR receive and transmit hardware
  • Drive music playback over Wi-Fi and BLE
  • Switch lights over Zigbee, Thread, or Matter
  • Map Home Assistant actions to physical buttons instead of app screens
  • Assign every button from a web page on the remote itself
  • Run for a long time between charges

Case

Assembled case

Assembled case

Exploded view of the case, buttons, board, and back shell

Exploded view: front shell, button caps, silicone pads, board, and back shell

Board (more info)

PCB and hardware

Raytraced 3D top view of the board Raytraced 3D bottom view of the board

Raytraced renders, top and bottom

Flat 3D top view    Flat copper top view          Flat 3D bottom view    Flat copper bottom view

Top render, top copper, bottom render, and bottom copper

RefPartRole
U1Seeed Studio XIAO ESP32-C6Main module: Wi-Fi, BLE, Zigbee/Thread
MK1DMM-4026-B-I2S-R I2S microphoneAudio input: PUI Audio bottom-port MEMS part on the back copper, hearing through a 0.5mm NPTH. LR and CONFIG tie to ground for left-channel output, C5 decouples VDD and R12 pulls sd down. It replaced the ICS-43434 on 2026-09-07, after three of the five rev-B microphones failed
U2TSOP6136 IR receiverIR receive: Vishay Panhead SMD part on the back copper, listening out the top end wall. AGC1, the most permissive of Vishay's settings, which is what lets remote_receiver learn arbitrary remotes. VDD sits on the switched ir_vdd rail rather than straight on +3.3V, gated by Q3 below
D1, Q1INL-3AHIR30 IR LED driven by MMBT2222AIR transmit; D1 leads hand-bent 90° to fire through the top-edge notch (see BEND 90° silk mark)
U3PCF8575DBR I2C GPIO expanderButton input fan-out
SW1SW11TL3315NF160Q tactile switchesDiscrete buttons
ENC1Adafruit ANO rotary encoderScroll wheel: encoder channels plus five switch signals
D2D5XL-2020RGBC-WS2812B addressable LEDsStatus light chain of 4, WS2812B protocol: GPIO17 drives D2 DIN, DOUT cascades to D5. VDD sits on the switched led_vdd rail rather than straight on +3.3V, gated by Q2 below, with C4 as the only bulk cap on the chain (see docs/timeline.md)
Q2, R10, C4AO3401A P-channel MOSFET, 1M 0603 pull-up, 1µF X7R 0805 capLED rail load switch: high-side Q2 gates +3.3V (source) onto led_vdd (drain) for D2D5, gate net led_en on U1 pad 11 (GPIO18/D10), driven low for rail on. R10 pulls the gate to the source so the rail is off by default at boot while GPIO18 floats as an input; C4 is the mid-chain bulk cap on led_vdd. Cuts the ~2.0mA the LEDs burned when dark to tens of µA (calculated, not yet measured). Firmware must hold GPIO17 low or high-impedance whenever the rail is down, or DIN pushes current into the dead rail
J1JST S2B-PH-SM4-TB(LF)(SN)Battery connector, PH series right-angle SMD

The auto-generated BOM lives at c6remote-kicad/export/c6remote-bom.csv. It tracks the latest repo state and is not release-validated.

Schematic

Current schematic

Firmware

Button assignment

Open http://homething-c6.local/buttons in a browser on the same network. The page draws the remote layout. Select an input, then assign IR, Zigbee, BLE HID, or voice. You can also clear the input. Hold SW1 for two seconds to use the on-device assignment mode. RECEIVER.md documents both routes. The page has no password, so use it only on a trusted network.

Status

The fabrication and bring-up history, the rev-B delivery, and the unit 1 versus current design comparison are in docs/timeline.md. Open work is in ROADMAP.md. The power budget is in docs/power-budget.md.

Relationship to homeThing

This project grew out of homeThing but has a narrower job: instead of a general smart display, it is a simple dedicated remote. It has no screen and more buttons, and is built on a custom PCB that is easy to build.

Includes

Sponsorship

PCBWay sponsors 3D Printing and PCB assembly costs on this project during the prototyping phase!

If you are interested in their awesome fabrication services please check them out.  They offer

3D prototyping, PCB design and assembly, as well as CNC metal fabrication.  Costs are reasonable and the quality is as good as it gets.  Thank you PCBWay for sponsoring us and other fun projects!

cargo sponsors our website!

They make it super easy to keep things pretty and up to date! It’s honestly so much easier than managing our own site, highly recommended!