Skip to the content
2 layers29.2 × 31.8 mmCOGDisplayBreakout, the printed circuit board in 3D

COGDisplayBreakout

bobm123/COGDisplayBreakout

A breakout board for the ERC12864FSF-11 COG LCD module

Size
29.2 × 31.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
17
Nets
15
Pads
49
Tracks, vias
75, 7
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
2 Apr 2026
Updated
18 May 2026

Overview

COGDisplayBreakout is an open-source printed circuit board by bobm123, from the bobm123/COGDisplayBreakout repository on GitHub, published under the MIT licence. It is a 2-layer board of 29.2 × 31.8 mm with 17 parts on 15 nets, routed with 75 tracks and 7 vias.

Its parts include 4 capacitors, 2 resistors, 1 IC, 1 diode and 1 connector. It belongs with the lEDs and displays and interfaces and adapters boards of this library.

README

README.md

COG Display Breakout

This is a breakout board for the ERC12864FSF-11 COG (Chip On Glass) LCD module, a 0.96", 128x64 pixel display using an ST7567 controller and 4-wire SPI an interface. The PCB routes the display's inputs from its 12-pin FFC cable to a breadboard-friendly 2.54mm pin header. It also exposes the backlight LED pins and provides a few discrete components for LCD module.

It was designed to have a form factor (~27x27mm, 4 mounting holes, pin headers) to like the Adafruit 0.96" OLED module and similar 1" displays.

LCD technology differs from the OLED displays commonly found on display boards of this size. LCD should be daylight readable like e-paper, but with simpler hardware and software requirements. However, LCDs may need a backlight in low-light conditions, so the breakout includes connections display's built-in LED with an option for always on operation. Contrast control is through software.

KiCad 3D render of the breakout board

Specifications

ParameterValue
DisplayERC12864FSF-11 (128x64, monochrome)
ControllerST7567
Interface4-wire SPI
Supply voltage3.3V only
Board size~27 x 27mm
Mounting4x M2 holes

Repository Structure

text
ArduinoCode/                             Example sketches for ESP32-C3
COGDisplayBreakout.pretty/               Custom footprint library
COGDisplayBreakout.3dmodels/             Custom 3D models
docs/                                    Datasheets, reference designs, tutorials
images/                                  Image assets
step/                                    3D models of the board and a small case
COGDisplayBreakout.kicad_sch             Schematic
COGDisplayBreakout.kicad_pcb             PCB layout
COGDisplayBreakout.kicad_sym             Custom symbol library
README.md

Schematic and Board Layout

The KiCad 9 project files are at the repository root.

Circuit Overview

The schematic connects the ERC12864FSF-11 display to an 8-pin SPI header (J1) with supporting passives:

Header pinout (J1 - SPI_Header):

PinSignalDescription
1SDASPI data (MOSI)
2SCLSPI clock
3A0Data/command select (DC)
4/RSTReset (active low)
5/CSChip select (active low)
6LEDLED control
7VDD+3.3V supply
8GNDGround

Passive components:

RefValuePurpose
R120RBacklight LED current-limiting resistor
C110uFVDD bypass capacitor
C2100nFVDD bypass capacitor
C31uFCharge pump capacitor (V0 to XV0)
C41uFCharge pump capacitor (V0 to GND)
U1APX805SPower-on reset IC for display /RST line

The ST7567's built-in voltage booster generates the LCD bias voltage using external capacitors C3, and C4. No regulator or level shifting is included; the board is 3.3V only. Capacitors C1 and C2 are for decoupling. The R1 value was taken from the reference design, but for 10-20 mA LED current it should be about 200 Ohms.

The APX805S monitors VDD and holds the display /RST line low until power is stable, providing a clean power-on reset without requiring a GPIO pin from the host microcontroller. The /RST header pin (pin 4) is still available for external reset if needed.

Breakout board schematic

PCB

This is a 2-layer board, ~27x27mm. The display's 12-pin FFC cable (0.6mm pitch) is soldered directly to SMD pads on the back side. The display module mounts flat against the front by means of plastic mounting pins on the display case and the solder tabs for the backlight LED. Four M2 mounting holes at the corners matching similar OLED modules.

The display's 12-pin FFC cable is a non-standard 0.6mm pitch, so must be soldered directly to pads on the breakout PCB.

PCB - front PCB Front (ground plane copper hidden)

PCB - back PCB Back

