The Logger Mini doesn't have any I/O pins other than the ISP programming header. After the AVR device is programmed, 4 of those pins could be used for SPI communication with an external device, or as general purpose I/Os with some limitations. (The other two pins are power and ground.) The ATmega hardware I2C pins aren't connected to any external pins, but you might be able to bit-bang I2C through software on those 4 pins if you really need I2C. You could theoretically bit-bang any other protocol that needs 4 or fewer wires too: serial, maybe even USB. Check out V-USB for an open source pure-software USB implementation for AVRs.
Steve
EBo --
If lots of people feel strongly about having some kind of built-in download hardware instead of an add-on board, then I'd prefer to see it added to the Logger Classic rather than the Mini. The Classic has more physical space where extra hardware could be added, and logically it's the "big brother" of the two Logger versions. In contrast, the Mini was designed from the ground up to be as small and light as possible, geared towards a hiker/sportsman who wants to review data in the field but probably not do any fancy post-analysis. My other selfish reason for keeping the Mini is that I just invested in a run of more Mini PCBs, which would be obsoleted if the group moves to a different Mini design.
One other thought: you could get a poor-man's download functionality from the existing design, by using AVRDUDE or AVR Studio to read the contents of EEPROM memory with an AVR programmer, and then using a custom PC program to decode the data.
Lastly, it looks like I was wrong when I said 4 ISP pins could be used as general purpose I/Os. One of those pins is RESET, and if you turn the RESET pin into a GPIO, then the device can no longer be reset via the ISP, which means it can't be reprogrammed as-is. There are ways around this by using extra hardware to power-cycle the AVR in response to the ISP's reset signal, but the Logger hardware wasn't designed for that. So in practice you only have 3 GPIOs to work with from the ISP header: SPI clock, SPI data in, SPI data out. Is that enough to create a useful add-on board?
When I posted my questions/comments it was in a rather scattergun
approach instead of a principled discussion. I think that maybe we need
to take a step back and come up with a grand vision -- which my read of
Steve's reply is leaning towards. His addon/daughter board approach is
very reminiscent of Arduino. There are many good reasons to do this,
and maybe some reasons not to -- I'll have to think about the
pros/cons...
One of the reasons I was originally thinking of going with I2C and/or
1-wire is the devices can be chained together and addressed on a single
bus. The SPI devices I had looked at in the past did not allow device
addressing. That might have been those particular devices, so I will
have to look into this further.
Like Steve I have an end application in mind that drives many of my
wants/needs. It is these desires which will drive some of the design
decisions I'll advocate for, and others I will not care for either way.
I'll outline some of the issues here for background and then explain why
I really liked Steve's two loggers as a starting point.
I do applied restoration ecology as an avocation, and have for decades.
I have some ongoing research collaborations with some restoration
ecologists. There is a series of classic experiments in seed-bank and
germination studies that I would like to replicate, but they are either
VERY time consuming to do by hand or EXPENSIVE to try to automate. The
functionality are simple -- accurately measure the water level, and
control a drain and/or pump. Drains and pumps can easily be controlled
via an addressable switch. As for the level measurements, the historic
studies made repeated daily measures at ~mm resolution and relative
depth. Automating the temporal accuracy is trivial with modern embedded
controllers, so I'll skip that. Measuring water dept over something
like a meter with mm precision (we will have to evaluate its accuracy
later) is more than a little tricky. The way most people want to do
level is with a ping sensor. This is good to ~1" precision *unless* you
correct for temperature, pressure AND humidity. With these correction
you can fine tune the time of flight and get it down to ~0.1mm
theoretical resolution given he available components and a 0.25mm
practical limit. There are some esoteric ways to assimilate the time of
flight to figure out the humidity, but if I am not mistaken those
techniques are all patented...
So now comes Steve's data loggers...when I looked at building an open
hardware controller which allowed me to hook up some I/O switches (for
pump, drain, heater/cooler/freezer, lights) and have the what I needed
for correcting the TOF, I was looking at well over $50 for the
components before looking at making/designing the board. The pressure
sensor at that time was nearly $20 itself...
For my own needs I see the device being operated in two modes: 1) as a
multi-sensor that I can hook up to a computer, and 2) as a programmable
standalone controller/logger. So for me a USB interface solved the
problem for downloading the data and providing me multi sensor interface
for a laptop. So, breaking out some basic GPIO's or a standard bus or
two is about all I was really looking for.
Anyway, that is where I was going with my dreams. I think Steve's
Classic would be a fine place to start. I'll have to read through the
schematic and see how well it would work out.
Well, that was the long winded contextual brain dump. I'm hoping that
what I want to do will be synergistic with the group. Either way,
Steves open source loggers are WAY cool!
EBo --