Retronics

Restoring, remodeling and creating electronic devices


DIY: Breadboard adapter for 0.99″ circular display with GC9107 controller

For an upcoming project, I’ll need a small (<= 1 inch) round display. There aren’t many options available, but I found one candidate on BuyDisplay.com, a 0.99″ IPS panel with 128×115 pixels resolution, GC9107 controller and SPI interface.

Before designing PCB for the project, I’d like to do some breadboard prototyping, but unfortunately, I was unable to find a breadboard adapter module incorporating this display. The solution was to make an adapter, with a 12-pin 0.5mm pitch FFC connector towards the display, and an 8-pin 0.1″ pitch pin header for breadboard connection.

The circuit is pretty basic:

Nominal voltage for the display module is 2.8V, but anywhere between 2.5 and 3.3V is acceptable. Just in case the PSU should slightly exceed 3.3V, I’ve added a schottky diode with a voltage drop of about 250mV. A single BJT works as driver for the backlight LED, so that it can be controlled from an MCU pin.

PCB design in KiCad. Design files and production files (Gerber) are shared on Github, along with a basic Arduino code example.

The finished interface board, connected to a breadboard, and controlled by a homemade ATMEGA328P-AU development board (3.3V 8MHz), running a basic “Hello world” code, utilizing the Arduino_GFX library.

Connections:

DisplayArduino
SCLD13
SDAD11
RESD7
DCD8
CSD9
BLKD6



3 responses to “DIY: Breadboard adapter for 0.99″ circular display with GC9107 controller”

  1. Good day! I see the same problem. Right 3 lines of pixels has random colors and not accessible.

    Did you fix it?

    Thanks.

    Sergii.

    Like

    1. Try initiating the display with this (line 35):
      Arduino_GFX *gfx = new Arduino_GC9107(bus, 7, 0 /* rotation */, true /* IPS */, GC9107_TFTWIDTH, GC9107_TFTHEIGHT, 0, 0, 0, 0);

      It worked for me 🙂

      Like

  2. Thank you very much for the you help

    https://drive.google.com/file/d/1KRzSIKAYaDmWDJ6oDwRZOQOISqFgGj4V/view?usp=sharing

    That what I’ve got. I added coordinate shift to have the screen circle centre at the cursor pos:(63, 63).

    In this case when you change the orientation – you just change the position on the “flat spot”. The configuration line will be like below:

    /* More display class: https://github.com/moononournation/Arduino_GFX/wiki/Display-Class */
    Arduino_GFX *gfx = new Arduino_GC9107(bus, 7, 0 /* rotation /, true / IPS */, GC9107_TFTWIDTH, GC9107_TFTHEIGHT, 0, 13, 0, 0); //Cable at the BOTTOM, pos:(63.63) at the screen radis center

    or
    Arduino_GFX *gfx = new Arduino_GC9107(bus, 7, 1 /* rotation /, true / IPS */, GC9107_TFTWIDTH, GC9107_TFTHEIGHT, 0, 13, 0, 0); //Cable at the RIGHT, pos:(63.63) at the screen radis center

    or
    Arduino_GFX *gfx = new Arduino_GC9107(bus, 7, 2 /* rotation /, true / IPS */, GC9107_TFTWIDTH, GC9107_TFTHEIGHT, 0, 0, 0, -13); //Cable at the TOP, pos:(63.63) at the screen radis center

    or
    Arduino_GFX *gfx = new Arduino_GC9107(bus, 7, 3 /* rotation /, true / IPS */, GC9107_TFTWIDTH, GC9107_TFTHEIGHT, 0, 0, 0, -13); //Cable at the LEFT, pos:(63.63) at the screen radis center

    Thanks.

    Sergii.

    Like

Leave a reply to Sergii Cancel reply