Board Revisions

  • V0.1 (March 2026) - Initial prototype. Known issues: C1 wiring error, missing VG capacitor. See AssemblyNotes.txt for workarounds.

  • V0.2 (March 2026) - Fixed capacitor circuit. Known issue: backlight A/K pads swapped. See AssemblyNotes.txt. Gerber files: V0.2 in Gerbers20260323/.

  • V1.0 (April 2026) - Fixed A/K pads and connected LED control to pin 6. See AssemblyNotes.txt. Gerber files: V1.0 in Gerbers20260403/.

  • V1.1 (April 2026) - Added APX805S power-on reset IC for display /RST line. External reset connection via header pin 4 remains optional. Gerbers sent to DigiKey RedBoard fab 2026-04-15.


Custom ERC12864FSF-11 KiCad Library

The project includes a custom schematic symbol, PCB footprint, and 3D model for the ERC12864FSF-11 display module. These are in project-local libraries referenced via sym-lib-table and fp-lib-table.

Schematic Symbol

File: COGDisplayBreakout.kicad_sym Symbol name: ERC12864FSF-11

12-pin FFC cable (0.6mm pitch, 19mm long) plus 2 backlight pins.

PinNameTypeDescription
1~{CS}InputChip select (active low)
2~{RST}InputReset (active low)
3A0InputData/command select
4SCLInputSPI clock
5SDAInputSPI data (MOSI)
6VDDPower+3.3V supply
7VSSPowerGround
8V0PassiveContrast voltage (booster output)
9XV0PassiveBooster capacitor tap
10NC-Not connected
11NC-Not connected
12VGPassiveNegative voltage for LCD bias
AAPassiveBacklight LED anode
KKPassiveBacklight LED cathode

Note: The backlight pins (A, K) are separate solder tabs on the display module, not part of the 12-pin FFC cable.

PCB Footprint

File: COGDisplayBreakout.pretty/ERC12864FSF-11_COG_LCD.kicad_mod

There is a lot going on with this component's footprint:

  • 12 SMD pads at 0.6mm pitch for direct-solder FFC cable connection
  • Module outline on front silkscreen
  • Back silkscreen shows how the FFC cable would wrap around
  • 2 through-hole oval pads for backlight pins (A and K)
  • Two NPT holes for case aliment studs
  • An NPT oval slot to pass the FFC cable to the back of the PCB

The 12 SMD pads are a bit longer to allow some play when wrapping the FFC cable around to the back. The pads and oval slot are positioned relative to the stud holes and backlight pins so the FFC cable end is centered on the pads.

Unfortunately, there does not seem to be an FFC/FPC connector available in 12-pin, 6mm pitch so it must be soldered to the PCB. A piece of Kapton tape over the solder joins will provide a bit of strain relief and protection from shorts.

3D Model

Directory: COGDisplayBreakout.3dmodels/

FileFormatDescription
ERC12864FSF-11.stepSTEPSolid body model for KiCad 3D viewer
ERC12864FSF-11_COG_LCD.wrlVRMLLightweight preview model

The STEP model is referenced by the footprint and renders in KiCad's 3D viewer and to export the PCB with components as a 3D model.


Arduino Code

Example sketches are in ArduinoCode/. The code should run on most modern Arduino board variants with sufficient pins and memory. The code currently targets the Adafruit QT Py ESP32-C3 and uses the U8g2 graphics library.

Dependencies

  • U8g2 - Monochrome graphics library (handles ST7567 initialization, SPI transport, fonts, and drawing)
  • SPI (built-in)

Install U8g2 via the Arduino IDE Library Manager.

Pin Mapping (QT Py ESP32-C3 to breakout header)

Display SignalHeader PinQT Py PinESP32-C3 GPIO
SCL (clock)1SCK10
SDA (data)2MO7
A0 (DC)3MI*8
/RST4APX805S on breakout-
/CS5tied to GND-
LED6A3-
GND1GND-
VDD23V3-

*The MISO pin is repurposed as GPIO since the ERC12864 does not provide data out.

Sketches

Here are some Arduino sketches that can be run on a XIAO style board like Adafruit's QT Py ESP32-C3 with the connections shown above

Breadboard with QT Py ESP32-C3 and display running ERC12864_Hello

SketchDescription
ERC12864_Hello/Minimal hello-world with text and simple graphics. Also blinks the QT Py's NeoPixel.
ERC12864_SPIDemo/AI Port of the manufacturer's C tutorial. Cycles through text, graphics primitives, XBM bitmap, and test patterns. Includes commented-out contrast adjustment code for future button support.
GraphicsTest/U8g2 graphics test suite (from the U8g2 examples, configured for this display).
ScrollingText/U8g2 scrolling text demo (from the U8g2 examples, configured for this display).

U8g2 Constructor

