|
|
decaf unawares Tuesday, January 1 2013
I hadn't actually drunk very much alcohol last night, so there was no New Years hangover for me today, at least not any beyond the kind a gentleman gets from staying up until 2am when that gentleman is in his mid-40s.
Because it was a holiday, Gretchen and I celebrated by making a french press of coffee, which we enjoyed in front of a roaring fire in the woodstove. It was only after we'd drunk it all that Gretchen noticed that I'd made us a pot of decaf. It tells you something about either me or the coffee that I hadn't even noticed. If it's the coffee that should take credit, that credit belongs to Catskill Mountain Coffee (which, after unexpectedly disappearing from their storefront on Route 28 at Onteora Lake, has resurfaced as a coffee wholesaler for local grocery stores).
I spent most of the day getting the Serial Slave network operating on my Solar Controller. The only problem with the way I'd left things yesterday was that raw (non-ASCII) bytes of data sent down an Arduino serial cable cannot always be faithfully interpreted when they are received. I don't know if this is because the data is sent in seven-bit bytes (it might be) or if it is because certain bytes (such as zero) have significance to the protocol beyond their value as data. In any case, I couldn't rely on the serial cable to carry bytes of data. My solution was to send only numeric characters (ASCII 48 through 57) and spaces (ASCII 32) and use that information to transmit the digitized readings from the various analog inputs of the fuel-level-testing Serial Slave Arduino. Once these values were read by the Menu Slave, they could be reassembled into raw bytes and transmitted over the I2C interface (which is perfectly happy transmitting any eight bit character) to the Arduino Master.
Unlike Arduino's problematic implementation of I2C, I was sure to make the handshaking between the Menu Slave and the Serial Slave completely fault-tolerant. If no data has been received from the Serial Slave, requests are attempted until either data is received or 600 milliseconds have elapsed, and then the exchange is deemed either successful or abandoned. After a specific interrogation of the Serial Slave, it has to respond within 100 milliseconds or that interrogation is deemed a failure and the Menu Slave goes on with whatever it would otherwise be doing.
This afternoon temperatures seemed to be taking a sharp turn for the colder, so I drained the brownhouse's plumbing system (which is easy to do; it's gravity-fed via siphon, with a stop cock at the highest point). While it's important to drain the copper and brass parts of the plumbing system, I don't drain either the cistern or the lower sink, allowing the water in those HDPE reservoirs to freeze and thaw and, in so doing, moderate temperatures in the brownhouse cabin.
For linking purposes this article's URL is: http://asecular.com/blog.php?130101 feedback previous | next |