cosmic realms

a coder blog

Solitaire over Gopher

In the 1990's a text based system called "Gopher" competed against the World Wide Web.

The web won.

However Gopher is still around today and now you can play Solitaire over Gopher!

The address is: gopher://


  • 60 different Solitaire games
  • 5 different background patterns
  • Keeps track of Score and Moves
  • Extended ASCII art graphics
  • Game Rules

How To Play

First you need a Gopher client. I recommend these two:

Then simply point your Gopher client to: gopher://


Well, it was fun to code. That's the only reason :)

WiFi Temperature Sensors

I wanted to know the temperature and humidty of several different rooms and compare that to outside readings.


  • Accurate Temperature and Humidty readings
  • Communicate over WiFi network
  • Rechargable LiPo battery should last 6+ months on one charge
  • Easy to charge each sensor unit without removing battery
  • Central eInk/ePaper display of all temperatures
  • Wall mounted case that detaches easily

Component lists, links and code located at the bottom of this post.

Let's start out with pictures:

Initial breadboard layout

Sensor Board: Wires/Resistors Only

Final Sensor

All Sensors Charging

Indoors 3D Printed Case

Sensor Case With Sensor

Sensor Case With Lid

Sensor Case in Translucent Red

Central eInk/ePaper Display

Outside 3D Printed Case

Outside 3D Printed Case Closed

I ended up choosing the following components:

The temp sensor I chose was vast overkill. If I had to do the project over again, I would choose the Adafruit DHT22 Temp+Humidity Sensor instead as it is far cheaper but still pretty accurate

All sensors send a temp+humidity+battery level every 10 minutes over wifi to a linux server running at home.

The first sensor I put outside died within a few hours, probably due to it being 90% humidity and raining. So I decided to get some RTV Silicone sealant and seal up the other outside one. Haven't had an issue with it since sealing.

The code for the microcontroller, server and display updater and display SVG are located here on github.

It also turns out that the ESP8266 microcontroller has an internal method available to read battery voltage (ADC_MODE(ADC_VCC); ESP.getVcc();) so I actually don't need those resistors anymore. NOTE: I've been informed that using this method to measure battery life isn't reliable. The resistor method I used seems to be the best approach.

The inside case I designed I have made available here on thingiverse. I made it with OpenSCAD which is the perfect tool for programmers who need to 3D model something.

The outside case I used is the MySensors Mini Weather Station on thingiverse.

These two links were invaluable for learning how to root the kobo and use it as the display device:

Resistor Test Tube Rack

I needed a way to store resistors for my electronics work.


  • Space for 75+ different resistor values
  • Space for 375+ total resistors
  • Quick and easy access
  • Out of the way
  • Cool looking

In researching a solution I found some folks who used test tubes. I loved the idea, but 75+ test tubes would take a lot of desk space.

So I decided I would design a custom rack solution to mount on the wall.


Final Results

(Click on the images for the full size versions)