Your leaking thatched hut during the restoration of a pre-Enlightenment state.


Hello, my name is Judas Gutenberg and this is my blaag (pronounced as you would the vomit noise "hyroop-bleuach").


decay & ruin
Biosphere II
dead malls
Irving housing

got that wrong

appropriate tech
Arduino μcontrollers
Backwoods Home
Fractal antenna

fun social media stuff

(nobody does!)

Like my brownhouse:
   seven segment readability
Thursday, September 24 2015
Today's firewood haul was a somewhat-disappointing 104 pounds of somewhat-moist Chestnut Oak east of the Stick Trail from that same place I've been gathering wood of late, which is about a quarter mile from home. At the woodshed, the third tranche is nearly full, meaning the woodshed itself it nearly full as well. But that won't prevent me from adding more tranches; last year I had tranches reaching a foot or more out in front of the woodshed roof's overhang, with the pieces arranged to shed rain and not channel it into the pile.
Occasional visits to the firewood staging area west of the Farm Road to retrieve long (unbucked) pieces of oak compelled me to further articulate the margins of trails with sticks. There's a place somewhere along a low bluff where our neighbor Tommy (and his friends) have a trail that allows them climb up to the vicinity of the staging area from the lower terrace of the Farm Road, but I was having trouble finding it as I looked further and further to the south, articulating a "trail" as I went. But then I discovered that the trail I was articulating was, at best, a little-used wildlife trail. The path down the bluff was back near the staging area and I'd articulated right past it as if it wasn't even there. Finding my mistake, I opened up a gap in the articulation and continued it in that direction so that now there was a fork, with one path fading out along the terrace and the other going down the bluff, ultimately down to the Farm Road.

As you know, even before Ahmed Mohamed somehow got in trouble for taking a digital clock's innards and transplanting them into a pencil case, I've had an idea for building myself a digital clock with a large display to supplant the clock radio presently doing that job in the laboratory. Ideally I'd be able to reprogram this clock at will to make it do interesting things in addition to displaying the time, though displaying the time would be its one (main) job. The question then becomes: what sort of display would it use? I have a number of large seven-segment LED single-digital displays coming on a slow boat from China (there are difficult to obtain and tend to be expensive), but perhaps I could use a series of generic eight by eight LED matrices instead. The advantages to these are that the kind with built-in Max7219 drivers can be had for cheap on eBay, are driven serially (requiring few microcontroller pins), and the matrices are 1.25 inches tall, which is as big as the digits on my "large digit" clock radio. You can actually take an unlimited number of these eight by eight matrices, chain them together, and communicate with all of them using only three of an microcontroller's pins. Contrast with using, say, the Arduino 7-Segment library, which requires seven digital pins for each of the segments and then one pin each for each of the digits. Driving a clock that way uses essentially all the digital pins just to display four clock digits. And on top of that, the Arduino has to do all the work of refreshing the display inside a quickly-repeating loop routine. Of course, there are other ways to do it as well, such as using a BCD-to-7-segment decoder and a three-to-eight-line decoder, but those also require the Arduino to do all the refreshing. That's a lot more work than just wiring up four of those pre-built eight by eight matrices driven by Max7219s.
This evening I managed to do just that, and then ran a sketch containing a built-in alphanumeric font to display a scrolling image on the resulting 8 by 32 pixel display. (In that sketch, be sure to change "PROGMEM prog_uchar CH[]" to "PROGMEM const unsigned char CH[]" for more recent versions of the Arduino IDE.) It works well, but, strangely, the readability isn't as good as a 7-segment display. Evidently our brains have been so conditioned to numbers displayed on 7-segment displays that they require significantly less processing power to read a number in that form than to read one displayed as a proper variable-character-width font on a pixelated grid.
I should mention, by the way, what my discovery was while testing a four-digit LED display removed from a clock much like Ahmed Mohamed's. Instead of the display being organized as a grid of digits and segments, every segment on every digit has a single common cathode, meaning there has to be an individual wire leading from the controller to every segment, with no sharing at all. For a four digit seven segment LED display with a single colon in the middle and two indicators (for alarm and AM/PM), that requires 31 or 32 individual wires. If it had been done instead as a grid of multiple anodes and cathodes, however, the manufacturer could have gotten by with as few as 12 individual wires.

For linking purposes this article's URL is:

previous | next