{"id":13759449,"url":"https://github.com/zephray/NekoInk","last_synced_at":"2025-05-10T09:32:34.140Z","repository":{"id":38843457,"uuid":"397389651","full_name":"zephray/NekoInk","owner":"zephray","description":"Next gen. of NekoCal: An open-source hackable and programmable e-paper display","archived":false,"fork":false,"pushed_at":"2024-05-13T23:32:39.000Z","size":7414,"stargazers_count":102,"open_issues_count":1,"forks_count":12,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-05-09T19:55:56.036Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zephray.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-17T20:58:38.000Z","updated_at":"2025-02-20T11:05:13.000Z","dependencies_parsed_at":"2024-01-15T00:30:04.174Z","dependency_job_id":"4aedb78b-83b3-4594-9aa4-7f1417f581fe","html_url":"https://github.com/zephray/NekoInk","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zephray%2FNekoInk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zephray%2FNekoInk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zephray%2FNekoInk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zephray%2FNekoInk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zephray","download_url":"https://codeload.github.com/zephray/NekoInk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253397195,"owners_count":21902011,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T13:00:53.329Z","updated_at":"2025-05-10T09:32:32.039Z","avatar_url":"https://github.com/zephray.png","language":"C++","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"NekoInk\n=======\n\n**This project has been superseded by [Glider](https://gitlab.com/zephray/glider) and will not be updated further.**\n\nNekoInk 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.\n\n# Hardware\n\n## Mainboard\n\nThe 1st generation of NekoInk has the following specs:\n\n* Processing\n    - NXP i.MX6ULL, 900 MHz Cortex-A7 processor\n    - 512 MB DDR3L-1066 memory\n* Display\n    - Support for EPD screens from 6\" to 13.3\"\n    - Up to 32 greyscale levels / 32768 colors (depends on screen)\n    - 40 pin connector for ED103TC1/ES103TC2/GDEW101C01\n    - 6 and 12 pin connector for capacitive touch screen (shared signal)\n    - 30 pin connector for LVDS LCDs\n* Connectivity\n    - MicroSD slot for storage\n    - 1x USB Micro-B for USB Device and charging\n    - 1x USB Micro-AB for USB Host\n    - 1x USB Micro-B for USB Serial terminal\n    - 1x DVP port for HDMI input or camera module\n    - Integrated WiFi and Bluetooth\n* Power\n    - AXP209 PMIC with Lithium battery charger and coulomb counter\n    - Power consumption T.B.D.\n\n## Screen Adapter\n\nAdapter boards are available in this repo to adapt the following screens:\n\n* 39 pin connector for ED060SC4/ED133UT2\n* 34 pin connector for ED060SCF/SCN/SCP/XC3/XC5/XC9/XD4/XD6/XH2/KC1/KD1\n* 35 pin connector for ED060XC8/TC1\n* 50 pin connector for ES108FC1\n\nIt's possible to use a simple FPC extender to support the following screens:\n\n* ED078KC1/KH4/GDEW078M01/078C01\n\nThe hardware is designed with KiCAD 7.0.\n\n## Status\n\nThe 1st gen mainboard is finished, soldered, and tested and considered stable. However there is no plan for mass-production.\n\n# Software\n\nT.B.D.\n\n## Operating System\n\nLinux T.B.D.\n\n## Waveform\n\nThis 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.\n\n### Waveform Format\n\nThe waveform consists of one descriptor file in iwf extension (ini format) and various lut data files in csv format.\n\nThe descriptor contains the follwoing required fields:\n\n* VERISON: the version of the descriptor\n* NAME: (optional) original name for the waveform\n* BPP: (optional, default 4) 4 or 5, representing the internal state count used for waveform\n* PREFIX: the filename prefix for actual waveform files\n* MODES: the total modes supported by the waveform\n* TEMPS: the total number of temperature ranges supported by the waveform\n* T*x*RANGE: the supported temperature in degC, where x is the temperature ID\n* TUPBOUND: (optional) upper bound for temperature range, each range is T*x*RANGE to T*x+1*RANGE (or TUPBOUND in case of the last one)\n\nIn v2.0, the following fields are added:\n\n* TABLES: total number of LUTs inside the waveform\n* TB*x*FC: the frame count for the table, where x is the table ID\n\nIn 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).\n\nEach mode has its own mode section named \\[MODE*x*\\], where x is the mode ID, containing the following fields:\n\n* NAME: the name for that mode\n* TxFC: the frame count for the temperature in that mode, where x is the temperature ID (v1.0 only)\n* T*TABLE: the table used for the temperature in that mode (v2.0 only)\n\nThere should be a number of LUTs, saved in the filename of either PREFIX_M*x*_T*y*.csv (v1.0) or PREFIX_TB*x*.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.\n\nFor example:\n\n* ```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\n* ```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\n\nThese are provided to only illustrate the file format, they are not valid or meaningful Eink driving sequences.\n\nWith current design, each mode should have fixed frame count for all associated frame sequences.\n\n### Converting\n\nTools are provided in utils/ folder.\n\n* To convert from iwf to fw (iMX6/7 EPDC format): ```./mxc_wvfm_asm v1/v2 input.iwf output.fw``` \n* To convert from fw to iwf: ```./mxc_wvfm_dump v1/v2 input.fw output_prefix```\n* To convert from wbf to iwf: ```./wbf_wvfm_dump input.wbf output_prefix```\n\nIn some cases, the waveform stored on the panel/ controller's flash is compressed. A decompressing tool is also provided that might work.\n\n### Generating\n\nTo be implemented.\n\n# License\n\nThe 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.\n\nThe 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.\n\nThe image viewer tool is licensed under MIT. stb library used in the image viewer is public domain.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzephray%2FNekoInk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzephray%2FNekoInk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzephray%2FNekoInk/lists"}