I just find that it's dishonest from Adafruit's part to sell something on a claim that is plain wrong.It's either RTC and 4 analogue or no RTC and 6 analogue if you are lucky.
Huh?
1) I don't see any such claim for the "data logger shield." In fact, the board has only an SD socket and an RTC - the A2D converter is part of the Arduino board itself. Part of the AVR chip itself, actually.
2) It is the Atmega328 chip on the arduino Uno (and similar) that shares pins between the hardware I2C interface and the A2D interface, and there's nothing an external shield or any amount of trace cutting can do to fix that. If you want to use the I2C interface on a m328, you lose 2 A2D pins. Period. Chip limitation.
3) If you need 6 A2D inputs AND I2C, you have a couple options:
- Use a different chip. Not all AVR chips share the I2C pins and A2D pins, and some have more than 6 A2D to start with so it might not be a problem. The reason that the R3 design has two new I2C pins is to accommodate bigger chips; just because the Uno has the SCL/SDA pins connected to A4/A5 (because of the chip limitation) doesn't mean that that should be the case for an Arduino zero (in fact, I'm pretty sure it's not.)
- Use software I2C instead of the built-in I2C hardware. This will requiring trace cuts and weird jumpers on the shield, since it is set up to interface specifically to an Uno.
- (It's a bit unfortunate that the Uno SMD didn't remap the analog signals. It COULD have then used the I2C pins for I2C and STILL had 6 analog inputs. But it would have made it a separate board type, eliminated the ability to use the analog pins for digital IO, and introduced other complications.)
- (an ATmega328pb is another option. It adds a second I2C controller. the Atmel Amega328pb Xplained Mini eval board is cheap and somewhat arduino compatible, though it would have the same problems as (3))
By the way, this sort of "pin sharing" is VERY COMMON on microcontroller chips. If you read the long list of features a particular chip is supposed to be able to provide, you need to be aware that you can ALMOST NEVER implement all of those features at the same time!
I'm just cranky because I made the error of "designing by datasheet" and what was meant to happen, happened.
But in all honesty, the UNO is marketed at newbs (like me a few months back) and they should be very clear of the "outathebox" limitations.
It's like having a 6 speed gear box in your car but you need to take it out and machine the gears to make it so. It's a 4 speed.
That being said, this has pissed me off and I will find a way to make this work AND document it.
1) It's sold as such on their web site.
2) Nothing wrong with sharing pins, just document the limitations on shifting them on your board.
If I could simply "pull down" or "interrupt" the I2C while I read a4 a5, I would be happy.
3) Arduino MICRO is the simplest route, I choose not to because the UNO with a shield mounted on a custom board seemed easier. Now I know it was not!
- The MEGA is the best in the ARDUINO range for my usage, and with hindsight a lot simpler - but as a first project I was scared of it.
- But I would probably PI with external ADC route if I had to start from fresh.