Posted on

Designing my own BMS Module

When I saw Julian Ilett’s video about voltage protection ICs being used improperly on supercapacitor protection boards, I decided I would use them correctly to build my own basic BMS. In no way do I believe that this is better than the options currently available, but it was a fun project.

The main inspiration for this build was the XC61C low voltage detection ICs. These can turn off their output when the voltage falls below a certain threshold – depends on the model you get. I used 3.0V to ensure that my cells do not get over-discharged. It would probably have been a better idea to use the 2.7V versions, as that would allow for more usable capacity and still not discharge to an unsafe level. The cells would probably recover back to around 3.0V anyways once the load is disconnected.

There are 2 main parts for this board – the cell detection side, and the output control side. Both sides are separated with optocouplers in order to isolate them from each other, as the ground reference is not the same for the low voltage detection ICs and the rest of the board.

On the cell detection side, I used the XC61C low voltage detectors across each cell. They are attached to a the input side of PC817 optocouplers, in series with a 470 ohm resistors. Optocouplers are not ideal for this, as they do use a fair bit of power just to drive the IR LEDs (around 10ma). After leaving it connected to some lights in the shed for a week or so, the output would no longer turn on – I’m glad that the BMS did its job. However, voltage on the top cell was below 2V, so too much current is being drawn by the Optocouplers. It was a fun project, and did what it was supposed to do, but with some potentially damaging effects on the battery – overdischarging the cells through the IR LEDs in the optocouplers.


Project by: Micah Black

Written by: Micah Black

Posted on

Another Flashing LED Sign

I recently built another flashing LED sign and wanted to post some pictures of it, so here they are.

Building this one followed a very similar process to the rest (linked below), but this time it worked on the first test!

Check out the original builds and instructions here.

Posted on

Adding LED Lighting to Outdoor Shed

When we need to get something out or put something into our shed when it’s dark, it’s always more of a hassle than it should be. It starts off with trying to find a flashlight, then only having one hand to carry stuff out and put it in the right spot is not easy. Solution: put some lights in the shed!

Let’s start off with the easiest part of this project, the LED lighting itself. I used some very simple 12V LED strips with 5630 or 5730 LEDs for the lighting. 2 strips of them worked well because the shed is fairly deep, and allows much more even lighting. In total, there are 2m of LED strips. Current draw is roughly around 1.5A. Now to find a suitable way to power them.

As this is outside, running AC power to it and using a small power supply was impractical. I have lots of 18650 lithium-ion batteries lying around, waiting for me to do something with them (a power wall is in the works right now), so I made a 4S 4P pack inside a 4×5 cell holder to allow for extra room to hold a BMS circuit and DC-DC buck converter to get 12V for the LEDs from the battery pack’s fully charged 16.8V. I chose 4S because I wanted to use the BMS circuit that I designed (more details coming soon) to prevent over-discharging the batteries. The BMS will cut all power  going to and from the batteries if the voltage of any cell goes under 3.0V (accomplished with XC61C low voltage detection ICs). The buck converter I used is a 5A buck converter that has lots of headroom to drive the LEDs. I set the voltage to around 10.8V so that the LEDs are more efficient – less voltage drop across the series resistors, and thus less power lost to heat in those resistors. Some of these LED strips have been known to get fairly warm, so undervolting them is a good trick to keep them cool and prolong their lifetime.

Mounting everything to the shed took some screws, some scraps of wood, and some 3D printed clips. The adhesive on the LED strips did not stick to the wooden shed, so I designed some LED strip clips that I also used to tidy up the cables. The files are available on thingiverse here. I might eventually add a PIR motion sensor and RTC to this setup to make it turn on as you approach, but not during the daytime. One problem that will come up with this is the cold weather in the winter. Discharging the batteries over in -30 degrees Celsius temperature is not good for them – it will reduce capacity, and increase the internal resistance, resulting in a lower operating time and lower possible discharge rates. These batteries are not getting pushed to their limits at all, but I’m not too sure if I want them being used out in the cold. At the very least, they will be charged more often and kept inside as much as possible. I might make 2 more to switch out so that each battery spends as little time outside as possible.


Posted on

Upgrading a cordless drill from NiCD to Li-ion Batteries

So a few years ago, I bought a set of Ryobi tools off Kijiji for $30 or so. It was a great deal, but I knew the batteries were pretty much dead, but I could deal with that. A few charges later, the batteries were completely dead. Fast forward a year and I finally replaced the old NiCD batteries with new Li-ion ones.

When opening the old packs, I realized I should have done this a long time ago. The batteries were corroded and clearly dead. So I ripped them all out and soldered an XT-60 connector to the main power wires in order to accommodate a Li-ion battery.

