Your kid built a M.A.S.S. Trap with jumper wires and it works great. But those little Dupont connectors wiggle loose every time someone bumps the track. Today we're upgrading to screw terminals — the same connections, but permanent and vibration-proof.
Think of it like this: We're moving from alligator clips to bolted connections. Same circuit. Same wires. Just tighter.
Here's the full migration, phase by phase. Each device takes one sitting.
Based on a 10:45 PM start with 3 devices. Adjust if starting earlier. Coffee optional but recommended.
Grab your phone. Take a clear, well-lit photo of every wire connection on the current board. Get a shot from directly above so you can see which color wire goes to which pin. This photo is your lifeline — if you get confused during migration, look at the photo.
If your wires aren't color-coded, wrap a small piece of masking tape around each one and write what it connects to: "IR SIG", "GND", "3V3", "BCLK", etc. Takes 2 minutes now, saves 10 minutes of confusion later.
You need exactly two things:
Pull the USB cable. Disconnect the power supply. Unplug everything. The board should have zero power before you touch any wires. Confirm the LED on the ESP32 is off. No lights = no power = safe to work.
Gently pull each Dupont connector straight off the pin headers. Don't yank sideways — you can bend pins. Set the wires aside in order (your photo is the reference if they get mixed up).
Look at the Meshnology terminal block shield. It has two long rows of pin sockets in the center (where the ESP32 plugs in) and screw terminals around the edges. Each screw terminal is labeled with a GPIO number.
Line up the ESP32's pin headers with the shield's pin sockets. The USB-C port should face outward (accessible for programming and power). Press firmly and evenly — both sides at the same time. You'll feel the pins seat.
Look at the gap between the ESP32 board and the shield on both sides. It should be even — same height left and right. If one side is higher, the pins aren't fully seated on that side. Press down on the high side.
| Wire | From (Old Dupont) | To (Screw Terminal) | Component |
|---|---|---|---|
| Red | 3.3V header pin | 3V3 terminal | IR Sensor VCC |
| Black | GND header pin | GND terminal | IR Sensor GND |
| Green | GPIO 4 header pin | Terminal 4 | IR Sensor Signal |
| Wire | From (Old Dupont) | To (Screw Terminal) | Component |
|---|---|---|---|
| Red | 3.3V header pin | 3V3 terminal | MAX98357A VIN |
| Black | GND header pin | GND terminal | MAX98357A GND |
| Orange | GPIO 15 header pin | Terminal 15 | I2S BCLK |
| Yellow | GPIO 16 header pin | Terminal 16 | I2S LRC |
| Blue | GPIO 17 header pin | Terminal 17 | I2S DIN |
| Wire | To (Screw Terminal) | Component |
|---|---|---|
| Red | 3V3 terminal | IR Sensor VCC |
| Black | GND terminal | IR Sensor GND |
| Green | Terminal 4 | IR Sensor Signal |
| Teal | Terminal 38 | LiDAR TX (if equipped) |
| Teal | Terminal 39 | LiDAR RX (if equipped) |
If using existing Dupont jumper wires: cut off the plastic Dupont connector, then strip about 5mm (¼ inch) of insulation from the end. The bare copper should be visible. If using new solid-core wire, strip the same length.
Use your small flathead screwdriver to turn the terminal screw counterclockwise until the slot is open wide enough for the wire. Don't unscrew it all the way — just loosen it.
Push the stripped end into the terminal slot. Only bare copper should go in — no insulation inside the terminal. If you see colored plastic in the slot, pull out and strip more.
Turn the screw clockwise until the wire is firmly clamped. Give the wire a gentle tug — it should NOT pull out. If it does, tighten more.
Pull up the photo you took in Phase 1. Go wire by wire: red to 3V3? Check. Black to GND? Check. Green to Terminal 4? Check. Every wire must match. If something's different, fix it now — this is your last check before power.
Look for: bare wire touching another terminal (short circuit risk), loose wires that didn't get tightened, insulation stuffed into a terminal (no contact). Fix anything suspicious.
Plug in the USB-C cable (or barrel jack power supply). Watch the ESP32 — the onboard LED should light up and start blinking. If you smell something burning or see smoke, UNPLUG IMMEDIATELY. No smoke? Great. Wait 10 seconds for it to boot.
Open the Build Wizard, select Finish Gate, scroll down to Verify Connection, enter the device IP, and hit RUN DIAGNOSTICS. You should see all green badges.
With the device powered on and working, pick up the whole shield assembly (carefully, holding the shield edges — not the wires). Give it a gentle shake. Look at the dashboard — still connected? Still showing data? Good.
Now shake it like a 10-year-old accidentally kicked the table the track is sitting on. Because that will happen. Multiple times. During the most important race of the day. If the dashboard drops connection or a wire comes loose, tighten that terminal and try again.
The ultimate test: arm the track, roll a car through the beam, and confirm the race timer works. If you get a time reading, congratulations — migration complete!
Check that all 38 pins are fully seated. Remove the ESP32 from the shield, inspect for bent pins, re-seat. Also verify your power source — USB cable plugged in? Barrel jack connected?
The signal wire is probably in the wrong terminal. Verify it's in Terminal 4 (not terminal 3 or 5). Also check that the IR emitter and receiver are actually facing each other and powered (red wire to 3V3, black to GND).
The shield doesn't affect WiFi. This is the same behavior the device had before migration. If WiFi was working before and isn't now, check that the ESP32 is fully seated (poor contact on antenna pins can weaken the signal). Also check that no wire is touching the ESP32's WiFi antenna area (the part that overhangs the PCB edge).
Either not enough bare copper is exposed (strip more insulation) or the wire gauge is too thin. Try folding the stripped tip in half to make it thicker, then re-insert and tighten. Solid-core wire holds better than stranded in screw terminals.
Unplug immediately. Don't panic. Common causes: (1) power and ground swapped (red/black in wrong terminals), (2) bare wire touching an adjacent terminal (short circuit), (3) wrong voltage (5V where 3.3V expected). Check every connection against the table. Fix the mistake. Components may or may not have survived — power up again after fixing and check diagnostics.
Every wire is locked down. Every terminal is tightened. The M.A.S.S. Trap fleet is production-grade.
The Dupont wires are now spare parts. Keep them — they're perfect for prototyping the next module.