During my freshman year of high school (January 2019), I underwent surgery to correct severe scoliosis. I like to joke that, according to my parents, the absolute worst thing about the surgery was that it put me out of commission for snow-shoveling for the season. Inspired by a YouTube video my dad had shown me, and wanting to learn more about robotics and microcontroller programming, I asked my dad for help building our own remote-controlled (RC) snow plow to do the work for us. Here's what it looks like:

This project got me into engineering. Since then, I've completed an actual engineering program in Systems Engineering, though this project has continued to occupy a significant portion of my focus. It has been invaluable to my self-education in mechanical, computer/firmware, electrical, and power engineering, as well as general shop skills. Here, I break down the design iterations the project has undergone, as well as plans for the future. Turns out, snow clearing is a deceptively hard robotics problem.

Version 1 (Winter 2018-2019)

The snow plow shown in the video actually isn't the first revision of the snow plow. The first snow plow served more as a proof of concept, or minimum viable product. We wanted to build something that would solve the problem statement "I want a robot that pushes snow for me" as quickly as possible, just to prove we could do it.

Over the course of a couple of months, we gathered spare materials and built something comprising a wooden frame, car batteries, wheelchair motors, an Arduino, and some other off-the-shelf electronics tying everything together. It barely worked. We had it done about three weeks after my surgery, in time for first snowfall.

The development process was pretty rocky. I was 15—I had some computer programming experience and could make an LED blink with an Arduino, but I barely knew what voltage or amperage meant, let alone anything about circuit design or motor control or antenna theory. I first attempted to use low-amperage relays to drive the wheelchair motors in an H-bridge configuration (and immediately burned up the relay board). Then I tried the same thing with higher-amperage solid state relays, to a higher degree of success. Then I realized you couldn't do variable speed control with relays and scrapped that design and just went for an off-the-shelf motor controller.

After much trial and error, I came up with an electrical system design/architecture comprising:

  • two 12V car batteries
  • a fused 24V power rail, powered by the batteries in series
  • an unfused 12V power rail, powered by one of the batteries
  • a 12V inverter with a USB power supply
  • an Arduino Uno connected to the USB power supply
  • a logic-level solid state relay, controlled by the Arduino, which switches a solenoid
  • a solenoid, switched by the solid state relay, which powers the drive motors & main motor controller
  • a RoboClaw 24V dual-channel motor controller for the drive motors
  • a RoboClaw 12V dual-channel motor controller for plow blade pitch/yaw control motors
  • a FlySky drone RC receiver

The drive train and other mechanisms were largely my dad's responsibility. For drive motors, we found two ~250W 24V Jazzy wheelchair motors on eBay for ~$150. For pitch/yaw control, we found cheap linear actuators on Amazon, ~$50 each. We cannibalized an aluminum wheeled shovel for the plow blade itself. We built the wooden frame around three disconnected axles, with wheels on either side, for six wheels total. Sprockets were installed on the axles and motor shafts for an all-wheel chain drive (see gallery above).

Demo in light snow with variable speed control and makeshift headlight at night.

It was effective as a proof of concept, but several issues presented themselves very quickly:

  1. The tires on the hand truck wheels couldn't provide enough traction to push heavy snow
  2. The vehicle was too light to provide enough traction to push heavy snow
  3. The aluminum plow blade easily bent with shock loads (e.g., cracks in the driveway) under the force of the high-torque wheelchair motors
  4. The drive chains would frequently pop off (and were a pain in the ass to fix and re-tension properly)
  5. Drive motor current spikes would cause the driving electronics to brown out due to supply voltage sag, causing erratic control (I didn't know about capacitance I was 15 I'm sorry)

I actually couldn't even find a video of this version of the snow plow pushing decent amounts of heavy snow, and I'm not sure it ever did because of these issues. At any rate, we realized there was a multitude of areas for improvement, and were back at it the next winter.

Version 2 (Winter 2019-2020)