All sketches use the same U8g2 constructor. Identifies the display module by part number and the SPI interface pins. See mappings above.

cpp
U8G2_ST7565_ERC12864_ALT_F_4W_SW_SPI u8g2(U8G2_R0,
    /* clock=*/ 10, /* data=*/ 7, /* cs=*/ U8X8_PIN_NONE, /* dc=*/ 8, /* reset=*/ U8X8_PIN_NONE);
  • ERC12864_ALT - contrast-improved variant for this display
  • _F_ - full framebuffer mode (~1KB RAM)
  • 4W_SW_SPI - 4-wire software SPI

The 4-wire HW variants of the U8g2 constructors are intended for the platform's native SPI interface: MOSI, MISO, clock and chip select. Since this device is write only the MISO pin is repurposed for A0 (Data/Command select). The 4-wire SW constructor is used to support this pin mapping but others are possible.

/CS is tied to GND on the breakout board, so the display is always selected and no GPIO is needed for chip select. If sharing the SPI bus with other devices, connect /CS to a GPIO pin and replace U8X8_PIN_NONE with that pin number in the constructor.

/RST is managed by the on-board APX805S power-on reset IC, so no GPIO is needed for reset. If external reset control is required, connect the /RST header pin to a GPIO and replace the reset U8X8_PIN_NONE with that pin number.


Reference Documentation

Datasheets and reference material are in docs/:

  • ERC12864-11_Datasheet.pdf - Display module datasheet
  • ST7567_V1.7.pdf - Controller IC datasheet
  • ERC12864FSF-11_Display.md - Display specifications summary
  • ERC12864FSF-11_SPI_Reference_Design.md - Wiring guide and U8g2 examples
  • ERC12864-11_Tutorial/ - Manufacturer's C code tutorial and interface schematic

Tools

  • KiCad 9 for schematic and PCB design
  • Arduino IDE with ESP32 board support for firmware development
  • U8g2 library for display graphics

Parts

17
QtyValueFootprintReferences
4MountingHoleMountingHole:MountingHole_2.5mmH1, H2, H3, H4
21uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC3, C4
2FIDUCIAL""Fiducial:Fiducial_0.5mm_Mask1.5mmFID1, FID2
1100nFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC2
110uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1
11N4148Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolderD1
120RResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1
1APX803SPackage_TO_SOT_SMD:TSOT-23U1
1ERC12864FSF-11COGDisplayBreakout:ERC12864FSF-11_COG_LCDLCD1
1RResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR2
1SPI_HeaderConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ1
1SolderJumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP1

Similar boards

  • 2 layers50 × 35 mmServo power, the printed circuit board in 3D

    Servo power

    earthtojake/text-to-cad

    Design physical products with AI

    17 parts26kMIT
  • 2 layers139.7 × 62.2 mmBreakout 60pin EEC IV, the printed circuit board in 3D

    Breakout 60pin EEC IV

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    17 parts1.2k
  • 2 layers29.2 × 55.9 mmDeniseadapter, the printed circuit board in 3D

    Deniseadapter

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    17 parts1kGPL-3.0
  • 2 layers24.5 × 36.5 mmCluster, the printed circuit board in 3D

    Cluster

    JesusFreke/lalboard

    A 3D-printed keyboard inspired by the DataHand

    17 parts993
  • 2 layers56.3 × 55.7 mmStarNecklace, the printed circuit board in 3D

    StarNecklace

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    17 parts915
  • 2 layers25 × 25 mmSmallEncoder, the printed circuit board in 3D

    SmallEncoder

    DDeGonge/OS-ARM

    This arm is not industrial and it will not be fast, but that is not my goal. But it will hopefully be a very nice looking arm fully capable of 6dof motion, cheap enough to keep it accessable but capable enough to…

    17 parts498MIT
  • 2 layers38.9 × 16.1 mmAmoeba spc, the printed circuit board in 3D

    Amoeba spc

    mtl/keyboard-pcbs

    Keyboard PCBs

    17 parts485
  • 2 layers36 × 51 mmABSIS ALE, the printed circuit board in 3D

    ABSIS ALE

    jrsteensen/OpenHornet

    OpenHornet 1:1 F/A-18C Simulator Repository

    17 parts431

Questions

How big is the COGDisplayBreakout PCB?

It measures 29.2 × 31.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the COGDisplayBreakout use?

17 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the COGDisplayBreakout KiCad files?

From the bobm123/COGDisplayBreakout repository on GitHub, at the commit this page was made from: the board is COGDisplayBreakout.kicad_pcb and its schematic COGDisplayBreakout.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the COGDisplayBreakout design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).