I modified an Easy Bake Oven to run off USB-C. The obvious question is "Why?", but I prefer to ask, "Why Not?". The USB-C spec allows for 100 Watts of power to be transferred through the connector, and that is the power rating for the oven, so it should work.
I found one of the new models of the Easy Bake Oven on Amazon. The first step was taking it apart to figure out how it worked. The hardest part was getting the right tool to access the screws down extremely long counterbores. Eventually, I had to get a Torx T10 on a long T-handle, at least six inches. Then I used a flashlight and carefully guided the tool into the screw.
Once I had apart, I took a look at the insides. Overall, the design is very simple. These new models have moved on from incandescent bulbs and now use a nichrome wire as the heating element. The nichrome wire is connected through a switch and across mains. Part of the nichrome wire is used as a resistor divider to power the light. The light assembly has an LED, some current limiting resistors, and a Schottky diode anti-parallel to the LED. The diode/LED pair receives a stepped-down AC voltage when the heating element is on.
The major modification I had to make was to the heating element. USB-C spec allows a maximum voltage of 20V, whereas mains is closer to 120V. Rather than step up the USB-C voltage, I instead added some wires to the heating element to divide it into six equal segments, then wired all six segments in parallel. This lowers the resistance by a factor of 36, so at one-sixth the voltage, the current increases by a factor six. Thus, the power is about the same. It's hard to solder to nichrome wire, so I just wrapped the copper around the nichrome at least once at each junction. After my modifications, the cold resistance dropped from 190 Ohms to 6 Ohms, which means I wasn't perfect in dividing up the nichrome wire, but it should be close enough. I tested the newly modified element on its own with a bench power supply. At 20V constant voltage, it was drawing about 3.75A, or about 75W total. This was a bit lower than the rating printed on the case of the oven, but it's good enough for this demonstration.
I made a few other minor modifications. I changed the LED assembly to run off 5VDC by replacing the resistors with a lower value. I also epoxied my USB-C breakout board onto the metal panel that previously held the strain relief for the mains power cable coming into the unit.
Until recently, one of the hardest parts of this project was finding a suitable USB-C power source. The Google Play Store has a 60W charger, but I could not find a 100W version anywhere. Fortunately for this project, Apple has released an 89W charger for their new MacBook Pros. The $89 charger does not come with a cable. That's an extra $20. The cable has to be rated for 5A, unlike most cables, which can handle 3A. Hopefully prices will come down as these products become more popular.
For the electronics, I used my USB-C breakout board with the FUSB302B PHY and an Arduino Uno. I wired I2C plus interrupt between the two. I connected VBUS from the breakout board to VIN on the Arduino to power it. Then, I connected +3V3 from the Arduino to the VDD on the breadout board to power the FUSB302B, as well as +5V to V_pullup on the breakout board. I also connected VBUS to the switch, then to the modified heating element and back to GND. To make the connections easier, I crimped spade connectors onto jumper wires. Finally, I plugged the modified light into pin 13 on the Arduino.
The code I used is the library I've been porting from Google's Chromebook open source repository. I set the max allowed voltage for my board to 20V and the max power to 100,000,000 microWatts (100W), so it will request everything the charger can provide. I also programmed the Arduino to flash the light at startup, turn it off while USB-C negotiation was ongoing, then turn it on when it successfully negotiated for at least 75W.
Once everything was connected, I ran some tests before I screwed the unit back together. I flashed the Arduino with the firmware and plugged in the USB-C cable. Everything looked good. The Kill-a-Watt noted a slight increase in power, up to 5W. The voltage of VBUS measured 20V. Then I turned the switch to power the heating element. The Kill-a-Watt showed about 80W of power being drawn, which is what I expected. I measured the cooking chamber temperature with a thermocouple, and it got up to 300F after about 15 or 20 minutes. Best of all, nothing caught fire.
Finally it was time to put everything together and run a final test. I tightened up a couple of screws and ran some mechanical fit-check tests, passing the metal tray through the unit to make sure I had everything aligned. That worked, so I tightened the rest of the screws. It was the moment of truth. I plugged the USB-C cable in. The light on the front flashed, then went solid. While the unit was preheating, I put together the cookie dough mix that came with the unit and prepared the baking tray. After 20 minutes, I figured the oven was as hot it was going to get. I put the cookies in for the recommended 9 minutes. However, when I pulled them out, they seemed a little undercooked. Another 5 minutes did the trick.
I consider this project a complete success. During this project, I had to touch on a variety of aspects of the USB-C spec. Getting close to 100W involves USB Power Delivery communications, electronically marked cables, and some thought in board layout to handling the higher than normal amps. I had to work with over 4000 lines of code and thousands of pages of specifications. I also had to redesign my breakout board to better handle the power. In the end, I hope this project can help other people understand USB-C more deeply. Plus I get to eat some cookies.