E-Paper Device (EPD) based MiniNote module, powered by mbed on LPC1114FBD48. Shared in public domain with enclosure in 3D step format, hardware interface compatible with microBUS interface. Anyone can contribute on this project.

Dependencies:   mbed _24LCXXX

You are viewing an older revision! See the latest version

E Badge Firmware Design

Firmware Design

This document briefs overall firmware design for demo and its low level API.

Operation Mode

The E-Badge can operate in host and device modes.

In host mode, the microcontroller inside E-Badge manages all operations, resources and off-board peripherals. Consider it as a regular micro with EPD display. You can find similiar designs in most embedded systems, like a thermometer, visitor counter...

In device mode, it shares its display buffer and non-volitile memory to external hosts to display bitmap content. It receives ASCII or bitmap content, and display according to the command from host via UART.

NVMEM Management

NVMEM is 32KB I2C FeRAM. Since OED EPD takes 3096B as one screen.

We defines 8 screens for 32KB FeRAM with 1000*8 = 8000B free space for parameters and configuration storage.

Demo Firmware

Our demo firmware works in device mode. And we will offer other designs later on.

Host Command Set (Draft, under developement)

Since Firmata and RPCoverSerial are not update for block data exchange. I defined a simple STX/ETX + HEX format command set, which comes AVRlib, written by Pascal Stang, but all other binary fields are encoded by HEX.

(PS: I am not very confident since the original version accesses low level ring buffer)

STX(0x02) | TYPE(ASC) | LEN(HEX) | CMD(ASC) | PARAMS(HEX) |ETX(0x03)

TYPE:

  • 'D': data,
  • 'C': command

CMD:

  • 'd': download to EPD buffer from host
  • 'u': upload EPD buffer to host
  • 's': save EPD buffer to NVMEM page
  • 'r': read from NVMEM to EPD buffer
  • 'p': paint EPD with buffer
  • 'c': clean EPD screen
  • 'e': mark NVM page as empty
  • 't': toggle EPD with NVM page
  • 'x': extra command, for extension
  • 'k': check param in NVM
  • 'o': overwrite param in NVM

Hardware Resources

  • LPC1114FBD48/30X, up to LPC1115FBD48
  • 32KB ROM (up to 64KB)
  • 8KB RAM
  • GPIO + UART + SPI + I2C + ADC + PWM + Timer
  • CP2102 USB/UART converter with LDO
  • FM24LC256, 32KB FeRAM, I2C bus
  • 2.1 EPD from OED
  • mikroBUS shield via SlimStack connector
  • native keypad for ISP and user operation

Low Level API

  • mbed API for on board resources access
  • NVMEM driver and management util
  • EPD driver
  • Font (ASCII)
  • Graphic operation
  • host command parser for STX/ETX + HEX format

Python Utilities

  • Command line python utilities over PySerial
  • Bitmap converter
  • Font manager for CKJ
  • QRCode generator
  • Line Art

All wikipages