Scalable SMD Soldering Reflow Hotplate With Solder Profiles

by crimson_dynamo in Circuits > Soldering

11314 Views, 127 Favorites, 0 Comments

Scalable SMD Soldering Reflow Hotplate With Solder Profiles

20231107_135153.jpg
20231107_134753.jpg
20231107_134528.jpg

WARNING: This project utilises mains level voltages (240VC AC), high currents (5 amps) and high temperatures (up to 220 degrees C). If you do not have the experience, knowledge, skills and tools to work with these challenges safely, then please do not try to implement this project!


Once you've built this device DO NOT LEAVE IT UNATTENDED WHEN IT IS IN USE!


Here is my attempt at an SMD Solder Reflow station. In this guise it utilises two 400W 240V heater plates, which can be used together to solder PCBs up to 105mm x 120mm, or with two additional hotplates and a reworked case, plus some minor tweaks to the software configuration, it could support boards up to 220mm x 125mm.

The unit supports multiple temperature profiles for different types of solder and can be run either in solder profile mode, where the hotplates heat up and cool down as specified in the user-programmable solder temperature profiles, or in constant mode, where a target temperature and heating period can be selected by the user. The profiles are not currently editable through the user interface, instead needing to be set up in the the C++ code, but adding user updateable profiles could be achieved if you know what you're doing and can implement some sort of storage for the profile data.

Supplies

Components List.png

Here's what you'll need to get this project made as you can see it in my YouTube video (which you can find here, along with a teardown video which you can find here).

The circuit schematic and main circuit board as described here could cope with four hot plates, as there are outputs for four solid state relays (SSRs) and inputs for four thermocouples, however, only two hotplates, SSRs and thermocouples are utilised in this version. You could, therefore, cut out a few discrete components and make some of the connectors shorter, but I don't think it would be worth it :-)

N.B The BC237 in the list above is wrong, it should be a BC337.


Components

  1. 1 x 3D printed case: For which you'll need a 3D printer which has a bed size of at least 220mm x 220mm and can print up to about 130mm in height and supports the filament change functionality which is required to allow the embedded nuts to be inserted during the print run. See attached STL files (see below), or access the project directly through Tinkercad here. I used Sunla Black PLA filament and printed at 0.28mm layer height for the main body, with the top surround (which holds the LEDs) at a much smaller layer height and high density to get the cable clips to be stronger.
  2. 2 x 400W 240V Heater Plates: I used these ones from Amazon, which at the time of writing are £7.09 each (but were cheaper when I got mine). Cost: £14.18.
  3. 2 x 240V 10A (or greater) Solid State Relays: These need to be DA type, i.e. DC control voltage (5V capable) and switched AC voltage (240V capable). I tried using these 4-channel 5V SSRs, but two different ones lasted only a couple of days each before the channels I was using for my heater plates died, so instead in this configuraration uses individual higher-rated SSRs. At the time I was building this I went for 40A ones, which were the cheapest on Amazon at the time and chose these. Looking on Amazon today, I found these, which are £10.99 for two.
  4. 1 x Normally Closed 50 Degrees Thermal Cut-Out 5A : I chose these which are £6.79 for five, or you could use something similar, as long as it can cope the approximate 5 amps the unit draws at full load. Please do not leave this item out of your build as the 800 watts this unit can convert to heat needs to be protected against in case of a thermal runaway, or fan failure!
  5. 1 x ESP32 Dev Kit V4: This is the main processor, and we'll need almost all of the IO pins to cope with four hot-plates, but there will be two unused IO pins for the extra thermocouples and two more for the extra SSRs which we won't be using in this two plate design. I use quite a few ESP32s, so I ordered a set of three on Amazon here, which currently works out to £7.33 each. You could use a different ESP32, but you'd need to tweak the code accordingly.
  6. 1 x 0.96" 128 x 64 Blue / Yellow OLED I2C Display: You could use a different display if you want, but you'd need to amend the case design and the software to cope with the different display size. I also use quite a few of these, so I bought this three-pack. The displays work out at £4.00 each.
  7. 1 x Rotary Encoder with switch: I used these, which is a five pack, which works out at £1.60 each.
  8. 2 x 100K Thermistors : These come with a long cable, terminated in a 2 x 1 2.54mm plug. The cable is too long,so you might want to cut and re-terminate, but you could just cable-tie the excess if you want. I used this three-pack, which works out at £7.33 for the two you need.
  9. 1 x IEC fused, switch, 240V port: Fit this with a 5A fuse. I use these too, so I bought this four-pack, which works out at £2.15 each.
  10. 2 x 80mm x 10mm 5V Fan: One of these keeps the electronics cool and one sits in the central metal plate, blowing cool air up around the hot plates, then ramping up to full speed when it comes to cool down time. I used these, which come in at £8.99 for the pair.
  11. 1 x 240V AC to 5V 3A DC convertor: This is used to drive the ESP32, the fans and the LEDs. I used this one at £4.99 each. I originally tried one of these, but it failed almost immediately, and another only lasted a few hours before it failed, so steer clear of those! Unusual for AZDelivery stuff, but those ones are duff!
  12. 1 x Active 5V Buzzer: Used to give alarms and other audible feedback. I already had some of these, but if you don't, you could use one of these, or one of these (and win some PP3 connectors), which work out at about £1.00 each.
  13. 4 x 5mm Dual Colour (Red / Green) LEDs: Used for temperature indication. I already had some of these lying around, but you can buy them inidividually or in a multi-pack. I got mine here, with them working out at £0.44 for four.
  14. 0.5 of a 96mm x 89mm PCB: These come as a single boards which can be snapped in two or into four. I used half a board from this four pack, which works out at £2.00. Be sure to check out the layout diagram below before you snap yours in half, as the PCB will not work if you snap it on the wrong axis!
  15. 2 x 0.5mm steel plates, approximately 17cm x 15cm: These are for the base and the middle plate which holds the supports for the hot-plates and middle fan. I can't remember where mine came from, but it wasn't expensive. A couple of these ought to do the job at £7.20 the pair.
  16. Electronic components (all through-hole):
  17. 3 x 100K ohm resistors for the encoder.
  18. 2 x 1K ohm resistor for the base of the buzzer and fan control transistors.
  19. 2 x 6.8K ohm resistors for the thermistors (needs changing to four off if four plates are used)
  20. 4 x 39 ohm resistors for current limiting the red LEDs.
  21. 4 x 82 ohm resistors for current limiting the green LEDs.
  22. 1 x 2N2222 transistor to drive the buzzer
  23. 1 x BC337 NPN transistor for the PWM control of the inside fan (oops, this was mis a typo in my original posting, where it was shown as a BC327)
  24. Connectors / Cables
  25. 2 x 1 x 19 2.54 female headers for the ESP32 to slot into
  26. 1 x 10 pin 2.54mm pin header for the two LED harnesses to connect to.
  27. 2 x 5 pin 2.54mm female connectors with female crimp pins for the two LED harnesses.
  28. 2 x 8 pin 2.54mm pin headers for either end of the the display / encoder connection cable.
  29. 1 x 4 pin 2.54mm female header for the display to plug into.
  30. 1 x 2 x 4 pin 2.54mm pin header for the thermocouples to connect to (could be reduced to a single 2 x 2 pin as we're only using two plates).
  31. 1 x 4 pin 2.54mm female connector with female crimp pins for SSR connections
  32. 2 x Screw terminal / PCB 10A two pin Male / Female connector pairs: Used for mains connection to the 5V PSU and for the output of the PSU to the main circuit board. I have a pack of these, which work out at about £0.80 for both sets. If you want to hard-wire the 240V to the PSU and the PSU to the main board, you could do without these.
  33. 1 x Short Micro USB to USB Type A Cable, right-angled at both ends: This enables connecting to the ESP32 without the need to open the case, but you could skip this if you want to. I used half of this pack of two, so £4.50 per cable.
  34. 1 x 10-way 5A screw terminal block: This also known by some as 'Chocolate Block' :-) Used to create looms for the mains power distribution of the switched live and neutral feeds.
  35. 1 x length of mains cable, of at least 1.5mm2: Strip this down to the individual brown, blue and yellow / green conductors and use to wire up the IEC connectors and the mains distribution to the SSRs. I always use ferrules when terminating mains connections and suggest you do the same. I bought this ferrule kit.
  36. 1 x 15cm 8-Way Female - Female Dupont cable to connect the main PCB to the display / encoder board.
  37. 22 AWG Solid WIre (various colours): To create the main and display circuit boards.
  38. 22 AWG Multi-core Soft Wire (red, green & black) for wiring up the LED harnesses
  39. Other Hardware
  40. 4 x M2 x 8mm Allen Bolts & Nuts to secure the display / encoder board
  41. 4 x M2 x 8mm Allen Bolts & Nuts to support the main PCB
  42. 2 x M3 x 8mm Allen Bolts, Nuts & Washers to secure the IEC inlet
  43. 4 x M3 x 8mm Allen Bolts & Nuts for the feet
  44. 4 x M3 x 8mm Allen Bolts & Nuts to attach the LED / Plate surround
  45. 4 x M3 x 8mm Allen Bolts & Nuts for the central plate
  46. 4 x M3 Nylon Screws, each with a 5-7mm nylon standoff and a nut, to support the PSU board
  47. 1 x M3 x 12mm Allen Bolt, three nuts and three star washers for the Earth point bolt. DO NOT SKIP OR FORGET THIS!
  48. 4 x M4 x 16mm Allen Bolts, Nuts and Washers for the side fan
  49. 4 x M4 x 16mm Allen Bolts & Nuts and Washers for the middle fan
  50. 4 x M4 x 8mm Allen Bolts & Nuts for mounting the two SSRs
  51. 7 x M4 x 50mm Steel Bolts for the hot plate supports
  52. 1 x M4 x 60mm Steel Bolt for the hot plate support which will have the earth strap on it
  53. 14 x M4 Nuts for the hot plate supports
  54. 3 x M4 crimp / solder insulated ring terminals: For creating the earthing straps between the IEC connector / base plate, middle plate and hot plates.
  55. Heat shrink tubing in various sizes and colours

