Weather Cube

Tempescope is a project started by Ken Kawamoto, to create an “ambient physical display that visualizes various weather conditions…”  Here’s a video of his creation in action:

He’s also created an open source version, you can find more details here:

If you want to create your own version of this device — I call it a “weather cube” — I’ll provide some pointers that might help clarify the build process outlined above. The basic idea is to create an acrylic cube made up of two compartments: a large upper chamber that will contain the “weather” — either rain or a mist that can represent clouds or fog — with a water reservoir at the bottom, and a second bottom compartment that will contain the power supply and controller for components that create the weather effects: a water pump, a water atomizer, a fan to exhaust water vapor from the upper chamber, and a multi-color LED that can represent sun or lightning.


Here’s a diagram from the (original) open tempescope site that shows the basic arrangement. The water reservoir and electronics compartment are in the white painted section at the bottom. You can see a spot at the top (on the “lid”) to hold the multi-color LED, and a clear plastic tube that moves water from the reservoir in the white section at the bottom to the top, in order to sprinkle water into the top (clear) chamber, in order to simulate “rain”.

The exact size of the weather cube isn’t critical. I made mine approximately 4.5″ (L) x 4.5″ (W) x 14″ (H). The white painted section at the bottom is 6″ high.  Here’s a video of it running, after I’d completed assembly, and had a first working version of the control software:

I started the build by creating a jig, basically a couple wood boards, glued together to form an “L”, at an exact 90 degree angle, to facilitate gluing the pieces of acrylic together, while keeping the angles square.

Here’s the almost complete acrylic cube, showing three sides glued together, divided into the two chambers. I added a small “shelf” in the water reservoir to hold the water atomizer at the right level, just below the water surface, in order to create the right amount of mist that sprays upward into the “weather” chamber.


You can also see the exhaust fan mounted just above the water reservoir, and holes drilled into one side to hold the push-button switch controls.

At this point, I started sourcing and wiring the individual components together, and connecting them to the controller. For this project, I used the Raspberry Pi 2 computer, since that eliminated the need for an external application, an iOS app in the case of the Open Tempscope Project. The basic idea behind the software is that a python script can call the Yahoo! weather web service to obtain a weather forecast for any of a set of pre-configured cities around the world, then switches (transistors) connected to the Raspberry Pi’s GPIO pins will switch the multi-color LED, pump, atomizer and fan on and off as required to create the desired weather effect: sunshine (with or without clouds), rain, fog, and lightning.

Here are the components, minus the multi-color LED (which can be powered directly from the Raspberry Pi’s GPIO pins): the water pump at top-left, the atomizer at left, the Raspberry Pi at bottom, and the exhaust fan on the right, connected on a breadboard.


Note the separate 24V (for the water pump), 12V (for the atomizer) and 5V (for the exhaust fan) power rails. Also, I’m using transistors, connected to the Raspberry Pi’s GPIO pins, to control the external devices that can’t be powered directly from the GPIO pins, due to high current demand. I’ve copied my notes below, showing how voltage regulators are used to provide the 12V and 5V from an external power adapter that provides 24V DC output. weathercube_notesAlso shown is how the transistors are wired to act as switches for turning the pump and atomizer on and off.
weathercube_controllerThese transistors and other components are mounted to a breadboard, then wired to the Raspberry Pi using terminal connectors. I needed a “cage” to hold everything together, so I 3D-printed the assembly shown above. The top board is the power supply, with heat-sink attached voltage regulators, the Raspberry Pi is mounted in the middle, and the switching transistors for the fan, atomizer and pump are mounted on a perforated (“perf”) circuit board at the bottom.


Here’s a view of the completed case, all the sides are glued and sealed. It took a few tries to find a type of silicon sealant that bonded well to the acrylic plastic. You’ll find that bonding the sides together with acrylic glue alone won’t create a watertight seal, and that you’ll need to use a silicon sealant to make everything watertight.


The bottom six inches of the cube are painted last, with a small clear portion left for the OLED display, mounted inside the case using a custom 3D-printed bracket. The display is wired directly to the GPIO pins on the Raspberry Pi.

As you work with the plastic, you’ll invariably scratch the surfaces (I gave up trying to protect it early on); the good news is that a polishing kit will fully restore the original clarity.

The weather cube is controlled by a Python program that “listens” for a button press that selects between a fixed set of cities. For a selected city, Yahoo’s weather web service is called to obtain forecast conditions, then a procedure is called that simulates that weather via some combination of LED lighting, water and mist from the atomizer.  The simulated weather is displayed for 30 seconds, then the fan is run to clear water vapor from the upper chamber.

Contact me via comments if you need more information or want a ready-to-run Raspbian image for the Raspberry Pi.

6 thoughts on “Weather Cube

  1. Just want to say thank you for posting this! I’ve been planning on making this for years but haven’t gotten around to doing it. The original builder is a bit scarce on details regarding the power supply so I’m glad I found your notes. I was also planning on putting mine on a RPi zero since it’s a lot cheaper and has a smaller form factor.


  2. Really cool build! I have been looking into building a tempescope from Kawamoto’s open tempescope project, but was also interested in adding Raspberry Pi support. Would you mind sharing your BOM (and maybe a rough wiring diagram)? A lot of the open tempescope parts are no longer available in the US. Thanks!


    1. Nathan thank you for the kind words. Let me look back at my notes and see if I can find the wiring diagram, I do have one. As for the BOM, the rough list is: plexiglass for building the enclosure, small DC fan, Raspberry Pi version 3, I think, a small DC pump and atomizer I found on eBay, 2 voltage regulator ICs (24v to 12v, and 12v to 5v), and transistors to switch power to the pump, fan and atomizer using an output signal from the RPi. Finally a tri-color LED assembly that I think I drove directly from the output pins on the RPi. I’ll see what I can dig up. Good luck and please add a comment when you’ve got a prototype working!


  3. Hi! Great job! I’ve been following this project since it launched, and you work by far is the best explained! I’m planning to build one myself but my software skills are quite limited. Is there any chance of you posting the code to install it myself in a RPI zero?


    1. Marc I’ve got the .img file for the RPi “disk” image, which is everything: the version of Raspbian I was using, the Python libraries and of course the python script that runs the weather cube. I’ve also got the original wiring schematics that I used which might be helpful. The .img file is 8GB. Contact me at dbbyres(at) if you have a dropbox or other link to post all of the files.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.