iCal Interface Fail

iCal Consistent Fail

You’d think that scheduling would be one of the easier problems to work out, but clearly there are these simple little constant fails. Here’s a scheduling event for a conference call I will have in a couple of weeks. The call will likely happen when I’m in Helsinki, but the invite is for some other time zone. But, I can’t seem to assign a time zone to the appointment. That’s a hole, but, wait..there’s more. My computer won’t know what timezone it will be in — I guess it could check Dopplr or something — but it won’t just know based on context, or the orientation of the stars. I’d have to set the clock when I get there, but then I won’t know what time it is back home, which I like to know for staying in touch and not calling home at weird times or just to have some sort of lightweight affinity relationship back home.

But, here’s the real perplexing thing. What the f**k is up with iCal always giving me ridiculous numbers of minutes-prior-to.. alarm selections? I mean..really. I’m not being asshole-y, I actually really want to know why that is there? If it’s a bug, why is it still there after, like..years of iCal?

Anyone?

A New Logic Analyzer and the HMC6352 I2C Compass

25092008_023841

25092008_024008

Two things that’ve been sitting on my bench for a good spell — this HMC6352 magnetic compass with an I2C interface, and the Saleae “Logic” logic analyzer. I figured I could combine the two together, showing how I used the Logic to check out the operation of the HMC6352.

First, the HMC6352 is a pretty easy to use magnetic compass with 0.5 degree accuracy. It’s all wrapped up nicely with a pretty normal I2C interface to a bunch of registers on the device, and command-driven queries for reading the compass heading.

The Saleae “Logic” logic analyzer is pretty sweet for debugging I2C as I’ve mentioned in the past. This one is nice and compact, with a reasonable bunch of logic lines for doing simple analysis. I played with this one for a number of projects over the last few months — mostly I2C projects, which is where most of my interface work is these days. But, the “Logic” will also work with a bunch of stock “analyzers” for RS232 and SPI as well, making it pretty versatile for many situations.

The analyzer is a pretty compact package — 1.6″ square and only .36″ high. So, basically miniature for a logic analyzer. It comes with a 9 conductor umbilical along with E-Z-Hook XKM probes that you can use or not, depending on how you’re hooking up to things.

25092008_024813

25092008_025316

The Logic has a pretty easy-to-use bit of front-end software to handle all the set-up and UI work for the teeny-tiny hardware. It’s a UI that is unlike what you might expect from a bit of Windows-based software. It’s very gooey, using some subtle screen effects and UI elements that, for this OSX guy, are not what I think of when I think of XP. Which is good. It makes using the UI not feel like I’m being forced to drink a Rusty Nail or something for breakfast.

The analyzer samples much quicker than I normally have need for and does so without any problems. I’m usually down in the low range — .2 MHz and 1 M samples is usually plenty for what I’m doing. But, if you need a wider range of samples or a higher sample rate, the analyzer will go all the way up to 24 MHz. Those 9 conductors are 8 data lines plus one ground, so you can analyzer an 8-bit wide bus if you wanted at 24 MHz.

So, I put the Saleae Logic on the HMC6352 circuit to give it a shot. First, the HMC6352 set-up.

Although the HMC6352 has a wide voltage range, I was playing around with a level shifter circuit that was already hooked up to an Arduino on the bench, so I went ahead and just kept that circuit as is. So, the basic set-up is my Arduino I2C lines (SDA and SCL) going through a bi-directional level shifter shifts 3.3V 5V, and then to the HMC6352 SDA and SCL lines. I use yellow wire for SCL and blue wire for SDA.

25092008_024251

25092008_024344

I ended up using the Saleae Logic to dig a bit deeper into the communication between my microcontroller (an Atmega168 sitting on an Arduino) and the HMC6352 as a way to test out the logic analyzer.

