Introduction: Build the ArduinOLED

About: I enjoy making electronic games and other projects with the Arduino, Raspberry Pi, ATTINY, and more. https://jjv.sh/atinygame https://jjv.sh/about

ArduinOLED is a platform for electronic games and other projects. It includes an OLED screen, a joystick, some buttons, a buzzer, and alligator clip connection points to interface with many other devices. Visit https://johanv.xyz/ArduinOLED for more info.

This guide tells how to order and assemble one of these boards yourself. To set up the software, visit https://www.instructables.com/id/ArduinOLED/

Step 1: Order the Printed Circuit Boards (PCBs)

I designed the boards on EasyEDA:

https://easyeda.com/jjvan/OLED_Arduino-55422f17ec8...

The board called "ArduinOLED v6" is the one that I ordered. It has a few mistakes:

  • All the diodes are backwards except the power diode.
  • The SDA and SCL pull-up resistors were accidentally connected to ground instead of 5V, so I had to solder 1K ohm radial lead resistors to the alligator clip connectors.

I fixed all these issues in the board called "ArduinOLED v8"

  • All diodes are now correct.
  • The SDA and SCL now have 1K surface mount pull-up resistors.
  • The SPI pins are available on the alligator clips on the left.
  • NOTE: Since the pins were rearranged, you will need to modify the ArduinOLED library to be able to read the buttons. More about this in the last step of this tutorial.

To order the boards, create an account on EasyEDA, follow the link above, and click "Open in Editor" next to the board you want to order. Then click "Fabrication Output" (labeled in the images above), which will open a new tab with ordering options. Change "PCB Quantity" to 10, since 5 and 10 cost the same, and click "Save to Cart".

Enter your address to get the shipping cost. In the USA, it is usually $18, so if you want to order multiple types of boards, put them in the same order so you only have to pay for shipping once.

Don't submit the PCB order yet, since you can reduce shipping costs by ordering some of the components with the PCBs.

Step 2: Order the Components

Attached is a spreadsheet of all the components and where I bought them. All the components from "LCSC" can be combined with the EasyEDA PCB order. During checkout, under shipping options, select "I want to combine PCB orders to ship together." Then, after you submit the order for LCSC, go back and submit the order for the boards from EasyEDA.

Step 3: Assembling the Boards

Some notes while soldering the components onto the PCBs:

  • Make sure to clip off the pins of the Arduino Pro Mini that stick out the back of the board since they would hit the 9V battery holder.
  • Also clip the diodes, buttons, and the buzzer that are under the 9V battery holder
  • Solder the battery holder last.
  • When soldering the joystick, you have to remove the angle header and replace it with either a straight header or some leftover pins from the diodes.
  • I used a 1x4 female header when connecting the OLED screen so I could remove it if I wanted. You could also just solder the screen directly to the board.

Step 4: Programming the ArduinOLED

To program the ArduinOLED, follow this tutorial:

https://www.instructables.com/id/ArduinOLED/

If you ordered the "ArudinOLED v8" which is labeled with "v2.0" on the back (the number on the back represents the "software version" for library compatibility), you will need to change a few lines in the ArduinOLED library.

Open the file at:

[sketchbook folder]/ArduinOLED/ArduinOLED.cpp

OR

[sketchbook folder]/ArduinOLED-master/ArduinOLED.cpp

Find these lines near the top:

Output<10> col0(HIGH);
Output<11> col1(HIGH);
Output<12> col2(HIGH);

And change them to this:

Output<9> col0(HIGH);
Output<6> col1(HIGH);
Output<5> col2(HIGH);
OriginalChanged D10D9 D11D6 D12D5

This will change what pins are used for the button matrix to reflect the changes in the "ArduinOLED v8" board. It also makes the SPI pins available on the alligator clip connectors on the left.

Let me know if you have any questions or need clarification on any of these steps. Good luck!