WHOOF okay some victories to report with the OLED board.
first of all the documentation is .. inconsitent.. clearly translated, with some outright wrong information, and some very difficult-to-decipher stuff. Luckily there was a fairly complete set of sample code provided, even if it was horrifically ineffecient. I was able to knock the framerate up to 40fps with some optimization passes, or a screen reload in just a hair over 25 milliseconds, thats the important thing, the ability to refresh the whole screen without being able to see a vertical flash with the naked eye. In practice I won't be running it that fast, but I AM going to need to fetch/move the frame buffer from a serial SRAM to the OLED board, and it looks like that is going to work.
The default addressing mode is.. weird.. and it's made weirder by the prehistoric reverse-martian configuration options provided by the manufacturer. I have no idea what they intended some of these addressing modes for but it has the feel of a small team of engineers (maybe even a single programmer) just brainstorming everything that COULD be done.. and doing it all.. even if it wasn't clear anyone would ever need it.
Anyways I have it the way I want it now, which is selectable left-right/top-bottom (for screen flipping), continuous address space:
bit 0
.
0x0000 ------------------------------------------------ 0x007F
.
bit 7
0
.
0x0080 ------------------------------------------------ 0x00FF
.
7
0
.
0x0100 ------------------------------------------------ 0x017F
.
7
0
.
0x0180 ------------------------------------------------ 0x01FF
.
7
So I reset the pointer to the top left, then load data sequentially (the memory address auto-increments) this is where a lot of the speed increase came from, the rest came from not doing a start-command-stop for EVERY WORD. now I load it all in one go.
So I have some software on the PC side to do font/glyph/bitmap translations, as soon as it can cook anything like usably I'll release it. Anyone who wants to create animations, you will be able to load them :)
-Curt