The Cusinart Air Fryer Hack
Our toaster was toast. The Cusinart Toaster Oven Air Fryer TOA-60 died after about 1 year and a half of active use. The function selector had burnt out due to arcing. The door switch also showed signs of arcing. Cusinart cheerfully replaced the unit under warranty, but that left the old stainless steel hulk sitting around. This project rebuilt it using a Raspberry Pi and allows it be controlled by Alexa from across the Internet.
The first goal is to get the stainless steel cover off. We need a 10" long Phillips screwdriver, a large flat head screwdriver, a set of Allen hex keys and a headlight. This process takes about an hour. Click on the hyperlinks below to see pictures.
1. Remove the grill and the crumb trays.
2. Remove the back.
a. There are more than 12 screws holding the back.
b. One of the screws needs an Allen key for removal.
3. Remove the left plastic foot assembly.
a. There are 3 conical head screws.
4. Remove the right foot assembly.
a. Pop off the 2 rubber covers on the right assembly. Use the handy Allen key.
b. Remove the 2 round head screws inside the foot.
c. Remove 1 conical head screw in the middle.
d. Keep these screws separate from the others.
5. Next reach through the back opening to remove 8 screws that are on the front.
a. You will need the long Phillips head screwdriver. Magnetic tips will help.
6. There are 3 spring clips on each side of the stainless steel cover. They attach the cover to a flange in the front.
a. The clips are built into the outside cover.
b. Use a flat head screwdriver to gently force the cover backwards off the clips.
c. The cover is now free. The components are exposed.
7. Put the 2 plastic feet back on to avoid scratching your dining table.
a. Note that the screws for the left and right feet are different.
8. You could grasp the function knob and pull it straight out. It may be tightly fit.
a. You can see the 2 screws that mount the rotary switch. It just gives you the satisfaction knowing that if you had a replacement part, you could fix this thing. Cusinart may not sell a replacement.
b. If a replacement is not available, don't bother with this step. The switch will be left as a non-functional ornament.
9. Here are some pictures
a. the left side,
c. right side, this is where all the action is,
d. top, another top, yet another top,
f. light switch,
g. door switch, and another of the door switch.
The red, white and blue colors for the wires seem to be chosen without a strategy. Tracing the spaghetti reveals the following schematic. Personally, I would have placed the Thermostat along the wire marked "Timer gated power", and then the heater elements could be grounded directly to neutral. But no big deal. The Microtemp thermal fuse blows at a specific temperature (marked 216°C, 420°F).
The function selector seems to be a proprietary Cusinart specified part that is sourced by a Chinese vendor. A replacement may not be easily available. Similar parts are listed on eBay with the same part number, but they are not identical. It can be described as a 4 pole, 7 position, multi throw rotary switch and it is the heart and brains of this toaster. It comprises two rotary modules stuck together concentrically, and each module has 2 switches. Let's call the 2 modules Front and Back. Front contains switches A and B, and Back contains C and D. See the figure above. Each switch has one input and two outputs, except B has only one output. Depending on the position, each input connects to none, 1 or 2 of its corresponding outputs.
The following table shows its connectivity. There are 4 inputs: A, B, C and D. There are 7 outputs: A1, A2, B1, C1, C2, D1 & D2. The check marks indicate if the input is connected to the output at that position. Heater elements are in red, fans are blue. For example, in position Toast (position 4), input A connects to both A1 & A2, input B connects to B1, and input D connects to D2. This effectively turns on A1 (fan in low), A2 (upper outer heating element), B1 (lower heating element) and D2 (engages the toaster timer). The 'Warm' setting activates the lower heater element. Interestingly, 'Bake' & 'Toast' are identical, as are 'Broil w/fan' & 'Air-fry'.
Switch à |
Front module |
Back module |
||||||
Input à |
A |
B |
C |
D |
||||
1. Warm |
|
|
ü |
|
|
|
ü |
|
2. Broil |
ü |
ü |
|
|
ü |
|
ü |
|
3. Broil w/fan |
|
ü |
|
|
ü |
ü |
ü |
|
4. Toast |
ü |
ü |
ü |
|
|
|
|
ü |
5. Bake |
ü |
ü |
ü |
|
|
|
ü |
|
6. Bake w/ fan |
|
ü |
ü |
|
|
ü |
ü |
|
7. Air Fry |
|
ü |
|
|
ü |
ü |
ü |
|
Output à |
A1 |
A2 |
B1 |
|
C1 |
C2 |
D1 |
D2 |
Target à Component |
Fan Low |
Up Out |
Low Htr |
|
Up In |
Fan High |
Oven Timer |
Toast Timer |
After they are disconnected, the 3 heater elements were measured: Upper Outer=16 Ω, Upper Inner = 17.4 Ω and Lower = 17.3 Ω. At most two elements will be on at any time. The fan consumes 35W. So the maximum device consumption is about 15 amps, or 1800 W, as specified (see table below).
The original toaster uses a thermostat. This is a mechanical device that consists of a dial to select the desired temperature, a temperature sensor and an on/off switch. Its job is to control power to the heater elements so that the oven gets to and stays at the desired temperature setting. The following graph shows its operation at a set point of 300 F. The red line shows the actual temperature swinging between 250 and 400 F. The green trace shows the heater elements coming on and off. While the average temperature is 300 F, the temperature swings seem excessive and leads to food getting burnt.
Engineers always list the requirements before starting a design. It's the marketing guys that keep changing the requirements. Here is the initial list:
1. Backward compatibility with current functionality using the existing mechanical timers. It should work intuitively for those who are not techno geeks.
2. Use a Digital thermometer since the original thermostat is not accurate and has large temperature swings.
3. Add more heating modes for Warm and Slow cook functions. The three heating elements can be configured to provide fine temperature controls.
4. Delayed start option.
5. Multi step operations, like Bake at 350 for 30 mins, cool down to 250, then Broil for 5 mins.
6. Browser based GUI to select oven function, temperature, duration, etc.
7. Integration with external applications via a REST API.
8. Alexa integration for voice control and voice notifications.
9. SMS Text notifications.
10. Nominal buzzer, though Alexa will provide voice responses.
11. Touch sensitive LCD screen for control, though a web page will also be available.
12. Camera for visually checking the doneness of food, say "Toast till brown", or "Broil till bubbly".
13. Moisture sensor, to prevent burning and to implement a dehydrator.
14. Smoke detector, to detect when to give up the toast and automatically order a pizza .
The figure above shows the control panel for the LCD screen and browser access. It allows the device to be programmed. Each program can have multiple steps.
· Each step has a configurable function, fan speed and associated time & temperature.
· The next step can be selected by pressing the ">" button.
· The slide controls allow the temperature and time to be set. The current temperature is indicated by the red column. The time slider moves down with time and indicates the time remaining.
· Toast and Bake activate one upper and lower heating elements
· Broil and Air Fry activate both upper heating elements
· Pause allows a waiting period specified by the time control. It can be used for Delayed starts. However, the device can also be programmed and started remotely.
· Cool allows a waiting period till the temperature drops to the set point
· The Start button starts the program. It will change to Pause when the device is running. Pressing pause again will cause the toaster to stop.
· Step settings, like temperature and fan speed, can be changed while the program is running.
· Pressing the Next or Previous buttons while the program is running will display settings for that step. Pressing the Start button will cancel the current step and start the displayed step.
· Deleting and re-ordering steps will be considered later, they may involve displaying a chain of steps and support drag and drop. This is not your granny's toaster.
· There will be ways to save the programs for later use and to restore them.
· Configuration options will allow for different languages, temperature scales, mobile number for SMS, buzzer tones, passwords, etc.
At the high level, a Raspberry Pi uses 8 of its GPIO pins to control 8 relays. The relays drive the toaster's three heater elements, fan and lights. Besides turning on each element at full power, the relays can also configure them in series to allow for gentle warming. Five more GPIO pins are used to sense the state of timers, thermostat and switches. Three more GPIOs for the thermometer. A web server on the Pi listens for commands via WiFi. It also drives an LCD screen and serves up REST APIs for basic commands.
The control part is fairly easy. A 8 channel current booster (ULN2803A) is used to drive the relays. This wonderful chip contains all the required transistors and no additional components are needed. It needs the +5V lead (COM) to dump flyback currents from the relays.
The relay assembly was a headache. Version 1 used individual relays. I actually designed and built it. It worked, but it looked awful. It would have been so much simpler and nicer if a PCB could be made. Version 2 used a 8 channel relay module. The ULN2803A connects very nicely to the module.
The relays are wired as shown below. Two of the relays (R1 & R2) are used to string heater elements in series. This allows for heating with lower powers. The table below shows the power and relay settings for each element combination. There are 11 combinations, of which 4 are suitable for air-frying. Note that if solid state relays were used, then we could have used Pulse Width Modulation to get a continuous range of power settings. Perhaps in the next version.
The relays also allow three settings for the fan: high, low and off. Besides blowing air inside the oven for better convection heating, the fans greatly affect the heating and cooling rates.
Combination |
Resistance (Ohms) |
Power (Watts) |
Relays |
Function |
Lower + Upper Out |
8.31 |
1732.37 |
R4, R5 |
Oven |
Lower + Upper In |
8.67 |
1659.96 |
R4, R5 |
Oven |
Lower + (Upper Out -> Upper In) |
11.40 |
1263.51 |
R1, R5, R6 |
Oven |
(Lower -> Upper Out) + Upper In |
11.43 |
1260.02 |
R2, R5, R4 |
Oven |
Lower |
17.30 |
832.37 |
R5 |
Oven |
Lower -> Upper Out |
33.30 |
432.43 |
R2, R5 |
Oven |
Lower -> Upper Out -> Upper In |
50.70 |
284.02 |
R2, R1, R5 |
Oven |
Upper Out + Upper In |
8.34 |
1727.59 |
R4, R6 |
Air-fry |
Upper Out |
16.00 |
900.00 |
R6 |
Air-fry |
Upper In |
17.40 |
827.59 |
R4 |
Air-fry |
Upper Out -> Upper In |
33.40 |
431.14 |
R1, R6 |
Air-fry |
The low voltage section for sensors is wired separately. A 5 Vdc power supply is added inside the toaster shell. The Raspberry Pi is installed on the fan housing. The metal oven casing will be replaced to avoid blocking WiFi signals. Ribbon cables connect the Pi to relays and sensors.
A thermometer is added to measure the actual instantaneous temperature. It consists of two components: a Max6675 IC and a K-Junction thermocouple. The first thermocouple I tried had problems:
· Measurements show that this thermocouple has a very poor response time and lags the actual temperature. This is because the thermocouple is firmly bolted to the toaster walls and effectively has a large 'thermal mass'. The metal surrounding the thermocouple takes a long time to reach the temperature of the air in the oven. We need to control the air temperature.
· The following graph illustrates this. The oven is already warm and is maintaining the set point of 200°F. The green plot is the heater element turning on and off, and the red plot is the thermocouple reading. The heater goes on at about the 865 sec mark, but the reading is still dropping. The reading starts to rise around the 910 sec mark. The heater goes off at the 940 sec mark, but the reading continues to increase till the 1020 sec mark. Again, this measurement used the thermocouple for temperature control. Note that the average temperature is higher than the expected 200°F and the range is between 190 to 225°F.
· A smaller thermocouple was used and it has a much better response.
A PID controller is a system that replaces the thermostat. The thermostat is a simple controller that can be either drive the heater elements on or off. This is called a 'bang bang controller'. However, we can do a bit better. As mentioned earlier, the relays allow us 11 different heater settings and 3 fan settings. This results in 33 different heating and cooling modes. The goal is to use software select the correct durations for each heating and cooling combination to get to and stay at the desired temperature.
<<<More coming>>>
The temperature stability was not satisfactory even after using the combinations of heater elements. A 20 Amp Solid State Relay was added. While this $10 relay is probably too cheap to be reliable, it is good as a proof of concept.
The GPIO channels are configured to generate interrupts for various events, like door open, timer started, etc.