Making a cloud chamber to see radiation without needing dry ice

Seeing radiation with your own eyes is incredible. It wows everyone who sees it, and is a perfect ‘hook’ to bring people over to your nuclear education table. “Hey, you guys want to see some radiation?”

I’ve used a normal dry ice cooled cloud chamber many times in science demos at corporate family nights, at demo tables at the Pacific Science Center, at schools, and so on for many years. You can still find dry ice at a number of grocery stores, but it seems to be getting more difficult. Plus, the dry ice runs out after a few hours, and you have to get more. I’ve heard of people using thermoelectric cooler (TEC) pads for this and thought I should try it out.

The thermals for my first consistently cold-enough stack.

Equipment List

Cooling pads

I’ll be honest, I bought lots of TECs of various sizes and combinations before finding a combo that worked for me.

Power supply

I used a 500 Watt computer power supply for this, since they can provide quite a bit of current at 12V, 5V, and 3.3V. I spent some time attaching Anderson power pole connectors to it for convenience during experimentation.

Water cooling

After struggling to get temperatures down for so long, I decided to just go straight to direct once-through water cooling until I got it all working. I got an aluminum water block, some tubing, and some faucet connectors, so I could just run it right out of a normal household faucet.

Once-through water cooling isn’t ideal for portability, since you have to be near a water supply and drain. I will try to find a big enough air radiator to get this to work without a direct water connection later.

Cooling tests

It took a lot of experimenting to get the thing cold enough. First I tried a CPU cooling radiator. This got me to the right temperatures if I went outside with a stack of three TECs but was hard to reproduce.

This still seems like a great configuration but I think I broke some of the TECs by clamping down too hard on them.
Uh yeah that’s a broken TEC

Really stretching with the water cooling. This was a dumb idea because at 400W you basically heat the bucket of water up in a few minutes

Getting more serious with once-through water cooling, lol.

Ooooh yeah now we’re talking
Pretty chilly
With the rock on it
Now working

See also

There are a number of good builds out there that were very helpful.

A failed attempt to find some Uranium in Washington State

Being a nuclear engineer, I thought it’d be fun to find some Uranium in the wild just out there in the nature, sitting somewhat dormant since it was made by neutron star mergers and giant supernova billions of years ago. I just wanted like a tiny rock with some uranium ore in it.

I found an old document from 1957 describing where Uranium had been found in Washington State. The vast majority of it is around Spokane in Eastern WA, but there are a few spots closer by worth maybe checking out.

Map of western washington showing old uranium findings
Map showing uranium claims in Western Washington (1957)

The ones up in the central cascades all looked to be in the Galena area, which is difficult/impossible to get to at the moment due to the washout on the index/galena road.

I thought I’d go for the one East of Rainier, which is on National Forest land and talks about super high-grade ore, but all the reasonable approaches require either a 14-mile one-way hike or access to closed-off lumber roads. I spent a lot of time on satellite maps before I convinced myself that you could not get past Ohop on the logging road, thanks mostly to this post. (Along the way, I learned about the Electron Dam down there, which seems pretty cool, as well as Vancouver Notch).

So anyway, this one by Bumping Lake West of Mt. Rainier looked much easier to access.

Screenshot of text describing Uranium found near Bumping lake in yakuma county
The hook

I found a video of some people who camped basically exactly at this spot not that long ago, so I knew it’d be accessible (the internet is an amazing place sometimes).

So Waffles and I took the day off and loaded up the Subaru with our UV light and Geiger counter and were off and over the incredible Chinook Pass! I got some good podcasts in and we stopped in the nice dog park in Enumclaw on the way. Waffles was not good at the agility things.

Waffles did not get this at all

Pretty daunting Rainier views along the way

The road was pretty awesome until just past Bumping Lake, after which it was still fine, though a bit rockier than I like with my little dinky Impreza tires. Good thing I got the extra 2 inches of lift with those King Springs.

Subaru on the Road

Background is usually about 0.5 counts per second. Right out of the car it was a bit more than that. We walked around trying to find sand by a mineral spring. We found lots of sand but no mineral spring. The water was shallow enough for me to walk in it as long as I was ok getting my boots wet. Waffles learned quickly how to walk in a river.

Picture of river and waterfall and sand
You’d think there’d be uranium around here
Person with hat and glasses holding geiger counter while wading in stream with hiking boots and backpack
Well at least I took a selfie
Getting higher

Honestly I didn’t find much that registered over 2 counts per second. I guess 4x typical background is ok but I was hoping for like 100 counts per second. I didn’t find any hot spots after tromping around for some time holding that up to every rock I could find.

Up and down the river we went, and all around

TL;DR:

But it was beautiful.

