Moore's ramp with microcontrollers
Thursday, March 12 2009
I see teenagers with their cell phones and iPods, taking these electronic marvels for granted in the same way my taking for granted automotive transport might have made me seem an unreflective brat to the old codgers (all of them now dead) who grew up with horses and steam-powered trains. I wasn't there to see the horse-drawn buggy replaced by the car, but I was there for most of the stages of computers' assimilation of the human infoscape.
The first computer I bought had four thousand bytes of memory and cost about eighty dollars. I'd starved myself for weeks, saving less than a dollar a day of lunch money so I could buy that VIC-20. And after I bought it, I had no monitor. For a couple weeks there I had to satisfy myself programming it blind, relying on sound effects as the only indication of programming success. The year was 1983, and I was delighted by the possibilities that computers seemed to open up. Four thousand bytes didn't seem like a serious restriction at the time; the only thing I had to compare it to was the memory of programmable calculators, which in those days was only about fifty "steps."
The ramp of computational advancement was still in the gentle phase of its ascent in those days. Two years later I was able to buy a Commodore 128 computer with thirty two times the memory, but it also cost six times as much. Five years after my Commodore 128 purchase, I got my next computer, a Macintosh SE. It had four times the memory of a Commodore 128, but had I bought it, it would have cost me at least $2000, more than six times as much. Moore's Law hadn't done me any favors during the late 1980s, and since I was still young and poor, that Macintosh SE had to come my way outside the confines of the law.
By the mid-90s, I'd internalized this lesson of technological stagnation, and when I next found myself surrounded by contemporary computers, their specifications seemed wildly futuristic. I had my night shift gig at a Charlottesville internet provider (remember mom and pop internet providers?) and was being entrusted with a room full of computers having 32 and even 64 megabytes of memory and hard drives with capacities as high as nine gigabytes. That was the beginning of what will probably always be the steepest phase of computational advancement, a phase that seems to have ended a couple years ago.
Modern computers have become so complicated, vital, and microscopic in detail that they have lost their appeal as environments for experimentation and customization, which was one of my major forms of creativity back in the mid-1980s. Here's a diagram from a diary I kept in 1985:
Now, though, I'm getting to relive the excitement of those old days by experimenting with microcontrollers, specifically the Arduino. As regular readers will know, I have an Arduino controlling the behavior of the system that pumps water through the hydronic solar panels on the roof. This summer I pimped-out my solar controller software to the point where it had something of a command-line interface, allowing me to change behavior parameters on the fly and to even check information it stores in a log. The advancement of this software stopped abruptly when I arrived at the Arduino's 16 kilobyte Flash-memory limit (four times the memory of my original VIC-20). But this 16 kilobytes was actually twice the storage of the first model of Arduino I'd bought. In only a year, the 20 pin microcontroller built by Atmel had been replaced by a drop-in functional equivalent with twice the memory.
2009 marks my third year of using the Arduino environment, and right on Moore's schedule, Atmel has released the Atmega328, a drop-in replacement for the 16 kilobyte Atmega168 and the 8 kilobyte Atmega8. The Atmega328 comes with 32 kilobytes of flash memory as well as double the random-access memory and double the EEPROM (where I store temperature logs).
The Atmega328 is new enough that it hasn't yet been perfectly-integrated into the Arduino environment. Today I struggled for hours trying to get an Atmega328 to work, trying different bootloaders, installations of the Arduino IDE, and versions of AVRdude. I did manage to get it to work, though the process of changing its software is still unreliable.
The other day a young woman ran into Gretchen's car on US 209 at the intersection with 213 just south of Stone Ridge. Nobody was injured and all the witnesses (there were many) agreed that the fault lay with the young woman. The damage to our red (reliable) Honda Civic was limited to a square foot of missing front bumper, giving us the temporary feature of being able to check the level of the car's windshield wiper fluid. The young woman convinced Gretchen not to file an insurance claim and also suggested an auto body repair place down in Accord. Obviously she also agreed to pay for the repairs. This all seemed a little shady to me, particularly when the young woman called Gretchen a week or so ago and said she hadn't yet raised the necessary funds. (Gretchen, who had been very nice about everything up until then, pointed out that this wasn't her problem.) But today Gretchen picked up the car at the auto body place and it had a shiny brand new bumper on the front. The whole thing had been replaced, eliminating a series of vexing cracks that had been on its underside for years.
For linking purposes this article's URL is:feedback
previous | next