Videos:

I threw together this robot in a couple of days to inspect my HVAC duct and pull a cable (side note: I’m aware it’s generally advised against to run a cable through a duct, but I live in LA and we don’t have heating in our HVAC system so I don’t see it as a problem)

It’s a pretty bare-bones platform, designed to be as simple as possible for a quick design + build using parts I had on-hand.

The vehicle is powered by small geared 28BYJ-48 Stepper motors driven by ULN2003 drivers, controlled with an ESP32 Cam development board. It’s a decent board for the application as it has wifi, a camera and a bright forward facing LED. The board does not have the necessary 8 GPIO pins to drive the ULN chips, so I used a 8 bit shift register.

I originally intended it to be powered by an 18650 battery but I had problems using a boost converter to get the required current to drive the electronics at 5v. the board is pretty power hungry, and coupled with the steppers and high power LED, it wouldn’t even boot. I resorted to using 2 lithium polymer batteries in series to achieve 7.2v with no boost converter, which worked well enough. Even then, use of the LED kept causing brown-outs and reboots so I resorted to lowering it to 1/4 duty cycle which fixed the problem.

I used Micropython and the Picoweb framework to serve a REST API for rover control and a web page to provide a UI:

Image

The rover was designed in FreeCAD and printed on my Voron Zero using PLA. The tires were printed in NinjaFlex TPU which is a very flexible rubber like plastic, in order to provide more traction.

Image

The rover suffered from the aforementioned brown-outs due to the LED power requirements and also struggled to turn in certain locations in the ducts due to traction limitations and as side effect of being 2WD, but ultimately succeeded at what I needed.