First I wanted to just probe the I2C communication. The basic transaction my Arduino code was doing was to send an “A” to the HMC6352. According to the specification sheet, writing an “A” to the device causes it to return two bytes of data — the high-order and low-order bytes of a 16 bit value indicating the compass’ heading. Easy enough. Here’s the Arduino doing just that. First, it sets up the write to the I2C device at address 0x21. Then it writes an “A” which, in the ASCII table, is the value 0x41. (N.B. The spec sheet says the HMC6352 is at address 0x42 but — and don’t ask me why — sometimes the address specified has to be right-shifted one bit in order to “take”. I mean I sort of know why, but I don’t know why this is the case sometimes — a r/w bit thing or something. Too much to bother with, but a good way to make good use of a logic analyzer when you’re stuck wondering why your device doesn’t seem to be listening to you. I learned this the long way and only had a fancy DSO to try and debug it.)

25092008_025019

25092008_025136

25092008_025615

There it is in the top picture. A simple write to the device at address 0x21 with all the ACKs, meaning whatever is out there, heard us and is acknowledging receipt of the write. And, it looks like we get two bytes of data back — a 0x03 and a 0x64. The first byte will be the high-order byte and the second byte is the low-order byte. 0x0364 is 868, which we normalize by dividing by 10, to get 86.8 degrees. Done. I’m pretty sure that’s that. Finally, the measurement features are pretty cool — useful for confirming clock speeds or verifying a bit train. There’s a good use of a simple, pretty inexpensive ($150) logic analyzer that’ll certainly save you $150 worth of your time many times over. Plus, the small size and convenience of USB make it easy enough to fit on your bench and store away or travel around with when it’s not in use. My only quibble is that it’s only for Windows, but that’s a minor one. I don’t really play too hard in the OS religious wars. I run whatever makes my life easier at whatever moment. So, a $200-ish Windows chassis in the laboratory that just runs a few apps like some CAD software and things like my Propeller coding environment, .NET development, software for test equipment like this and AVR Studio 4 — it just helps me get things done rather than being adamantine about which OS religion I’ll adhere to and, then, not getting anything done except spending time porting things from one OS to another or complaining about how much a Windows license costs or whatever.

Wow. Okay. Off my high horse. Check this logic analyzer out. I can recommend it after using it for a few months.

#include

// http://wiring.org.co/reference/libraries/Wire/index.html
// On the Arduino board, Analog In 4 is SDA, Analog In 5 is SCL
// The Wire class handles the TWI transactions, abstracting the nitty-gritty to make
// prototyping easy.
// This sketch has a HMC6352 attached to the I2C bus, through a bi-directional
// level-shifter circuit.
int address = 0x42 >> 1;
 int reading;
void setup()
{

  Serial.begin(9600);

  CLKPR = (1<<clkpce);
  CLKPR = 0;

  // initialize the TWI / I2C Bus
  Wire.begin(); // join i2c bus (address optional for master)

}

void loop() {

  Wire.beginTransmission(address);
  Wire.send('A');
  Wire.endTransmission();
  //delay(10);
  Wire.requestFrom(address, 2);

   if(2 <= Wire.available())    // if two bytes were received
  {
    reading = Wire.receive();  // receive high byte (overwrites previous reading)
    reading = reading << 8;    // shift high byte to be high 8 bits
    reading += Wire.receive(); // receive low byte as lower 8 bits
    reading /= 10;
    Serial.println(reading);   // print the reading
  }

//  delay(50);
}

Continue reading A New Logic Analyzer and the HMC6352 I2C Compass

Books for the Épistémè of Fail

Practicalities

What do you read when reality turns itself on its head? The financial seers in the form of the genius ex-mathematics and high-energy physics Ph.D.s — the “Quants” as they’re known on The Street — failed at their assigned task of turning the many-body problem and squirrely statistics into a clear course into the up-and-to-the-right linear, inevitable accumulation of wealth future. So, now what?

Back to basics. How has “reality” — the way the world works — been measured historically? Where did all this reliance on numbers (instead of cat entrails, tea leaves, a healthy dose of psilocybian or a good-old crystal ball) come from and why do we believe it works? For that, I’ll be turning to “The Measure of Reality: Quantification in Western Europe, 1250-1600” by Alfred W. Crosby. I was actually suggested this book during Manuel Lima’s presentation at SHiFT 2008, where he discussed Visual Complexity — the site and the motivations behind data visualization. (More about this in a future post.)