Controlling a Amcrest PTZ camera with a joystick

I have a Logitech Gamepad F310 USB controller, a computer, and a Amcrest Pan/Tilt/Zoom (PTZ) camera that supports the ONVIF standard. I wanted to control the camera’s motion with the joystick. So I did.

Controller and Camera

Reading the joystick in Python is super easy using pygame. I ran the demo code toward the bottom of the joystick page as my first step. It showed all axes and buttons working great out of the box with my controller.

Amcrest cameras support the ONVIF protocol. The python-onvif-zeep package supports sending ONVIF commands from modern Python (I used Python 3.10 for this project).

Specific example code demonstrating how to use the package from Python to send PTZ commands to the camera can be found e.g. here.

Given the ability to read the joystick and the ability to control the camera, we just need to glue it together! So I wrote a 250-line package called joy-ptz-cam that does just this.

The package is pretty limited at the moment but does handle PTZ controls. It pans and tilts with the left joystick and zooms when you pull the right trigger and zooms out when you pull the left trigger. (Note that for this particular camera, zoom is purely software, but on an actual zoom cam it would work the optical zoom).

And there you go I saved myself $500 vs. getting one of those fancy joystick camera controller things.

I have a fancier PTZ ONVIF-compliant camera on order which is the real reason I wanted to try this out on the smaller cam.

A LIRC config file for the Peachtree Audio Decco IR remote control

A family member upgraded his stereo and offered me his Peachtree Audio Decco as a hand-me-down. I couldn’t say now because my previous hand-me-down has recently become buzzy. But, in order for it to work with my home automation setup, I needed to be able to turn it on and off, switch inputs, and change volume from my Home Assistant home automation system via my Raspberry Pi. I use LIRC for this but there is no remote config for the Decco. So I used the remote and recorded the pulses.

Using irrecord didn’t go that well. The dots were coming in but very slowly. I’d have to sit there for 10 minutes pressing in order to get enough dots for it. So I used mode2 to record raw commands on my pi. Then I hand-edited it to have the right format for a conf file and then ran irrecord -a on it to convert it to actual codes.

Since the LIRC remote DB hasn’t been updated since 2018 and has a few open merge requests, I figured it’d be easier to just post the file here for the next person who needs it. It works great. Here you go.

Fun times.

Measuring the Tonga eruption pressure wave with a home weather station

The Tonga eruption on January 14, 2022 sent a big shock wave out in all direction in the atmosphere. I had once read about how the Krakatoa eruption shock wave was measured 7 times going around the world, so I wondered if I could measure it with my weather station. Sure enough, I could!

Continue reading Measuring the Tonga eruption pressure wave with a home weather station

Controlling a Fujitsu heat pump/air conditioner with Home Assistant over IR

I have some of those mini-split Fujitsu heat pumps in my house that have infrared (IR) remote controls. This post explains how I set up my smart house to be able to automate the heat and air conditioning with a raspberry pi and Home Assistant.

The Home Assistant control panel
Continue reading Controlling a Fujitsu heat pump/air conditioner with Home Assistant over IR

Smart holiday lights that change colors for the next upcoming holiday

I rigged up some holiday lights that switch between a number of color palettes based on what holiday is coming up next. I used a $25 light strip, a $5 WiFi microcontroller (ESP8266), and Home Assistant to make it all happen.

Setting up the light strip

Using a “NeoPixel”-like addressable RGB light strip is pretty well-covered online these days. I got this waterproof one. I plugged in one of my ESP8266’s and loaded it up with some demo code from the FastLED library. I bought an outdoor waterproof enclosure for the 5V power supply and ran outdoor wires in a small trench over to my fence, where I then used one of these outdoor wire coupler things to both protect the connection and store the ESP8266 itself.

Continue reading Smart holiday lights that change colors for the next upcoming holiday

My mom runs Linux

My mom has used Windows computers since the early 1990s. During a visit in October, 2021, I set her up with a Linux desktop computer as her daily driver, and so far she loves it.

My mom’s Linux desktop

My mom is by no means a computer power user, but she does do most of the basics that people do. Email, zoom, chat, read the news, check the weather, print and scan stuff, watch Youtube tutorials, go on Facebook, etc.

I put all the major programs she uses on the bottom bar using the Dash to Panel extension, including:

Continue reading My mom runs Linux

The time my dog’s face swelled up like crazy

My Golden Retriever dog had some weird bumps on her nose after a walk and then her face swelled up like crazy. This is her journey.

Golden retriever with probable bee stings on nose
Bumps on the nose

I sent this to my sister, who is a veterinarian. She said to give the dog some Benadryl and see if it gets better. It didn’t get better. Soon her eyes were swelling up too, and then her whole face!

