Silicon ChipProgrammable Temperature Control with a Peltier, Part 2 - April 2020 SILICON CHIP
  1. Outer Front Cover
  2. Contents
  3. Publisher's Letter: "Second sourcing" should be applied to more than electronics
  4. Feature: Grid-scale energy storage by Dr David Maddison
  5. Project: A DIY Reflow Oven Controller for modern soldering by Phil Prosser
  6. Review: 900MHz Touchscreen Vector Network Analyser by Allan Linton-Smith
  7. Project: Two new 7-band Audio Equalisers for hifi, PA and more! by John Clarke
  8. Serviceman's Log: It would be a waste of parts by Dave Thompson
  9. Project: Programmable Temperature Control with a Peltier, Part 2 by Tim Blythman & Nicholas Vinen
  10. Project: Frequency Reference Signal Distributor by Charles Kosina
  11. Review: Tecsun Radio’s new HF SDR Amateur Transceiver by Ross Tester
  12. Product Showcase
  13. Vintage Radio: Tecnico 1050 by Associate Professor Graham Parslow
  14. PartShop
  15. Market Centre
  16. Advertising Index
  17. Notes & Errata: AM/FM/CW Scanning HF/VHF RF Signal Generator, June-July 2019
  18. Outer Back Cover

This is only a preview of the April 2020 issue of Silicon Chip.

You can view 40 of the 104 pages in the full issue, including the advertisments.

For full access, purchase the issue for $10.00 or subscribe for access to the latest issues.

Items relevant to "A DIY Reflow Oven Controller for modern soldering":
  • DSP Crossover CPU PCB [01106193] (AUD $5.00)
  • DSP Crossover LCD Adaptor PCB [01106196] (AUD $2.50)
  • DIY Reflow Oven Controller PCB Set (AUD $12.50)
  • DSP Crossover front panel control PCB [01106195] (AUD $5.00)
  • PIC32MZ2048EFH064-I/PT programmed for the DIY Reflow Oven Controller [2910420A.HEX] (Programmed Microcontroller, AUD $30.00)
  • Pulse-type rotary encoder with pushbutton and 18t spline shaft (Component, AUD $3.00)
  • 128x64 Blue LCD screen with KS0108-compatible controller (Component, AUD $30.00)
  • ST7920 driver for PIC32MZ projects (Software, Free)
  • Firmware (HEX) and source code for the DIY Oven Reflow Controller [2910420A.HEX] (Software, Free)
  • DSP Active Crossover/DDS/Reflow Oven PCB patterns (PDF download) [01106191-6] (Free)
  • DIY Solder Reflow Oven drilling, cutting and folding diagrams (PDF download) (Panel Artwork, Free)
Articles in this series:
  • A DIY Reflow Oven Controller for modern soldering (April 2020)
  • A DIY Reflow Oven Controller for modern soldering (April 2020)
  • A DIY Reflow Oven Controller – Part 2 (May 2020)
  • A DIY Reflow Oven Controller – Part 2 (May 2020)
Items relevant to "Two new 7-band Audio Equalisers for hifi, PA and more!":
  • 7-Band Mono Equaliser PCB [01104201] (AUD $7.50)
  • 7-Band Stereo Equaliser PCB [01104202] (AUD $7.50)
  • 7-Band Mono and Stereo Equaliser patterns (PDF download) [01104201-2] (PCB Pattern, Free)
Items relevant to "Programmable Temperature Control with a Peltier, Part 2":
  • Thermal Regulator Interface PCB [21109181] (AUD $5.00)
  • Thermal Regulator Peltier Driver PCB [21109182] (AUD $5.00)
  • Hard-to-get parts for the Thermal Regulator Peltier Driver shield (Component, AUD $30.00)
  • Firmware (Arduino sketch and libraries) for the Thermal Regulator (Software, Free)
  • Thermal Regulator PCB patterns (PDF download) [21106181-2] (Free)
Articles in this series:
  • Programmable Thermal Control with a Peltier (March 2020)
  • Programmable Thermal Control with a Peltier (March 2020)
  • Programmable Temperature Control with a Peltier, Part 2 (April 2020)
  • Programmable Temperature Control with a Peltier, Part 2 (April 2020)
Items relevant to "Frequency Reference Signal Distributor":
  • Reference Signal Distributor PCB [CSE200103A] (AUD $7.50)
  • Reference Signal Distributor PCB pattern (PDF download) [CSE200103] (Free)

Purchase a printed copy of this issue for $10.00.

