Skip to the content
PCBKitNew board
6 layers56 × 65 mmMainboard gen2, the printed circuit board in 3D

Mainboard gen2

zephray/NekoInk108

Next gen. of NekoCal: An open-source hackable and programmable e-paper display

Size
56 × 65 mm
Copper layers
6
Thickness
1 mm
Parts
245
Nets
441
Pads
1,477
Tracks, vias
4,190, 464
Pours
8
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
17 Aug 2021
Updated
13 May 2024

Overview

Mainboard gen2 is an open-source printed circuit board by zephray, from the zephray/NekoInk repository on GitHub. It is a 6-layer board of 56 × 65 mm with 245 parts on 441 nets, routed with 4,190 tracks and 464 vias.

It is built around the SY8120B, USB3300-EZK and W25Q128JVPIQ, with the MT41K256M16HA-CN, MT9700 and MAX17135ETJ+ among its other parts. Its parts include 140 capacitors, 48 resistors, 14 ICs, 10 diodes and 8 connectors. It belongs with the lEDs and displays and computers and single-board computers boards and the FPGA and CPLD boards of this library.

Main components

10

README

README.md

NekoInk

This project has been superseded by Glider and will not be updated further.

NekoInk is an open-source, programmable, and versatile E-paper display platform. It offers connectivity options to various type of E-paper screens, and flexible programming environment choices.

Hardware

Mainboard

The 1st generation of NekoInk has the following specs:

  • Processing
    • NXP i.MX6ULL, 900 MHz Cortex-A7 processor
    • 512 MB DDR3L-1066 memory
  • Display
    • Support for EPD screens from 6" to 13.3"
    • Up to 32 greyscale levels / 32768 colors (depends on screen)
    • 40 pin connector for ED103TC1/ES103TC2/GDEW101C01
    • 6 and 12 pin connector for capacitive touch screen (shared signal)
    • 30 pin connector for LVDS LCDs
  • Connectivity
    • MicroSD slot for storage
    • 1x USB Micro-B for USB Device and charging
    • 1x USB Micro-AB for USB Host
    • 1x USB Micro-B for USB Serial terminal
    • 1x DVP port for HDMI input or camera module
    • Integrated WiFi and Bluetooth
  • Power
    • AXP209 PMIC with Lithium battery charger and coulomb counter
    • Power consumption T.B.D.

Screen Adapter

Adapter boards are available in this repo to adapt the following screens:

  • 39 pin connector for ED060SC4/ED133UT2
  • 34 pin connector for ED060SCF/SCN/SCP/XC3/XC5/XC9/XD4/XD6/XH2/KC1/KD1
  • 35 pin connector for ED060XC8/TC1
  • 50 pin connector for ES108FC1

It's possible to use a simple FPC extender to support the following screens:

  • ED078KC1/KH4/GDEW078M01/078C01

The hardware is designed with KiCAD 7.0.

Status

The 1st gen mainboard is finished, soldered, and tested and considered stable. However there is no plan for mass-production.

Software

T.B.D.

Operating System

Linux T.B.D.

Waveform

This project uses a human-readable waveform format (iwf, Interchangable Waveform Format) described below. Currently this could be converted into .fw format used by i.MX6/7 EPDC/EPDCv2. Converting from Eink's wbf format is also supported.

Waveform Format

The waveform consists of one descriptor file in iwf extension (ini format) and various lut data files in csv format.

The descriptor contains the follwoing required fields:

  • VERISON: the version of the descriptor
  • NAME: (optional) original name for the waveform
  • BPP: (optional, default 4) 4 or 5, representing the internal state count used for waveform
  • PREFIX: the filename prefix for actual waveform files
  • MODES: the total modes supported by the waveform
  • TEMPS: the total number of temperature ranges supported by the waveform
  • TxRANGE: the supported temperature in degC, where x is the temperature ID
  • TUPBOUND: (optional) upper bound for temperature range, each range is TxRANGE to Tx+1RANGE (or TUPBOUND in case of the last one)

