Automated Delivery Crane

I lived a few stories up in my old Jones St apartment. I couldn’t buzz people in, and there was no functioning elevator. I loved to use apps like Instacart, Rinse, and Uber Eats to get deliveries, but I didn’t love making the trip down and up to receive those deliveries. This served as the creative inspiration for an automated crane system. I was pleasantly surprised at the response to the system, some delivery people expressed obvious joy at being asked to put the delivery in the bag that was lowered, and none ever expressed anger or disappointment.

Here you can see the crane arm in action, first going out and then going back in
One button at my desk opened and closed the window, another sent the crane arm out and back
Here you can see the crane in action, hosting up delivery of fresh laundry from Rinse
Here you can see an early version of the winch being tested with the rotary encoder

Link to open source code for the winch with encoder support

Link to open source code for the lifter’s arm

Link open source code for an older, MVP version of the winch without encoder support

Lessons Learned the Hard Way:

  • Seems obvious in retrospect, but originally I didn’t think I’d need a crane arm to give adequate clearance from a small ledge beneath my window.
  • An L298n H Bridge proved very inadequate as a motor controller. On occasion, it would get too hot because too much wattage was flowing through it, and would need a few minutes to cool down before resuming operation.
  • The vibration produced by the cranes would routinely cause screws to come loose until I began to take additional measures to counter-act this.


  • 2x Arduino Uno Rev 3 (one for the crane arm, one for the crane itself)
  • Robogaia 3 Axis Rotary Encoder
  • Planetary Gear Motor
  • 2x Servos (One for each axis of the crane arm)