Last month we told you what it does and how it works. Now we put it all together and start hatching chickens! Part II – by Tim Blythman and Nicholas Vinen In our March issue, we introduced this versatile Arduino-controlled heating/cooling device. It uses Peltiers to heat or chill water in one or more loops, and it’s pretty easy (if a bit involved) to build. It can be used for many tasks, including (but certainly not limited to!) brewing, making cheese and cooking . . . and even hatching chooks! This article has all the instructions describing how to build the two Arduino shields, program the Arduino, build the water loops and tweak it to suit your needs. J It will only use as much energy as We’re sure that readers will think of ust to prove that this project has many possible uses, here’s another needed to maintain that temperature, other uses that we haven’t. But enough of that; it’s time to deone we thought of since last month: and on a sweltering day (which can    it could be used for an egg incuba- kill the embryos), it can actually pro- scribe how to put it all together, and get it up and running. tor, to keep bird or reptile eggs warmed vide a little cooling! to a constant temperature so Construction that they will hatch. We’re going to start by buildThat is often done with a ing the two shields, as this is a heat lamp, but that’s wasteful prerequisite to getting the whole and doesn’t take into account thing up and running. However, varying ambient conditions. if you wish, you can do some baChicken eggs are ideally sic testing of the ‘water circuit’ kept at 37.5°C until they hatch, without the control circuitry. and most other birds and repYou can rig up the fans, tiles are reasonably similar. pumps and Peltier devices to By looping some water tubrun directly from a 12V source ing under the eggs (ideally to check that everything is workmade from a thermal conducing before proceeding. tor like copper) and placing a The I2C character LCD allows sensor amongst them, you can a number of parameters to be displayed. Peltier Driver shield set up the Thermal Regulator Temperatures from all six sensors are available, as The Peltier Driver shield uses to maintain this ideal tem- well as fan speeds, temperature setpoint, mode and Peltier device drive level. a mix of surface-mount and perature. 64 Silicon Chip Australia’s electronics magazine siliconchip.com.au siliconchip.com.au CON1 25A CON2 12V INPUT 10 F L1 15 H 10 F 10 F SILICON CHIP © 2020 F1 10 F GND REG1 10 11 12 # 9 # # 8 Q1 Q2 Q4 Q3 IRLB8314 IRLB8314 IRLB8314 IRLB8314 # = PWM 6 4 3 # RX TX 2 1 IC1 HIP4082 # 0 D1 D2 1.8k 10k 10k 100nF 100nF 4148 4148 100nF # 5 7 VIN GND 5V 3V3 RST 13 A5 A4 A3 A2 A1 A0 through-hole parts; its overlay diagram is shown in Fig.7. None of the surface-mounted parts are too difficult to solder; the smallest parts are the 3216/1206-size capacitors, which as their name tells you, are relatively large at 3.2 x 1.6mm. Tweezers, solder flux and solder braid (wick) will be handy – if not mandatory – for working with these parts. Start with those capacitors. They connect to some large copper areas, so may require a fair bit of heat to solder correctly. Apply a small amount of flux to their pads, then solder one lead of the capacitors in place. If it is square and flat, solder the other lead, otherwise use tweezers and a soldering iron to adjust the first lead before continuing. The other surface-mounting part is the inductor. As well as connecting to some large copper tracks, it also has a fair amount of thermal mass itself; (if you can) it’s time to turn up the iron even higher! Just as for the capacitors, apply flux (be generous this time), then solder one lead to the PCB. Once the component is in the correct location, solder the other lead. Now is a good time to clean up the excess solder flux using a dedicated flux cleaner or isopropyl alcohol. Fit the fuse holder parts next, with a fuse temporarily fitted. This ensures that they are spaced and orientated correctly. The fuse can stay in place once they are mounted. The iron temperature can be reduced for the remaining parts. Continue by fitting diodes D1 & D2 with the cathode stripes orientated as shown, then mount the three resistors. If you aren’t sure which is the 1.8kΩ type, measure it with a DMM. Next fit IC1, ensuring its pin 1 dot/notch goes to the left. We recommend you solder this directly to the board, rather than using a socket. Now bend the leads of Mosfets Q1Q4 to fit the pad pattern and attach each one to the board using a machine screw and nut before soldering and trimming the leads. Make sure to do the screw up tight before soldering, as tightening it after soldering could damage the solder joints. Follow with the through-hole capacitors, which are all the same type and not polarised. But make sure to push them fully down before soldering, as there will be another board stacked above this one. Fig.7: this diagram and photo show where to fit the parts on the Peltier Driver shield. There are five SMDs (four capacitors and one inductor), but they’re all quite large. Flux paste will help you solder these; you will need a hot iron to solder the inductor. REG1 is not needed if 12V is being supplied to CON2. In this case, you can install a link across the lower two pads instead. Similarly, push REG1 down as far as you can before soldering it. As mentioned last month, depending on how you will be applying power, you may want to leave REG1 off or link it out (with a wire between its left-most and right-most pads). But in most cases, it is safe to fit it anyway. (The photo at top right shows our board as fitted with a link in place of REG1). The 5x2 header can be soldered now. You can use two 5-way SIL headers side-by-side. Next, fit CON1 and CON2. Since CON1 sits above the USB socket on the Uno and CON2 above the DC socket, make sure to trim their leads as short as possible after soldering. These are large-leaded parts sitting on copper pours, so might require the iron temperature to be increased slightly. That just leaves the four stackable headers. We recommend sandwiching the shield between the Uno (underneath) and another shield (above), if you have one. This will help to align the pins. Tack the end pins of each row in place and ensure that all four of them are flat against the PCB at each end. This can be fiddly as moving one can tend to move the others. Remove the Uno from below and solder the remaining pins before going back and refreshing the end pins of each row. Jumpers Insert the three jumpers/shortAustralia’s electronics magazine ing blocks, as shown in Fig.7. You shouldn’t need to change these unless you are radically changing the software for your own purposes. This sets LK1 to use Arduino pin D10, LK2 to use D9, LK3 closed and LK4 open. Building the Interface shield Refer to Fig.8. Start with the resistors. As mentioned earlier, it’s best to check each batch with a DMM to verify their value before fitting them. This is especially important as the 100Ω, 1kΩ and 10kΩ types have similar colour bands. Follow with the three diodes, which are all the same type, but ensure they are orientated as shown in Fig.8. Install the tactile pushbutton (S2) next. Push it down until it clicks and sits flat against the PCB. There are only two capacitors, both 100nF MKT or ceramic types, one at each end of the board near each IC. Solder these next. Then mount IC1; again, we don’t recommend that you use a socket. Ensure that it is fitted with its pin 1 towards CON11. Solder two leads and check that the device is flat; if not, re-heat one of the solder joints and adjust it. Then solder the remaining leads. Next, install transistors Q1-Q3 and temperature sensor IC2, all of which are in TO-92 packages. Q3 is a different type from Q1 & Q2, so don’t get them mixed up. Match the transistor bodies with the silkscreen outlines. You may need to crank their leads out to fit the PCB pads. April 2020  65 k PB1 D2 D1 4004 CON10 4004 CON11 P2 Q3 + Q2 AREF GND 13 11 12 1k 1k 1k 1k 1k 1k 100 10k # 10 + IC1 74HC4053 100nF 4.7k 4.7k 4.7k 1k 1k 5V GND VIN 12V 5V IC2 TS5 1 # 9 # 8 #=PWM 7 6 # 5 # 4 # 3 2 1 Q1 TX RESET 3V3 A5 A4 A3 A2 A1 A0 100 + TS2 1 Fan 3 + S1 F1 JP1 Fan 1 Fan 2 TS4 + 4004 TS3 + LED1 1k D3 IRX1 TS1 + LED3 I2 C GND SDA SCL VCC LED2 Power 100nF P1 RST CON12 + S2 0 RX – Fig.8: building the Interface shield is straightforward. We recommend that you orientate the polarised headers as shown here, but only the fan headers are critical. S1, F1 and JP1 can be omitted if 12V will be supplied from the Peltier Driver shield rather than via CON12. You can use stackable headers along the edges, as shown here, or regular headers fitted on the underside. Then fit terminal blocks CON10CON12 and all the polarised headers. Only the orientation of the fan headers is critical; make sure there are rotated as shown in Fig.8 and also ensure that the terminal blocks are mounted with their wire entry holes towards the nearest board edge. Use a similar technique to the IC when soldering these headers; solder one pin to secure the part, then check it is flat and square before soldering the remaining pins. Note that we’ve shown the I2C display header rotated relative to the fan headers; this makes it harder to mix them up as you will damage the display if you accidentally plug it into a fan header and apply power. The twoway headers should all be mounted facing the same way, so that it’s easier to rearrange how the temperature sensors are plugged in later. The three LEDs can be fitted next. The red LED is closest to the edge of the board, green in the middle with the blue LED nearest the switch S1. The cathodes of all three LEDs go towards that switch. Depending on how you are planning on using the finished project, you may wish to attach these via flying leads or even fit pin headers in their place and panel-mount the LEDs. A similar comment applies to IRD1; this can also be fitted off-board, although if you’re doing that, you’d best keep the leads short if it is to work reli66 Silicon Chip ably. Mount this now; if installing it on the board, make sure its hemispherical lens faces in the direction shown on the PCB silkscreen. You can bend it to face upwards, although you’ll have to be careful to avoid interfering with the nearby two-pin header. The piezo buzzer PB1 sits near the centre of the PCB. Check its polarity before fitting it. If you are planning to power the finished assembly via the Peltier Driver shield, you can leave off switch S1, fuse F1 and jumper JP1. But it doesn’t hurt to fit them anyway. If fitting them, try to ensure they are all sitting flat against the PCB. The switch and fuse holder are quite chunky and may require more heat than smaller components. Completing the Interface shield simply requires fitting the Arduino headers. Standard male headers will be sufficient for most cases, although we fitted stackable headers to our prototype ‘just in case’, as seen in the photographs. Like the headers for the Peltier Driver shield, you should use other Arduino boards as jigs to ensure the pins are flush and straight. Assembling the stack The shields are designed so that the Peltier Driver shield fits between the Arduino Uno at the bottom and the Interface shield on top. The Interface shield must be on top so you can acAustralia’s electronics magazine cess its various vertical headers. The simplest way to supply power is to feed it in through the Peltier Driver shield. It will feed modest amounts of 12V power to the boards above and below. But note that if you are supplying more than 15V to the Peltier Driver shield, REG1 (which is quite small) cannot provide much current to run any pumps or fans connected to the Peltier Interface shield. In this case, it is better to omit REG1 and supply 12V directly to CON12 on the Interface shield. The power supplied to CON12 on the Interface shield will also power IC1 on the Peltier Driver shield, but this will not draw much. When assembling the stack, you may find some places where leads or pins touch components on the board below. Trim these if possible; otherwise, insulate with electrical tape. The USB socket of the Uno should have tape placed on its top to protect it from the power connections on the Peltier Driver shield. If necessary, temporarily disassemble the stack if you need to attach power cables to the Peltier Driver shield. Preparing the LCD screen You can purchase the LCD from the SILICON CHIP ONLINE SHOP or buy the parts separately from Jaycar. Either way, you will have to attach the I2C adaptor to the LCD. Line up respective pin 1s on the I2C adaptor module and the LCD board and tack one pin in place. Confirm that the two PCBs are parallel but not touching before soldering the remaining pins. You will also need to make up a lead to go between the I2C header on the LCD and the I2C header on the Interface shield. We used female-female jumper wires to test our prototype, but these were quite short. The best option for a permanent setup is to make up a cable with a fourway polarised locking plug at each end. See Fig.8 for the required connections, and check the labels on the LCD I2C adaptor board. As the pins are in a different order (GND, SDA, SCL, VCC on our board and GND, VCC, SDA, SCL on the LCD), some of the wires will have to cross over. The connection at the Interface shield is keyed while the header supplied with the LCD adaptor is not. You siliconchip.com.au The Interface shield sits on top of the stack as cables need to be plugged into its vertical headers. So the height of the components on this board is not critical. Note that the fuse holder is empty as 12V is supplied via VIN. So we could have omitted S1, F1 and LK1. might like to replace the header on the LCD with a keyed type so a reversed connection cannot be made. Starting to put it all together At this stage, you need to decide on the exact configuration required for your application(s), if you have not already. Most likely, you will want to build something that looks like one of Figs.3-6 in last month’s article. The water paths are critical. Ideally, these should be as short as possible, although if you wish to save on elbows, the tubing can be run in gentle arcs instead of at right-angles. Remember that you have the option of placing the water connections at the same or opposite ends of the water blocks. We did not test which method would give better results; we suspect the difference will be quite small. Another point to consider when designing your system is that air from the radiator or heatsink should not blow onto other parts of the assembly, as this will reduce its overall effectiveness. In our case, we also ensured that the two radiators (one existing on the laser cutter and one on our new boost circuit) blew air in different directions. This can be achieved by placing them next to each other, so that they pull fresh air from the same direction and exhaust in parallel. Note also our comments last month about insulation. For running a wasiliconchip.com.au ter bath near ambient temperature for cheesemaking or brewing, the demand will not be too high on the Peltier devices, but sous-vide cooking around 60°C or higher will require decent insulation to be able to reach the more extreme temperature targets. If you struggle to reach your temperature target, improved insulation may help. Peltier device mounting Our kit came with some hardware for mounting the water blocks to ei- ther side of the Peltier devices. It included several strap pieces which are clamped by M4 machine screws. Small springs ensure that a uniform and not excessive amount of clamping force is applied. These straps are intended to clamp two water blocks, one each side of a row of Peltier devices. If you are using one water block and a heatsink, see below. Start by assembling the water blocks and Peltier devices. This can be fiddly as several things need to come together at the same time and they will all have a coating of thermal compound. Clean the water blocks and Peltier devices with isopropyl alcohol or similar to remove any contamination and residues. Allow it to dry. Lay a row of straps on your workbench, with machine screws and washers fitted through the holes; the heads should face down. Rest one water block on top and apply a minimal amount of thermal compound to one side of each Peltier device, spreading it out. The optimum amount of thermal compound is as thin as possible, but covering the entire area of the contacting surfaces. Ensuring that the Peltier devices are orientated the same way, press them down onto the water block, sandwiching the thermal compound. If you have (for example) all the red leads to the left and all the black leads to the right, they should be orientated correctly. We used a pair of Molex connectors (in this case, Jaycar Cat PP0744) to share the current drawn from the ATX power supply. These connectors are rated at around 10A each, so two are needed for our application. Australia’s electronics magazine April 2020  67 The minimal hydraulic circuit (corresponding to Fig.5 from part one) uses a finned heatsink supplemented by fans to remove heat from the Peltier devices and water block. It’s the same arrangement as used on many amplifier and power supply circuits. Spread thermal compound onto the top of the Peltier devices, then rest the second water block on top of this, making sure that the barbed ends are orientated as you require. Place the remaining strap pieces in place, followed by the springs, washers and then nuts. Tighten the nuts until the springs start to pull up. Ensure that the Peltier devices are square and evenly spaced; at the very least, they should not protrude from the water blocks. The nuts can then be tightened down, ensuring that the springs are not compressed to the point that the coils are touching. Using a heatsink instead To test whether we could get away without a radiator, we used a heatsink much wider than the Peltier devices (40mm). Therefore, we could not use straps on both sides to pull the whole assembly together. If you have a heatsink that’s 40mm wide, that may be possible, but you’d probably have to cut down a larger heatsink to get one the right size. We recommend you use a larger heatsink anyway, as this will allow 68 Silicon Chip larger fans to be used, giving more effective heat transfer to the air. Assuming your heatsink is significantly more than 40mm wide, you will need to drill and tap holes on the face of the heatsink to mount the Peltier devices. Lay out the Peltier devices and water block on the heatsink to determine where the holes need to be and mark them, lined up with the gaps between the fins if possible (this will allow the holes to be tapped through). If you do not have a tap, and you can line the holes up with the spaces between the fins, instead of tapping you could drill right through and use long screws held in by nuts fed in between the heatsink fins. We know from experience that this works but doing it is very fiddly. If tapping, drill holes to the diameter specified for that tap. The holes required are usually slightly smaller than the tap size. Many taps are supplied with appropriately sized drill bits. Having drilled the holes, carefully tap them. Take your time with this and reverse the tap if it jams; this is usually enough to clear the swarf. You need Australia’s electronics magazine to use a lubricant to help as well; we have used WD-40 or 3-in-1 oil with success, although kerosene is also said to be ideal for aluminium. Clean any residue off the heatsink and sand down any high spots around the tapped holes. Since the brackets have a good amount of clearance from the Peltier devices, it is not critical that the site is perfectly flat. Clean the water blocks and Peltier devices with isopropyl alcohol or similar to remove any residues and allow to dry. Apply a very thin layer of thermal compound to both sides of each Peltier device and place it on the heatsink in the correct location. It’s not a problem to adjust them, but it can be messy if the thermal compound gets everywhere. Ensure that the Peltier devices are all facing the same way. As well as the coloured leads, many have identifying marks on one side only. Rest the water block on top and then rest the straps on it. For each hole, first place the washer, then spring and thread the machine screw into the heatsink. siliconchip.com.au Once all have been started, check that everything is where it should be and tighten the screws so that the springs pull up, but the coils are not touching. For our tests, we mounted the fans with cable ties around the entire assembly. Your heatsink may be designed to have machine screws threaded directly between the fins, in which case this will work quite well. Another option is to drill small holes through the fins near their tips. You can then thread cable ties through these holes and the fan mounting holes. In any case, ensure that the airflow from the fan in blowing towards the heatsink. Pumps The input (suction) side of the submersible pumps we’ve specified must be fully under the surface of the water, as they are not self-priming. Using the submersible type means that a hole does not have to be cut in the side of the water vessel, avoiding the possibility of leaks. For our laser cutter, we placed the pump near the top of the vessel; the intent here is that if there is a leak in the Peltier cooling circuit, only a small portion of the laser cooling water will be lost. The pump could run dry, but that is better than having the laser fail. We managed this by cutting a hole in the lid, which is a firm friction fit for the hose. If the hose is loose, a couple of cable ties can be used to limit vertical movement. We found that if we placed the pump too close to the surface, a vortex would form, allowing air to be sucked in. The solution is to lower the intake, which will make a vortex less likely to form. Since our pump was resting on the laser’s pump in this vessel, we could not lower the pump, so we attached a small piece of hose and an elbow facing downwards to lower the suction point. Another option is to simply increase the water level, if there is room to do so. You might find that after starting the pumps that the level drops due to water being moved to the piping and you may need to add water anyway. As the water passes through devices such as the water block and radiator, it should enter at the bottom and leave from the top. This is to ensure that any water bubsiliconchip.com.au This close-up of the Peltier Drive Shield gives a better view of the jumper shunt and also shows how all parts sit low to clear the shield fitted above. bles can rise up and out. Any voids where air has collected internally will not be contributing to heat transfer, so these should be minimised. The water path should return to the initial vessel to complete the circuit. We cut a second hole in the lid to fix the return pipe in place. It can also be locked in place with the judicious use of cable ties (or silicone sealant). Situate the return slightly above the water level. This will allow the return flow to be seen while minimising the amount of air entrained. Air is not a good conductor of heat and air in the water lines should be avoided. If possible, situate the return as far as possible (on the vessel) from the pump. This allows the water to mix freely and take on a uniform temperature. With the water circuit complete, the pump can be tested by connecting it to a 12V supply. The return should be a steady, continuous stream, indicating that a good amount of flow is occurring. Check for leaks and that there is no air trapped in the pipes. Top up the water if necessary. If there is no flow, check the pump polarity and flow direction. The pumps we used are quiet but audible. With the pumps running, you could also try powering the fans and Peltier devices to see what kind of performance the system can achieve. Keep Australia’s electronics magazine in mind that without any controls, the water can still get quite hot. Once this is satisfactory, mount everything in place so that it does not move around. We found a spare shelf panel on which to mount everything. Thermistors The 10kΩ thermistors we are using came potted into a small ring lug for mounting. They also had a reasonable length of cable attached, so all we needed to do was terminate each thermistor with a polarised plug to suit the Interface shield. The thermistors are not polarised, so it doesn’t matter which wire goes to which pin. But if you are looking to place a sensor in your brew liquid (as in our diagram), we don’t suggest that you use these. Instead, you would use one which is clad in food-grade stainless steel. These are available, but cost a bit more. You can mix and match thermistor types, as long as they all have the same nominal value and similar curves (check the specified Beta value). We weren’t sure whether the beads we got were waterproof, so we shrank a good length of heatshrink tubing on those which were to be immersed in water, extending past the thermistor. We then firmly clamped the free April 2020  69 This view shows our complete system which will be installed in our laser cutter. The plastic tray was in case of leaks. end in pliers, sealing it, although injecting silicone into the open end before clamping it would make a more reliable seal. Another option is to assemble these from scratch, using leaded thermistors, wire and socket headers. Our software has been written to work with either 10kΩ or 100kΩ thermistors; just be sure to check the code before compiling to make sure that it’s expecting the values that you’ve used. We prefer 10kΩ types as these are less likely to be affected by EMI or other stray fields. in the circulating water must be thoroughly waterproofed. It should also be mounted to prevent it from falling in above the sealed part, if it is not fully sealed. If it does not need to be removed, a pair of small holes in the side of the container (above the waterline!) could be used to thread a cable tie around the thermistor lead. Attaching the thermistors to the water blocks (and thus near the Peltier devices) was quite straightforward. We simply loosened one of the mounting straps and slipped the flat end of the thermistor under the strap before tightening. Power supply To power our Thermal Regulator, we used a spare ATX power supply, as designed for use in a personal computer. This is an attractive option if you have a surplus unit available. But if you have to purchase one, they are also relatively inexpensive, and can be quite efficient. An alternative is one of the many open-frame power supplies that exist. Altronics M8692 is such a device. Mounting the thermistors The small ring lug on the thermistors we used made mounting them straightforward. Although we did not end up using the heatsink option, a simple tapped hole and machine screw would be adequate to fasten the thermistors to the heatsink. For the radiators, an existing mounting screw was co-opted to thread through the thermistor’s mounting hole and thus fasten it. As noted above, the thermistor used 70 Silicon Chip ATX power supplies require the green wire to be pulled to 0V (any black wire) to turn on. We made a simple jumper with a 2-pin header and some heatshrink; the power supply now activates when it receives 230V. Australia’s electronics magazine siliconchip.com.au You will need to do some mains wiring to use this unit; the mains wires are exposed but protected behind a barrier strip. It is intended that this sort of supply is installed inside an enclosure and we think this is wise, whatever your power supply, as it will help to keep the water and electronics separate. If the enclosure is metal, be sure to Earth it properly. The 12V wiring needed for this sort of supply is straightforward and requires nothing more than a 30A twin cable (ideally red/black) to be terminated at each end. ATX power supplies need a bit more work on the 12V side but only require an IEC type lead to be plugged in to supply the mains. There are usually multiple 12V (yellow) and GND (black) wires; you will need to use several of each to ensure that you can draw sufficient current. ATX power supplies also have a power signal that needs to be pulled low to command the power supply to start. This wire is usually coloured green; we simply used a jumper to short it to an adjacent ground wire. See the photos which show how we wired up our supply. If you are sure you do not need the power supply for use on a computer in the future, then several yellow wires (12V positive) and black wires (ground) can be bundled together and spliced into a single pair of high-current conductors. Whatever your source of power, connect it to the 12V input terminals on the Peltier Driver shield. The positive terminal is the one closest to the fuse. Wiring it up You may need to take the Arduino stack apart to wire the Peltier devices to the Peltier Driver shield. The orientation with which the Peltier devices are connected will determine the voltage polarity required for heating or cooling, but it is easy to change the software if it is reversed, so don’t worry about it too much. Just make sure they are all connected with the same polarity. We used a small piece of terminal strip to break out the connections; it also allows us to run the short leads on the Peltier devices further from the Driver shield. Fit the Uno below and the Peltier Interface shield above. Plug in the siliconchip.com.au Sensor TS1 TS2 TS3 TS4 TS5 Location Temperature to be regulated On Peltier water block, TS1 loop On Peltier water block, opposite loop from TS1 & TS2 On radiator/heatsink, same loop as TS3 Spare (currently unused) Table 1 – thermistor connections fans, I2C LCD and thermistors. See Table 1 for which thermistor should be plugged into which header. If necessary, the sensor mapping can also be changed in software. The pump(s) connect to the two screw terminals near IC2. Check the polarity is correct as the pumps will not work correctly if they are spinning backwards. If you have a separate 12V supply for the Peltier Interface shield, connect that now. Only a fairly small fuse is needed (say, 3A) unless you have some very large fans and pumps. Control software The software we have written is somewhat basic but provides most or all of the necessary functions for a variety of jobs. It measures the temperature of all six sensors, but only uses the data from three to make decisions. The remaining temperatures are displayed but not used by the control software. You will need to install the Arduino Integrated Development Environment (IDE) to program the Uno board, and this also contains everything you need to customise the software, if you choose to do so. We used IDE version 1.8.5, and suggest that you do the same to avoid any problems which may occur due to changes between versions. As with many advanced Arduino projects, some external libraries are needed. They might seem complicated, but using them is easier than having to write our own interface functions. These are all included in the download package, along with the Arduino ‘sketch’ (program code) itself. The I2CLCD library is one we have adapted from another open-source library. We have added the ability to auto-detect the I2C address of the LCD. The easiest way to add this library is to copy the “I2CLCD” folder from the .ZIP archive to your libraries folder (in Windows, this is inside your Documents folder, within a subdirectory called “Arduino”). Australia’s electronics magazine The connections we made on our prototype are shown here although only the first three are critical for the software to be able to control the Peltier devices. You might as well copy the remaining three supplied libraries too, as the versions we have included are known to work. These three libraries can also be installed by finding them by name in the Library Manager. To do this, search for “OneWire”, “DallasTemperature” and “Irremote” and install each in turn. If you already have folders with one of these names, you may already have the library installed, so you probably don’t want to overwrite it unless you find our sketch doesn’t work. If you install libraries by copying the files, you may need to close and re-open the Arduino IDE for it to detect them. Preparing the sketch We won’t go into too much detail of the sketch operation here, as you can easily examine the source code. It works by scanning the thermistors once per second, along with the fan’s tachometer signals. At the same time, any received infrared commands are processed. It selects a mode (heating, cooling or off) depending on the above, and then updates the fan, pump and Peltier control signals. The sketch is well-documented with inline comments, so these are a good place to start if you want to dissect and change the code. The sketch is called “Peltier_Controller_V10”, although this may change if we update it further. For the programming stage, you might like to remove the Uno from the board stack and connect it (by itself) to the computer’s USB port. This will avoid any problems that might occur with the fact that the IR receiver signal is shared with one of the pins used for programming. If your Peltier ‘rig’ is not near your computer, this can also make your life easier. Open the sketch file, select Uno from the Tools→Board menu and ensure that the correct serial port is selected. Upload the sketch (CTRL+U), and assuming that’s successful, detach the April 2020  71 In most modes, the temperature and fans speeds are displayed. This shows Heating mode, which drives the Peltier devices at +100%; Cooling mode uses -100% USB cable and replace the Uno in the board stack. The display should spring to life, showing an array of temperatures. Nothing else should happen yet. By default, the sketch accepts commands from a Jaycar XC3718 remote control, or an Altronics A1012 universal remote set to use TV code 089. Other remote controls programmed with a Philips TV protocol may work. Basic operation There are four basic modes: full heating, full cooling, proportional control with a fixed target temperature, or proportional control following a temperature profile that’s defined in the sketch. For the first two modes, the Peltiers are driven at full pelt (hah) with one polarity or the other. In each mode, the LCD shows a variety of status information, as seen in the accompanying photos. In the last two modes, the unit tries to maintain the main thermistor temperature (T1) at the desired value by heating or cooling to varying degrees, as needed. The following buttons on the remote control can be used to control it: • CH+ and CH- (on either type of remote) enable full heating and full cooling respectively. A second press of either of the same button turns the Thermal Regulator off. • To program a setpoint for the third (fixed temperature) mode, enter three digits on the numeric keypad; the entered number is divided by ten to give the target temperature. For example, entering 1, 2, 3 will set the target to 12.3°C. This can only be done while the unit is idle, as it might otherwise cause it to change between heating and cooling rapidly. 72 Silicon Chip • Pressing the power button (on the Altronics remote) or play (on the Jaycar remote) will start or stop operation in setpoint mode. The setpoint can be tweaked in this mode by using the volume up and down buttons. This can be done while it’s operating as small changes are OK in this case. • The temperature profile mode is activated by pressing the EQ button on the Jaycar remote or “-/--” on the Altronics remote. Instead of showing the fan speeds, the LCD indicates the time, step number and next timed target. The unit steps through the array of temperature/time points set in the sketch, interpolating the temperature between each point. This could be used to implement the timer-based sous-vide cooker that we mentioned earlier, or a brewing or cheesemaking profile determined by the exact product you are trying to make. You can usually get an idea of the profile you will need from a recipe, but some experimentation and tweaking may be required to obtain the best result. Troubleshooting You can check whether your Peltier devices are wired with the expected polarity by putting the unit in full cooling mode and then checking that the main sensor temperature (T1) goes down rather than up. If it goes up, then comment out this line in the code by adding “//” to the beginning: In Profile mode, the setpoint is varied according to a timed series of temperature points with ramps in between. Instead of fan speed, the time, step number and ramp target are displayed at right. // setBipolar(-(pDrive*PWM_ TOP)/100); //scaled output, ie, setBipolar(-(pDrive*PWM_ TOP)/100); //scaled output, If your LCD does not light up or displays nothing, check that the red LED is flashing rapidly. If so, the software did not detect the I2C module, so it could not initialise and control the display. Our sketch includes code to automatically detect the I2C address of the display, so it should work if the LCD is connected correctly. Check your wiring and reset the Arduino by pressing the RST button on the Peltier Interface shield. If this does not fix the problem, there may be a problem with your LCD module. Now what? In Set mode, the Peltier Controller modulates the PWM to drive the T1 temperature (top left) towards the setpoint (bottom left). In this case, moderate cooling of 30% is needed. We’ve presented a good number of options and uses this circuit can be put to, but we don’t have the space to go into detail on all the possibilities. There are many ways that you could modify the code to suit your application. For example, you could add a DS3231-based real-time clock module to your Arduino by connecting it to the I2C pins (we sell these for a few dollars in the SILICON CHIP ONLINE SHOP). That would allow you to set up the code to automatically start and stop the unit at preset times. Or you might want to modify the code so that you can have multiple temperature profiles set up to suit different processes, with a way to select between them (eg, pressing different buttons on the remote control). There are so many ways that this project can be used; we would love to hear from our readers about the applications they come up with for the SC Thermal Regulator! Australia’s electronics magazine siliconchip.com.au setBipolar((pDrive*PWM_ TOP)/100); //scaled output ie, // setBipolar((pDrive*PWM_ TOP)/100); //scaled output and remove the “//” from the start of this one: