Final Models Planned and software refinements
13

Four Models Almost Done

By Jim McCarthy  ·  April 23rd 2026  ·  Timeline Start of April 2026
3D printed V3 control box with Custom Marimbas Canada JMcCarthy logo
The V3 housing — Custom Marimbas Canada and J McCarthy embossed on the side. The clip-on mounting caddy sits alongside, ready to attach to the frame.

The start of April was productive — though a two-week personal trip sat in the middle of it all. Before leaving, the focus was on finalising the hardware decisions for all four versions of the control system. Every version drives the motor through the TMC 2209, but each has a different brain, feature set, and enclosure.

V1 was already complete and intentionally left unchanged — two Arduino Unos, the HC-05 Bluetooth module, OLED display, full physical controls, 3D printed housing with clip-on caddy, and an external 12V rechargeable battery. A sophisticated and capable system that could run for hours without mains power.

V3 had been well developed — great graphical interface on the Waveshare touchscreen, good housing and mounting clip. One unit was lost to a temporary wiring mistake, but a replacement was ordered and most hardware issues resolved before departure.

Waveshare RP2040-Zero microcontroller board
The Waveshare RP2040-Zero — tiny, fast, and capable of running the entire system from a single unit.

Work also began on V2, using the Waveshare RP2040 — smaller and faster than the Arduino Uno, capable of running the whole system from a single unit. Two variants were planned. The standard V2 would mirror V1 in capability — OLED display, physical controls, battery built into the box — but more compact. The V2BT special version would strip away all physical controls entirely, making it a tiny Bluetooth-only unit controlled exclusively through the phone app, with a single 18650 cell built in to keep the size right down.

HM-10 Bluetooth BLE module
The HM-10 Bluetooth BLE module — the upgraded protocol used in V2 and V3, enabling bidirectional communication with the phone app.

Because V3 used a different Bluetooth protocol to the HC-05 in V1, a modified version of the phone app had to be written. That led to choosing an improved Bluetooth module for V2 as well — matching the newer protocol. With the upgraded hardware also came an improvement in how the phone app communicated: rather than just sending data one way, it could now receive data back from the control box too. Any changes made on the physical controls would be reflected on the phone app in real time — a meaningful step up in polish.

Solving problems for the new hardware actually leading to improvements in the whole system.

Power wiring for V2 with 3 18650 cells, switch and voltage regulator
12V battery pack with BMS board made from 18650 cells
Modified 3-cell battery with BMS, switch and step-down converter, supplying the 5V rail for the RP2040 and the IR sensor.

The RP2040 also presented a challenge: not enough analogue inputs to support the infrared controller... but because the two controllable variables would only ever be controlled by the knob OR the IR sensor, I decided a solution might be to use a simple toggle switch to switch the input between potentiometer and IRS. The problem with this was that the software needed to know which state the switch was in - both for bluetooth communication with the phone app, and because the voltage needed to be interpreted differently with the IRS than with the potentiometer. Eventually the final solution was very simple - use double pole switches... There was plenty of spare digital inputs left on the RP2040 so the other pole of each switch was set to pull a pin to ground creating a matrix of 4 possible IRS conditions between the two pins. This sparked a realization that I could include a BOTH mode for the IRS where it was controlling both variables at once! This was even better than the original three-button configuration. Simpler to use and with an extra feature!

One RP2040 was lost to experimentation, but replacements were ordered and hardware sorted before the trip. During the trip itself, the phone app was rewritten to include the new IR switch options, and the internet control interface was updated to match. I would have to update the V3 software also when the time came. Because V2 and V3 versions had batteries built in, I decided it was important to be able to monitor charge, so V2 code was changed to add battery charge display on the OLED and both V2 and V3 code was updated to send the info through bluetooth also - phone app updated to include a battery display received through bluetooth. The actual battery monitoring would be done with a small board designed for this - the MAX17048 battery fuel gauge - that could be easily added to the I2C communication chain already in use on the RP2040.

MAX17048 battery fuel gauge module
The MAX17048 battery fuel gauge — communicates over I²C to report accurate charge levels to both the OLED display and the phone app.

By the time the trip was over, all the newly ordered hardware had arrived. Everything just needed to be wired up properly and tested. Four versions of a motor control system, each with its own character and use case — all sharing the same core motor driver, the same fundamental architecture, and the same phone app. Almost done.

Vibes Motor Unlimited V2 control box faceplate
The V2 control box — Vibes Motor Unlimited V2 embossed on the face, toggle switches for IR control, OLED display, and the motor sitting directly on top.
Four versions. One motor driver. One phone app. Each with its own brain, its own enclosure, and its own place in the lineup — from the fully-featured V1 to the pocketable V2BT. The system had grown far beyond the original vision, and it wasn't finished yet.

Next Post