An homage to Ryan Bonial's genious microwave (and extension cable that works really well with it).
It's a 3D-printed "microwave", but instead of emitting 1000+ watts of power, it emits at most 100 milliwatts (through wifi). Inside it has an ESP32 S3 in Adafruit's "QT Py" configuration, as well as an N20 gear motor running at 5V. The whole thing is powered by USB-C. A cable that works really well with it is provided.
The motor spins for 15 seconds when pressing the button on the front panel, and an LED is also lit while running to reveal the contents. The cycle can also be triggered through HTTP, which means you can use it as an alarm or something:
curl 'http://ryans-microwave.local/switch/microwave_cycle/turn_on'curl 'http://ryans-microwave.local/switch/microwave_cycle/turn_off'By installing ESPHome on your Home Assistant setup and making a slight change to the firmware (3 new lines!), it can be integrated and be triggered based on conditions/events from there!
# Enable Home Assistant API
api:
encryption:
key: !secret ha_api_encryption_keyThe ESP32 runs ESPHome. It tries to connect to a preconfigured wifi network, but if it fails to do so (as it should when gifted) it will set up a fallback wifi hotspot. The password is your mothers' maiden name (just kidding, will send it to you on Slack). This will allow you to reconfigure the wifi through a captive portal.
There isn't really a "Ryan's microwave pinout", but I can talk about the wiring:
See Adafruit for the ESP32 pinout. The firmware is referencing the GPIO number listed in yellow on there.
- 5V on ESP32 comes straight from USB-C and is wired to the positive side of the N20 motor.
- Across the motor is a flyback diode, as well as a small capacitor (wired directly on there).
- GPIO18 (A0) is connected to a MOSFET (IRLZ44N) gate - when high, it will open up the gate.
- GPIO17 (A1) is connected to an LED in the main chamber. Not ideal to run this straight from it's 3.3V, but should at most draw ~20mA and I was lazy.
- GPIO8 (A3) is connected to a physical button on the front side of the microwave.
See ryans-microwave.yaml.
- The top comes off. It can be held in place a bit better with a single M2.5x5 screw (provided), but friction also usually is enough.
- The window slides out (with some fiddling/force). I originally was going to use fully translucent acrylic, but had a hard time cutting it, and the 3D printed version actually came out more realistic.
- The bit that holds the motor and button in place can be taken out - it's held in place with two screws. It's quite fiddly to get back in place though, so wouldn't recommend it.
- There are two gears - one underneath the electronics (motor), and one under the microwave "plate". The microwave plate is fairly easy to replace - I've included versions that has the Sanity logo glued to them, as well as a basic one if you want to put whatever else you want on there. There's a small metal washer that reduces friction but is not necessary. Falls out easily. If you hear something rattling around, it's probably that.
- Fusion 360 files can be provided if you're interested - but they're not the most structured. There were a lot of iterations.
- There is no "door". I didn't have time to try and make any sort of hinges happen. Sorry not sorry :p
- The button/panel fitting came out quite crap and I didn't have time to fix it. I apologize.
- The soldering on the motor is attrocious - if the motor stops running, it's likely the motor wires having been dilodged.
- It has magnet feet! You can pull them out if you don't want em. They're lightly glued.