Tools

  1. Soldering Iron: For making up the main and display circuit boards
  2. Digital Voltmeter (DVM) with resistance measuring capability.
  3. Wire Cutters
  4. Wire Strippers
  5. Pliers
  6. Screwdrivers (various)
  7. Tin Snips: For cutting the base and centre plates to size
  8. Jig Saw: To cut out the fan hole in the middle of the centre plate
  9. Drills (various) for cutting out the holes for bolts in the steel base and middle plates.
  10. Allen Keys (4mm, 3mm & 2mm): If you're using Allen Bolts
  11. Hot-air Gun for shrinking on heat-shrink tubing, but you could use a soldering iron for this
  12. Dupont crimping tool for making up LED and SSR connectors

Main Circuit Board

Reflow Full Schematic.png
Main Board Connectors.jpg
20231103_150401.jpg
20231103_150414.jpg
20231103_150440.jpg

You need to be reasonably well-practised at cutting, folding and soldering the solid-core wires to make up the main circuit board in line with the attached diagram and the attached photos. Please note that any individual conductor shown on the diagram is only attached at each end, not to the intervening holes. You should not need to cut an tracks.

For connections between two adjacent holes, I just strip a load of wire, cut it into 1cm lengths, then fold them into a 'U' shape over the pointy end of my needle-nosed pliers, then slot them into the circuit board and solder them from side where the link can be seen, so there's no chance of the tiny link wire falling out, then trim off the excess.

I put all of the single hole-to-hole links in first, then the shorter interconnect wires, then the longer ones, then the resistors and the transistor, then finally the pin headers and sockets. Note that due to some space constraints, two of the 6.8K resistors share a common hole in the board, so poke both legs through that one hole before soldering.

Before applying any power to the board, I strongly recommend that you verify the board against the diagram and photos, and also against the circuit schematic, as well as checking that there are no shorts or blobs of solder left about the board, then check that there are no shorts between the 5V and 3.3V rails and circuit ground too using a DVM. Then I suggest you wait until you've built the User Interface board before you proceed any further.

User Interface Board

Refer to the UI Board Layout attachment and the Full Schematic to wire up the User Interface Board, paying particular attention to the ensure that the display connector and encoder are on the front side of the board and the buzzer and 8-way interface connector are on the back of the board. You should not need to cut any tracks.

Then verify the board against the layout diagram and also against the circuit schematic, as well as checking that there are no shorts or blobs of solder left about the board, then check that there is no short between the 5V rail and circuit ground using a DVM.

Firmware

Arduino IDE ESP32 Settings.png