In case anyone is wondering, the other component in that picture is a thermal fuse. Being used to tearing apart lithium-ion battery packs, I was surprised to see that this was  the only protection feature on that old NiCad pack.

Now comes the hard part – finding the right batteries to replace them with. I have seen lots of guides online using old laptop batteries for this that were not even tested – DO NOT do that. Most laptop batteries, even if brand new, were only designed to handle 2A of current draw, which gets lower as they age. That being said, I did use batteries that I got from a laptop battery, but I tested them and they were pretty much new. I used some Samsung 26C cells that are rated at 2600mAh and 5.2A discharge rate. Using my 18650 battery testing station, I verified that they still had around 2550mAh of capacity left, so for all intents and purposes, they are brand new batteries. If you are going to do a similar upgrade, make sure to get new cells to ensure that they can handle the current that the drill will use.

To test the current used by the drill, I used a DC clamp meter and the old lawnmower battery that I fixed here. I attached alligator clips to the 10S battery over 5 cells to get roughly 18V, similar to the original NiCD battery. There were spikes of up to around 10A, but continuous was around 4A – be sure to get cells that can handle these rates.

I assembled 5 18650 cells in series to make a 5S1P pack. Ideally, I would have gone with 2P, but there was not enough room to fit 10 cells in the old battery case. As for charging the battery, I left all the balance connectors inside the case, and will have to open the battery case to charge it. I don’t expect to be using this every day, so that will not be too much of an inconvenience.

The converted battery weighs almost half as much as the old battery does, and has over twice the capacity that it had even when new. Quite an improvement I’ll say!

Posted on

Building a DIY Arduino on a PCB and some Tips for Beginners

This is meant as a guide to anyone soldering their own Arduino from a kit, available here. It contains many tips and tricks in order to build it successfully. You will also learn about what all the different components do.

Mini USB Connector

The first part to solder is the mini USB connector. This  will provide power to your arduino when completed, but an RS232 / USB to Serial adapter will be needed for programming it. The mini USB socket goes in first so that you can put it in, flip the board over so that the pins are facing upwards, then put it down on the table. Before putting it in, bend the mini set of 2 pins slightly towards the front of the board so that it will fit in the holes on the PCB nicely. The weight of the PCB will hold the connector in place, and you can solder it right there.

Pin Headers

Pin headers are the next pieces to go in. You should have female headers in 6pin x2, 8pin x2, and 10pin x1. A male header of 3×2 is also required for the ICSP (In Circuit Serial Programming) header. These all go around the outside of the board, and will fit perfectly in their proper places. Solder them in with the same method as the USB socket, doing one header at a time. The headers should all be perfectly perpendicular to the PCB. To achieve this, solder only one pin of the header, then while holding the header in with your hand, melt the solder again and reposition the header to its perpendicular position. Make sure that it also sits flush against the board for the entire length. Hold it in position until the solder hardens, then continue soldering the rest of the pins.

Quick tip for soldering the rest of the components:

All the component leads can be placed through the board first, then bent to the side so that the components will stay in the board when flipping it over. This will make it much easier to solder as the components will hold themselves in place.


IC Socket

Start by placing the 28pin IC socket. Make sure to line up the divot at one end with the drawing on the PCB. This lets you know which way to insert the AtMega328P microcontroller. Even though the pins on this socket are shorter than resistors or capacitors, they can still be bent over to hold the component in place while you are soldering it.


The 3 resistors can go next. It does not matter which way they are placed – resistors are not polarized. There are 2 1K ohm resistors as current-limiting resistors for the LEDs, and a 10K ohm resistors as a pull-up resistor on the reset line. 1K ohm resistors were chosen for the LED instead of the common 220 ohm ones so that the LEDs will have a lower current passing through them, thus acting more as indicators than a flashlight.


There are 2 LEDs, one as a power indicator, and the other on pin 13 of the Arduino. The longer leg on the LEDs marks the positive side (anode). Make sure to put the longer leg in the side marked + in the PCB. The negative lead of as LED is also flattened at the side, so that you can still decipher positive (anode) and negative (cathode) leads if they were cut.


Next up is the crystal oscillator and the 2 22pF ceramic capacitors. It does not matter which way any of these get put in – ceramic capacitors and crystal oscillators are not polarized. These components will give the Arduino a 16MHz external clock signal. The arduino can produce an 8MHz internal clock, so these components are not strictly necessary, but let it operate at full speed.

Reset Switch

The reset switch can go next. The legs on the switch do not have to be bent, it should hold itself in the slot.

Ceramic Capacitors

