Steve the Robot
On January 20, 2017 I told my friend I built a robot. He said "Once it can fetch you a beer, I will be seriously impressed."
Enter Steve–my deep dive into percieving the world robotically. How do you find a beer? How do you find a fridge? How do
Mark Zuckerberg's Building Jarvis post was one of my first inspirations at this time.
A decade later with things like SAM, and cheap LiDAR, an entity focused spatial understanding feels distinctly acheivable.
Background
There's an intense joy in pressing a key and hearing something in the physical world twich because of the code you've written. I got a raspberry pi for christmas a decade or so ago. A few years later I switched my major to computer science, and I felt like I no longer had an excuse not to work on it. I had also gotten some circuitry stuff from adafruit, so I went in the hardware direction. I pulled boilerplate code to talk to an LCD screen, an ultrasonic rangefinder, a servo. I had a little remote control bulldozer toy from my childhood with dupont connectors. Halfway through winter break I figured out that transistors weren't ideal for bidirectional DC motor control, and I found the L293D motor driver, and this tutorial for how to control motors with it. I pulled several all-nighters watching the office, and finally got it moving forward and back.
Building Cute Robots
Building cute robots is the prerogative of roboticists.
Vibecadding: draw → print → test → repeat
Vibecad = rapid, low-ceremony iteration. Sketch the contour, print the bracket, test the fit, tweak, reprint. Fewer ceremony points, faster feedback loops.
- Latency-killer: a 30-minute print beats a 3-day CAD rabbit hole.
- Constraint discovery: the part tells you what’s wrong when it touches reality.
- Confidence compounding: many small wins > one mythical “final” design.
First Attempt At Cute
Trying to make the packaging feel intentional before the robot earned the right to look friendly.
Brains & Eyes: Pi 5 + OAK-D, and a saner wiring loom
Compute: Raspberry Pi 5. Vision: Luxonis OAK-D (RGB + stereo depth). Drive: TB6612FNG motor driver. Clean 5 V rail via UBECs, fused harness, common ground.
- Cleaner power: logic isolated from motor supply; shared ground to banish ghosts.
- Deterministic control: correct input polarity fixed the “only one direction” bug.
- Edge depth: OAK-D handles depth on-device; Pi focuses on planning + UI.
LiDAR
The LiDAR pass is the next layer of Steve’s spatial awareness. For now this is a parking spot for the sensor mounting work, scan experiments, and the notes that will eventually turn into a more useful mapping pipeline.
Total Refactor
Filler text for the refactor notes. This is the spot for the new chassis direction, packaging decisions, cleaner mechanical interfaces, and the parts of Steve that are getting rebuilt now that the sensing stack is less theoretical and more bolted-to-the-robot.
Refactor Sketches
It kind of looks like a nautilus
AI Moodboard
Filler text for the AI moodboard. This is the spot for generated directions, visual references, and the rough shape language that helped push the refactor from functional robot parts toward something with a clearer personality.
Putting On A Brave Face
Bill of Materials
Core components for the current Steve build. I’ll add wiring notes and PDFs here later.
eBay Track Chassis
Unitree L2 LiDAR
Luxonis OAK-D
Raspberry Pi 5
ESP32-S3 Mini
ESP32-S3FH4R2, USB-C, 4 MB flash / 2 MB PSRAM
Round LCD Screen
240x240, GC9A01 driver, 4-wire SPI, Hosyond / generic GC9A01 modules
INMP441 I2S Mic
Potentiometer Knob
Switch
TB6612FNG Motor Driver
This build absolutely had a silicon co-pilot: ChatGPT. From “why do my treads only go forward” to “decode the TB6612 pinout again,” Steve is a collaboration between a human with zip ties and a language model with opinions. I regret nothing.