Right, before we start talking about the firmware, I'll hold my hands up and say that I'm no professional developer, just a hacker, so feel free to think bad things about my programming style and think about how bad it is that my main loop function is monolithic, but there's no need to rubbish me publically, OK? Anyway, what's wrong with an 800 line function?

The code for the Reflow Plate is written in C++ using the Arduino IDE, so you'll need that installed before you can go anywhere. I won't tell you how to get it, as there are loads of videos about that on YouTube.

You then need to add support for the ESP32 if your IDE isn't already set up to support them, by going into the File menu, selecting Preferences and adding 'https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json' into the 'Additional Boards Manager URLs' field. If you've already got other entries there already, add the above URL to the end after adding a comma seperator. Then hit 'OK'.

Then go into the Tools Menu, choose the 'Board' option, which will probably have your currently selected device type, then choose the Boards Manager option, which will bring up a dialog box and start looking for any added or update boards. Wait until it's done, then type 'esp32' into the Search box, then select the Espressif Systems option which comes up and hit the 'Install' button

Once it's finished installing support for the ESP32, go back into the Tools menu and select 'ESP32 Dev Module' as your board type. Then check that your other board settings match those in the attached screenshot. If you know the ESP32, you might want to tweak some of the parameters to meet your needs, but I just wanted to provided some working defaults :-)

Install the required Arduino Libraries (unless you already have them installed and configured), as follows:

  • Wire: This might come ready installed with the IDE
  • Adafruit_GFX
  • Adafruit_SSD1306
  • U8g2lib

If you don't know how to install libraries, there are plenty of YouTube videos out there to help you ;-)

Start a new project in the Arduino IDE called 'Reflow_104' and then copy the 'Reflow_104.ino' and 'thermProf.h' files into its folder, which should be at something like C:\Users\[USERNAME]\Arduino\Reflow_104 (for Windows users. For Mac / Linux, who knows!).

Do a test compile and all should be well. If not, you'd better get your diagnostic skills into gear :-)

Connect the User Interface board to the Main Board using an 8-way Female to Female Dupont cable, utilising the 8-pin header on the main board and the 8-pin header on the interface board, with the conductor which is closest to the edge of the main board going to the pin nearest to the buzzer on the user interface board. I prefer to use resistor colour codes for my board wiring, so in my case the conductor in question would be Black, which just happens to be the ground wire too, as it should be.

Plug a micro-USB cable into the ESP32 and into a spare port on your PC at which point the PC should recognise the ESP32 and allocate a Com port to it. In the Arduino IDE go into the tools menu and check that the Port option has been automatically selected to the new port. If it hasn't, click on the Port option and see which ports are listed and select the right one. If you're not sure which is the 'new' one, just unplug the ESP32 and check again and one of the ports in the list will have disappeared. Plug the ESP32 back in and it should be allocated the same port number again, so you can then pick that one.

In the Arduino IDE, going into the Tools menu and select 'Serial Monitor'. When the serial monitor starts, make sure that the baud rate is set to 115200 (bottom right corner), then make sure your ESP32 is working by poking its 'Reset / EN' button. The serial monitor should show a 'POWERON_RESET' message. Click on the Upload button (just below the menu bar, second button in from the left) and the code should be compiled and uploaded to the ESP32. Once the IDE starts showing the 'Connecting...' message, you will probably have to press the 'Boot' button on the ESP32, releasing it once the upload has started, which you won't need to do once the device is fully built..

If all is well, you should get the initial menu appearing on the display. Check that the encoder works by twisting it to change the currently selected mode, then poke it to select the Profile mode. If you don't get a display or the encoder doesn't work, power the ESP32 down and re-check both PCBs, resolving any issues you find.

If all is well, you can move on to building up the rest of the unit.

Wiring Up the Power Supply Board

Solder the male, PCB-mountable part of one of your two-pin connectors to the AC input end of the power supply board.

Strip 10mm off both ends of 18cm long brown and blue mains wires. Add ferrules to one end of each wire, then tin and solder the stripped end of the blue wire onto the 'Out -' hole on the board, and the brown wire to the 'Out +' hole.

Screw the ferrules on the two wires into the female end of one of your two-pin connectors, such that when the connector is plugged into the main circuit board, the brown cable is nearest the edge of the board.

3D Printed Case

Feel free to mount my stuff in some other sort of enclosure, but if you want to 3D print my enclosure, here are STL files of all the bits you need and some guidance on how to print them. N.B. All parts should be printed in the orientation provided in the STL file.

  1. Main Case, 1 off. I have provided a Prusa project file which you could use. If you're doing your own slicing of the main case I suggest you use a medium layer height, high density, painted on supports (preferably organic), 5mm brim. This is a complicated print, so be sure that your printer is up to it! Supports are not really necessary for the vent holes on the left side of the case or any of the captive nut holes, so instead of enabling default supports, just paint supports onto the following areas: The top of the side fan hole, the top of the IEC socket hole, the top of the display aperture, the top of the encoder hole, the top of the user interface board aperture on the inside of the case, the bottom and the unsupported edges of the four user interface board stand-off pillars. Filament changes are needed to allow captive nuts to be dropped in as follows:
  2. 6.2mm: 4 x M3 nut for feet
  3. 56.6mm: 2 x M4 nut for the front SSR
  4. 59.6mm: 2 x M4 nut for the rear SSR
  5. 77.2mm: 4 x M3 nut for securing the middle plate
  6. 120.8mm: 2 x M3 nut for securing the left side of the heater plate surround
  7. Heater Surround, 1 off. Fine layers, high density, supports enabled, no brim. Be very careful when removing the supports and opening up the slots in each cable clip.
  8. Cable Shield, 2 off. Medium layers, medium density, supports enabled, no brim.
  9. Lid, 1 off. Coarse layers, medium density, no supports, no brim. Optional extra, which helps to keep dust off the hot plates when the device is not in use. Be sure that the plates are cool before putting the lid on!
  10. Left Support, 2 off. Medium layers, high density, no supports, 5mm brim, filament change at 7.2mm. The main case has four supports for the middle plate, but only the two right ones for the top plate, as otherwise you wouldn't be able to get the middle plate in. So these are designed to be a force fit over the head of the allen bolts which hold the left side of the middle plate onto the case. If your allen bolt heads are a different size to mine (5.3mm dia.), you might need to tweak the size of hole in the base of each so that it is a tight fit, so just print part of one and check that it is a good tight fit onto your bolts before doing full prints of both. Once the printer has stopped for the filament change, drop an M3 hex nut into the exposed hexagonal hole, then restart the print. The part needs to be inverted so that the captive nut is at the top when installed into the device.
  11. Cable Protector, 2 off. Medium layers, medium density, supports enabled, 5mm brim. If your middle plate is thicker than 0.5mm you will need to increase the size of the slot accordingly.
  12. Main PCB Standoffs 1 & 2, 1 off of each. Medium layers, medium density, no supports, 5mm brim.
  13. Foot, 4 off. Medium layers, high density, no supports, 5mm brim.
  14. SSR Wire Shield, 2 off. Medium layers, medium density, no supports, no brim.
  15. USB Cable Mount, 1 off of each piece. Medium layers, medium density, no supports, no brim.