4 100nF (nano Farad) ceramic capacitors can go next. C3 and C9 help smooth out small voltage spikes on the 3.3V and 5V lines to deliver clean power to the Arduino. C7 is in series with the external reset line to allow an external device (USB to Serial Converter) to reset the Arduino at the right time in order to program it. C4 is on the Arduino’s AREF (Analog Reference) pin and GND to ensure that the Arduino measures accurate analog values on it’s analog inputs. Without C4, AREF would be considered ‘floating’ (not connect to power or ground), and will cause inaccuracies in analog readings because a floating pin will take on whatever voltage is around it, including the small AC signals in your body that have come from the wiring around you. Again, ceramic capacitors are not polarized, so it does not matter which way you put them in.

PTC Fuse

Now you can install the PTC (positive temperature coefficient) fuse. The PTC fuse is not polarized, so can be put in either way. This goes right behind the USB socket. If your circuit tries to draw more than 500mA of current, this PTC fuse will start to heat up and increase resistance. This increase in resistance will lower the current, and protect the USB port. This protection is only in circuit when the Arduino is being powered over USB, so when powering the Arduino via the DC jack or by external power, be sure that your circuit is correct. Make sure to pull the legs all the way through the holes, even past the bends. A pair of pliers will be helpful here.

Electrolytic Capacitors

The 3 47uF (microFarad) electrolytic capacitors can be put in next. The longer leg on these is the positive leg, but the more common identification is the coloring of the casing on the side of the negative leg. Ensure that when you put them in, the positive leg goes towards the + mark on the board. These capacitors smooth out the bigger irregularities of the input voltage, as well as the 5V and 3.3V lines, so that your Arduino gets a steady 5V/3.3V instead of a fluctuating voltage.

DC Jack

Next up is the DC input jack. Same deal as all the other components, put it in and flip the board over on top of it to make it stay in place while you solder it. Bending the legs may be a little difficult, as they are thick, so you can always keep this one in place the same way as the mini USB connector that was soldered earlier. This one will only go in one way – with the jack facing the outside of the board.

Voltage Regulators

Now the two voltage regulators. Make sure to put them in the right spots. They are both labelled, so just match the writing on the board with the writing on the regulators. The 3.3V regulator is an LM1117T-3.3 and the 5V regulator is an LM7805. Both of these are linear voltage regulators, meaning the input current and the output current will be the same. Say the input voltage is 9V, and the output voltage is 5V, both at 100mA of current. The difference in the input and output voltages will be dissipated as heat by the regulator. In this situation, (9V-4V) x 0.1A = 0.4W of heat to be dissipated by the regulator. If you find that the regulator gets hot during use, that is normal, but if drawing a large current and there is a big voltage difference, then a heatsink on the regulator might be necessary. Now to solder them onto the board, the metal tab on one side should go towards the side on the board that has a double line. To secure them in place until you solder them, bend one leg on one way and the other two the other way. Once soldered in place, bend the 5V regulator towards the outside of the board and the 3.3V regulator towards the inside of the board.

Inserting the AtMega328P IC

The final part is to put the microcontroller in its socket. Line up the divots in the socket and on the IC, then line up all the pins. Once in place, you can push it down. It will take a bit more force than you might expect, so be sure to apply pressure evenly so that you don’t bend any of the pins.

A few notes of caution with your Arduino:

  • NEVER connect USB power and external power to the Arduino at the same time. Although these may both be rated at 5V, they are often not exactly 5V. The small voltage difference between the two power sources causes a short circuit through your board.
  • NEVER draw more than 20mA of current from any output pin (D0-D13, A0-A5). This will fry the microcontroller.
  • NEVER draw more than 800mA from the 3.3V regulator, or more than 1A from the 5V regulator. If you need more power, use an external power adapter (a USB power bank works well for 5V). Most Arduinos generate their 3.3V power from the USB to Serial chip on board. These are only capable of a 200mA output, so if you use a different Arduino, make sure that you’re not drawing more than 200mA from the 3.3V pin.
  • NEVER put more that 16V in the DC jack. The electrolytic capacitors used are rated for only 16V.


A few tips / interesting facts:

  • If you find that your project needs lots of pins, the analog input pins can also be used as digital output pins. A0 = D14, up to A5 = D19.
  • The analogWrite() command is actually a PWM signal, not an analog voltage.
  • PWM signals are available on pins 3, 5, 6, 9, 10, and 11. These are useful for controlling the brightness of an LED, controlling motors, or generating sounds.
  • To get an audio signal on the PWM output pins, use the tone() function.
  • Digital pins 0 and 1 are the TX and RX signals for the AtMega328 IC. If possible, do not use them in your programs, but if you must, you might need to unplug the parts from those pins while programming the Arduino.
  • SDA and SCL pins for i2c communication are actually pins A4 and A5 respectively. If using an i2c communication, pins A4 and A5 cannot be used for other purposes.


Instructions for programming your board:

First unplug any external power to avoid shorting out 2 different power supplies. Now attach a USB to Serial adapter to the header just behind the mini USB power. Connect it up according the following:


Arduino    USB to Serial adapter

GND        GND    (ground)

VCC        VCC    (power)

DTR        DTR    (reset pin)

TX        RX    (data)

RX        TX    (data)


Yes, the TX and RX pins do get flipped. TX is the transmitting pin, and RX is the receiving pin, so if you had 2 transmit pins connected together, not much would happen. This is one of the most common pitfalls for beginners.


Make sure the jumper on the USB to Serial adapter is set to 5V.


Plug the USB to Serial adapter into the computer, select the appropriate COM port (will depend on your computer) and Board (Arduino UNO) in the Tools menu of the Arduino IDE (downloaded from, then compile and upload your program.


Testing the board

The first thing you should do is to blink an LED. This will familiarize you with the Arduino IDE and programming language, and ensure that your board is working properly. Go to the examples, find the Blink example, then compile and upload to the Arduino board to make sure that everything works. You should see the LED attached to pin 13 start to blink on and off at intervals of 1 second.


Project by: Micah Black

Written By: Micah Black

Posted on

Cheap DIY Flashing LED Wooden Signs

This idea came from a few different places. I saw a wooden sign with LEDs on it at a craft sale, and thought it looked amazing, and simple to make. A few weeks later, I found Julian Ilett’s videos on ring oscillators. Putting the two together seemed to make sense, so I did. Over the next few days, the first sign started to come together.

I know its not quite the time of year for signs like this, but it sure does feel like winter again – in April 2018 – so I’ll post this now.

You can see a video of it in action here.

Assembling the Wood

The wood needed for these signs is pretty simple. A few pieces of wood, all the same length, get lined up beside each other. Then get 2 more pieces of wood, the same length as the width of the other boards, and hot glue the widthwise across the back to hold everything together. Then put 2 screws into each of the longer boards, 1 through each of the shorter boards along the back. If you flip the boards over, you should have a flat surface of multiple boards lined together. Sanding it is possible, but not necessary. It would make it look better, but unless you have a belt sander, I would not bother with it. As for the size of the sign, the Ho Ho Ho one is probably around 50 x 30cm, while the Joy To the World one is roughly 30 x 20cm.

Painting your Design

Regular acrylic paint from a dollar store is the easiest way to paint the wood. A clear acrylic spray sealant will go over it once finished, so that the paint will not chip either. I start with a solid color for the background, then add all the details. All the ones in the pictures, I painted by hand, and they didn’t turn out to bad – I definitely would not consider myself an artist.

Drill holes for LEDs and gluing them in

Next up is drilling the holes for the LEDs. I used 5mm white LEDs, so I used a 5mm drill bit to make holes for them. One of the special things about a ring oscillator (the circuit we will be using to flash them), we need an odd number of LEDs, so make sure to drill an odd number of holes. Also, make sure to avoid the braces on the back or else you’ll have a hard time soldering wires to the legs of the LEDs. Once the holes were drilled, I countersunk them from the front to be able to see that LEDs a little better, then repainted the holes. The LEDs went in from the back and were glued in place with some hot glue.

Soldering the Circuits on the LEDs

For every LED on the sign, a 2N3904 transistor, a 5-10uF capacitor, a 1K resistor (for current limiting the LEDs), and a 100K resistor (for passing the signal from one LED to the other) is also needed. An extra 100K resistor is also needed to make the LEDs flash a little more randomly. This extra resistor will go from one OUT from one LED circuit, to an IN connection on another LED an odd number of steps away. Connect the circuit as shown in the pictures below.

Powering Your Sign

First off, the LEDs need roughly  2.5V to shine, so we must supply it with greater than 2.5V. The other consideration is the higher the voltage, the faster the LEDs will flash, but you cannot have a voltage that will give too much of a current through the LEDs. With a 1K current limiting resistors, don’t put more than 9V across the circuit. This can be powered with a USB power bank, but I think 3AA batteries is the best. Just be sure to add a switch in the circuit as well. For the main power wires, I run 2 wires all along the outside of the circuit, and strip them where they need to be connected. Insulated wire is harder to work with here, but is better because it will prevent shorts – sometimes you do have to cross the wires.

Final Touches

I finished them up by covering them with a  layer of clear acrylic spray paint so that the paint would not chip or come off.


Project by: Micah Black

Written By: Micah Black

Posted on

How I Process and Test my 18650 Cells

UPDATE May 16, 2023: The test method described below, I consider to be the bare minimum to weed out cells that could pose immediate danger to a battery pack that gets built from them. For a much more in-depth test method and test setup, see my newer posts here.

Old laptop batteries are a great source of Li-ion batteries, as long as you know how to properly test them to make sure they are safe to use.

In a typical laptop battery, there are 6 18650 lithium-ion cells. An 18650 cell is just a cylindrical cell with a diameter of 18mm and height of 65mm (approximately). If the laptop battery no longer works, there is usually just 1 group of cells that died, and the other 4 are still perfect, but you have to test them all to make sure they work.

All my cells are tested with my 18650 testing station shown here.

1. Removing the Cells

To get the cells out of the laptop battery, all you need to do is break off the plastic casing. There are various methods that work here. Make sure to wear gloves and safety glasses – parts of the plastic casing can fly off, and are pretty sharp. The nickel tabs connecting the cells together are very sharp and can cut you very easily, as I have found out too many times.

1 – If you can twist the plastic casing and break it apart, then that is the best way to do it. This does not work on all batteries, and I am usually only able to do it on 3 cell Dell packs.

2 – Get a durable pair of wire cutters and/or pliers and try to break the corners off, or split it at the seam.

3 – Hitting the pack against the ground is a pretty good way to get the cells out. You might damage some of the cells, but this is one of the quickest methods of removing the cells.

Once the cells are freed from the plastic casing, you can get to work separating them into individual cells. They are usually spot-welded together in a 3S2P configuration (for a 6 cell pack). Cut all the wires going to the PCB one at a time to avoid shorts. The best way to get the spot-welded nickel tabs off the cells is to twist them off. Grab it with a pair of pliers or flush cutters,  and sort of roll it up. Be careful not to make any short circuits with the metal tools – the entire casing of the battery is the negative terminal, so if the heatshrink around it is broken, it can be easier to create a short circuit.

2. Initial Voltage Check

The first thing I do when all the cells are freed, is to do a quick voltage test. If the cells are over 2V, then they can go straight to charging in TP4056 chargers, or Liitokala Lii-500 testers. If the cells are under 2V, I mark them with a ‘V’, then charge them up with TP4056 chargers – the Liitokala Lii-500 does not always recognize cells that are at a low voltage.

PLEASE NOTE that cells that have been sitting at a low voltage have an increased risk of internal short circuits which lead to self-discharge and potentially thermal runaway (link). These effects are not always immediately obvious and may develop later after many cycles.

3. Self Discharge Test

Once the cells are fully charged, I let them sit for 24h, then measure the voltage again. If any cells discharge themselves just by sitting there, they will be weeded out here. Some people would recommend a week, others up to a month before testing them again, but for me, 24h is a fairly good amount of time. If any of the cells are under 4V at this point, then they are considered self-discharging, and are discarded. The self-discharging is evidence of dendrites growing inside the cell (risk of internal short circuit) and reducing the resistance between the anode and cathode.

4. Capacity Test

Any cells that passed the first two tests are now tested for capacity in Liitokala Lii-500 testers. OPUS BTC3100 are another common tester, but are more expensive than the Liitokala Lii-500, with the same functionality. They are charged, then discharged while measuring the capacity, and finally charged back up again. I write the capacity on the cells, and then sort them based on capacity. Under 1000mAh are discarded, and the rest are separated into 1000-1600mAh, 1600-1800mAh, 1800mAh-2000mAh, 2000-2200mAh, and 2200mAh+. I would recommend only using cells over 80% or their original capacity (printed on the cell side) in final projects, and using discarded cells as practice for soldering. Below 80%, cell capacity typically quickly drops as you continue to cycle the cells – they are still useable but are on their last legs.

5. IR Test (Optional)

The last thing to determine the health of a cell is the Internal resistance. The Liitokala Lii-500 tests the internal resistance of a battery each time you put it in, but I sometimes do another test with my homemade Arduino IR Tester. This test is not really that important if you are using cells in low power applications (<1A per cell), but in higher power applications (1A+ draw per cell) it is more important. The higher the internal resistance of your cells, the more they will heat up as you charge or discharge them. The extreme cases can be caught just by monitoring temperature during the charge and discharge processes.

Throughout all these tests (particularly charging and discharging), I monitor the temperature of the cells. If any cells get over 40 degrees Celsius, they are marked as with an ‘H’, as heaters, and are brought back to the computer recyclers. Red Sanyo cells have a high tendency to heat up.

I have recovered over 2000 cells following these guidelines, and have been fairly successful in determining which ones are good. One word of caution though – Any cells that do no come from a reputable manufacturer – Samsung, LG, Panasonic, Sanyo – are more likely to fail even if they test good. Of all the cells I have used, only a handful of knockoff Chinese brands – SZN, CJ – have failed.

Have a look at my battery testing station here.

This method is by no means the best, most complete and accurate way of testing 18650 Li-ion cells, but it is just my take on testing cells on a budget.

UPDATE – for a much more thorough test setup for battery testing, see here.

If you want to see more resources or other similar ways of testing cells, check out these links:

Project by: Micah Black

Written By: Micah Black

Posted on

Eco-Charge Portable USB Power Banks

One of the projects that I have been working on for the past year or so are portable USB power banks made out of recycled laptop cells. These power banks are ideal for hobbyists and for powering Arduino projects because they are controlled on and off by a switch. Most commercial power banks have an auto-on function, that turns on when a USB cable is plugged in, and  stays on if is is drawing more than a few hundred mA of current. For most Arduino projects, this does not work because the power bank will keep turning off after 10-20 seconds. With this power bank, if the switch is on, then there will always be 5V on the output (unless the batteries are depleted). I use these all the time on my workbench to power and test small projects. They are very simple to make, and the total cost is under $3 in components (except testing equipment).

Junior Achievement

At my school this year, I participated in the Junior Achievement (JA) club – where a bunch of students get together, choose a product, and start a business. I pitched these power banks as the product for the year, and it was enthusiastically accepted. We manufactured and sold over 100 power banks, and re-used over 50kg of lithium-ion batteries.

I was the VP of production, and was responsible for safely designing and creating over 100 power banks. We already had a prototype to prove that the product would work, but it needed lots of refining in the components, design, and instructions. We produced a power bank made from recycled laptop cells, and open sourced the design, schematics, and instructions so that anyone in the world can reproduce our design and save more laptop batteries from landfills.

Cost < $3

One of the main things that kept the production costs down was that we could get the batteries for free from computer shops and other recyclers, so they cost nothing. However, using recycled batteries did pose some potential issues with safety that we had to research and test first. Each battery required over 40 hours of testing before it could be used in our power banks. We explored buying new batteries, which would alleviate the testing time, but they would cost $10 per unit almost tripling our production costs, reducing our profit to under $2 per unit. The first few weeks of production were spent emailing and phoning local computer repair shops, computer stores, and electronics recyclers about getting their batteries for free. We contacted over 50 companies, but only heard back from about 10, and only 5 could give us their batteries. Getting batteries for free was proving to be harder than we thought. One of the electronics recyclers (EDI / Foxy Recycle) that gave us some free batteries had thousands available that they would also sell. Given that this seemed to be one of the only places in Ottawa that had the amounts of batteries that we were looking for, we decided to buy them from there, at a price of $0.30 per unit (30 times cheaper than new cells), and they had all the batteries that we would ever need.

Approval and Testing

Getting this product approved by JA took longer than originally expected. Most of the JA executives were cautious of the idea of a group of high school students making portable phone chargers out of recycled laptop batteries, which are classified as a dangerous good. From my extensive experience working with electronics, I knew that this product was safe and needed to communicate that to the authorities. We had to compile a lot of research on the specifications, charge and discharge rates, and safety features of all the components that we are using, especially the batteries and the protection circuit. Personally, I poured over 25 hours into making a document that outlines all of the safety features, and precautions that we are adding to ensure that nothing goes wrong. The potential issues with the production process, as well as the finished product, were all examined to make sure that there would be no problems in any aspect of making these power banks. In the end, we made sure that our product had overcharge protection, over discharge protection, short circuit protection, and overcurrent protection, which are standard on all commercial power banks. We also went the extra mile and fused the cells, which is not commonly done by manufacturers, to provide an extra layer of protection. Each cell needs to be thoroughly tested for IR, SD, capacity, and heating according to the test procedures here. This testing takes over 35 hours (3h charge, 24h sit, 8h capacity) to complete per battery. Our off-site testing station can handle up to 76 batteries at once. All this testing was done with my 76 cell 18650 Li-ion battery tester.

Design and Case Manufacturing

The design, made in Fusion 360 – a 3D design program widely used in the industry – went through more than 10 prototypes before getting the final version. These each required more than 3 hours to print, and a few weekends were spent refining the design. Finding a way to manufacture the cases was another challenge that we faced. 3D Printing them during the JA hours was not possible, as we would only be able to print 1 per week during each 3 hour period. We started looking into resin casting the cases, and found that there were high up-front costs. There is also a very steep learning curve and it would have taken $30 and a week of time per prototype for testing. With our 10 prototypes, pre-production costs would have been over $300. Resin is also very bad for the environment compared to 3D printed PLA plastic – made from corn starch – so it didn’t feel right labelling our product Eco-friendly if the casing was harmful to the environment. We started looking at other methods of small scale manufacturing possible on a tight timeline. With 3D printing, the prototyping costs are the exact same as the costs for the finished product, and it takes only 2 hours and $2 make a new prototype instead of a week and $30 per prototype. The common 3D Printing manufacturing services, such as Shapeways, were way out of budget for us, so we started looking at local options. The UOttawa makerspace had lots of printers available for free to the public, but to make something to sell, they would charge almost $5 per case. After some more research, we found a local company in Ottawa,, who was willing to print the cases at $3 each, and could make 50 in a few days, exactly what we needed. For the first set of cases, we ordered them from there, but subsequent ones, we were to get them printed with A2D Electronics, and still keep up with the rest of the production chain.


One of the other issues we faced was figuring out if we needed to get the product certified, and what labelling was required. Because it is all low voltage DC, we were not required to get it certified, but still needed proper labelling. We explored adding the labelling to the 3D Printed design, melting it in after it was printed, and settled on printing a label out on a color laser printer. We used mod podge and acrylic sealer to attach it to the bottom so that it will not fall off or get damaged with water.

Strict quality control testing was also necessary. We used a USB tester, which puts a 1A load on the USB ports to simulate charging a phone to ensure that every power bank was able to supply the rated current, and did not have significant voltage droop. Testing the recycled batteries followed a strict procedure as well, testing for internal resistance, self discharge, and capacity, the 3 indicators of a cell’s health.


The design, schematics, 3D printing files, and instructions are all available below. This means that anyone in the world, can replicate our power banks and save lithium-ion batteries from landfills. My design is now being modified by UOttawa graduates to build a solar powered reading light. We re-used over 50kg of batteries, and created a product and testing methodology that is reproducible worldwide.

Stay tuned for more posts regarding my these portable power banks. I plan on making several improvements to these in the future, including complete instructions, and possibly a custom PCB, and larger capacity.

Full instructions and an overview of the components will be coming soon.

All the STLs required for 3D printing the cases can be downloaded here.

If you make one, I would love to know and get some pictures of it!

Project by: Micah Black

Written By: Micah Black

Posted on

Custom Liquid Cooled Computer

This computer was a long time in the making, and it is a bit old now. I finished it in Feb 2016, after almost 2 years of planning, waiting for good prices on parts, and building it. The only things I paid full price for in this build were a few of the radiators. Several iterations were needed so that I had a computer to use while I was waiting on more parts.

I did not pay full price for many items in this build, and found many parts on kijiji, eBay, and from overseas much cheaper than their list prices. Getting these prices on some parts is not something that you will find everyday. I spent over a year just gathering parts for this build. If you take your time and do your homework, you should be able to find some amazing prices on quality components.


I initially got a 6 core Intel i7 5820K from microcenter. One of my friends was driving through the US and was able to pick this up for me. Even with the exchange rate, it was still a lot cheaper than buying one in Canada at the time. I used this the first iterations of the build. While browsing kijiji a while later, I saw a 12 core Xeon E5-2658 V3 for sale at $300. I could only find information for this on the intel website, and a few Chinese eBay sellers selling it, so it is probably an Intel engineering sample. It works great, and I love seeing how fast Cinebench runs! The only drawback to this beast of a CPU is its low clock speed, giving lower single thread performance, though for $300, it can’t be beat. I even sold the 5820K and got around $350, so I basically got $50 to get a better CPU!


I found an AsRock X99 WS board on eBay for a good price, and jumped on it. This basically chose my color scheme for me as it was blue, and did not fit with many other components. The first iteration had a black and blue color scheme, but it did not turn out as nice as I had hoped. My next board was an Asus X99 Deluxe that I found for $250 on Kijiji. The black and white color scheme would allow me to go for any color if I added some RGB LEDs, so that’s what I did. I designed a custom cover that goes around the waterblock to hide some of the silver capacitors around the CPU socket.


I started out buying 8GB of Crucial DDR4 when it first came out, and paid around $130 on Newegg for it. Later on when I upgraded my CPU, I also bought another 32gb of RAM in a 2x8GB and a 4x4GB lot for a total of around $120. Trying to get all my sticks recognized was not going to be possible, as they were all different capacities, so I installed the 4x4GB sticks for 16GB, and used the other RAM in other computers. I salvaged some black heatsinks from an old set of Corsair DDR  RAM, and attached them to these sticks that do not have heatsinks.


I started out with a single 500GB Seagate drive from my old computer, but found a listing on kijiji for some 2TB WD4 drives for $50 each. I bought 2 and put them in RAID 1. I designed and 3D Printed some custom brackets to mount behind the motherboard tray in the extremely spacious NZXT Phantom 630 that I have. Temperatures have not been a problem. One of the original drives failed after a year and a bit, so I bought another 2 2TB drives on eBay for around $100 again. Repairing the RAID array was not a problem, just a simple case of firing up Intel Rapid Storage Technology.


I have 2 Avexir 256GB Sata SSDs that I got for around $75 each from NCIX back when it was still around. I designed another custom 3D Printed bracket  for them and put them in RAID 0 for extra speed. They have served me well, and are nowhere near full yet.


The 1300W EVGA G2 power supply that I won on eBay for $125 was definitely a steal. It had previously been used for bitcoin mining, but a beast like this should be able to handle it without a problem. This was one of the best and most powerful power supplies out there, and had a great review by johnnyguru.

Graphics Cards

The 2 GTX780s that I have in this system are getting a bit outdated now, but remember, I built this system in 2016. I got one of them at CanadaComputers on clearance sale, and the other one on Kijiji. The backplates on them are custom-cut on an Epilog laser cutter out of 2mm acrylic. I designed them in inkscape – an amazing and free 2D Graphics software. The letters are vector cut, and the NVidia logo was raster engraved.

Liquid Cooling

The liquid cooling in this was a fairly long process. I ordered components from Aliexpress, and found a lot of EK fittings for an amazing price on Kijiji. This bag of fittings was ultimately what influenced me to go with hardline tubing in this build. The GPU waterblocks are universal blocks that I ordered from Aliexpress, and have served me great. I don’t game at all, so they are not under heavy loads much, if at all, so these are perfectly fine (and a whole lot cheaper than full cover blocks). I added some small aluminum heatsinks on the VRAM chips, and an 80mm fan blowing on the power delivery section of the card. Through a bit of trial and error, I was able to power them from the original fan headers on the boards.

As for radiators I have a 360mm, a 280mm, a 240mm, and a 120mm radiator. I believe all the fan slots on my NZXT Phantom 630 case are taken up with radiators. This is way more than needed to cool all the components in this PC, even if they were overclocked. I went for this overkill setup because I thought I would be upgrading and overclocking within a year, but clearly that did not happen.

The pumps in this build are 3 12V 18W pumps from Aliexpress, controlled with PWM from an Arduino with MOSFETs. This board also controls the LEDs in the computer. All the pumps are mounted on some custom 3D Printed brackets sitting on top of the lower 240mm radiator and fans.

This was not my first liquid cooling adventure, and it certainly won’t be the last.

Custom Cables

Pretty much all the cables in this build are custom made and sleeved. It was quite interesting to find all the required connectors for this build. I had to buy some adapters on eBay just to get the connectors – SATA, and 6/8pin graphics card connectors specifically. To get an 8 pin ATX power connector for the motherboard, I had to buy a lot of 50, but it was only about $6. If anyone needs an 8-pin ATX plastic housing, let me know. I also had to find pinout diagrams for my power supply.

The first time I sleeved power supply cables, I went for paracord sleeving. This time, I went for the more standard plastic sleeving, and I’m glad I did. It was so much easier to work with. I used black and white sleeving that went over black and white 16AWG wire from eBay. Crimping the ATX connectors on took a bit of practice, but I eventually got the hang of it. One of the quirks of the power EVGA 1300 G2 power supply that I have is that it has capacitor on the cables. Finding the right wires to put them on was a pain, especially given the limited documentation (at least at the time). Building these custom cables took over a week’s worth of time. I also laser cut some cable combs out of black acrylic to keep everything looking nice on the front side of the case.

Case Mods

As you might expect, I did have to cut a bit out of the case as well. The original DVD drive bays blocked part of the window, and stopped me from mounting the 280mm higher up than it was supposed to go in the front of the case (to allow room for the power supply and 240mm rad in the bottom). With the help of a rotary tool, those came out, and I repainted the edges with some simple black acrylic paint. I can hardly notice that anything was cut until I look pretty closely.

Custom LED Fan Rings

On 3 of the fans in this build, I made my own LED rings. I popped the fan blades out and drilled holes around the edges to match up with the LEDs in my RGB LED strips. They turned out really well.

LED and Pump Control

I made a custom Arduino control board for my pumps and LEDs that is able to control pump speed and will cycle through the RGB color spectrum fairly slowly.


As I mentioned at the start, this is now over 2 years old and needs a refresh. I still have not changed the coolant, and have noticed that it has lost its milky white color – it is now more of a light gray. I have absolutely no idea how much time I poured into this computer, but I have to say, the end result is simply amazing.



Project by: Micah Black

Written By: Micah Black

Posted on

Half An Hour’s Worth of Burning Arduino Bootloaders

Today I spent about half an hour burning bootloaders on AtMega328P ICs for DIY Arduino Kits.

It was fairly repetitive, but without Nick Gammon’s excellent bootloader burning program, it would have been lot more complicated. I downloaded the code and instead of having it ask for serial input, just gave it all the values required.

I used 2 of my DIY Arduinos connected with 6 jumper wires. For each AtMega328P, I first bent the pins inwards by pushing it against a table so that it fit in the IC socket. Then I put it in the IC socket, press the reset button on the other Arduino, and wait for the LEDs to stop flashing.

In about half an hour (while playing Chinese Checkers), I was able to burn the bootloader on around 80 AtMega328 ICs.


Project by: Micah Black

Written By: Micah Black