Why an historical treatment of quantification? Because I need to know more about this shift from qualitative ways of knowing the world. Quantification, perhaps more than most other ways of knowing, undergirds so much of the various assemblages and apparatuses — business, bureaucracy, technoscience, etc — that shape the worlds around us. Knowing its legacy throughout time can’t hurt, especially when thinking about small, subtle new ways of making the world.

And just to continue this general theme of “back to basics”, I thought it couldn’t hurt to have a copy of “The American Practical Navigator” by Nathaniel Bowditch tucked away in my emergency “go bag” (along with running shoes, a few power bars, keys to the rendezvous beach house south of LA, two liters of water, and a couple grand in cash.) Way finding, like reality, needs a good re-think.

If it wasn’t more gratuitous than pragmatic, I’d add Zizek’s “The Sublime Object of Ideology” so long as we’re trying to figure out why we do what we do, even if we know it’s the stupidest thing in the world.
Continue reading Books for the Épistémè of Fail

Paper Maps

36 hours in Berlin right SHiFT 2008 and there’s only time for one or two things to do, really. Despite geek sensibilities, it turns out a paper map serves better than a digital one. This janky one from the hotel, flimsy and easily smudged and tattered, was actually spot-on perfect. Every street we needed to find, and U Bahn was easily navigated to. (Although, not by virtue of my lousy sense of direction.) Using a paper map makes me think — when will the still-Jurassic digital maps at lease orient themselves according to compass direction?

(I will add my friend Nicolas Nova’s map he also received while in Berlin just after I left, while we’re on the topic of paper and maps..I’m sure he wouldn’t mind me sharing this fantastic specimen.)

19102008_153730

Tourist highlight of the 36 hours was the Stassi Museum, my curiosity peeked especially after viewing “The Lives of Others”. The history in here is fascinating, and in German. I was fortunate to have a native German speaker with me, and one who lived through this period as well. Between the drama in the exhibitions and the real-life experiences, it was well worth the time. (Curiously the museum is not well indicated in the surrounding neighborhoods. We had to ask a couple of well-liquored gents knocking back a few in a box-bar about bit enough to fit a keg and a television in.)

Here’s Markus Meckel’s desk where I’m sure zillions of horrific deeds were executed. Check out the accoutrements of tyranny here — an enormous safe (you can see the door), a shredder (on the left of the chair), a chair, a switchboard phone thing, phone and desk. Despite the tyranical history, I was awestruck by the furniture. It was so evocative of the period in a way that brought the stillness to life. You have to check out the other photos — there’s spy gear, more room furnishings (including the side room with a bed, I guess for late nights or trysts or something) and some amazing swivel chairs.

More photos from the museum exhibits are in my Berlin Flickr set.
Continue reading Paper Maps

Manhole Compass

A functionally-decorative manhole cover that emulates the features of a compass rose for those who care not to navigate by dead-reckoning, rather feature or landmark-reckoning. I know these are all over the place, the image of it summoned up a recent conversation about how much built-in navigation cities should provide. The pro-argument being that it helps tourists to get around a city when they don’t have the vernacular, experienced wayfinding abilities of a native or someone who has had time to acclimate and grow accustom to the nuances of what is where. The con-argument is that these sorts of waypoints and navigation aids makes cities over mapped, removing the unexpected encounter that can only happen when you’re lost, or eroding the experience and feeling of becoming “native” and used to a city’s ways on ones own.

GPS Experiment

I can see something in each perspective, although I would generally prefer to leave a little more to chance when navigating a city. This photo is of me in Tokyo, 2005 after I managed to get a Tokyo map uploaded to my Garmin GPS. I had absolutely 0% navi experience in Tokyo and was pretty sure I’d get completely lost, which I did on an occasion or two, but was able to rely on the GPS to get me back on track. (There were no navigation features, just top-down POV and compass.) I’m certain it changed the experience, but there was not a whole lot left to rely upon besides my own wits and my trusty Tokyo City Bilingual Atlas.

