Making PCBs at home using the Halot One Resin Printer

The idea came from this video which I watched about a year ago. I have made some PCBs before but even when paying for fast shipping from JLCPCB it is still a couple of weeks turn around time which just isn’t interactive enough for me and also could get expensive. As a result I have never spent enough time with KiCAD to really get into it.

He used pre-sensitized boards which are “positive” which means that the resist dissolves where it is exposed and sodium hydroxide is used for developing. This means that a negative of the STL file needs to be made for the printer and also sodium hydroxide is very corrosive and therefore somewhat dangerous and difficult to handle.

The idea of using a resin printer really appealed to me so I purchased the Creality Halot One on a Black Friday sale. I finally unboxed it and started playing with it on December 26.

It turns out that using photosensitized film which is “negative” removes the need to create a negative version of the STL file and also sodium carbonate is used to develop. The film is readily available on Amazon and sodium carbonate is just laundry stain remover available at the grocery store and harmless unless you get it in your eyes.

I did a lot of experimenting to come up with a reliable process and found this article really valuable


1. Design in KiCAD and use a minimum track width of 0.5mm (default is 0.25 which I think is too narrow for this process).
2. Import into FreeCAD using the add-on KiCadStepUp: start with a new project, open the KiCad pcb file with KiCadStepup workbench, select all (important!) and extrude then select all again (important!) and export as STL.
3. Open the STL file in the slicer (Halot Box in my case) and check that the 3D model is flat on the platform and doesn’t have anything sticking out the bottom (in which case you may have to edit the offending footprint in KiCad). For the Halot One I have found that a 3 minute exposure works well so this is six “slices” of 30 seconds. Since the slices are 0.050mm the 3D model needs to be scaled to 0.3mm. You can also make multiple copies in the slicer if you want to put several on one PCB. Also it is possible to put different layouts on one PCB.
4. Sand the blank PCB as per the PDF above and then make sure there is no residue using water and alcohol (the last rinse should be water however). I dry it off with paper towels and don’t leave it wet.
5. I use a covering iron (for model airplanes) with the temperature set at about 80C. I “iron” the film on with moderate pressure after removing the bottom protective cover being careful to smooth out any bubbles. It is about right when it doesn’t pull up at the corners easily.
6. Let it cool to room temperature before exposing.
7. Remove the top protective cover off the film and then develop using sodium carbonate solution (as per the PDF). Once most of the film has been removed I use my finger gently too rub between the traces and remove any residue.
8. Wash the board in water and then use vinegar to stop the developing and harden the traces. Let it fully dry.
9. I use the sponge method with ferric chloride to etch the board Sponge + Ferric Chloride Method -- Etch PCBs in One Minute! : 5 Steps (with Pictures) - Instructables.
10. Finally to remove the hardened film I use the standard amount of sodium chloride in a small amount of warm water. This part takes about 30 minutes.

Here are the settings for the Halot Box slicer to get the proper exposure:

0.050mm layer thickness
30s initial exposure time
30s exposure time
1mm rising height
3 mm/sec motor speed
0s turnoff delay
1 bottom layer

The total time is about 5 minutes.


My first board was a breakout board for some ESP32-WROVER modules that I have.

Here is what the Halot One does (projected on a piece of paper on the bed):


After exposing the PCB and developing:


After etching and soldering on the module here is the final product working on the bench.
It’s a bit tricky to solder the module to the board but it's doable:


Here is my second attempt on a board with the ESP32-S2-SOLO-U-N4R2 and with touchpins out to a pin header. The 10k and 1uF components are necessary for the proper startup and reset:


For further information you can contact me on my contact page Contact Page