Project to drive an E-Ink display with an AVR MCU and avr-libc
  • C 91.3%
  • Makefile 7.7%
  • Shell 1%
Find a file
gitdode 8a98b76444
Some checks failed
make / build (push) Has been cancelled
Move to Forgejo
2026-04-07 21:50:54 +02:00
.github/workflows Merge improvements from thermidity (#10) 2023-09-10 19:33:03 +02:00
nbproject Merge improvements from thermidity (#10) 2023-09-10 19:33:03 +02:00
.gitignore some cleanup 2023-04-12 20:29:01 +02:00
avrink.c Just some cleanup 2024-01-17 21:09:08 +01:00
bitmaps.c more optimizations on types (#12) 2023-09-20 20:09:43 +02:00
bitmaps.h more optimizations on types (#12) 2023-09-20 20:09:43 +02:00
cmd.c Merge improvements from thermidity (#10) 2023-09-10 19:33:03 +02:00
cmd.h add fast update mode 2023-07-03 22:07:42 +02:00
CODE_OF_CONDUCT.md add Code Of Conduct 2023-04-18 23:02:44 +02:00
dejavu.c Merge improvements from thermidity (#10) 2023-09-10 19:33:03 +02:00
dejavu.h Merge improvements from thermidity (#10) 2023-09-10 19:33:03 +02:00
display.c make pointed-to objects const that are not supposed to be changed (#14) 2023-10-06 17:36:47 +02:00
display.h make pointed-to objects const that are not supposed to be changed (#14) 2023-10-06 17:36:47 +02:00
eink.c Merge improvements from thermidity (#10) 2023-09-10 19:33:03 +02:00
eink.h read from SRAM in sequential mode when writing to display (#6) 2023-07-05 02:14:47 +02:00
font.c more optimizations on types (#12) 2023-09-20 20:09:43 +02:00
font.h more optimizations on types (#12) 2023-09-20 20:09:43 +02:00
LICENSE initial project 2023-03-26 23:39:04 +02:00
Makefile add types.h to Makefile 2023-09-17 22:00:05 +02:00
pins.h Merge improvements from thermidity (#10) 2023-09-10 19:33:03 +02:00
README.md Move to Forgejo 2026-04-07 21:50:54 +02:00
spi.c merge changes from thermidity (#4) 2023-06-19 23:53:01 +02:00
spi.h refactoring - make SPI chip select globally available 2023-04-11 22:49:52 +02:00
sram.c set frame in SRAM sequential mode, saving more power (#13) 2023-09-20 20:16:38 +02:00
sram.h set frame in SRAM sequential mode, saving more power (#13) 2023-09-20 20:16:38 +02:00
types.h more optimizations on types (#12) 2023-09-20 20:09:43 +02:00
unifont.c Merge improvements from thermidity (#10) 2023-09-10 19:33:03 +02:00
unifont.h Merge improvements from thermidity (#10) 2023-09-10 19:33:03 +02:00
usart.c make pointed-to objects const that are not supposed to be changed (#14) 2023-10-06 17:36:47 +02:00
usart.h make pointed-to objects const that are not supposed to be changed (#14) 2023-10-06 17:36:47 +02:00
utils.h refactoring 2023-04-14 00:28:03 +02:00

AVRInk

Project to drive an E-Ink display like the Adafruit Monochrome 2.13" 250x122 SSD1680 with an AVR MCU (ATmega328P) and avr-libc.

Currently implemented:

  • Nearly complete UTF-8 set (code points U+0000 to U+00FF) of GNU Unifont
  • Small subset of large glyphs in DejaVu: 0-9 and some special characters
  • Store font and bitmaps in program memory instead of RAM
  • Use SRAM as frame buffer
  • Fast and full update mode
  • Draw strings in Unifont and DejaVu
  • Draw bitmaps
  • Write text and bitmaps via USART
  • Logging via USART

Thanks to:

  • Adafruit_EPD for helping me out with the display initialization!
  • markbirss for telling me that fast update mode is supported!
  • sprintersb for helping me to improve the code and making it more efficient!

AVRInk-06

Write something via USART

Connect to the controller with for example GTKTerm (9600 Baud).
Write some text and a bitmap:

c 0 // clear display
t 0 0 d 0-9 // write text in DejaVu (large) to row 0 column 0
t 2 128 u Small text in // write text in Unifont (small) to row 2 column 128
t 4 128 u Unifont // write text in Unifont (small) to row 4 column 128
t 8 0 d !#%*+,-° // write text in DejaVu (large) to row 8 column 0
b 7 198 0 // write bitmap with index 0 (Tux) to row 7 column 198
u 1 // update display in fast update mode (0 = full update mode)

AVRInk-10