As mentioned at the start, you can access the full 3D model at Tinkercad, where you can take a copy and tweak it to your heart's content ;-)

Printing the main case will be a long job, nearly 24 hours for me on my Creality Ender 5, but hopefully it will be OK for you.

I have provide a Prusa .3mf project file, generated in Prusa Slicer 2.6.0.alpha4, which prints at 205 degrees, 60 degree bed heat, and includes organic supports in the right places, as well as filament changes at the right layers for inserting the captive nuts if it helps :-) I would have included a gcode file that this would generate, but the file is bigger than 25MB, so Instructables won't allow it, and I can't upload ZIP files either :-S

Bottom Plate

20231104_113739.jpg

Using the photograph as a guide, make the bottom plate as follows:

  1. Cut the bottom plate out of 0.5mm thick steel sheet to be 155mm x 175mm.
  2. Drill four 3mm diameter holes for the securing bolts in the corners, with centres at about 8mm from each edge
  3. Drill two 3mm diameter holes for the cable guide bolts, with centres at about 21mm in from the right edge, using the 3D print cable guide positioned equidistant from the top and bottom edges of the plate to get the hole centres.
  4. Drill four 3mm holes for the PSU standoff bolts, with centres 60mm and 34mm from the right edge and 46mm and 104mm up from the bottom edge. Use the mounting holes on the PSU to help centre these.
  5. Drill two 2mm holes for the wider of the two main PCB standoffs 44mm up from the bottom edge and 23mm and 67mm in from the left edge, use the 3D printed part to help get the centres.
  6. Drill two 2mm holes for the narrower of the two main PCB standoffs, one 23mm in from the left edge and 126mm up from the bottom, and the other 52mm in from the left edge and 121mm up from the bottom. Use the 3D print parts to help centre these holes.
  7. Drill a 3mm hole for the earthing bolt, 57mm in from the right edge and 48mm down from the top edge.

Make sure that the 2mm and 3mm bolts fit through the holes, then remove any burrs.

