Introduction: Make Seedstudio's I2C LCD Monitor Work With an Old Arduino
I've got a Grove started kit by Seedstudio, and I had problems using its LCD display with an old Arduino model (I'm using a Freediuno. IDE recognizes it as a "Duomilanove w/ ATmega328", but I believe many old boards would have a similar problem).
I've found out way around this and started to document this as a "BTW" in my Thermoscope instructable but this issue deserves an instructable of its own.
There 2 issues regarding the I2C LCD monitor that comes with the kit
- Missing I2C pins for the Grove shield
- Powering the LCD Monitor from battery
As you can see in the photo, there is a solution :)
Update: although setRGB(31,31,31) reduces power consumption enough so that a 9V battery can handle it, it's really a battery killer (best is to add interface to turn it on/off and let the user decide). Another discovery (at least for me) was that a 4xAA battery pack could do the job nicely (although I was kind to it and didn't turn on the backlight). See photo.
Step 1: Patching the I2C Pins
As you can see in the Photo, the shield has 2 pins that don't connect to anything on my old board (there are 2 more "loose pins" on the other side, but they're not related to I2C).
The solution is to patch these pins (scl and sda) to A4 and A5 (see photo).
Now you can use the monitor - but only on USB power: it doesn't matter whether you connect a PC or a wall socket, power needs to come from USB.
At this point, you can already try a simple sketch like my "Heart Analyzer" (see photo) as long as the power comes from USB. Once you switch to battery power, the text disappears, although you can still see backlight color changes (that's why "heart analyzer" is good for displaying the problem).
Note that in old boards like freeduino, you have a manual power-selector jumper (you can see it in the photo on the previous step), so it means you need to remove the Grove shield each time you want to change modem, but never mind that - the thing simply doesn't work on batteries.
Next steps shows how to fix this (as promised).
Step 2: Making It Battery Powered
The only way I've found (so far) to make the LCD monito work on battery power is by giving up the Grove shield completely and using Grove breakout cables instead (see photo).
The trick is to power the monitor from the gnd/9V pair (see photo). This pair seems to be connected to the DC jack regardless of the state of the power selector.
The problem is that although now it's supposed to work on a battery, it failed to do so with a battery, and only agreed to work when I connected a power supply (5V 2A).
This is only theoretical progress because if I wanted to be anchored to a wall socket, I could have used a USB cable as well. Then I had the idea of turning off the backlight by adding a setRGB(0,0,0) to initLcd().
This worked on a slightly used (~8V) 9V battery (see picture). Later on, I've tried a modest setRGB(31,31,31), and the battery could handle it as well (see photo at intro step).
At last I have a way to debug my RF project without RF-noise-generating serial/power connections.
Hope this information may also be useful for you.