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").



links

decay & ruin
Biosphere II
Chernobyl
dead malls
Detroit
Irving housing

got that wrong
Paleofuture.com

appropriate tech
Arduino μcontrollers
Backwoods Home
Fractal antenna

fun social media stuff


Like asecular.com
(nobody does!)

Like my brownhouse:
   time for a solar controller upgrade
Friday, February 11 2011
One project I've been kicking down the road for awhile is an upgrade to the Arduino-based solar controller. As it exists now, it's fairly advanced. I can sit at my computer and issue commands to it across a serial link to interrogate it about its status, its record highs and lows, and to change important variables that affect its behavior. I can also completely reprogram it with new firmware introducing whatever new features or algorithmic improvements I want. That's all well and good, but something I've wanted for a long time is real time awareness. I've simulated such awareness algorithmically, even storing the latest of a Mayan-style "long count" in its non-volatile EEPROM. But such counts become inaccurate with every reset and power outage. If I'm logging data (and I haven't been, though I could be), there's no way to know for sure when an item of data was collected. And that's essential. So an improvement for the solar controller would introduce such things as a battery-backed real-time clock, additional non-volatile storage for logging purposes, and perhaps expansion of the number of analog-to-digital inputs so I could monitor more points of thermal (or other analog) interest. I'd been steadily expanding the features of the existing Arduino-based controller, but eventually I ran into a serious roadblock: the need for an I2C interface to support expansion chips. I2C is a serial expansion bus similar to USB but slower and hubless. It turns out that the AVR chips used in Arduinos have built-in hardware support for I2C, but to use it, you have to give up to of the analog inputs. But I couldn't just give up two analog inputs with my existing system; I had to replace them with something, perhaps something out on the I2C bus. But none of that would be easy, and the existing system is so hacked and re-hacked that it was unlikely to survive the modifications necessary. I needed to start from scratch with new hardware.
Today I started building that new hardware, starting with an Olimex 28 Pin AVR Development board. These accept 28 pin Atmega chips programmed with the Arduino bootloader and then behave like serial-attached Arduionos, though with plenty of prototyping space though no support for Arduino shields. Figuring I'd need more space than the development board could supply, I added a big four by eight inch breadboard, unifying the two using small pieces of wood and tiny bolts.
The old controller had most of its sensor and control wires attached directly to the board, but for the new controller, I'd decided the entire thing would be easily disconnectable so I could remove it as a unit and take it away to work on it. (There are few places less pleasant to prototype digital electronics than the floor of a boiler room crammed between hard, dirty, noisy surfaces.) So today I used a heat gun to desolder a floppy cable connector from an old computer motherboard so I could use it in the new controller for attaching a 25 pin D-shell connector, which will contain all the sensor and action signals for the system. It was a hard slog initially, mostly because I was trying to solder wires I was passing through the holes of a PC board. It seems I'm much better at soldering wires between the pads of PC board without passing wires through holes at all.


For linking purposes this article's URL is:
http://asecular.com/blog.php?110211

feedback
previous | next