I’ve decided to pull out all the stops and test the fridge at a higher temperature of 65°C (149°F), which represents almost the highest temperature we would need the fridge to operate at. I had a little concern with the silicone sealant holding up, and this was the first time that I’ve had the the water line above the sealant.
At this temperature, I would expect beef to be cooked medium-well.
Choice here is rib-eye steak, good quality with reasonable cost. We season the steak (salt, pepper, a touch of garlic), and water-immersion seal in a sealable bag.
Into the fridge, preheated to 65°C with 2 litres of water. I’ve increased the proportional gain to 80, and reduced the integral gain to 0.05 (changed from 60 and 0.1, which resulted in a bit of overshoot).
After 3 hours, the steak is an ugly grey colour, along with a myoglobin saturated puddle…
…but Grill Skillet can fix that!
Result! To create a nice harmony of colours, the steak is served with a (amateurishly prepared) protatoes and mixed greens.
Medium-well done steak is less juicy than medium and rare stakes, and lack the flavour highlights. Not everyone likes steak that way. But for those who do, medium-well is quite difficult to achieve without ending up with a piece of leather. Cooking sous-vide produces medium-well steak with a perfect chewy texture with just the right level of juiciness and with no risk of turning it into a dusty charred lump. This steak was absolutely perfect for medium-well, and the amount of effort to get it so was minimal; a triumph for sous-vide mini-fridge!
Take 2: This steak was cooked at around 61°C, intended to achieve a perfect medium steak, but then I may have overfied it afterward, causing the inside to cook further until it was as well done as the last attempt. Cutting into it revealed a bland grey-coloured interior instead of slightly pink of a medium steak.
So I tried a little harder to calibrate the PT100 readings, although I don’t really have the right equipment for that.
Setting the target to 35 degrees.
Wait for the temperature to rise, and watch the PID output change.
Open the lid and quickly check the temperatures with all the thermometers I can find!
Repeat after filling the fridge with ice (sorry no pictures), and then apply linear calibration.
Finally, with the hacked mini-fridge turned temperature-regulated sous-vide cooker, it’s time to cook some salmon!
DISCLAIMER: I’m an engineer, not a chef! There are plenty of really good sous-vide recipe sites out there, if you try these, there are no guarantees of edibility whatsoever.
Tools and materials used: 1x hacked mini-fridge, 1x salmon fillet, seasoning for the salmon (in my case, salt, pepper, beer that nobody wanted, light soy sauce, parsley, dill).
Seasoning the salmon. I am using the same seasoning for the salmon as my microwave salmon recipe: dash of salt and pepper, and then slather with light soy sauce and beer (normally I would use an asian beer – Tiger or Tsingtao, but here I’ve used a bottle of Becks that has been lying around for a while now that nobody’s been willing to drink), and some herbs (parsley and dill).
Sealing it up: Normally with sous-vide cooking, the food is vacuum packed (“sous-vide” means “under vacuum”), I didn’t have a vacuum sealer or vacuum bags, so I’m using the next best thing – food bags. These are Tesco food bags, and I’m specifically using these because they’re microwave safe (I take that to mean it’s not going to leach any nasty chemicals at high temperatures).
To “vacuum” seal these bags, I can simply immerse it in water. The water squeezes all the air out of a bag. The result is almost as good as a vacuum packer, and plenty good enough for sous-vide use.
Next I set the mini-fridge to 50°C via USB with my control app (thos following the build may remember that I neglected to actually install any buttons on the outside of the fridge, and so all the controlling is done over USB). The PID controller gains are set to P=60, I=0.1, D=0, values that gave us good results when I was doing the PID tuning previously. Again, if anyone wants my code, contact me!
In it goes. The salmon is kept off the bottom with a simple plastic construction (made from the mutilated halves of the plastic shelf which came with the fridge). Next time I’ll add a bit more water.
One thing I had been concerned about was the possibility that the temperature inside the fridge would drop by a large amount when the cold food went in. The data log does register this drop, but the effect was not too bad. It’s possible to quite clearly see the rapid drop from 50°C to 48.5°C as the salmon was inserted (the two sharp drops correspond to the heat loss when the fridge door was opened, first to insert the plastic frame, and the second time to insert the fish).
The temperature recovers slowly (since the fridge’s peltier element is only capable of producing about 70W of heat at those temperatures), however because of this slow rise, the integral component of the PID controller has time to wind up, resulting in a large overshoot as the integral unwinds. I should be able to reduce the effects of this by adjusting the PI gains next time, however the easiest thing for us to do is to raise the temperature to a couple of degrees higher than before putting the food in.
After 40 minutes, the salmon is medium done, the way I like it. People who like their salmon rare, or well-done, would set the cook temperature higher or lower by a few degrees.
I also like my salmon to have a bit of crispiness, so it goes onto my cast iron grill skillet briefly for some Maillard reactions (I can’t emphasise how awesome this grill-skillet is, it can turn regular bacon into EPICBACON).
Unfortunately the salmon fell apart a little bit on the skillet, and it looked so good that I started eating it before I could take this next photo, but this is truly incredible salmon – underneath the crispy and aromatic outer layer is an incredibly tasty centre with the perfect amount of juiciness and tenderness, a gentle suffusion of seasoning, and a texture far more consistent than can be achieved through other means of cooking.
This photo doesn’t do justice to the tastiness of this salmon, I will have to add some pictures when I next cook some salmon.
Again, can’t attach zip files to WordPress, if anyone wants source code, contact me. I may put things on GitHub at some point
With the fridge built and tested, it was time to tune the PID controllers. I wrote a little add-on to the old USB temperature probe script to handle sending the PID gains and target temperatures (and also controlling the LCD display mode and backlight). (In the end I settled only PI control because of saturation effects).
After a bit of tuning with just the proportional gain, the results weren’t bad, quite clearly some oscillation going on here, with an error of a bit over half a degree.
So I add in some integral gain via the Ziegler-Nichols method. Again, not bad, but still a bit of steady-state error.
After a bit more tuning, and some substantial optimisation and bug fixing of the code, I start getting closer. A bit of an overshoot, but generally accurate to within maybe 0.3 degrees now after it settles.
This time it turned out that the method I was using to avoid integral windup (limited integral history) was causing the steady-state errors, so I adjusted the PID implementation to use a different method (disable the integral until close to the setpoint):
Perfect! The graph shows that if we tune the PI to get rid of the steady state errors, I can achieve +/-0.05 °C resolution (I believe the resolution after oversampling to 1 minute is accurate)
Note: resolution doesn’t mean it’s ACCURATE, I haven’t spent too much time calibrating it!
I think it is time to cook something…