Solder the male PCB mountable part of a plug / socket pair (part 17h) onto the PSU PCB, ensuring you are connecting it to the 240V input side, then solder 18cm blue and brown wires (or black and red if you've got it) to the ground and 5V output pads of the PSU. Terminate both those cables with ferrules.

Mount the power supply to the bottom plate using the M3 nylon standoffs, with the nylon bolts screwing into those from the underside of the plate and the nylon nuts screwing onto the standoffs to hold the PSU down.

Mount the main circuit board on top of the two 3D printed standoffs using 2mm bolts and nuts. Place an insulating washer on the two rightmost ones (nearest the base plate edge, to prevent the nuts shorting out against tracks adjacent to the mounting holes. You'll need to drill out one of the PCB through holes for the top left hand mounting screw, which is the seventh hole in from the left of the board and third hole down (see photo of board to confirm this).

Mount the cable guide using two 3mm allen bolts and nuts, using the 3D model as a guide.

Thread the 3mm earthing allen bolt through the bottom plate and use a starwasher and nut to secure it, making sure it's good and tight.

That's the bottom plate done, but don't fit it at this time..

Middle Plate and Hotplate Mounts

20231107_095417.jpg
20231107_122750.jpg

Cut the middle plate out of 0.5mm steel sheet to 149mm x 169mm, then check that it slots into the case, sliding it in from the left onto the mounting platforms in the vertical centre of the case. You may need to cut or file a 28mm narrow cutout in the centre of the left hand edge to get it past the slight protrusion there and / or cut some small triangles off each corner.

Once you're happy with the fit, drill four 4mm holes for the securing bolts about 4.75mm in from each corner. These are oversized for the 3mm allen bolts, but mean you can be a bit imprecise with your drilling.

Cut out two slots in the left edge of the middle plate 24mm high by 9mm wide for the cable protectors, the slots starting 38mm up from the bottom and 38mm down from the top of the plate. Use the 3D model to check to help you with positioning these. You can use tin snips or a jig saw for this, or just cut in from the side and then use a pair of pliers to work the flap up and down until it breaks off, although this might mean that a bit of filing is required. Deburr and flatten the edges after you have cut the slots, then check that the cable protectors slide into the slots, adjusting as necessary.

Now cut a 75mm diameter hole in the centre of the plate for the 80mm fan using a jigsaw, or tin snips if you're clever enough, then deburr it and flatten any kinks you've introduced. Position a fan over the centre of the hole and mark the centre of the mounting holes, then drill these out with a 4mm drill.

Verify how close together the centres of two of your 4mm bolts and their nuts can be such that it is possible to tighten the nuts of each without it interfering with the other nut / bolt. For my nuts and bolts this is about 14mm

Now drill eight 4mm holes for the hot plate mounting bolts. For the hotplates I used, these holes need to be centred at the corners of two 113mm x 63mm rectangles, positioned 14mm apart (from measurement above) centrally located in the centre of the plate, with there being two holes on the left to right axis and four in the top to bottom axis. See the 3D model for clarification on this orientation.

Thread two 4mm bolts through two of the holes which are closest together, and you should just be able to tighten down the nuts for both of them. Remove theses test bolts and nuts.

The aim of this next bit is to get the hotplate mounting bolts cut to the correct size, secured to the mid plate, each with a pair of nuts locked together at the correct height for the hotplate to be bolted down to at each corner without the bolt protruding through the nut, and for the centre four holes to be supported by locked pairs of nuts, with the cut off end of a bolt holding the plate in position, but not secured with a nut. Oh, and this is where we install the connection of mains earth to the middle plates and hotplates. DO NOT MISS THIS BIT!

Check out the start of this step to see how one of the corners should look, with the two nuts locked together below the hotplate, and a single nut securing the hotplate down onto those nuts. Then there's an image showing the four centre supports just below the surface in each plate and the two back plate securing nuts. This is what you are aiming for.

Take a 25cm length of the yellow / green earth conductor and crimp on an insulated ring terminal with a 4mm hole at either end of it. Put an M4 star washer onto the M4 60mm bolt, then put one of the the ring terminals onto the bolt, then add another star washer, then push the bolt through the mid plate, using what will be the leftmost back hole. Put a nut on the other side of the plate and do it up it really tightly. The addition of the ring terminal and star washers is why this bolt needs to be a 60mm one; we'll cut it to the correct size later.

Thread the other seven M4 bolts through the mid plate and tighten their nuts so that you have eight threaded supports for your hot plates. Put two nuts on each of the bolts and wind them down on the seven shorter bolts so that the top of the top nut is about 4.5mm below the top end of the bolt, winding the two nuts on the 60mm bolt to the same sort of level, then drop the two hotplates over the eight bolts and thread another nut onto each bolt.

As you tighten the top nuts on the 50mm bolts, they should nip onto the hot plate such that the top of the bolt is level with the top of the nut. If this isn't the case, get the top of the nut level with the top of the bolt and adjust the nut below the hot plate until the hotplate is secured on both sides and the top of the top nut is level with the top of the bolt. Tighten the nut below the plate to get things reasonably snugged down. Now adjust the two top nuts on the 60mm bolt to get the back hot plate nicely level.

Once the top two nuts on each of the eight bolts are snugged down around the two hot plates, bring the third lower nut up to the bottom of the second nut and, while keeping the second nut in its current position with one spanner, tighten the third nut up against it with another spanner, locking those two nuts under the hotplates in place. Once this is done, mark the top of the 60mm bolt by lightly running a hacksaw across its threads where they protrude through the top nut.

Now remove the four nuts which hold the edges of the two hot plates close to each other. We won't have nuts on these bolts, just to give more clean area for PCBs. Using a junior hacksaw mark each of the four bolts level with the top of the hotplate so that you can cut their tops off later.

Now remove the remaining four nuts holding the hot plates on, then remove the 60mm bolt completely, inluding the star washers and ring terminal, as well as the four central scored bolts, then thread a nut onto each of the removed bolts and run it down past the score mark you made, then hold the bolt in a vice or pair of molegrips using the nut to grip it, and take the end of each bolt off using a junior hacksaw or a Dremmel or something similar. Then unthread the nut, which ought to sort out the threads at the end of the bolt (as long as you haven't been too brutal!). File off any burrs on the cut end of each bolt and check that you can still thread a nut on to it.

Reattach the now-shortened 60mm bolt to the mid plate as before, including the star washer, ring terminal on the earthing wire, second star washer and then push it through the mid plate, adding a third star washer to the other side of the plate and really tighten a nut down onto it.

THIS EARTH CONNECTION IS VITAL TO MAINTAINING THE SAFETY OF THE DEVICE, AS IT EARTHS THE MID PLATE AND HOT PLATES, SO MAKE SURE IT IS SECURE AND PROPERLY FITTED!

Thread the four centre bolts back up through the mid plate, then add and tighten a nut on each, then thread two nuts onto each bolt and then pop the two hotplates back into place, tightening the four corner nuts to hold them in place. Now run the top nut up the four middle bolts until they are supporting the hotplate, making sure that the cut end of the bolt is level with the surface of the hotplate and that the two hotplates are level with each other and provide a flat surface for a wider PCB to sit on, then run the lower nut up against the top nut, hold the top nut with a spanner and then tighten the lower nut, locking both in place.

If the hotplates aren't flat or level with each other, you may need to take a bit more off the top of the four middle bolts and adjust the locking pairs of nuts. Take your time and get this right :-)

Remove the two hotplates, by removing the four corner nuts, but leave the mounting bolts in place.

Now mount the middle fan and one of the cable shields to the bottom of the mid plate using four M4 bolts with washers on either side, ensuring that the fan is oriented so that it will blow air upwards past the hot plates when it is powered up. Check the 3D model out to determine the correct orientation of the cable shield, and have the cable for the fan running out of the back left corner (to aid in cable routing later).

Do not insert the mid plate into the case yet.

Mount the User Interface Board

Look at the 3D model in Tinkercad and make the main case part into 'Hole', so that it becomes see-through, and you will see that there slots for four M2 nuts to slot into near the end of the four PCB support posts for the User Interface Board. They might be a bit fiddly to slip into place, but it can be done :-) Once they are in place, add a nice knob onto the encoder shaft, then offer the board up to the support pillars and use four M2 bolts to secure it in place.

Solid State Relays

20231105_103430.jpg

The solid state relays have a DC side (terminals 3 & 4), where the control signal from the ESP32 is connected, and an AC side (terminals 1 & 2) where a live 240V suppply is switched to connect or isolate one side of each hotplate to the live thermally protected side of the 240V supply.

Check out the schematic, looking at the bottom left corner, you can see that J8 drives the DC side of the SSRs (please ignore the A1/A2/11/14 numbering on the SSRs), with pins one and two of J8 being the ground side of the SSR DC inputs and pin three driving the rear hotplate SSR and pin four driving the front hotplate SSR.

You'll need to build up a four-conductor cable with a female four-way 2.54mm Dupont connector at one end and individual single pin male Dupont connectors on the other. I suggest that you use some heat-shrink around each pair of ground / signal wires to keep them together. Then wire up the two SSRs, screwing the male pins from pins one and two of the female Dupont connector to the '-' input pins (terminal 4) on the two SSRs, and the male pin from pin 3 to what will be the '+' input (terminal 3) of the rear SSR, and pin 4 to the '+' input pin (terminal 3) of the front SSR.

Each SSR will need a brown live cable connecting to one of the AC terminals (terminal 1 or 2), so use a crimped on fork or loop type insulated connector, screwing it securely under the terminal screw, and leave about 15cm of free brown wire which will be wired into the mains distribution chocolate block later.

Now mount the SSRs within the case using two M4 allen bolts each (see 3D model), with the AC connections pointing towards the left hand side of the case.

We'll connect one side of each hotplate to the spare AC terminal on each SSR later.

Wiring Up the IEC Mains Input

IEC Pins.jpg

Look out, here's another nanny state safety warning!

If you don't know how to work safely with mains level AC voltages, get someone who does know to help you and validate this device before you use it, or just give up and go and buy an off-the-shelf SMD Reflow Plate off Amazon.

If you're happy to proceed, then wire up the IEC connector as follows, either using crimped on insulated spade connectors (easiest) or by soldering directly to the terminals and using heat-shrink to protect the wires (a bit of a PITA!).

  • Pin 1 Incoming mains earth: Add a yellow and green cable about 10cm long, with a 4mm insulated ring terminal on the other end. This will earth the whole device so make sure that this is properly connected.
  • Pin 2 Incoming mains neutral: Add a short blue cable connection to the Switch In A terminal.
  • Pin 4 Fused mains live: Add a short brown cable to Switch In B terminal.
  • Switch Out A is the switched mains neutral: Add a 10cm blue cable terminated in a crimped on ferrule.
  • Switch Out B is the switched, fused, mains live: Add a 15cm brown cable terminated in a crimped on ferrule.

Check your wiring!

Mount the IEC port to the case using two M3 bolts with nuts and washers.

Thermal Cutout

Add ferrules to each of the two wires on the thermal cutout fuse, then attach it to the bottom of the middle plate using a good sized piece of Kapton tape, or some other thermally tolerant tape. Rather than mounting it in the rear left corner of mid plate, as shown in the 3D model, I have mine mounted next to the front of the two cable protectors, right next to the fan. That way its cables an easily be routed into the mains distribution choclate block (shematic, J13, top terminals six and seven) once the mid plate is fitted.

Mains Power Distribution

Mains Wiring.png

Refer to the circuit shematic diagram and look at J13 in the Mains Power Distribution part of the diagram.

Make up the 240V neutral distribution cable which links top terminals one to five, using blue wire from the mains cable you dismantled ages ago. It needs to be made up of four short lengths of wire, each about 9cm long. Strip each end back by about 1.5 cm, then make up a daisy-chain cable using ferrules, with a single conductor in the first and last of five ferrules (use ones which are a good fit over those single conductors), then twist the ends of two wires together and push them into a bigger ferrule until no copper can be seen, then crimp the ferrule tightly. Trim the ends of the ferrules down so that they are a good fit into one side of one end of your 10 way chocolate block connector, such that they won't interfere with another ferrule pushed in from the other side, then screw them into the top rightmost five terminals, one to five, just like on J13.

Make up another daisy-chain cable for the thermally protected 240V live distribution, but this only needs to be made up of two wires and three ferrules. Make it up just like the neutral one, then trim it and fit it into the top terminals eight to ten, as in J13.

Make up a cable to connect the thermally protected mains 240V live to the live distribution daisy-chain cable and the 240V AC to 5V DC Convertor board. Strip about 1.5cm off one end of a 15cm of brown wire and 1cm off the other. Cut another length of brown wire to be about 7cm long and strip each end of that in the same way. Twist the longer stripped ends together and push them into one of the bigger ferrules until no copper can be seen, then crimp the ferrule in place. Put thinner ferrules on the remaining ends of the the two wires. Trim the ferrules of the daisy-chained end and push them into bottom terminals seven and eight of J13.

Strip both ends of a 15cm blue wire and add ferrules to both ends (or only one end if you're soldering directly to the PSU board, rather than using the plug / socket pair). Trim one ferrule and insert it into bottom terminal three on J13. This will be the neutral 240V supply to the AC to DC convertor.

Unless you are soldering the thermally protected live and neutral cables directly to the PSU board, add J9 to the hanging live and neutral wires from J13-7 and J13-3 by inserting the ferrules (trimming if necessary) and screwing them in place.

Mount the mains distribution block into the left side of the case, positioning it half way up the vent holes and in the middle of the left side, then use cable ties threaded through the third and fourth vent holes up, to hold it in place.

Push the ferrule of the blue switched neutral wire from the IEC connector into J13 bottom terminal one, trimming if necessary, then screw it in place.

Push the ferrule of the brown fused switched live wire from the IEC connector into J13 bottom terminal six, trimming if necessary, then screw it in place.

Install the Thermocouples and the Hotplates

The hotplates need to be installed with their heater and thermocouple wires coming out of their left hand sides. Mark up one of them on the underside as 'Back' and one as 'Front', then use a good sized peice of Kapton tape to secure a thermocouple to the underside of each hotplate, positioning it in the middle of the long edge of the plate, which is not directly impacted by the heating element, such that the thermocouple is on the side nearest the front for the back plate and the side nearest the back for the front plate.

If you want to reduce the size of the two-wire cable of the thermocouples, now would be a good time to do that. Cut them down to about 25cm long, then reterminate to a two-way Dupont female connector.

With the mid plate positioned with its cable slots to the left, install the cable protectors if they're not already in place.

Take the back hot plate and attach it using two M4 nuts, snugging them down tightly, then do the same for the front plate. The cables running from back to front should be rear plate heater cable, rear plate thermocouple, front plate thermocouple then front plate heater.

Install the Mid Plate


Slide the mid plate onto its supports in the case, feeding the wires for the front and rear hotplates and thermocouples through their respective cut-outs, and ensuring the wires for the thermal cut-out and the earthing wire go safely down into the base area of the unit. Don't screw the mid plate down yet, as it being free to move will give you a bit more space for the next steps.

Connect one of the ferrule terminated wires from each hotplate to the free AC terminal on each of the SSRs. Push a 3D printed insulator block into place over the AC terminals.

Connect the ferrules for the thermal cut-out into mains distribution chocolate block, J13 top terminals six and seven, trimming them if required, and screw them tightly in place.

Connect the remaining free ferrule terminated ends of the hotplate wires to bottom terminals J13-4 and J13-5 on the chocolate block connector.

Secure the mid plate using four M3 bolts.

Create the LED Wiring Harnesses

The bi-colour red / green LEDs have three legs:

  • Longest (usually the middle one): Common Cathode
  • Next longest: Red Anode
  • Shortest: Green Anode

If you have a component tester or DVM which can do diode testing, verify the connections on your LED and amend these instructions accordingly.

Invert the 3D-printed heater surround plate on the table with the cable clips upward. We'll want the wiring harness for each pair of LEDs to come out of the right side, which will be the left side once the plate is turned the right way up (but don't sweat about this!).

Position the LEDs so that the shortest wire (green anode) is towards the outside of the heater surround plate and the pins are all in a line, then push them into the holes in the bottom of the heater surround. This might take a tap with a small hammer or something, using a small flat-blade screwdriver onto the base of the LED, as they are quite a tight fit. Trim the legs (as long as you're sure you know which the three pins is which!) down to about 15mm long.

Now we need to create the wiring harness by soldering three wires to each LED, then insulating each solder connection with hot-shrink tubing.

Do the right LEDs first, as these will be nearest the edge where the cable slots go down into the device. The wires need to be about 25cm long, but give yourself some spare. Using multicore (soft) 22AWG wire, solder a green wire to the outside pin, a black wire to the middle pin and a red wire to the inside pin. Then shrink in place a length of heat-shrink tubing over each to cover the bare LED lead and the solder joint. As well as using heat-shrink tubing over the solder connections, use a few short pieces of larger tubing to bundle each black / green / red set together too.

Then move on to the left LEDs, making these leads each about 60cm long. Solder the wires to the LEDs, use heat-shrink tubing over the joint and bare lead, then, once you've soldered all three leads, hold the leads close to the LED with a pair of pliers and bend them to make the wire run parallel with the surface towards the nearest corner.

Carefully either thread each wire into the printed wire retaining clips (safest), or push them through the slot in the side of the clip (possible threat of breakage :-(), working around the surround until the cables can be bundled with the ones from the other LED.

For each of the front and back harnesses, you now need to combine the two black wires, so that they can both be connected to a single Dupont female pin. The safest way to do this it to cut both black wires about 10cm after they come together, them strip them, twist them together, apply solder to the joint, then strip and tin one end of one of the cut black wires, then solder it to the merged black wires from the LEDs, then slide some heat-shrink tubing into place over the joint and shrink it into place.

Add some heatshrink around each wiring harness which you can use to identify which is which, say red for front and green for rear?

Mount the Heater Surround Plate

Grab the two 3D-printed Left Support parts. Each has a hole in the top, in which there should be a captive nut, and a bottom which is just a round hole.

The holes should be an interference fit over the two mid plate securing bolts, push each of the the left supports into place over the bolt head and then push it into place. You might need to apply some percusive persuasion (with a hammer and protective interface material) to get the support into place.

Thread each of the LED harnesses down through the cable slots in the mid plate, then position the heater surround in place and screw it down using four M3 allen bolts.

Installing the Main Fan and the USB Cable

Attach the main fan and its associated cable shield to the right side of the case, using 4 x 4mm allen bolts, washers and nuts. The fan should be oriented so that it blows out of the case, with the 5V supply cable coming out of the top.

Insert the Micro USB cable into the ESP32's USB socket, then clamp the other end between the two halves of the USB Cable Mount. If it doesn't fit, sorry, but you'll need to remodel the Cable Mount until it does. Slide the USB cable mount into the side of the case.

Hooking It All Up

By now, you should have the following connected to the chocolate block, so check each connection:

  • Bottom, from right to left
  • 1: Switched 240V Neutral
  • 2: No connection
  • 3: 240V Neutral to AC-DC Convertor
  • 4: 240V Neutral feed to the rear SSR
  • 5: 240V Neutral feed to the front SSR
  • 6: Switched fused live from the IEC port
  • 7: Thermally protected 240V live to AC-DC convertor and link to pin 8
  • 8: Link to thermally protected 240V live on pin 8
  • 9: 240V Live feed to the rear hotplate
  • 10: 240V Live feed to the front hotplate
  • Top, from right to left
  • 1-5: Daisy-chained 240V Neutral
  • 6 & 7: Thermal cut-out
  • 8-10: Daisy-chained thermally-protected 240V Live

Check that all of the chocolate block screws are tight.

Put a star washer over the 3mm earthing bolt in the base plate, then thread the 4mm insulated ring connector from the IEC Earth pin over it. Add another star washer, then add the earth connection wire from the mid plate, then another star washer, then add a nut. Tighten the nut, using an allen key in the bolt head, to ensure a really secure earth connection.

Now use a DVM in ohmeter mode to check that the resistance between the earth pin on the mains plug side of the IEC (the longer of the three pins) shows a very low resistance to the base plate and to both of the hotplates. If it doesn't, investigate and resolve any problems you find. DO NOT PROCEED UNTIL YOU KNOW THAT THE BASE PLATE AND HOTPLATES ARE ALL EARTHED!

For the following cable connections, utilise the slots in the cable guide to keep things neat and tidy.

Plug the two-pin connector from the mains distribution block into the power supply board (not the main board!). Then plug the output cable from the power supply into the main board.

Plug the thermocouple from the rear hotplate into the channel 3 pins on J14 (see photos of Main Board above), and the thermocouple from the front hotplate into the channel 1 pins.

Plug the 4-way female Dupont connector from the two SSRs onto the rightmost pins of J8, such that the two negative sides are to the right.

Plug the 8-way Dupont cable onto the user interface board and onto J19 on the main board, such that the conductor nearest the buzzer goes to the end of J19 nearest the edge of the board.

Now that the LEDs are in place and you can see how much slack you actually need in the LED harnesses, trim the wires to the correct length and make up a 5-way Female Dupont cable with the black wire at one end, followed by red, green, red, green for the front harness, then black, red, green, red, green for the rear harness.

Plug the 5-way Female Dupont cable from the front LED harness into the leftmost pins of J10/J11, with the black wire to the left, then plug the other LED harness onto the remaining pins, with the black wire to the right.

Plug the main fan plug onto the leftmost of the two fan headers, black to the left, and the mid plate fan into the other header, black to the left.

Right, I think that's it!


Initial Testing

20231107_125351.jpg


During the initial tests, if anything looks odd, sounds odd or smells odd, immediately power the unit down, disconnect it from the mains supply and investigate!

With the unit on its left hand side on the table in front of you and the base plate folded down (it probably won't go all of the way down), we'll do some initial testing.

Make sure that the mains switch is in the off position and insert a mains plug into it, then turn the power on to that cable.

Look at the top of the unit as you turn the power switch on.

The main fan should start immediately, then each LED should go red, then green, then off, then all four LEDs should go green.

Carefully check that neither of the hot plates is getting warm or hot, and do be carefull as if they receive a full 240V for some reason they will heat up almost instantly. If either plate is getting even slightly warm, turn the mains off, disconnect the mains lead and investigate what is going on, and don't power the unit back up until you are sure you've fixed whatever issue(s) you find.

The display should have come on and be displaying the main menu, and be indicating the temperature of each hotplate in degrees C, and the raw ADC reading next to it. Each hotplate should be stable at room temperature, whatever that is.

The main option will show as 'Profile', so turn the knob until it shows 'Constant', then poke the knob, and the Constant menu will be displayed, with the cursor ('>') next to the Target temperature. You can spin the encoder and the cursor will move between the possible fields you can edit. Poke the button again, which will selet that field, turning the cursor into an asterisk ('*'), showing that the target temperature can be changed. Rotate the knob to reduce the target temperature to 50 degrees, then poke the button again. The cursor will skip to the 'Plates' field, so poke the button and change this from '2' to '1', then poke the button again.

The cursor will skip to the 'Durn' field, so poke the button again and change this from 301 down to 100, then poke the button again, and the cursor will skip to the 'Go!' field.

The display should now look like the picture above. If it doesn't, use the knob and button to edit the fields unti it does. then reselet the 'Go!' field.

Hit the button twice and the heating of the hotplates should start. Look up into the bottom of the unit and verify that the mid plate fan is running.

Check the display and you should see the front plate temperature starting to rise. Once it hits 45 degrees the LEDs next to that plate should turn solid red. The display should be showing a line for the setpoint and a filled area for the temperature, which should rise in line with the temperature rising.

The temperature on the front plate should hit 50 degrees and level off, then once 100 seconds have passed, the heaters should turn off, the mid plate fan should ramp up to full speed and the temperature on the front plate should start to fall. As it passes 45 degrees the LEDs should go green. Once the temperature reaches 30 degrees, or the cooldown timer expires, the beeper should go off and the job is done.

There is a bug in the code at the moment, which I'll fix at some point, which means that you'll need to power the unit off and back on again if you want to do a second soldering job. Sorry about that :-S

Right, for the next test, do another Constant job, but this time set the target temperature to 90 degrees, the plate count to two and the duration to 120 seconds. Once you set it running, both plates should heat up, the LEDs should go solid red as each reaches 45 degrees, then start flashing as the plate gets to 80 degrees. Once the temperature stabalises at 90 degrees, we'll initiate an Abort, by poking the button. Immediately the unit should beep and display an 'ABORTED' message, the run should immediately terminate, the mid plate fan should come on full and the heaters should switch off, causing the temperature to start to fall. The LEDs should go solid red when the temperature is below 80 degrees and green when it's below 45 degrees.

Finally, do a Profile run, using one or two plates, and check that the unit behaves as it should. Given the current tuning of the PID control loops, the actual temperature lags a bit behind the changing set point. I'm still working on improving this, but feel free to tweak the PID profiles in the code if you fancy :-)

Right, if all the tests go according to plan, power the unit down, disconnect it from the mains and carefully fold the bottom plate up, making sure that none of the wires get caught / snagged.

Do a quick test that none of the cables have fouled in either fan by initiating a Profile or Constant run, then aborting it. If you hear odd clicking sounds, or either fan is not running, power off immediately, open the bottom up and see what's wrong, then fix it.

Finally the base in place using four M3 bolts through the four 3D printed feet.

Thermocouple Calibration

Profile Plot.png

Rather than using a thermocouple conversion algorithm (which I found to be a bit sketchy), I've used a lookup table to convert raw ADC ratings from the thermocouples to degrees C. The lookup table is held in the 'thermProf.h' file.

The conversion method utilises the LOWESTTHERM and LOWESTTEMP values, reducing the raw ADC value by LOWESTTHERM, then using the remainder as an offset into the floating point thermProf array, where the temperature is held.

If you want to calibrate your ADCs, you'll need a temperature measuring DVM with a temperature probe, or some other reasonably accurate temperature measuring device. Which you should attach to one fo the edges of the front hotplate, close to the heater surround.

From the main menu, choose the Test option, and the display will show that the test is off (no power applied to the hotplates), and also show the current PWM value, as well as the temperature on each hotplate in degrees C and in raw ADC readings.

Amend the source code in the Arduino IDE and remove the '//' marks in front of the '#define STATSONSER' line (approx line 32), then recompile and upoad to the ESP32. Once the device has rebooted, opening up the serial monitor will show you the current setpoint (SP), temperature (T) and PWM output percentage (OP%) for the front (1) and rear(2) plates.

Start a spreadsheet and choose how many measurement steps you want to record between say 25 degrees C and 200 degrees C. Maybe try every five degrees. Enter titles of 'Temp', 'Rear' and 'Front' in one row, then add five values (25, 30, 35, 40, 45), in the Temp column, then extend the range downard until you've created a list of five degree values between 25 and 200.

Turning the encoder will increase the displayed PWM value, but not actually change the output. Set the encoder to a low value, say 50, and then poke the button. The display will show that the test is now On, the mid plate fan will start and the value you have selected will be applied as a PWM signal to both the front and rear SSRs.

As the temperature on your measuring device hits each five degree value, add the raw thermocouple readings from the devices display under the Rear and Front headings. The temperature will only rise slowly with a 50 PWM signal, and it will eventually plateau out, so wind it up to make the temperature rise more quickly, or down to slow it down, until you've taken readings for all of the temperatures you need.

To stop the test at any time, just hit the button, and the SSRs will be switched off, the mid fan will go to full speed and the temperatures should start to fall.

If you want to see a detailed chart of temperatures setpoints and output levels, close the serial monitor and open the serial plotter instead, a sample of which is included above.

Once you have your raw data, interpolate between each two data points (maybe averaging across both plates) to yield the temperature at each individual raw ADC reading. Format this data in the same way as required for the current thermProf array, and replace the current one with your data, then recompile and upload, and you should be good to go :-)

N.B. You need to manually restart the device to get out of Test mode.


What Next?

There are a few things I'd like to add to the firmware, such as thermal runaway protetion, and I'd definitely like to to get the PID control much better, but I'm deep into a couple of other projects at the mo', so I'm not sure when I'll get round to do anything anything further on this one.

I also do not currently have the capability to take any thermal images of the hotplates when the device is in use, so I can't be at all sure how it is atually performing, or how even the temperature is across the boards. But the PCBs I've made to date using it have all soldered up really well with my Chipquik solder, so maybe it's all OK :-)

The good news is that the device is being actively used to help me manufacture PCBs for my other projects, so I'm really glad that I built it, and it was a great project to have a go at.

Feel free to hack it about, both in terms of the firmware and the hardware, but whatever you do, beware of that 240V, 'cos it sure hurts when you get a belt!

Have fun!