Real controls for your smart home
Real buttons. Info at a glance. Runs locally. All in a beautiful, customizable, and open-source package.

- Modular
- WeavePanel is built with modules. Mix and match to make the panel you want for your smart home.
- Customizable
- Choose what screens display. Assign buttons to control what you want. And themes make it yours.
- Local, no subscriptions
- WeavePanel runs on your local network. No cloud, no subscription, and you control all your own data.
- Open source
- WeavePanel will be open source and built with community in mind. Extend, improve, and share.
Subscribe to the newsletter
Get email summaries of WeavePanel news.
What’s new
The latest news on project WeavePanel
Easy custom tooling
Ask any woodworker, and the key to fast, high quality, repeatable cuts is to create custom tools, such as simple jigs. With AI, it is easy to do this for software projects.
Here’s an example. WeavePanel uses self-contained modules, each with their own microprocessor, software, and functionality. This also means each one has their own serial debug feed. However, most software tools display one serial monitor channel, so I was constantly switching between different windows to see the full picture of a WeavePanel network.

I wanted a single screen to see serial messages from all modules at the same time. I was unable to find an app like this, so I built my own with Claude in Xcode. After a couple hours of work, I could see all the channels at the same time. This custom tool immediately helped identify and fix a timing collision that had been plaguing the communication channel.
Planning the power bus
There are two main lines in WeavePanel: The communication line and the power bus. These send messages and electricity across the system. I created the communication line first because the results are more interesting (lights turn on, screens show information) and if I mess something up, nothing is damaged. However, if I run a power line incorrectly, I could damage or destroy a component. So extra planning here is a good idea.
Below is my diagram of the USB-C breakout board to the ESP32 hub and finally to a RP2040 module. I’ve included a few layers of electrical protection for added safety and stability.

Chapter 2: The plan
I’ve spent the last 15 years (or so) in the software world. With software you have nearly endless flexibility and can be loose with your plans. With hardware, you’re much more constrained. So before starting to build, I needed a plan.
Starting the conversation
WeavePanel will be a modular system, meaning you can mix and match the functions you want for your panel. Swap in a screen for richer info, or add a button module for controlling lights or other devices. This means communication between the various modules is a critical part of the overall design.
At 23:59 on April 1st, after much soldering and coding, I pushed the latest firmware to the devices. For the first time, I saw a JSON packet successfully transmit up and down the communication chain. A foundational piece of the architecture is finally in place.

Seeing the light
A core goal of WeavePanel is info at a glance. I decided on these circular screens (GC9A01) since they lend a more organic, less rigid feel. I also wanted the challenge of working with a less traditional grid-based design.
One concern was the resolution of the screen. I’m aiming for a feeling of quality, and a dim, pixelated, low-contrast screen would not help. Thankfully, the screens are sharp and bright, exactly the quality I’m aiming for.


Chapter 1: Introducing WeavePanel
WeavePanel didn't start with a product idea. It started with an annoyance. Here's the story, from frustration, to inspiration, to early planning.