Software Completion
The chair finally drives reliably, and I can actually sit in it and move around now.The biggest challenge throughout the software was communication between the three Brains. I built a serial protocol that handles the startup handshake, LEFT/RIGHT assignment, health packets, retries, sequence/session validation, malformed frames, and local command timeouts. Early versions would still lose the link even when bytes were clearly being transmitted. This came from a combination of partial frames, serial self-echo, startup timing, and motor queries taking long enough to delay communication. I fixed these issues by improving the framing and recovery system, adding direction tags, limiting how much serial data can be processed in one loop, safely retrying packets, and prioritizing communication before slower motor checks.Motor initialization also caused problems because all of the V5 motors do not necessarily become available at exactly the same time after startup. Earlier versions would sometimes report motor disconnects or H-Bridge faults during startup. The drivetrain Brains now wait for every motor to begin returning valid health information before considering initialization complete. I also flipped the motor directions for the top and bottom of the drivetrain where needed.The controls were completed during this process. The broken throttle potentiometer was replaced with the Rotation Sensor on port 17. It now supports CENTER calibration and provides signed forward/reverse input. I corrected the steering direction and tuned the steering feedback. Controller mode now supports forward, reverse, normal turning, and turning in place.The safety system was also simplified into clear startup, parked, armed, and fault states. E-STOP is always available and is intentionally not recoverable without restarting the system. The drivetrain brakes use COAST.I moved the displays out of the main control path so rendering cannot interfere with serial communication. The master and drivetrain displays now provide live motor temperatures, faults, battery status, link state, steering/throttle positions, and communication diagnostics.I also updated VEXide and Rust during development.
Current Issue
I encountered one intermittent power issue during testing. The master Brain does not have its own battery and is powered through the Smart Cable connections from the two drivetrain Brains. During several tests, the master entered a white-screen state while one drivetrain Brain went completely black. The drivetrain side that shut off was not always the same.At the time, both drivetrain batteries were fairly low and were also at different charge levels, roughly 30–50%. I completely shut down the system, replaced both batteries, and restarted all three Brains. The issue stopped occurring after that, and the chair completed additional driving tests normally.My current theory is that the two independently powered drivetrain Brains may be interacting electrically through the master because the Smart Cable connections also carry power. Different battery voltages, or voltage sag while the motors were under load, may have caused a brief power transient. I have not confirmed this yet, so I am leaving the wiring unchanged while I collect more evidence.If the issue happens again, I may restructure the system so one drivetrain Brain also acts as the master, which would remove one Brain from the power-sharing arrangement. Another option would be changing how power is carried between the Brains while still keeping wired communication.