Continue reading The time my dog’s face swelled up like crazy

Making true random numbers with radioactive decay

I plugged my Geiger counter’s audio cable into my oscilloscope just for kicks the other day and saw ~9V pulses coming out when it occurred to me that I could easily read those into an Arduino or Raspberry Pi or ESP8266 microcontroller and respond to them. As a demo, I made a hardware random number generator (HRNG) out of a esp8266.

The project
Continue reading Making true random numbers with radioactive decay

Live internet bandwidth monitor for living room

I like the concept of measuring flows and so have sensors on my water main and my electric mains. Naturally, I wanted to add a reading of how much bandwidth I’m using and get it displayed in my living room. I already have the following in place:

As it turns out, this is enough to get live internet usage numbers showing with just a few simple scripts.

Continue reading Live internet bandwidth monitor for living room

How high do CO₂ levels get in a covered dog crate?

A year ago I built 2 DIY weather/air quality sensor packs to monitor the ambient conditions inside and outside, including carbon dioxide (CO₂) levels. Meanwhile, I got a COVID-puppy who sleeps in a covered dog crate. I got to wondering what kind of CO₂ levels that crate got up to at night. So I measured it.

Covered dog crate with air quality sensor pack under it. You can see that there are some gaps.

I just slipped the sensors under the cover like this and let it run all night.

Sensor pack as seen from inside dog crate

I graphed the readings from the previous day (outside the dog crate) and then inside the dog crate, as indicated with the arrow. As you can see, CO₂ levels did spike quite a bit but did not get above 2000 ppm. For humans, this would be expected to cause drowsiness and complaints about stale air, but would not be harmful.

The actual CO2 readings outside and inside the dog crate overnight.

So in conclusion, a mostly-covered dog crate isn’t deadly, but may be unconformable. I will be opening the back panel at least. I’m a little worried that if the cover was placed so that there were fewer gaps, it could get much higher.

My GE 12727 Z-Wave Smart Toggle Switch started clicking like a metronome and died after 5 years

Since the product is no longer sold on Amazon, I am left with putting this product review here. I got a bunch of GE smart toggle switches back in 2016 and installed them in various smarthome builds. Then, just yesterday (2021-03-14), I was (ironically?) installing a different smart switch on the same circuit. I turned the breaker on and off a handful of times while installing/testing the new one. And then I heard a clicking. Click… click…click… click… click… like a metronome with 1 second delay. It was the GE 12727 smart toggle from 2016. It was just clicking and clicking and clicking. At first I thought for sure the new switch was interfering with it somehow so I disconnected it and the clicking continued.

The clicking itself

I guess a 5-year life isn’t terrible, and that one of the issues of going all in on home automation is that complexity generally leads to lower reliability. I can handle replacing the ones in my home, temporarily with the OG dumb switches and then with new upgrades (I’ve been using Inovelli switches recently based in Michigan what what!, which have cool extra features). It’s a lot more problematic when something like this happens at my mom’s house and she has to like call an electrician.

Apparently people have found that this can be fixed by changing out a capacitor.

And here’s a video of a similar fix. I’ll try it out and report back.

Paddleboarding to the sea (Lake Union to Puget Sound)

Today I accomplished my big summer goal of paddleboarding from Lake Union in Seattle to the Puget Sound and back. This is my story.

Paddleboards cannot go through the locks

I’ve seen kayaks go through the locks but never paddleboards. Upon looking into it, I was able to confirm that paddleboards are not allowed in the Chittenden (Ballard) locks. So I got out a map to look for ways around the locks. I found a little street end park at 28th Ave NW and figured one of the various public shores to the north would have beach access. I was hoping it would be the first few, but they are on pretty significant bluffs. So I found that the best re-launch spot is a full 0.7 miles down the road, at the NW 57th St. beach.

Portage around the Ballard Locks for paddle boarders. It’s a bit of a hike (0.7 miles), but not too long. You can grab a burger or ice cream along the way for a break 😎

Photo Journey

The wind forecast for today was really calm and that’s what I had been waiting for. This kind of journey would be too hard for me if I had to fight strong winds in one direction or the other. I left around 8:30am.

I like this 90% sunken boat near the Aurora bridge
Oh wow there’s a bush version of some dinosaurs in Fremont!? I had never seen these.
Continue reading Paddleboarding to the sea (Lake Union to Puget Sound)

Weather and air quality monitoring station with ESP8266 and Home Assistant

I’ve always wanted a weather/air quality station. So I built one. Here it is.

The weather/air quality station laid out before connections. Rain sensor not pictured.

