Blueprint

OpenPCR

A cheap, DIY PCR machine

1 view

0 followers

DynamicWhiteHat DynamicWhiteHat added to the journal ago

Did the schematic and started PCB work

I decided to go with an ESP-32 S3 Wroom 1 module, as they are easy to implement and I already have it done from a previous project. I copy pasted and edited the following:

image
image

For the power section, I added the two bottom components on afterwards. The component on the left is a 12v barrel jack, as I intend on powering the project using a 12v 10a power supply. The IC on the right is a switching regulator intended to drop the voltage from 12v to 5v, which is then dropped to 3.3v using the LDO above. I followed the typical application circuit for this, as well as the comments and feedback from this reddit post. Afterwards, I added in the TEC (Peltier module) controller. I GPTd some ICs I could use and found the DRV8412, which is a dual-bridge motor driver. The datasheet even had a typical application circuit for TEC control, which made the design process much easier. This is what I ended up with:

image

This is also my first time using tantalum capacitors, and they are pretty expensive. I was also surprised at the 1000uF cap, but it makes sense since that was for the 12v line. This probably took the longest time to implement, as the application circuit was a bit hard to read and I had to compare it with my own design.

After that, I added in mosfets for controlling the fan and kapton heater, which look like this:
image

Then, I added the thermistors in (I forgot where I got the resistor values)
image

And finally some solder holes for connecting a SSD1306 and rotary encoder:
image

The LED below is for heating status.

Then, I began placing the components on my PCB. I started with the reddit post from earlier to lay out my 12v switching regulator, which looks like this:
image
This was the best layout according to the spec sheet. I then placed the DC jack, USB connector, and ESP32. Afterwards, I used the spec sheet for the DRV8412 for placing the capacitors and other parts. This is what I have:

image
I placed the components on the back side to make routing easier (I realize now that that doesn't make much of a difference, but I've already started routing so I'll keep it)

Finally, I placed the rest of the small components and ended up with this:

image

DynamicWhiteHat DynamicWhiteHat added to the journal ago

More research and started design

Today I did some more research into understanding how to read the datasheet of a peltier module. I was trying to use a calorimetry formula I learned in chemistry class to figure out the maxiumum mass of the aluminum that holds the PCR tubes. However, the issue that I kept running into was that there was no specific wattage (Qc) that gets output by the PCR, as it is dependent upon the temperature difference between the two sides. The following graph is what I used for my calculation:
image
I somehow managed to stumble upon a very good peltier module for relatively cheap, as even the more expensive ones don't output as much Qc as this one at the higher temperatre differences. I did my calculation based on the worst-case sceneario, which took me a while to figure out, as I was confused on how these numbers on the datasheet worked. The worst case sceneario is the following: Hot side at 95 C, cold side at ambient/room temperature (assume 20 C). That would mean a temperature difference of 70 C. Using the graph, you can see that the Qc during the worst case sceneario would be 20W, which is pretty high. I then inputted these numbers into a modified ramp-rate formula to calculate the mass of the aluminum: Qc = (mcT)/t, where m is the mass, c is the specific heat capacity, T is the temperature change, and t is the time change. I assumed a temperature change of 4 degrees C per second, and I got the mass to be 5.6g. However, this was a very hard number to work with, so I decided to try 3 degrees C per second, which got me 7.4g. I started the CAD with this in mind, and I was able to get it down to 9 g. This is the PCR tube holder:
image
I extruded the bottom as a new body and turned that into the Peltier module using the dimensions from the datasheet:
image
Then, I worked on the heatsink. I started by extruding the Peltier module as a new body, then drawing ten 1mm fins on the bottom to help dissipate heat. I extruded these fins by 20mm, which looks like this:
image
Finally, I found a 30x30x10 mm fan online to help cool the heatsink, which will allow me to reach different temperatures quicker. Then, I added a quick case around the bottom, which I still need to work on. This is everything assembled:
image
image

DynamicWhiteHat DynamicWhiteHat added to the journal ago

Research

I did some reasearch into making a PCR machine today. I began by looking on Slack to see if anyone had made one before. I found that @wormmeatapple had made one before for Highway, so I took a look at his repository to understand how it worked. His model, pictured below, helped me understand how the DNA sample is heated and cooled.
image
After doing some more research, I found PocketPCR, which is another open-source PCR machine made by GaudiLabs. However, one thing I noticed that was common in both PCR machines was that they both used capacitive heating elements to heat their DNA samples. One issue with this is that they are slow and not very precise, so I did some more research into this. A lot of the cheaper, DIY PCR machines use resistive heating elements instead of Peltier modules, which are used in high-end PCR machines. I also found this PCR machine that looks very nice and has a heated top to prevent evaporation of the sample. I will use this for my reference design.

Credit to @wormmeatapple for the image

DynamicWhiteHat DynamicWhiteHat started OpenPCR ago

1/1/2026 - Research

I did some reasearch into making a PCR machine today. I began by looking on Slack to see if anyone had made one before. I found that @wormmeatapple had made one before for Highway, so I took a look at his repository to understand how it worked. His model, pictured below, helped me understand how the DNA sample is heated and cooled.
image
After doing some more research, I found PocketPCR, which is another open-source PCR machine made by GaudiLabs. However, one thing I noticed that was common in both PCR machines was that they both used capacitive heating elements to heat their DNA samples. One issue with this is that they are slow and not very precise, so I did some more research into this. A lot of the cheaper, DIY PCR machines use resistive heating elements instead of Peltier modules, which are used in high-end PCR machines. I also found this PCR machine that looks very nice and has a heated top to prevent evaporation of the sample. I will use this for my reference design.

Credit to @wormmeatapple for the image

1/5/2026 - More research and started design

Today I did some more research into understanding how to read the datasheet of a peltier module. I was trying to use a calorimetry formula I learned in chemistry class to figure out the maxiumum mass of the aluminum that holds the PCR tubes. However, the issue that I kept running into was that there was no specific wattage (Qc) that gets output by the PCR, as it is dependent upon the temperature difference between the two sides. The following graph is what I used for my calculation:
image
I somehow managed to stumble upon a very good peltier module for relatively cheap, as even the more expensive ones don't output as much Qc as this one at the higher temperatre differences. I did my calculation based on the worst-case sceneario, which took me a while to figure out, as I was confused on how these numbers on the datasheet worked. The worst case sceneario is the following: Hot side at 95 C, cold side at ambient/room temperature (assume 20 C). That would mean a temperature difference of 70 C. Using the graph, you can see that the Qc during the worst case sceneario would be 20W, which is pretty high. I then inputted these numbers into a modified ramp-rate formula to calculate the mass of the aluminum: Qc = (mcT)/t, where m is the mass, c is the specific heat capacity, T is the temperature change, and t is the time change. I assumed a temperature change of 4 degrees C per second, and I got the mass to be 5.6g. However, this was a very hard number to work with, so I decided to try 3 degrees C per second, which got me 7.4g. I started the CAD with this in mind, and I was able to get it down to 9 g. This is the PCR tube holder:
image
I extruded the bottom as a new body and turned that into the Peltier module using the dimensions from the datasheet:
image
Then, I worked on the heatsink. I started by extruding the Peltier module as a new body, then drawing ten 1mm fins on the bottom to help dissipate heat. I extruded these fins by 20mm, which looks like this:
image
Finally, I found a 30x30x10 mm fan online to help cool the heatsink, which will allow me to reach different temperatures quicker. Then, I added a quick case around the bottom, which I still need to work on. This is everything assembled:
image
image

1/18/2026 - Did the schematic and started PCB work

I decided to go with an ESP-32 S3 Wroom 1 module, as they are easy to implement and I already have it done from a previous project. I copy pasted and edited the following:

image
image

For the power section, I added the two bottom components on afterwards. The component on the left is a 12v barrel jack, as I intend on powering the project using a 12v 10a power supply. The IC on the right is a switching regulator intended to drop the voltage from 12v to 5v, which is then dropped to 3.3v using the LDO above. I followed the typical application circuit for this, as well as the comments and feedback from this reddit post. Afterwards, I added in the TEC (Peltier module) controller. I GPTd some ICs I could use and found the DRV8412, which is a dual-bridge motor driver. The datasheet even had a typical application circuit for TEC control, which made the design process much easier. This is what I ended up with:

image

This is also my first time using tantalum capacitors, and they are pretty expensive. I was also surprised at the 1000uF cap, but it makes sense since that was for the 12v line. This probably took the longest time to implement, as the application circuit was a bit hard to read and I had to compare it with my own design.

After that, I added in mosfets for controlling the fan and kapton heater, which look like this:
image

Then, I added the thermistors in (I forgot where I got the resistor values)
image

And finally some solder holes for connecting a SSD1306 and rotary encoder:
image

The LED below is for heating status.

Then, I began placing the components on my PCB. I started with the reddit post from earlier to lay out my 12v switching regulator, which looks like this:
image
This was the best layout according to the spec sheet. I then placed the DC jack, USB connector, and ESP32. Afterwards, I used the spec sheet for the DRV8412 for placing the capacitors and other parts. This is what I have:

image
I placed the components on the back side to make routing easier (I realize now that that doesn't make much of a difference, but I've already started routing so I'll keep it)

Finally, I placed the rest of the small components and ended up with this:

image