@chris - thanks for the reminder. i'll make sure to do that in my actual app.
@dhensel - yes, I tried that. I can't get any response out of the LCD at all aside from the boxes when it's all the way turned one direction. My code is:
Mcp23017 i2c = new Mcp23017(0x20);
IParallelOut i2cParallel = i2c.CreateParallelOut(0, 4);
Hd44780Lcd( lcd = new Hd44780Lcd(i2cParallel, (Cpu.Pin)13, (Cpu.Pin)15, (Cpu.Pin)14);
i2c.Pins[8].Write(true);
i2c.Pins[7].Write(true);
i2c.Pins[6].Write(true);
lcd.Write("Hello");
the only things that seem to be adjustable are the i2c address (adafruit docs say 0x20) and the CPU pins... I got the pin values from the adafruit library:
_rs_pin = 15;
_rw_pin = 14;
_enable_pin = 13;
also, the pin.writes _should_ turn on the backlight, if I'm reading the adafruit code correctly (and understanding the arduino/netduino differences):
// Allows to set the backlight, if the LCD backpack is used
void Adafruit_RGBLCDShield::setBacklight(uint8_t status) {
// check if i2c or SPI
_i2c.digitalWrite(8, ~(status >> 2) & 0x1);
_i2c.digitalWrite(7, ~(status >> 1) & 0x1);
_i2c.digitalWrite(6, ~status & 0x1);
}
and just to be sure, I went through and re-soldered everything on the shield - it's been a long time since I soldered anything that complex. Had my father's instructions about cold solder joints and solder bridges running through my head for the first time in 35 years...
Any suggestions?
brian