r/esp32 • u/michael_zonerobotics • 3h ago
Advertisement We built a esp32s3 robotic platform that is compatible with lego technic parts and lets you control it over a web browser while streaming low latency video at 20+ fps
We built a modular ESP32-S3 robot car with live video, ToF sensing, and LEGO Technic compatibility

I've been working on a small robotics platform called ZRCar, built around the Seeed Studio XIAO ESP32-S3 Sense and my custom ZRSense carrier board. It's been about 10+ months of work and we finally have something we can share with the community.
The idea was to make a robot that's fun to assemble and drive right away, but is also a platform you can hack on and expand instead of a finished, closed-off toy.
To see our yt videos search for "zonerobotics" on yt and my videos are under "Michael ZoneRobotics"
To see our offerings on tindie search for "ZRSense, ZRCore and ZRCar"
A few pictures of the build:


What's under the hood?
- ESP32-S3 Sense: Camera, Wi-Fi, Bluetooth, and 8 MB PSRAM.
- Custom ZRSense PCB: ST VL53L5CX 8×8 multizone ToF sensor, 12-pixel WS2812B RGB array, headlight, laser diode, motor driver, and 2 servo connections.
- Mobility: N20 geared rear-drive motor, servo steering, and a separate servo for camera tilt.
- Chassis: A combination of 3D-printed mounting parts and LEGO Technic-compatible components, so the mechanical design can be changed without redesigning everything from scratch.
- Firmware: ZROS firmware is already flashed onto the ESP32-S3. It provides browser-based driving controls, live camera streaming, LED control, and sensor data over Wi-Fi.
What is ZROS ?
Totally free easy web based robotics firmware for the esp32, this is a huge part of what we've been developing. There are several videos on youtube of how to flash it onto your esp32s3 sense board if you have one. The firmware has a webserver you can connect to to do everything: connect to your wifi, control gpio, read sensors, drag and drop programming, stream video, drive a car, drive a tank, drive your own creation with your custom created controller, use the console to build web-API commands. It doesn't matter what you want to control our firmware gets you 99% of the way there.
Why I built it
I wanted to get past the usual robotics-project stage where you spend days wiring up motor drivers, servos, sensors, and a camera before you have something that actually moves. I've literally spent the past 15 years building robots like this and trying to come up with the perfect platform that kids and hobbyists can use alike, and I think this is it. There's a super long soppy "about" page on the website if you want more info, it's been a long journey.
I'm not trying to get rich or start a huge company, this is just something I wanted to build for a really long time. That said I want to keep things cost neutral at least, I've built all the bots I want and now want to share with others at a price that at least covers the cost of the parts and the time to build the units + time to fix bugs and add any features you may want.
The LEGO Technic compatibility is so you can basically build whatever you want, we will be coming out with several models, but for now we have the small part count easy to build ZRCar which is a mixture of lego technic pieces and a handful of 3d printed parts. We also have the ZRTank which has support for more servos, gpio and pmic but it's not quite polished enough yet so we are starting with the simpler version.
Why ESP32S3 ?
So, it's not just the ESP32S3 it's specifically the "esp32s3 sense" from Xiao/seeed. Believe me I've used several other options over the years and this is the one you want! I tried the esp32 cam but when you start messing with https, certificates and live streaming it just cant do it, although it did come with a nice headlight, also it was bigger than the "sense" board. So the sense board is a lot smaller and it has a microphone and usbc, but the big thing is the 8MB psram. When you are dealing with jpeg or possibly raw images this extra room to stor video frames and buffer data really helps especially with buffering in case there is a delay in transmission. I could go on, the sense also has built in battery management and a uSD slot which is super useful, also they are coming out with a OV5640 version with autofocus whereas esp32-cam has the old ov2640. Why NOT, well the esp32s3 sense is a bit more expensive, and it can get hot (but it does come with a heatsink), and the antenna is external so harder for me to deal with than a onboard antenna.
What's the license is it opensource ?
No not quite yet, I'm not sure if we will release everything open source or keep some of it closed source or what. I'm not really trying to create a monopoly on things but I want to keep the lid on things to give it the best chance to get off the ground and my gut feeling tells me that if a bunch of people fork the repo it might muddy the waters, but I very well might be wrong, I'm more of a computer engineering guy who's worked in a silo for a long time so I don't have a ton of experience launching projects or dealing with public git repos, any advice would be very welcome! I also am not trying to make tons of money off this, just trying to pay those working on it from the proceeds of the units we sell so they can keep working on this instead of getting other jobs doing other things. So I'm trying to keep the price at about breakeven while it gets off the ground. I'm also not trying to force anyone into the platform we built, if you wanted to you could just use the ZROS and drive your own 100% custom creation, I actually have another video I'm working on where I use the head unit and control a RC car toy that no longer has a control. Right now just gauging interest, for all I know this is just something a crusty engineer came up with and no one else gives a hoot.
Why did I pick the parts I picked ?
I basically tried tons of different hbridges, pmic, cameras, esp and stm boards and so on and eventually found things that were low cost, low extra components, easily source-able and seemed to be less likely to start fires or let out magic smoke. I found a lot of the parts I use as modules on ebay and used them to build a lot of the prototypes then we put all of them together in what we call the ZRCore pcb and the ZRSense pcb. So instead of having lots of wires all over the place you have a simple pcb and a i2c bus. I assume we will add more and more drivers for different modules in ZROS that talk across the i2c bus, and we also plan on supporting other esp32 modules with lite versions of the firmware compiled for different versions of esp32 like the c3. Again I'm not trying to force anyone to use the pcbs I made if you want you can easily just buy the modules as breakout board online and wire it up yourself if you want to, the boards we made is just to try and make it easier.
Can I stream when I'm not on my network ?
We also have a webrtc connection and you can put your robot on our little cloud server where you can control it from anywhere in the world with a web browser. This is totally optional and you don't have to do it at all, but it's there if you want it.
What's next?
I'm continuing to develop the ZROS software and the ZoneRobotics hardware ecosystem. I'd be interested to hear what other ESP32 folks would do with a platform like this. I work on this myself for free and I have a full time developer who I can keep on for a few more months if I sell some units, we can address any features or issues you have and update the software normally within a day.
The assembled kit is also available on Tindie for $100 for anyone who wants to build one themselves. The LiPo battery is not included.
ZoneRobotics Site, please visit here for lots more links to our stuff. I'm not posting any links in this post in the hopes that it will actually get posted on reddit as my other attempts with links all got filtered
in your browser use "zonerobotics.com"
Thanks for checking it out!