In v2.0, the following fields are added:

  • TABLES: total number of LUTs inside the waveform
  • TBxFC: the frame count for the table, where x is the table ID

In v1.0, table are directly addressed and stored by its mode and temperature ID (expect things like PREFIX_M1_T2.csv for mode 1 and temperature range 2). In v2.0, tables are indirectly addressed and stored (expect things like PREFIX_TB2.csv for the second table, and one or more mode/temperature combination to use/ reference table 2).

Each mode has its own mode section named [MODEx], where x is the mode ID, containing the following fields:

  • NAME: the name for that mode
  • TxFC: the frame count for the temperature in that mode, where x is the temperature ID (v1.0 only)
  • T*TABLE: the table used for the temperature in that mode (v2.0 only)

There should be a number of LUTs, saved in the filename of either PREFIX_Mx_Ty.csv (v1.0) or PREFIX_TBx.csv. Each csv file should contain the a LUT like this: lut[src][dst][frame], which means, to transition from src greyscale level to dst greyscale level, at a certain frame in a frame sequence, what voltage should be applied to the screen (0/3: GND / Keep, 1: VNEG / To black, 2: VPOS / To white). Each line contains the frame sequence for one or more source to destination pairs.

For example:

  • 4,7,1,1,1,0,2 means to transition from greyscale level 4 to greyscale level 7, there should be 5 frames, each applying VNEG VNEG VNEG GND VPOS
  • 0:14:15,2,2,2 means to transition from any greyscale level from 0 to 14 to greyscale level 15, there should be 3 frames, each applying VPOS VPOS VPOS

These are provided to only illustrate the file format, they are not valid or meaningful Eink driving sequences.

With current design, each mode should have fixed frame count for all associated frame sequences.

Converting

Tools are provided in utils/ folder.

  • To convert from iwf to fw (iMX6/7 EPDC format): ./mxc_wvfm_asm v1/v2 input.iwf output.fw
  • To convert from fw to iwf: ./mxc_wvfm_dump v1/v2 input.fw output_prefix
  • To convert from wbf to iwf: ./wbf_wvfm_dump input.wbf output_prefix

In some cases, the waveform stored on the panel/ controller's flash is compressed. A decompressing tool is also provided that might work.

Generating

To be implemented.

License

The design, unless otherwise specified, is released under the CERN Open Source Hardware License version 2 permissive variant, CERN-OHL-P. A copy of the license is provided in the source repository. Additionally, user guide of the license is provided on ohwr.org.

The waveform converting tool is licensed under GNU GPLv2+ due to use of Linux kernel source code and other people's valuable prior work. See each tools' source code for the complete copyright.

The image viewer tool is licensed under MIT. stb library used in the image viewer is public domain.

Parts

