-
Clean Wiring: Ditching Duponts for Custom PCBs and JSTs
05/09/2026 at 12:30 • 0 commentsIf you look at the first prototype of the TNY-360, it looked less like a high-speed quadruped and more like a mobile bowl of spaghetti.
Like many makers, my early build relied heavily on standard development boards and classic Dupont jumper wires. But packing a 12-DOF robot with microcontrollers, sensors, and power distribution into a compact 3D-printed chassis quickly became a nightmare.
![]()
Not only was the sheer volume of connectors taking up way too much physical space, but it was also a massive liability. The loose Dupont wires were catching the Electromagnetic Interference (EMI) I talked about in my last log, and every time the robot took a step, the wires threatened to pull loose.
I started hunting for off-the-shelf breakout boards that used JST connectors instead of standard 2.54mm headers. JSTs are lower profile, they lock into place, and they handle the heavy vibrations of a walking robot beautifully. The problem? I couldn't find exactly what I needed for my specific architecture.
Then I had a realization. I had just successfully designed a micro-PCB to fix the servos' potentiometers. Why was I still trying to force off-the-shelf boards to fit my needs? Designing that first tiny board made me realize that custom PCB design is actually much easier and more accessible than I originally thought.
So, instead of fighting the hardware, I designed my own boards.
![]()
The Result ?By designing custom PCBs for the main electronics, I was able to transition the entire robot to low-profile JST connectors. This allowed me to cut and crimp all the wires to the exact required lengths, eliminating the "rats nest" completely.
The inside of the TNY-360's chassis is now incredibly clean, spacious, and vibration-proof.
Even better, I took the opportunity to "idiot-proof" the assembly. I deliberately used different sized JST connectors for different peripherals. For example, sensors and sensors use entirely different pin pitch. Now, when someone builds their own TNY-360, it is physically impossible to accidentally plug a cable into the wrong port and fry the board !
![]()
A clean robot is a reliable robot!
-
The "Twitchy Leg Syndrome" and the Op-Amp Solution
04/23/2026 at 10:31 • 2 commentsWhen I started designing the TNY-360, I knew I wanted closed-loop control. "Blind" PWM servos just don't cut it if you want to do real robotics (calculating inverse kinematics, detecting terrain, auto-calibration). But spending $50+ per smart servo for a 12-DOF quadruped wasn't an option.
So, I did what every budget-conscious maker does: I bought a bunch of $5 digital MG996R servos and decided to hack them to read their internal potentiometers.
The internet makes it sound so easy: "Just solder a 4th wire to the middle pin of the servo's potentiometer and plug it into your ESP32's ADC!"
So I did exactly that. I wired up all 12 legs, powered up the robot, and... it was a disaster. The limbs were shaking uncontrollably, the robot looked like it was having a seizure, and the position readings were clearly unusable.
What went wrong? Physics.
After pulling my hair out, I realized the problem wasn't my code, it was the electrical reality of a fully assembled robot:
- The Voltage Drop: The ESP32's ADC draws a tiny bit of current when it reads a pin. Because the servo's internal potentiometer has a high impedance, drawing that current causes a sudden voltage drop. The servo's internal PID controller panics because it thinks the motor just moved, and tries to correct it. Hence, the twitching.
- The Antenna Effect: Inside the chassis, my 12 analog wires were routed right next to the high-current power lines and the brushed DC motors. Those wires acted as perfect antennas, picking up massive electromagnetic interference (EMI).
I realized I couldn't just read the potentiometer directly. I needed an intermediary. Enter the Operational Amplifier (Op-Amp)!
Instead of a simple RC filter (which wouldn't solve the current-draw issue), I designed a tiny custom PCB that fits completely inside the MG996R's casing. On this board, I put an Op-Amp configured as a voltage follower (buffer).
The Result
Combined with a software low-pass filter on my ESP32's "Reflex Core", I can now poll the exact position of all 12 motors at a blistering 200Hz, with zero twitching and buttery smooth movements.
We turned a $5 dumb servo into a high-speed, closed-loop actuator!
If you want to see the exact schematic of this micro-PCB, or if you want to mod your own servos for your projects, I’ve documented the entire step-by-step process on the project's website:
See the servo mod
Paul LOISIL

