WardCunningham's blog

Federated Wiki on Raspberry Pi to Bridge WiFi to PSK-31

Ward Cunningham, Russell Senior and David Turnbull bring their respective expertice to this 21st Centurary Amateur Radio Project. Federated Wiki on Raspberry Pi provides content management that would be useful for health and welfare radio traffic after a disaster, or, for live-blogging the MicroHAMS Digital Conference next month.

Successful Integration

Two Years of Pretty Good Service

I engaged Pingdom to monitor my home sensor network several years ago when I started to depend on it and found it undependable. The recent upgrades at Pingdom had me looking through downtime stats wherein I found my service to myself to be pretty good:


The persistent downtimes of 2010 were replaced by occasional outages when I converted from Arduino with an Ethernet Shield to Teensy running Txtzyme from an old laptop. Recent failures are all attributed to power failures outlasting my aging laptop battery or Comcast changing my IP address. I'm especially pleased that my foam core and spring clip infrastructure has been serving me well.

SensorServer Records Eclipse

I've recorded today's solar eclipse with a CdS photocell tapped to my shop window. The voltage divider feeding Teensy's ADC favors dim light so I'm actually surprised to have seen the event. Clouds have got to be pretty dark to show up. The eclipse was darker.


The data shows totality at 6:15 pm. I sample at five minute intervals.

Kudos to Don Park who suggested I take a look at this. I'm wishing I'd tuned the sensor up to get more and better data. When's the next eclipse?

Favorite Visualization

I have a favorite visualization that I apply to conversations. Each participant is represented by a string. Each character of the string is one hour. Activity in that hour creates a blip. Inactivity leaves dots (or comma at midnight). Here are five days of Dorkbot project blabber visualized. I share my methods in the remainder of this post.

I prepared this chart in two steps: first get the data in a file and then plot it. Let's work backwards. Here is the plot routine:

Diagnosis in a Complex World

After two years of service my outdoor air temperature sensor blinked out last week. Moisture was the culprit as shown here:


Various readouts in my SensorServer system lead me straight to the problem through a half-dozen layers of software. How cool is that?

Honestly, I'm more interested in how we know and trust complex measurements than knowing the temperature outside.

My SensorServer software worked so well that I prepared a Keynote presentation explaining each diagnostic step along the way.

ByteBeat in the Background

Bytebeats radically reduce the already austere chiptune music to one-line formulas. When wrapped with a dozen more characters of C code these formulas will feed your sound card endlessly. Musicians speak of discovering bytebeats, not composing them. I've used a bytebeat dubbed Crowd as the background score for a one-day film shot yesterday. Note that I include the entire discovery in the film's credits (disrespectfully broken into two lines.)


Kragen has written a good summary of the short history of bytebeat with links to catalogs, videos, analysis and especially interactive tools for exploring them.

Wikiduino Deployed

Sunday has been a hot day in Portland. I know for a fact that it is even hotter in the community garden shed where Russell and I installed Wikiduino today.


I've described our good luck creating conectivity in a previous post. Now I'm excited to have real data wrapped in wiki pages streaming from a version 1.0 Arduino program. I upgraded to the 1.0 beta 3 version to use Paul Stoffregen's implementation of Strings. Thanks Paul.

Remote Sensing with Federated Wiki

A good architectural test for any protocol is to squeeze it into an under powered computer like an Arduino. For this and a few more reasons I've latched on to a project to publish field data from the Nike Community Garden as part of my work on the "Smallest Federated Wiki" (project videos).

Russell Senior helped by rummaging together enough radio gear to provide WiFi. Here's his install on the roof of a friendly neighbor with the garden in the distance.


Coding the server proved extra challenging due to limited literal text space. I solved that by including several custom DSL's, one for HTML and another for JSON. With them I can assemble full pages from short text fragments that are reused in numerous places (See code). Here is the loop that reports discovered one-wire thermometers:

Smallest Federated Wiki

A month or so I suggested what I thought would be a one-day project. I asked my colleagues at the Indie Web Camp to create the Smallest Federated Wiki. The idea was that wiki would be simpler if I kept my pages and you kept yours. Somehow we'd share pages through some sort of "refactoring" browser. Well, the prototype is working and showing well. I invite you to watch the 2-4 minute screencasts I've posted on my new Wiki Channel on vimeo. Here is the introduction.

story-and-journal-for-federation from Ward Cunningham on Vimeo.

Air Motion Detector

While neatening up my shop I got to thinking how nice it is to just measure something on a whim. Next thing you know I'm logging the temperature of my soldering iron. It's Currie controlled. But how fast and regular are it's cycles? I didn't know.


Fifteen minutes later I'm looking at the waveforms in a spreadsheet chart that just happened to have three lines, one for each of the DS18B20s that I happened to have in the setup. Each response was noticeably different even with them that close together. I also saw large variations that might be due to air movements. Hmm. Let's improve the apparatus.


Now this thing responds. I can blow gently on it and see a response within seconds. Gently fanning it with a file folder from a foot away works too. So then I leave the room to see what the air does while I'm gone.

Syndicate content