These instructions are for advanced users who want to further customise their OLED Shield.
The OLED Shield uses these pins on the Arduino:
|OLED128 Pin 9
|OLED128 Pin 10
|OLED128 Pin 3
|MicroSD CD (Not used on current OLED128)
|OLED128 Pin 4
|Joystick Button (active low)
|OLED128 Pin 8
|Joystick X position
|Joystick Y position
Driving Multiple Screens
OLED Shield includes a connector to direct mount an OLED128 module on top, and remote mount an OLED128 at the end of a cable.
If you connect an OLED128 to both of these connectors at once, output will be automatically mirrored on both of them. You don't need to do anything! Note that you can't have a MicroSD card inserted into both OLED128 modules at once, or neither will work.
If you have good soldering skills, it is possible to use the cut-track jumpers on the shield together with some rewiring to treat the direct and remote mounted displays as separate displays, with different output on each.
To achieve this, cut between the pads of solder jumper "SJ4" on the underside of the OLED Shield. SJ4 can be found near the right-angle cable connector:
Cutting this jumper separates the "OLED CS" output on the 10-pin "remote display" cable connector from digital pin 7 and the "OLED CS" output on the direct mounting connector. You can then solder a wire from the solder pad or the small hole next to SJ4, back to a different (unused) pin on the OLEDShield.
We suggest wiring this pad to digital pin 8.
In your sketch, if you now create a second OLED128 class that uses this new CS pin (but shares the other pins with the onboard connector), you'll be able to update each screen independently of the other. The top of your sketch will look something like this:
const byte pin_cs_onboard = 7;
const byte pin_cs_remote = 8;
const byte pin_dc = 2;
const byte pin_reset = 3;
OLED oled1(pin_cs_onboard, pin_dc, pin_reset);
OLED oled2(pin_cs_remote, pin_dc, -1);
Note that we also set the reset pin on the second OLED, oled2, to -1. This is because both OLEDs are sharing a reset pin, and we want to stop resetting both modules when we call begin() on the oled2 instance (which would cause oled1 to lose its initialisation settings.)
Other Cut Track Jumpers
There are some other cut track jumpers on the OLED Shield that can be useful if you want to disable certain functionality or reuse a pin for another purpose:
|Piezo buzzer to Digital Pin 9.
Cut this jumper to reuse Pin 9 for something else.
|Joystick button to Digital Pin 6.
Cut this jumper to reuse Pin 6 for something else.
|Remote OLED MicroSD CS to Digital Pin 4
Cut this jumper and resolder to another digital pin if you want to access both MicroSD card slots independtly.
|Remote OLED CS to Digital Pin 7.
Cut this jumper and resolder to another digital pin if you want two separate screens (see above.)
|Remote OLED RST to Digital Pin 3.
Cut this jumper and resolder to another digital pin if you want to be able to reset each screen separately (this is not required to just have separate displays, you can just set the reset pin of the second screen to -1 as shown above.)