Hi guys! Your help is very necessary. Oled 0.96 1106 sh and arduino nano lie for a long time. I want to make a clone of them, but my knowledge is not enough. What exactly needs to be changed in the library for this to work? I want to clarify: I only need a clone to create games. I don’t want to load finished games into it. Please write detailed actions or give the link you want, thanks!
There is a port of Arduboy2, and some of the other Arduboy libraries, for the Nano but also for use with an I²C SSD1306 display. It would probably be a good place to start. You could replace the low level display control functions with those provided in @Mr.Blinky’s “homemade package” libraries.
Do I understand correctly that the base will be the nano + i2c ssd1306 library you linked to, and then i need to make changes in this library in order for 1106 to work? I did not understand one thing: what is the low level and how to change it, having a @Mr.Blinkys library? Unfortunately, my knowledge of assembly is not enough.
You would replace any functions or other code that tests for OLED_SH1106, or not specific to other types of controllers, in @Mr.Blinky’s library.
I think this might only be:
#define OLED_SET_COLUMN_ADDRESS_LO 0x02
#define OLED_SET_COLUMN_ADDRESS_HI 0x10
There may be other
#define's needed that have been added.
Functions and data in Arduboy2Core.cpp:
const PROGMEM uint8_t Arduboy2Core::lcdBootProgram
void Arduboy2Core::paintScreen(const uint8_t *image)
void Arduboy2Core::paintScreen(uint8_t image, bool clear)
For the above you only need the code that would be compiled if only OLED_SH1106 were defined.
But the Nano uses the Atmega328p. I’m pretty sure you need a board that uses the Atmega23u4.