I have started this project in on 03.02.2022, but I had had this idea in my head for a few months already back then. First step was figuring out how to work with commercially available Peltier modules. I ordered 2 off of amazon, along with some thermal paste, connected them in series and attached to a computer fan. (*in series thermally - one is cooling the other. Is it necessary, or any better than 1? I don't remember :P ). After adjusting voltage back and forth, I figured 5V works very well. The result turned out to be promising, reading nearly -25°C:

After that I had to figure out if it will still work covered with water. To do that, I got myself a double layered glass and used a bit of food wrap + a rubber band for sealing. The result was very encouraging (see below). A half centimeter thick ice layer has formed quite quickly on top of the Peltier module (notice the little air(?) columns for a guide for an eye).

Once the idea has been proven, the time has come to make it less of a contraption, automating it and making it into something that would actually look nicely.

Looks:  I have explored a few ideas (including a layer of oil like here to get a bit more lava-like feeling, but it turned out it is pretty much impossible for the ice to break the surface tension between water and oil). I experimented with food dye as well, but decided to leave the water clear.

Finally, I have decided I will look for something of low density to put into water, so it gets encapsulated in the ice layer, then gets carried up and falls down as "snow". It turned out that acrylic diamonds fulfill this goal perfectly.

Un-contraptioning: I 3D printed the base for the whole thing, and sealed it with silicon. An important part was the thermal contact between the modules and the fan. 

Next, I poured boiling water inside the glass (with diamonds inside) to kill all life and let it cool. I added a bit of bleach, just to be sure nothing grows inside. Finally, I sealed it upside-down with more silicone, and the first prototype was ready (and, as it happens with first shots, this one was the best).

Automation: I have opted for Microchip Curiosity Nano AVR128. I have added a simple resistive NTC10K temperature sensor around the base of the device to be able to figure out when to release the ice (by turning of the cooling - the Peltier modules operate on the basis of temperature gradient, so turning off the power and the fan makes them heat up quickly). 

The Peltier modules consume quite a lot of power (~`15W), so I added a relay switch for that. The fan needed 12V (all the rest runs on 5V), which required a DC-DC converter. The temperature measurement is performed every so often, so the resistor does not heat up the water (would it even a be problem? No idea).

Finally though, after trying and failing with temperature thresholds as indications of ice formation, I have decided to only use temperature to indicate that the setup is ready. Getting to that temperature takes around 1.5h. After that I switched to the MCs timer as a way to perform the whole process. I figured that 12 minutes is enough for the ice to from and 90 seconds is enough for a release.


A few important things occurred to me at some point of iterating the design:

  • I wanted to make it more likely for the diamonds to fall on the Peltier modules instead of around it, so I angled the walls around it
  • bleach sort of bit into stuff so I did not add it again
  • It turned out that a flat surface is pretty bad at seeding ice underwater, even if it is very cold. I solved this issue by gluing in 2 stainless steel cones, thermally connected to the surface and filed for roughness. I have sourced them from earrings
  • It turned out it is still not enough and super-clean, boiled water usually just supercools. Therefore I have added a bit of saline solution, and as counterintuitive as it is, it worked very well. The temperature is more than enough and water...
Read more »