245
QtyValueFootprintReferences
27100nFCapacitor_SMD:C_0402_1005MetricC10, C11, C12, C100, C113, C114, C115, C129, C130, C131, C134, C136, C137, C138, C139, C142 +11
25220nFCapacitor_SMD:C_0402_1005MetricC66, C69, C71, C73, C74, C75, C77, C78, C79, C101, C102, C103, C104, C105, C106, C107 +9
21470nFCapacitor_SMD:C_0402_1005MetricC31, C32, C33, C38, C39, C40, C43, C48, C50, C52, C56, C57, C59, C60, C62, C63 +5
1610uFCapacitor_SMD:C_0805_2012MetricC1, C2, C3, C4, C17, C18, C19, C20, C27, C119, C125, C133, C135, C143, C145, C147
134.7uFCapacitor_SMD:C_0603_1608MetricC34, C35, C41, C42, C44, C49, C58, C61, C64, C86, C94, C128, C132
84.7uF/25VCapacitor_SMD:C_0805_2012MetricC117, C118, C121, C122, C123, C124, C126, C127
847uF/10VCapacitor_SMD:C_1206_3216MetricC21, C22, C24, C25, C26, C28, C29, C30
74.7uHfootprints:L_1212L1, L2, L3, L4, L5, L6, L7
6100uFCapacitor_SMD:C_0805_2012MetricC36, C37, C45, C46, C47, C51
610KResistor_SMD:R_0402_1005MetricR20, R21, R33, R41, R42, R45
620KResistor_SMD:R_0402_1005MetricR11, R12, R13, R14, R15, R31
633Resistor_SMD:R_Array_Convex_4x0402RN3, RN4, RN5, RN6, RN7, RN8
6B0530WSDiode_SMD:D_SOD-323D5, D6, D7, D8, D9, D10
522RResistor_SMD:R_0402_1005MetricR17, R32, R43, R47, R48
41KResistor_SMD:R_0402_1005MetricR16, R18, R30, R46
41uF/25VCapacitor_SMD:C_0805_2012MetricC109, C110, C111, C112
447pFCapacitor_SMD:C_0402_1005MetricC13, C14, C15, C16
4MountingHoleMountingHole:MountingHole_2.7mm_M2.5H1, H2, H3, H4
4SY8120Package_TO_SOT_SMD:TSOT-23-6U1, U2, U3, U4
320K/1%Resistor_SMD:R_0402_1005MetricR2, R3, R5
322uFCapacitor_SMD:C_0603_1608MetricC89, C92, C99
3BSS138Package_TO_SOT_SMD:SOT-23Q1, Q2, Q3
21.5K/0.5%Resistor_SMD:R_0402_1005MetricR28, R29
2100RResistor_SMD:R_0402_1005MetricR26, R27
216K/1%Resistor_SMD:R_0402_1005MetricR6, R7
2240R 1%Resistor_SMD:R_0402_1005MetricR24, R25
227K/1%Resistor_SMD:R_0402_1005MetricR8, R36
24.7KResistor_SMD:R_0402_1005MetricR9, R19
247uFCapacitor_SMD:C_0805_2012MetricC54, C91
251Resistor_SMD:R_Array_Convex_4x0402RN1, RN2
280RResistor_SMD:R_0402_1005MetricR22, R23
2LEDLED_SMD:LED_0603_1608MetricD1, D2
2MT41K256M16HAPackage_BGA:BGA-96_9.0x13.0mm_Layout2x3x16_P0.8mmU7, U8
2MT9700Package_TO_SOT_SMD:SOT-23-5U5, U12
2RCLAMP0524PPackage_DFN_QFN:Diodes_UDFN-10_1.0x2.5mm_P0.5mmD3, D4
10.5RResistor_SMD:R_0603_1608MetricR39
10.5mmfootprints:Hirose_FH12-40S-0.5SH_1x40-1MP_P0.50mm_Horizontal_ReversedJ5
110K/1%Resistor_SMD:R_0402_1005MetricR4
110RResistor_SMD:R_0402_1005MetricR38
1120RResistor_SMD:R_0402_1005MetricFB1
112K/1%Resistor_SMD:R_0402_1005MetricR44
116KResistor_SMD:R_0402_1005MetricR10
118pFCapacitor_SMD:C_0402_1005MetricC98
11uFCapacitor_SMD:C_0402_1005MetricC116
12.2nFCapacitor_SMD:C_0402_1005MetricC120
122RResistor_SMD:R_0603_1608MetricR40
133.33MHzOscillator:Oscillator_SMD_Abracon_ASE-4Pin_3.2x2.5mmX1
149.9K/1%Resistor_SMD:R_0402_1005MetricR37
1562K/1%Resistor_SMD:R_0402_1005MetricR34
1806K/1%Resistor_SMD:R_0402_1005MetricR35
191K/1%Resistor_SMD:R_0402_1005MetricR1
1AP6330(BCM4330)footprints:RL-SM02BD(RTL8723BS)U14
1Antenna_Shieldfootprints:bt_antenna_1ant_2gnd_mirrorAE1
1Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ6
1GPIOConnector_PinHeader_2.54mm:PinHeader_2x20_P2.54mm_VerticalJ2
1HDMI_AConnector_HDMI:HDMI_A_Molex_208658-1001_HorizontalJ3
1JTAGConnector_PinHeader_2.00mm:PinHeader_2x07_P2.00mm_Vertical_SMDJ1
1MAX17135Package_DFN_QFN:QFN-32-1EP_5x5mm_P0.5mm_EP3.1x3.1mm_ThermalViasU10
1MICRO_SD(TFC-WPAPR-08)footprints:TFC-WPAPR-08J4
1USB3300Package_DFN_QFN:QFN-32-1EP_5x5mm_P0.5mm_EP3.3x3.3mmU11
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U13
1USB_AConnector_USB:USB_A_Molex_67643_HorizontalJ8
1USB_C_Receptacle_USB2.0Connector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J7
1W25Q128JVPPackage_SON:WSON-8-1EP_6x5mm_P1.27mm_EP3.4x4mmU9
1XC7Z010-CLG400Package_BGA:Xilinx_CLG400U6

