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

NekoInk

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

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.

Additionally, a converter board will be available to adapt the following screens:

  • 39 pin connector for ED060SC4
  • 34 pin connector for ED060SC7/SCG/SCE/SCM/SCT
  • 34 pin connector for ED060SCF/SCN/SCP/XC3/XC5/XC9/XD4/XD6/XH2/KC1/KD1
  • 33 pin connector for ED097OC1/OC4/TC2
  • 39 pin connector for ED133UT2
  • 40 pin connector for ED078KC1/KH4/GDEW078M01/078C01

The hardware is designed with KiCAD 5.99 nightly.

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.

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, also determines the waveform type
  • 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
  • MxNAME: the name for each mode, where x is the mode ID
  • MxFC: the frame count for each mode, where x is the mode ID
  • TxRANGE: the supported temperature in degC, where x is the temperature ID

There should be in total of modes x temps of LUTs, saved in the filename of PREFIX_Mx_Ty.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: VPOS / To black, 2: VNEG / 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 VPOS VPOS VPOS GND VNEG
  • 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 VNEG VNEG VNEG

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 input.iwf output.fw
  • To convert from wbf (Eink format) to iwf: ./wbf_wvfm_dump input.wbf output.iwf

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.

Owner
Wenting Zhang
DSP Product Application Engineer at Analog Devices, open source software and hardware enthusiast. Love retro computing
Wenting Zhang
Similar Resources

This repo contains source code of our paper presented in IROS2021 "Single-Shot is Enough: Panoramic Infrastructure Based Calibration of Multiple Cameras and 3D LiDARs"

This repo contains source code of our paper presented in IROS2021

Single-Shot is Enough: Panoramic Infrastructure Based Calibration of Multiple Cameras and 3D LiDARs Updates [2021/09/01] first commit, source code of

Dec 19, 2022

An open collection of tools and experiments for rendering wide-gamut scene-linear data into an image for an SDR or HDR display device.

Open Display Transform An open collection of tools and experiments for rendering wide-gamut scene-linear data into an image for an SDR or HDR display

Dec 29, 2022

Get Next Line is a project at 42. It is a function that reads a file and allows you to read a line ending with a newline character from a file descriptor

Get Next Line is a project at 42. It is a function that reads a file and allows you to read a line ending with a newline character from a file descriptor. When you call the function again on the same file, it grabs the next line

Nov 15, 2022

FluidNC - The next generation of motion control firmware

FluidNC - The next generation of motion control firmware

FluidNC (CNC Controller) For ESP32 Introduction FluidNC is the next generation of Grbl_ESP32. It has a lot of improvements over Grbl_ESP32 as listed b

Jan 3, 2023

How To Build The NeXT ROM Monitor From Sources

How To Build The NeXT ROM Monitor From Sources

Nov 20, 2022

this project is a function in c to take the next line of a file or a file descriptor. this is a project of 42 school.

this project is a function in c to take the next line of a file or a file descriptor. this is a project of 42 school.

Get Next Line of 42. Make with ❤︎ for Luiz Cezario 📌 Index What's this Repo? List of Archives Technologies How to Run Find a Bug? Or somenthing need

Nov 28, 2022

Next Index to Query Kmer Intersection

NIQKI NIQKI stand for Next Index to Query K-mer Intersection. NIQKI is an sketch based software, similar to Mash or Dashing, which can index the large

Nov 3, 2022

A customizable hardware prefetching framework using online reinforcement learning as described in the MICRO 2021 paper by Bera and Kanellopoulos et al.

A customizable hardware prefetching framework using online reinforcement learning as described in the MICRO 2021 paper by Bera and Kanellopoulos et al.

A Customizable Hardware Prefetching Framework Using Online Reinforcement Learning Table of Contents What is Pythia? About the Framework Prerequisites

Jan 1, 2023

lib release of paper [TopoTag: A Robust and Scalable Topological Fiducial Marker System]

lib release of paper [TopoTag: A Robust and Scalable Topological Fiducial Marker System]

Library release of paper TopoTag: A Robust and Scalable Topological Fiducial Marker System. Project page: https://herohuyongtao.github.io/research/pub

Jul 13, 2022
Minimal hackable C# ECS
Minimal hackable C# ECS

minECS A minimal, blazing-fast Entity-Component System written in modern C#. This is a real ECS, it's data-oriented and CPU cache friendly. If you're

Oct 25, 2022
A laser cut Dreamcast Pop'n Music controller and integrated memory card using the Raspberry Pi Pico's Programmable IO
A laser cut Dreamcast Pop'n Music controller and integrated memory card using the Raspberry Pi Pico's Programmable IO

Dreamcast Pop'n Music Controller Using Raspbery Pi Pico (RP2040) Intro This is a homebrew controller for playing the Pop'n Music games on the Sega Dre

Dec 29, 2022
ESP32 based USB C Programmable Power Supply
ESP32 based USB C Programmable Power Supply

ESP32 USB-C Power Supply The idea for this ESP32 usb-c power supply project came to me when I discovered that components exist that communicate to par

Dec 29, 2022
Display array is a board that sets 6 ST7735 display with a resolution of 80x160px in a linear array sharing the clock, data, rs, backlight pins together
Display array is a board that sets 6 ST7735 display with a resolution of 80x160px in a linear array sharing the clock, data, rs, backlight pins together

The display array is a board that sets 6 ST7735 display with a resolution of 80x160px in a linear array sharing the clock, data, rs, backlight pins together, and leaving individual access to the cs lines of each display, This board allows you to display images with a resolution of 480x160px.

Dec 19, 2022
Opencore-based Hackintosh EFI and guide for Lenovo Thinkpad X1 Carbon Gen 7
Opencore-based Hackintosh EFI and guide for Lenovo Thinkpad X1 Carbon Gen 7

macOS on Thinkpad X1 Carbon 7th Generation OpenCore-based Hackintosh EFI and guide for Lenovo Thinkpad X1 Carbon Gen 7. This guide has been generated

Dec 19, 2022
A Gen implementation in C. With memory efficiency, portability and speed in mind

A Gen implementation in C. With memory efficiency, portability and speed in mind

Jul 31, 2022
Create VCV Rack modules from gen~ exports
Create VCV Rack modules from gen~ exports

gen-rack Export gen~ patches to VCV Rack modules. How to use First, you'll want to grab a copy of this repository (clone/download/etc). Then take a lo

Dec 24, 2022
This project seeks to develop a low-cost, open-source braille display
This project seeks to develop a low-cost, open-source braille display

This project seeks to develop a low-cost, open-source braille display. It is estimated that its cost is reduced to more than 90% compared to the cost of the cheapest screens that exist in the market today. // Este proyecto busca desarrollar una pantalla braille de código abierto y de bajo costo. Se estima que su coste se reduce a más de un 90%.

Nov 22, 2022
Foo_openlyrics - An open-source lyric display panel for foobar2000
Foo_openlyrics - An open-source lyric display panel for foobar2000

foo_openlyrics An open-source lyrics plugin for foobar2000 that includes its own UI panel for displaying and sources for downloading lyrics that are n

Dec 23, 2022
Sandbox binary and source code for the Siggraph 2017 paper "Water Wave Packets" by Stefan Jeschke (NVIDIA) and Chris Wojtan (IST Austria)

----------------------------- Manual for wave packet viewer ----------------------------- System requirements: Windows8/8.1/10 with DirectX runtime e

Nov 28, 2022