According to the datasheet for the IC, it can do serial, which is why I bought it
I took a look at the datasheet for the chip, and that “serial” interface looks a lot like a string of daisy-chained shift registers (on the “write” side, at least: I didn’t delve into how it reads data back, because that wasn’t immediately obvious from the docs).
So, to send commands to it, you’d use shiftOut(), roughly like this:
#define ST7290_REGSEL 0x04
#define ST7290_READ 0x02
// Set these to match the pins you're using for clock and data
#define ST7290_CLOCK_PIN 8
#define ST7290_DATA_PIN 9
* send a command to the ST7290.
* reg is false if reading/writing a command register, true if reading/writing data.
* do_read is true for reading, false for writing.
void st7290_write(boolean reg, boolean do_read, byte data)
byte cmd = 0xf8; // Sync bits: see page 26 of datasheet
cmd |= ST7290_REGSEL;
cmd |= ST7290_READ;
shiftOut(ST7290_DATA_PIN, ST7290_CLOCK_PIN, MSBFIRST, cmd);
// Send high nybble, followed by 4 zero bits
shiftOut(ST7290_DATA_PIN, ST7290_CLOCK_PIN, MSBFIRST, data & 0xf0);
// Send low nybble, followed by 4 zero bits
shiftOut(ST7290_DATA_PIN, ST7290_CLOCK_PIN, MSBFIRST, data << 4);
You’ll probably want to tweak the code a little to improve performance.