Questions

How big is the Mainboard gen2 PCB?

It measures 56 × 65 mm and has 6 copper layers, 1 mm thick.

What parts does the Mainboard gen2 use?

245 parts, built around the SY8120B, USB3300-EZK, W25Q128JVPIQ and MT41K256M16HA-CN. 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 Mainboard gen2 KiCad files?

From the zephray/NekoInk repository on GitHub, at the commit this page was made from: the board is pcb/mainboard_gen2/pcb.kicad_pcb and its schematic pcb/34p-a-adapter/adapter.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Mainboard gen2 design in my own project?

Its repository states no licence, so its author keeps all rights: ask zephray before reusing the design.

Similar boards

  • 4 layers60 × 60 mmNekoInk, the printed circuit board in 3D

    NekoInk

    kitspace-test-repos/kicad6-file-collection

    235 partsMIT
  • 6 layers71.5 × 62.9 mmSensorboard backport, the printed circuit board in 3D

    Sensorboard backport

    CameraNexus/sitina1

    Open-source 35mm full-frame (36mm x 24mm) CCD mirror-less interchangable lens camera (MILC). The original goal of this project was to create a digital camera back to convert SLR cameras to DSLR cameras, but has since…

    391 parts82MIT
  • 4 layers90 × 80 mmGlider, the printed circuit board in 3D

    Glider

    pdyxs/glider

    Fork of zephray/glider (Modos Glider e-ink monitor) with a DP AUX polarity fix and a standalone GCC firmware build

    379 partsCERN-OHL-S-2.0
  • 4 layers69.6 × 29.4 mmSpartan6 board, the printed circuit board in 3D

    Spartan6 board

    openconcepts-ar/accel2d

    This project aims to provide a graphics server system based on hardware accelerated graphics, and a easy way to develop the graphics primitives.

    169 parts1
  • 4 layers32.2 × 23 mmPixl.js, the printed circuit board in 3D

    Pixl.js

    xiaohail/pixl.js-oled

    This project is open source and is solely for learning and research purposes, please do not use it for commercial purposes. Amiibo is a registered trademark of Nintendo, and NTAG21X is a registered trademark of NXP.

    88 parts1GPL-2.0
  • 4 layers67.4 × 89.9 mmBornhack-2026-hardware, the printed circuit board in 3D

    Bornhack-2026-hardware

    badge-gallery/bornhack-2026-hardware

    Source-preserving mirror of https://codeberg.org/Ranzbak/bornhack2026-hardware

    193 partsMIT
  • 2 layers105.4 × 86.5 mmGood Boy Limiter, the printed circuit board in 3D

    Good Boy Limiter

    JohnanLuca02/BYTE_Electronics

    Repository for everything concerning the electronics (PCB, Electrical schemes, BOM, ...) of the robot dog project of the AiTeam called BYTE.

    111 parts1