This is the version presented in the videos on YouTube. After a year of thought, we made some prominent design changes and improvements:

  • Larger, heavier steel frame
  • Steel plow blade
  • Better wheels/tires
  • Permanent toggleable headlights
  • Rear-mounted salt spreader
  • Improved drivetrain, with each side having three chains—motor to sprocket on center axle, center axle to front axle, and center axle to rear axle (see gallery below)
  • Weatherproof plugs for electrical connections (power supplies), allowing for quick electrical disconnect when charging batteries
  • ESP32 dev board used instead of Arduino Uno. Also better firmware
  • Separate 24V & 12V power supplies
    • 2x 12V deep cycle batteries in series (24V) for drive motors
    • 2x 12V batteries in parallel (12V) for electronics, salt spreader, plow actuators
    • Solved brownout issues (I still didn't know about capacitance)
    • Also added a lot of extra weight for traction
  • 12V-to-5V DC/DC converter used instead of full inverter, saves space on electrical board, also more efficient
  • Separate solenoids for powering motor controllers & disabling brakes

This was vastly superior to V1 in most ways. It could reliably clear large amounts of snow in a single charge. The steel plow blade, headlights, and salt spreader were huge quality-of-life improvements. The motor output was geared down to provide the torque needed given the extra weight (we estimated around 400-500 lbs total), so it was slower than V1, but very capable.

This version persisted for years with little modification, though presented some other issues. The aluminum casting on one of the plow blade actuator motors was completely sheared when the plow hit a crack in the driveway. Over time, the second-hand wheelchair motors would get very hot after a snow clearing session, sometimes degrading functionality. Most troubling though, at some point the prolonged moisture exposure caused the electronics to begin to corrode. The lack of on-board battery charging was a factor in this; any accumulated snow on the hood would fall into the chassis when the hood was removed to charge the batteries. Eventually the moisture ingress issue caused the electronics to become completely defunct around 2023.

Version 3 (Winter 2022-2023) (Scrapped)

This was another attempt at integrating components from Amazon et al. into a better electrical system. By then, I was in my freshman year at university. I set my sights on several requirements:

  • On-board battery charging, with an exposed receptacle for an extension cord
  • Properly enclosed electrical system to prevent moisture ingress
    • Infrastructure for firmware flashing, so physical access to microcontroller not needed
  • Framework for upgrading to 48V BDC motors in the future, or brushless (BLDC) motors (i.e., motor controllers that support 48V, like those for e-bikes)

I also started to think about modularity. For a while I'd thought about an interchangeable attachment that would allow you to swap the plow blade (useful for paved surface) out for a snowblower (useful for gravel) with the same electrical outputs. Waterproofing, onboard battery charging, and 48V capability took precedence, though. I started playing around with 3D printed enclosures for the electronics and 48V motor control.

About $500 into the development process I realized my intended power supply for battery charging (a mains-to-60VDC rectifier) didn't have current limiting, and that current limiting would require some nontrivial rework to integrate. My coursework also picked up pretty heavily and upset my timeline for this project. Regardless, taking classes in circuit design for the first time, I began to feel unsatisfied with the previous design solutions of cobbling together components from Amazon rather than designing my own circuits.

Version 4 (Winter 202X) (WIP)

Since versions 2/3 I've completed an engineering program with highest honors, three internships at Milwaukee Tool, and a senior design project that saw me completely design an embedded system PCB from scratch. In other words, I like to think I know what I'm doing at this point.

There are several overarching goals with this design:

  1. Design for Assembly (DFA). I want to be able to completely assemble a unit from parts in a garage or shop by myself in a single day.
  2. Design for Supply Chain (DfSC). Components should be consistently sourceable. The design shouldn't rely on motors or controllers or relays from Amazon or eBay or Temu.
  3. Design for Manufacturability (DFM). I should be able to order custom-designed parts through a CM or easily manufacture them myself with a 3D printer, laser cutter, welder, and other generic shop tools.
  4. The snow plow should be smaller, faster, more powerful, moisture resistant, and rugged.

These goals lead to essentially two primary design points. First, I have to do most things in-house: battery pack, battery charging, motor control, HMI, remote control—all things for me to design. Second, it's in my best interest to combine as much of this as possible into a single PCBA, governed by a single microcontroller running one model of firmware.

This is a huge undertaking, and it's one of the reasons this design has been a work-in-progress for years. But it's an awesome engineering challenge. To give you a better idea, I am planning on designing efficient and compliant systems for...

  • motor control capable of driving 2x 750W (1 HP) @ 48V BLDC motors
  • auxiliary power delivery for plow blade actuation, salt spreader, headlights
  • onboard battery charging capable of 600W mains-AC-to-60V-DC rectification with high power factor
  • 1.5kW 50.4V 14S6P power supply & BMS ("DIY" and "Lithium-ion battery pack" are fun terms in the same sentence (i'm going insane))
  • reliable radio remote control at 100 meters/yards in precipitation, with ePaper display HMI in the controller

My systems engineering coursework had me take plenty of mechanics, so I'm interested in power transmission as well, looking at potentially designing and assembling my own gear boxes, using high-torque belt drives for shock resistance instead of chain, modeling tire friction to figure out how much weight I need for traction, etc.

Most progress so far has just been research. At some point I went to the engineering library at school and grabbed a copy of Maniktala's Switching Power Supplies A to Z to figure out battery charging over a few idle weeks. Schoolwork has generally gotten in the way of working on this project, though senior design got me some very good experience with computer engineering and PCB layout. Now that I'm out of school and have plenty of free time, disposable income to order prototype boards, and access to the Milwaukee Maker Space soon, this will definitely be picking up some more steam, hopefully with some cool artifacts to share starting this year :)


Article hyperlink: https://joshstock.in/blog/rc-snow-plow

Comments

To prevent spam, anonymous comments are held for moderation and may take a few days to appear.