Introduction: DIY Desktop Hand Heater

During the cold winter days I found that I was able to keep myself warm by wrapping up in a blanket or putting on a jacket.. or both. However, when working at my computer I found my fingers would always get too cold and stiff that it kept me from what I was doing. I would always end up trying to warm them up whenever possible so I designed a small desk heater box specifically for keeping fingers warm.

The hand heater comes with an adjustable temperature control knob that utilizes an Arduino Nano to control the heater elements. All the electronics required for this came off of Amazon and are easily available.

Supplies

Tools required:

  • Soldering iron (with solder)
  • Allen wrench set (for M3 screws)
  • Hand drill (with 1/4" drill bit)
  • #1 or #0 Phillips head screw driver
  • Wire strippers
  • Pair of wire cutters
  • USB to Micro USB cable
  • Hot glue gun
  • (optional) 3D printer for custom casing
  • 3D printed parts can be outsourced to notable companies like Xometry or to freelancer 3D printing services. There are lots of options online.

Materials required:

Step 1: 7-Segment Display Setup

This first step is to get all the electronics components ready for assembly. Mostly this just means getting wires hooked up to them and hot-gluing them for security. Hot glue is great for hobby projects like this as it's very insulative and good at keeping things together.

For the 7 segment display, there's a right angle header pin array that seems to be force on this part. It's in the way for this project so we must remove it. In order to remove it, use a soldering iron to melt the solder and push each pin out individually. The pin will melt the black plastic enough to let the pin move up. Do this for each pin until it's high enough that you can get some wire cutters in there and cut off everything below the black bar.

Then cut a bundle of 4 female header pin wires to a length of ~5 inches and strip the loose wire ends. Pre-tin the tips of the soldering iron and the wires and solder them into the 4 holes of the 7-segment display. Don't worry about colors as long as you can discern which color is which signal.

7 segment display is now ready for assembly. Feel free to hot glue at the solder joints to strengthen up the joint.

Step 2: Potentiometer and Adjustment Knob Setup

The potentiometer is a variable resistor that gives varying voltage level to the Arduino controller. This voltage level can be measured and used to calculate what the set temperature should be.

For the potentiometer, the pins are long enough to connect with the header pins female receptacles, but should be hot-glued in order to keep it secure and not risk them falling off.

In order to get it to fit in the box, the pins will need to be bent 90° so that the wires will feed towards the main housing and not off the top. Using the wire strippers, gently bend the pins 90° as shown in the picture.

Pull off a group of 3 female-to-female header wires and connect to the pins of the potentiometer and hot glue them down.

The potentiometer is ready for assembly.

Step 3: Load Switch Setup

The load switch is what takes the small control signal from the Arduino Nano and switches power on to the power heaters.

For the load switch, setup is just soldering two female header pins to the GND and TRIG/PWM pads. From the notes on the bottom of the board, the left 3 holes (two small, one big) are all GND and the right 3 holes are all TRIG/PWM. So any of the holes will work, but I'd recommend the outer small holes as our wires are small and the larger distance reduces risk of them shorting together.

Cut a group of 2 of female header wires ~5 inch and solder one to the GND hole and one to the TRIG/PWM hole.

The load switch is now ready for assembly. Feel free to hot glue at the solder joints to strengthen up the joint.

Step 4: 12V --> 5V Power Regulator Setup

The 5V regulator takes the 12V input and converts it down to a usable voltage level for the Arduino Nano. The Arduino Nano and all the components it controls don't require much power so a small regulator like this is all you need to power it.

First cut off the connectors that come with the regulator. In order to tell which side is which voltage, the twisted pair is the output 5V while the untwisted pair of wires is the input 12V. This will power the Arduino so it will be soldered to the Vin (Voltage Input) and GND pins.

Strip and pre-tin the 5V output wires and pre-tin the Arduino Vin and GND pins shown. Solder them together, verifying that none of the wire or pins are shorting, and hot glue over it to secure the connection better.

The 5V power regulator is now ready for assembly.

Step 5: MCP9808 Temperature Sensor Setup

The MCP9808 is a temperature sensor that works through I2C. This will be used to control the heater control switch.

Note: this device comes with an 8 pin header array that is used in Step 8 so hold on to that

This step is similar to the others in that we're just soldering wires to it, however one thing to note is that since we want to make sure the wires go out to the side and not straight in front of it, it's helpful to stagger the wire lengths as shown in the pictures.

Stagger the lengths of the wires as shown and strip and pre-tin. Starting at the outermost hole (Vdd) solder the wires in one by one. Make sure the wires want to come out the side of the board.

The MCP9808 board is now ready for assembly. Feel free to hot glue at the solder joints to strengthen up the joint.

Step 6: Program the Arduino Nano

Before going further, it's easier to go ahead and program the Arduino as it's harder to reach once assembled in the heater box.

For this you will need to install the Arduino IDE found here

Once it's installed, setup the IDE by opening the IDE and going to Tools>Manage Libraries. In the search bar, search and install the latest versions of both "MCP9808" by Jack Christensen, and "TM1637" by Avishay Orpaz. These are required for the code to work.

Now open up the attached code file "HeaterBox_Nano.ino" and plug in the Arduino Nano. Using the drop-down at the top to select Select other board and port.. For the BOARDS side, search for Arduino Nano and select the one that just says "Arduino Nano". Then for the PORTS side pick the COM port that is for the Arduino Nano.

If you're unsure you can unplug the Arduino and see which one disappears. Plug it back in and select that one.

Here's an official tutorial I used that was super easy and might help if you have problems.

Once you're connected to the Arduino Nano, press the arrow button to upload firmware and let it upload. Once it's complete, the Arduino Nano should be ready for assembly.

Step 7: Power Supply Setup

The power supply is the source of all power for the device.

BEFORE PROCEEDING, VERIFY THIS IS NOT PLUGGED IN AND DO NOT PLUG IT IN UNTIL THE FINAL STEP OF THIS PROCEDURE

All that needs done to prepare it is to cut off the barrel connector end and strip the wires back as shown.. Don't pre-tin the tips yet as it will be connected to the 12V side of the 5V regulator in Assembly.

Step 8: Extra GND + 5V Ports

Since the potentiometer and the 7-segment display both need 5V, a little two prong splitter trident (bident?) should be made to give some available pins. A similar and more severe issue with the Ground lines. The 7-segment display, potentiometer, MCP9808 Temp sensor, and the load switch all need a connection to Ground. So a 4-pronged trident (quadent?.. a fork?) is required to split out enough pins.

The alternative is to make some Y-cable splitter wires but for this project I went with this trident approach.

To make them just strip off a decent chunk of insulation from a wire (~0.5 inch per split; ~2" for 4pin splitter; ~1" for 2 pin splitter) and use the 8 pin header array that came with the MCP9808. Cut off a piece of 4 pins and a piece of 2 pins.

Hold down the wire to the black bar and wrap around the first pin. Then wrap around each other pin until they are all wrapped fairly tight. Then solder it on and cut off the excess wire. Create a small female header nub and solder it onto one of the pins as shown.

Give it a generous amount of hot glue to encase the bottom half together. Repeat with a 2 pin

Step 9: Case and Heater Assembly

Now to start installing things together. First slide one of the heater pads in and let it conform to the heater cavity as shown. There should be more heater on the bottom than the top. Repeat for the second heater pad. They typically stay in place well enough with friction but if you'd prefer to adhere them, use a high temperature silicon such as this.

Next drill a 1/4" hole in the back of the device ensuring it will lead to the top cavity. Feed the power cable in and wrap and solder the 12V regulator input wires to the main power input wires. Loosen the Vin + and Vin- screws and feed the red and black wires into the load switch Vin+ and Vin-, respectively (red = Vin+; black = Vin-.) Tighten down the screws and verify they are fully secured by tugging them slightly and ensuring they don't fall out.

Then, using the wire cutters, cut two small notches in the wall as shown. One for the temperature sensor wires, and one for the heater wires.

Split the heater wires into two groups of two and strip the tips of the insulation off all wires. It doesn't matter which ones from each but each group needs one from each heater. So one group should have a wire from heater 1 and a wire from heater 2, and the second group should have the other two. Then plug group 1 into the OUT+ terminal on the load switch (it doesn't matter which group as it's just a resistive element) and then group 2 into the OUT- terminal by loosening the screws and tightening them down on the exposed wire.

Guide the heater wires through the larger notch and tuck them away inside the hole.

Step 10: Side Panel Assembly

Slide the 7-segment display into the shown mounting location and secure it using two M3 x 6mm screws. Use the two holes shown in the photo.

Then remove the nut and washer from the potentiometer and feed it through the hole as shown. Use the nut to bolt down the potentiometer fully. Then rotate the knob all the way counter-clockwise. Install the knob with some super glue in the shown orientation ~7 o'clock position. This will be fully minimum temperature.

Step 11: Electronics Assembly

The electronics can get a little messy so it's best to focus on individual components as you assemble them. Reference this block diagram when making connections to help dictate how to plug things in using the color code for each component. Red for the 7-segment display, Pink for the MCP9808 Temperature Sensor, Green for the potentiometer knob, and Yellow for the load switch.

Keep the hot glue gun warm and hot glue connections as you go along to make sure they don't fall out.

Go ahead and plug the 5V splitter and the GND splitter into the +5V pin and the remaining open GND pin.

First, the load switch connections:

  • Plug the TRIG/PWM header cable into pin D4 on the Arduino
  • Plug the GND header cable into the GND splitter fork

Second, the MCP9808 temperature sensor:

  • Plug in the Vdd header cable into the 3v3 pin on the Arduino
  • Plug the GND header cable into the GND splitter fork
  • Plug in the SCL header cable into the A5 pin on the Arduino
  • Plug in the SDA header cable into the A4 pin on the Arduino

Now time for the side panel.

For the 7-segment display:

  • Plug in the VCC header cable into the 5V splitter fork
  • Plug the GND header cable into the GND splitter fork
  • Plug in the DIO header cable into the D3 pin on the Arduino
  • Plug in the CLK header cable into the D2 pin on the Arduino

Lastly, the potentiometer:

  • Plug in the 5V header cable into the last 5V splitter fork pin
  • Plug the GND header cable into the last GND splitter fork pin
  • Plug in the Sense header cable into the A3 pin on the Arduino

Hot glue everything together to make sure it holds steady and tuck it all into the top cavity.

Step 12: Final Assembly

With everything plugged in, it's now time to screw it together and power it on.

First, align the hole on the side of the door with the door pin on the main housing and slide it on.

Next, align the heater wires in the larger notch and the MCP9808 temperature sensor wires in the smaller notch as shown. Align the other hole of the door with the pin on the side panel and press the side panel on.

Screw the side panel on using the M3 x 10mm screws.

Step 13: Stay Warm

With everything screwed together, plug in the 12V power supply into a wall outlet and let it power on.

Once the 7-segment display turns on, it will display the current temperature. Use the knob to set the temperature. The display will get slightly brighter when setting temperature and will dim again when showing the current temperature.

Don't press your fingers too hard against the heater pad as it can get pretty hot when it's still heating up.

Stay Warm Contest

Participated in the
Stay Warm Contest