I’ll basically detect whatever I can get. Here’s the parts list so far (expected to expand):

  • PIR Motion sensor because maybe I want to know when people walk by the sensor box
  • Si1145 Sunlight sensor for Infrared, Visible, and Ultraviolet light. Conveniently using this Grove library to interface.
  • LIS3DHTR 3-axis accelerometer. I read that this one might have the noise and sensitivity characteristics needed to try to measure some seismic activity (I live in Seattle, after all)! Notably I did not research this very seriously so we will see. Note: this chip has three analog-to-digital inputs but they are not available in the Grove package that I got. Prefer Adafruit)!
  • BME680 gas sensor for Temperature, Humidity, Air Pressure and Volatile Organic Compounds (a rough measure of air quality)
  • HM3301 Laser PM 2.5 Air quality sensor for measuring particulates in the air at sizes PM1, PM2.5, and PM10. This will be really useful to have one outside and one inside during fire season so I can see how dangerous the air is outside and how well my air filters are doing inside.
  • Grove Loudness Sensor for keeping up with traffic noise, fireworks, landscaping, air traffic, etc.
  • The ESP8266 Microcontroller. I absolutely love the ESP8266 for being the brains of things like this. I had used one for my doorbell sensor, my mom’s boiler controller, and various other things. Programming this to read all these sensors is a major part of this project.
  • MH-Z14A NDIR carbon dioxide sensor (up to 5000 ppm). This is more interesting on the indoor unit than the outdoor unit, but fun nonetheless
  • Geiger Counter with USB interface. I had to reverse engineer the protocol coming out of this USB port and was able to do it using pyusb but that’s another post in itself. Unfortunately, I don’t think I can actually read this USB port too easily on the ESP8266 so I might have to slap a Raspberry Pi in here, or some other USB interface. This is a big TBD.
  • (Not pictured, see below or rain sensor post): Infrared rain sensor from Hydreon in MN. This is actually a sweet sensor. It shoots IR light around the dome and when water hits it, refraction of IR changes and the response at the receiver can pick up even a single raindrop. Garsh-darned epic!

As you can maybe see, I got most of these sensors with I2C interfaces from Grove, which has a really nice ecosystem with easily-interconnectable sensors. This is my first experience with the Grove ecosystem, and I love it. Very clean. Note, however, that I2C is not good for off-board sensors (so maybe not a great choice for the sunlight sensor which should be placed higher up).

Continue reading Weather and air quality monitoring station with ESP8266 and Home Assistant

Reading a TUF-2000M Ultrasonic Flow Meter with an Arduino or ESP8266

I had a flood in the garage the other day and realized how great of an investment my flood sensor had been, saving me literally weeks of time and thousands of dollars in repairs. As I considered buying more flood sensors to cover more parts of the house, the thought to put a flow meter on the main water inlet to the house popped into my mind. It’s not quite as clear of a signal as a flood sensor, but if I detect flow when everyone is asleep or when on vacation, I can be sure that something is going wrong and have Home Assistant give me an alert.

I didn’t want to cut into my water main and put a in-line flow meter in, so when I saw a reasonably priced clamp-on ultrasonic flow meter called the TUF-2000M, I had to bite.

The TUF-2000M Ultrasonic Clamp-on Flow meter
Continue reading Reading a TUF-2000M Ultrasonic Flow Meter with an Arduino or ESP8266

Connecting a Hydreon Infrared Rain Sensor to a ESP8266 (or Arduino or Raspberry Pi)

I’ve been working on a home-brew weather station and was looking into rain sensors when I discovered that you can get infrared (IR) rain detectors. A company in Minnesota sells one called the Hydreon RG-11. They shoot pulses of IR light around a plastic dome and monitor them on the other end. When rain hits the dome, the refraction changes and the pulses received are perturbed. This is nice because it’s very simple and has no moving parts. I figured I’d be able to find a way to read it into my weather station.

The RG-11 rain sensor with a NodeMCU for scale. (It’s actually bigger than I thought)
Continue reading Connecting a Hydreon Infrared Rain Sensor to a ESP8266 (or Arduino or Raspberry Pi)

Don’t use push-to-connect (“sharkbite-style”) fittings on high-temperature hydronic heating systems

I had a bad experience with push-to-connect pipe fittings between my hot water heater and my hydronic heating system and wanted to share with you what happened.

On Saturday morning at 4:19 am I was fast asleep. But then I jolted awake as the bedroom lights flashed on and a slightly robotic voice proclaimed:

“FLOOD ALERT! FLOOD ALERT. IN THE GARAGE! FLOOD!”

“Huh!”, I thought. “I wonder why that thing is going off?”

Continue reading Don’t use push-to-connect (“sharkbite-style”) fittings on high-temperature hydronic heating systems