The eInk Badge is a low-power, customizable electronic badge built for makers, tinkerers, and event projects. It features a crisp E Ink display that holds content without using constant power, making it perfect for wearables or always-on info displays. Whether you're building a name tag, a conference badge, or something more creative, this open-source board gives you a flexible and hackable platform to bring your ideas to life.
The RP2040 is a high-performance, low-power microcontroller designed by Raspberry Pi. Built on a dual-core ARM Cortex-M0+ architecture, it offers a flexible and efficient platform for embedded applications, from wearables to real-time control systems.
Its key features are:
- Dual-core ARM Cortex-M0+ @ up to 133 MHz – efficient parallel processing
- 264 KB SRAM + external QSPI flash support – ample memory for embedded apps
- Flexible I/O – 2× UART, 2× SPI, 2× I²C, 16× PWM, 3× ADC, up to 30 GPIOs
- Programmable I/O (PIO) – hardware-level custom protocol support
- USB 1.1 device/host support – native USB connectivity
- Low power + 40 nm silicon – ideal for wearables and portable devices
- Built-in USB bootloader – easy, drag-and-drop programming
- Wide developer support – C/C++, MicroPython, CircuitPython, Rust, and more
The eInk badge uses GDEY029F51 as main display. The GDEY029F51 is a 2.9-inch four-color e-paper display module, offering a resolution of 296×128 pixels. It utilizes the JD79661 driver IC and communicates via an SPI interface, making it compatible with various microcontrollers, including the RP2040.
In the datasheet we can find the recommended circuit.
Notice that, even I used this display model, the eInk badge is compatible with many different eINk badges from Good Display, so you just need to acquire the one you need, and change the code according the display used.
SchematicsAs we mentioned before, the main controller is a RP2040. This microcontroller is programmed using an USB-C, in which only the USB2.0 pins are used.
The microcontroller also needs a 12MHz oscillator and a bunch of decoupling capacitors.
To store the program, the RP2040 uses an external FLASH memory. In this case we used the W25Q16, a 16Mbit memory with QSPI interface.
Also here you will fins the BOOT push button, used to hold the microcontroller and allow the load of a new version.
The board is powered over the 5 volts provided by the USB port. Then, a LDO is used to obtain the 3.3V rail for all the electronic circuits.
Finally, the display is connected to the board using a flat-cable connector. The circuit used is provided by the vendor.
Finally, 2 push buttons and 2 leds are added to the board.
The firmware for the eInk Badge has been developed using the Arduino IDE. To control the E Ink display, we utilize the GxEPD2 library—a versatile Arduino library designed for driving SPI-based e-paper displays. GxEPD2 supports a wide range of e-paper panels from manufacturers like Waveshare and Good Display. It is optimized for performance and low memory usage on microcontrollers such as the RP2040, ESP32, and STM32.
The GxEPD2 library provides a high-level interface to control e-paper displays, including initialization, rendering, refreshing, and power management.
Build your ownThe board is open source and the schematic is released yo sou can build your own eInk badge.
An excellent option to build your badge is JLCPCB. Here you can build your PCB. To do this you need to navigate to JLCPCB.com, and clink on Order now. Now you have to upload your gerber files.
In order to make your board ROHS compliant, you will need to change the Surface Finish to LeadFree HASL.
Also, JLCPCB guys can populate and solder your board, To do this you will need to upload the positioning file and the BOM file.
Finally, in a few days you will receive your eInk Badge in your home.
Comments