Continue reading Manhole Compass

Spime Wine

Okay, I know I’m probably the last one on the planet to spot a bottle of barcoded wine, but, like..I spotted whole cases. Indulge me and pretend this is, whatever..years ago when this first started happening. Maybe I need to get my wine-on more often or something. I was overjoyed with the observation. (Everyone around me just kind of rolled their eyes and patted me on the back in mock congratulations. I insisted the moment was special.)
Continue reading Spime Wine

Icon Mania

Look at this thing! Seen at the lobby of the Arts Hotel in Lisbon, this beautiful matrix of familiar and also baffling icons indicating the services or rules or functions of the various parts of the hotel assemblage. There are some I understand — but the one with the svelte Martini glass hovering over a sleeping person? What’s that, anyway? You can dream of getting a load on? You can get drunk and pass out comfortably on our exclusive bed linens? And the two people sitting opposite each other with a floating box above them? And — what!? — an Internet Explorer icon? Like..um..I guess that’s for the business center or something. Any ideas?
Continue reading Icon Mania

Precious Mobility

More observations of preciousness with our digital devices. This cover came with the laptop and was used during shipping but the owner decided to keep it to prevent the display from becoming damaged or smudged.

Why do I blog this? Is there an intersection between design for mobility that makes this unnecessary? So that we can have our devices be as significant and important as a wallet, say, but okay to slip from our hands and drop on the floor? Does the technology change by becoming more rugged? Or does the interaction change so that we’re not using large, precious, susceptible elements like this sort of display? Is there a different kind of connected, mobile, networked device that is computational but allows us to have our bits of connected flow, sharing and composition without large mechanical keyboards and delicate big, bright, heavy, power-hungry displays?

Continue reading Precious Mobility

Zip In, Reach Over, Zip Out

Seen just south of San Jose, California, another curious pragmatic interface that allows me to use my speedy, trusty debit card to complete a transaction without cash, but with a little dose of poor interaction design. After swiping my card, for security purposes (presumably) I must enter my postal zip code. So I can “Zip In, Zip Out.” This is all good stuff. If I were a thief who was a bit of a bungler, I might have swiped someone’s card and attempt to use it, but be stymied if I didn’t have the foresight to get their zip code, such as would likely be found on their drivers license, which is probably also in the wallet I just stole, or found, or whatever. So, I may have a consequential hurdle to charging up a $50 or $60 tank of gas. But the bigger hurdle might be searching for the obvious place to enter the zip code which is, of course, on the panel over around the little articulation in the otherwise flat-front of the pump. Now, this is nit-picky. Anyone would figure this out, that the entry point for numbers and such all is over on the number pad. But, I mean..why is it there and not as any considered design would place it — below or at least beside the display? And why, in a “Zip In, Zip Out” interaction should a “wait just a moment..” wait..wait..wait..clock appear at all? Even if it does take time to transact and validate, some other sort of graphic idiom that suggests zippiness seems like it would be more in keeping with the principle of fast service here.

Sigh.

Why do I blog this? Another in the continuing stream of design observations of failures, successes and imperfections to be considered.
Continue reading Zip In, Reach Over, Zip Out

Flat Tires and Thoughtless Acts

Do flat tires make the unlocked bicycle in the top photo less likely to be stolen? Does the fact that the owner of the bicycle in the bottom photo locked their bike make it more likely to be stripped nearly bare for its handlebars, rear tire and transmission, seat, brake cables, brake clampy-things-that-clamp-the-front-rims-to-stop-the-bike? And then, having created a rough-shod atmosphere of general decline and environment of come-what-may, does the bicycle locking post become more suited as an improvised, “thoughtless acts” style trash recepticle, seeing as it has not fulfilled its job of deterring theft and mitigating destruction?

Just asking.
Continue reading Flat Tires and Thoughtless Acts