Quick update

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.

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.