Introduction: 3D Printed RC SkidSteer V2.0
I've always had an affinity for Skidsteers and Mini RC's so combining the two just felt right. Luckily with the power of 3D printing and development boards such as the ESP32 I was really able to make something that's fun and a great project to learn on.
Supplies
Available Kits
If you'd like to support the channel you can pick up one of the kits linked below, all the proceeds go right back into developing and making the next DIY robotics project. Or continue reading for a list of parts.
- Complete Kit with 3D Printed Parts(Requires 2s Battery with xt30 Connector): https://professorboots.com/products/diy-rc-skidsteer
- Just the Electronics Kit if you have your own 3D printer:https://professorboots.com/products/diy-rc-skidsteer-electronics
THIS GUIDE IS OUTDATED unless referencing the soldering section. Please refer to the linked How-To YT Video below for assembly.
Individual Parts
- ESP32 Development Board(30Pin)
- 2 DRV8833 H-Bridges
- 1 SG90 Servo(2 if you're making the claw attachment)
- 5v Mini Buck converter(Such as this one https://amzn.to/3qeAiy2)
- 3 100rpm 6v N20 Motors
This build revolves around a custom PCB I designed, the Gerber files and Code for the ESP32 can be found through this GitHub link.
- GitHub: https://github.com/ProfBoots/V2.0-3D-Printed-RC-SkidSteer.git
- 3D Files:https://www.printables.com/model/544937-v20-3d-printed-rc-skidsteer
- How-To YT Video: https://youtu.be/2b7CAbl3TNQ
- YT Video: https://youtu.be/dDfVdGGrf1k
3D Printing Tips
- Tires and belts are made out of SainSmart TPU(https://amzn.to/3QiBZVL)
- Everything is printed at 25% 1.2mm walls with a .4mm nozzle end. Except for the drive axles which should be printed at 100% infill with the strongest material you have.
Tools Required for assembly
If assembling from a kit:
- Philips head screw driver
- Small Flathead Screwdriver
- (Optional) A pair of snipper and pliers would make your life much easier.
- If making from scratch or electronics kit you'll need a soldering Iron.
Step 1: New Controller Update
Due to a number of people having issues with the dabble app previously used to control the MiniSkidi, I wrote new firmware that generates a webpage controller that's accessible from any device that can use a web browser.
MiniSkidi's shipped after 8/15 will already have this firmware loaded, if not it can be found in the above linked GitHub repository. To tell if this firmware is already installed turn the MiniSkidi ON or plug in your esp32 via USB, navigate to WIFI connections and see if "Profboots MiniSkidi" is displayed as one of the options. If it is great! If not it means you have the dabble firmware installed. If you like the dabble app then this is no problem but if you would rather have the webpage controller look below for an idea on how to install the new firmware.
Connecting to MiniSkidi
Connect to the MiniSkidi by first going into your WIFI connections and finding "Profboots MiniSkidi --". Connect to it and open your favorite web browser, enter the default IP address for the Esp32 which is 192.168.4.1.
The MiniSkidi controller should display on your screen. The "HorizontalScreen" option is for locking your phone in vertical mode and holding it sideways. This option re-orientates the controls to make sense, for example what was before forward would now be left and right is now forward.(I hope that makes sense)
If you temporarily disconnect or turn off your phone you will have to refresh the page to make the controls active again.
Installing New Firmware
To get the new firmware reference the GitHub Repository Linked Here: Mo Betta Firmware
To set up your Arduino IDE to load new firmware reference this video : Setting up Arduino IDE for ESP32 module
To learn how to install the libraries required to upload, reference this video: Setting up libraries
With the above steps completed go to Tools>Board>ESP32 Arduino> "Select ESP32 DEV Module as your board".
Step 2: Clean 3D Printed Parts
Wether you ordered the complete kit or 3D printed your own parts, make sure to remove any excess support material.
Step 3: Solder Circuit Board
If you ordered the complete kit skip this step. If you ordered the electrical kit read on.
1.) Start by soldering the male headers where it says AUX, The bottom row is GND, Middle row is 5V, and the top is signal connecting to individual outputs of our ESP32 Development board. These will be used with our bucket tilt servo as well as any future addons such as the claw bucket attachment.
2.) Break 1 of the female headers into 4 6 pin chunks, these will be for our H-bridges which control our N20 DC Motors. They act as a way to take in an external voltage source so that we dont pull to much current from the ESP32 which would result in a very sad and dead ESP32, as well as a way to swap current forward and backward depending on the signal sent by the ESP32.
3.) Break off two Female Header 15 pin rows, These will be for our ESP32 development board which is the brain of our project.
4.)Finally break off one last Female Header 4 pin pin row, This will be for the buck converter, a buck converter provides an efficient way to lower voltage. For example this project is intended to run off a 2S Lipo which is 7.4v. Our servos and motors are intended to be used with voltage ranging from 5-6 volts, the buck converter solves this difference.
5.) Now its time to go back through and solder everything in its respective place. I recommend soldering the ESP32 pins last.
6.) Solder the 4 Blue Screw terminals as shown in the picture. The top one faces up, bottom one down, and right side facing in towards the H-Bridge pins.
7.) Solder the switch on, keep in mind the top post hole does not connect to anything as the switch is in the OFF position when it is up.
8.) Ignore the silk screen XT30 trace and Solder the XT30 connector onto the board on the same side of the ESP32 pins. Make sure the square side of the XT30 Connector faces outwards. This is very IMPORTANT if reversed you'll have a nice little smoke display.
9.) If your 5v Buck converter does not already have the 4 pins soldered on and the 5v pads connected, proceed to solder on the 4 male pins, solder the 2 5v pads together, and then using a small pocket knife or pointy anything cut the trace at the top as shown in the picture. This removes the variable resistor from the circuit.
10.) Solder the pins onto your H-Bridges.
Woot woot your MiniSkidi circuit board is now ready for action and now its time to start the fun part, ASSEMBLY!
Step 4: Installing N20 Motors and Drive Belts
If you 3D printed your own parts start by pressing two of the driveshafts and the arm pinion gears onto the N20 Motors. Preferably using a vice, or by gently tapping with a hammer... if you don't have that a medium sized rock will do.
1.)Using the flexible TPU belt wrap one of the axles(No Motor) with it(Figure 2). While pinching the drive belt insert it into the front left axle hole(Figure 3). Using one of the C-Clips lock the axle in place by pressing it on. (Figure 4) Repeat for the rear right.
2.)Using the N20 with the shortest wires and driveshaft tension it with the left drive belt(Figure 5), keeping tension maneuver it around the PCB support to the rear left axle hole. Repeat for front right using the N20 with the longest wires. Lock axles in place with C-Clips. Final Result(Figure 6)
3.)To secure the motors further, use either the motor restraint with a built in battery holder(when securing make sure battery support is hanging below the rest of support), this is meant to be used with a Tattu 300mah 7.4 Lipo. Or if you have your own 7.4v Battery you can use the other design which purely just holds the motors in place, allowing you to secure your battery however you like. Use 2.6x6 Truss screws(smaller screws in kit. Might be panhead not truss) Final Result(Figure 7)
Step 5: Mounting N20 Arm Motor
1.)Place the N20 motor with the pinion gear on the arm motor support(Figure 4.1). You want the brass gear housing to not hang over the edge at all but make sure the gear end is pushed up against the main housing. Using the arm motor restraint lock the motor in place with 2.6x6 Truss screws(smaller screws in kit. Might be panhead not truss).
Step 6: Connecting Drive Motors to PCB
1.) Start by laying the PCB assembly on the front of MiniSkidi main housing with the switch side facing up. Route the right N20 motor wires into the respective screw terminal block, when we turn it on for the first time we may have to swap the wires around to get the desired forward/backward motion. (If using the dabble app repeat steps for the left side N20 Motor using the "L-MTR" blue screw terminal block)(If using the webpage controller ignore the blue screw terminal block labeled "L-MTR" and connect the left motor into the blue screw terminal block on the bottom of the board). Arm Motor is removed in the first picture for better view, but repeat steps and screw the arm motor wires into their respective spots. (Figure 4.1)
Step 7: Populate PCB With Electronics
1.) Start by placing the two H-bridges onto the PCB(Arm motor removed for better view), ensure they are in the correct orientation by matching the pin Labels on the H-Bridge to the pin layouts on the PCB Assembly. (For example make sure the pin labeled EEP lines up with the EEP on the PCB)(Figure 5.1).
2.) Place the Buck converter onto the circuit board ensure the pin labels on the PCB line up with the buck converter pins, or to keep it simple orientate the buck converter so most of the mass hangs below the mount(Figure 5.2)
3.) Place the ESP32 onto the PCB, ensure the Micro-USB is facing upward(Figure 5.3).
Step 8: Bucket Assembly
1.) Place the servo into the bucket slot as shown in(Figure 6.1), secure using two 2.6x6 Truss screws(smaller screws in kit. Might be panhead not truss).
2.) Route the servo wire up the right arm guide(Figure 6.2). leave a small loop between the bucket and arm to allow free movement.
3.) Secure the arm to the bucket using a M2.6x12(Largest screw in kit). Do not overtighten, should be loose enough that the arm can move back and fourth without resistance.
4.) Prep the left arm by securing the servo horn with a 2.6x6 Truss screws(smaller screws in kit. Might be panhead not truss).
5.) Route the servo wire through the right arm hole in the main housing, secure the arm in place with the large C-Clip.
6.) Plug the Servo Wire into the pin set labeled "23", ensure the GND(Brown) servo wire goes to the bottom row labeled GND.
7.) To calibrate the Servo to the correct position connect the battery to the MiniSkidi turn it on by moving the switch to the down position. The Servo will move to its full up position.(This is a great time to open the webpage controller or dabble app and make sure the N20 motors are wired in the correct orientation resulting in forward when forward is pressed and right(axles go backward and the left axles go forward) when right is pressed e.t.c. Turn off MiniSkidi and remove battery.(Reference how to connect to the webpage/app below in the "Power On And Take For A Test Drive!" section)
8.) Careful not to move the servo tilt the bucket fully up and place the left arms servo horn onto the servo, the arm and bucket should be almost touching. Secure in place with the silver servo horn screw.
9.) Secure the left arm by taking the large Gear and pushing the square end outward from the inside of the main housing and lock it into the left arm with a M2.6x8 Truss Screw(Medium sized screws in kit).
Step 9: Mounting Wheels and Tires
1.) To mount the TPU Tires onto the wheels take each tire and press the back of the wheel into it, one side will go in further. This is the side you want to press the wheel into, there should be a small lip on the outward facing side of the tire once the tire is fully pressed on.(This does take a little brute strength)
2.) After ensuring the flat part on the axle shafts and the inside of the wheels are completely flat(This ensures there's no wobble)Mount the wheels to the axles using 4 2.6x8 Truss Screws(Medium sized screws in kit). Make sure to give the tire a small wiggle to ensure its fully seated.
Step 10: Mounting Wheel Wells
1.) Use 2 2.6x8 Truss screws(Medium sized screws in kit) mount the wheel wells onto the left and right side. There are two small nubs on each side that keep the fender from spinning, make sure the fender is pressed above them so they support the bottom.
Step 11: Mounting PCB Assembly
1.) Remove the ESP32, using 2.6x6 Truss screws(smaller screws in kit. Might be panhead not truss). secure the PCB Assembly to the two provided supports as shown in(Figure 10.1) start with the top left. The bottom right support mainly provides rotational support (Figure 9.1). Press the ESP32 Back into place.
Step 12: Installing Cage and Motor Cover
1.) Install the cage and motor cover by first pressing the cage onto the main housing. There are two holes in the cage that should align with the holes on the main housing(Figure 11.1). There are also two tabs on the bottom of the cage that secure it while folded down.
2.) Next take the motor cover and slide it in-between the cage while aligning the holes(make sure both holes on the motor cover are free of any extra filament before aligning). Use two M2.6x12 screws(Longest screws in kit) to hold everything in place.
3.) Before pressing the motor cover closed ensure the servo wire is neatly tucked away so as to not get in the way. When pressing the motor cover closed resist the urge to pull/press on the wheels as this may result in a snapped driveshaft. Instead press against the front of chassis while closing the cover.(Closing the motor cover for the first time will require a fair bit of force)
Step 13: Power on and Take for a Test Drive!
At this point everything should be assembled, plug the battery back in if it was removed and power on the Miniskidi.
Using Webpage Controller
Connect to the MiniSkidi by first going into your WIFI connections and finding "Profboots MiniSkidi --". Connect to it and open your favorite web browser, enter the default IP address for the Esp32 which is 192.168.4.1
The MiniSkidi controller should display on your screen. The "HorizontalScreen" option is for locking your phone in vertical mode and holding it sideways. This option re-orientates the controls to make sense, for example what was forward would now be left and right is now forward.(I hope that makes sense)
Using Dabble App
Open the dabble app followed by the gamepad option. At the top right there's an icon with a plug, press that and look for the Bluetooth name "ProfBoots MiniSkidi" connect to it.
Ensure everything moves the way you want it to. If something is backward such as the arm moving up when you press down and vice versa , flip the wires coming out of the screw terminal block. Otherwise ENJOY!
Step 14: Attaching the Claw
1.) Start by mounting the SG90 Servo to the claw with two 2x6mm screws.
2.) Attach the claw assembly to the bucket with two 2x6-2x8mm screws.
3.) Remove the cage and motor cover from the main housing, remove the C-Clip holding the right arm on by pressing on both ends of the clip.
4.) Lift the arm up so the bucket sits above the skidsteer, now fold the bucket so its pointed straight down. With this orientation route the claw servo wire up the arm as shown in the picture above(Make sure to pull all of the slack out of the wire before pressing it into the servo wire groove). Don't be alarmed if it takes some force to press the wire in next to the other, this ensures it wont come out.
5.) Press the bucket servo wire into the upper/lower half circle cutouts while passing the claw wire through the right arm. Plug the claw servo wire into pin 22(ensure the GND(Brown) wire is on the bottom). If it doesn't reach, remove the claw wire from the arm and pull the slack tighter to get more length. Return the right arm C-Clip
6.) Taking the claw push rod, orientate it so the extended piece is facing towards the bucket and secure the lower end in place using a 2x6-2x8mm screw.
7.) To ensure the servo is in the correct position first turn the MiniSkidi ON this will move it to the desired position. Place the servo horn on one notch left of 90 degrees as shown above.
8.) Lock the servo horn in place by using one of the silver SG90 screws. Finally attach the claw push rod to the 4th hole from the end of the servo horn using a 2x5mm screw.
9.) If there is slack when using your claw adjust this by moving the servo horn on the servo or by attaching the claw push rod to a different servo horn hole.