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.
Table of Contents
Python is my preferred cross-platform programming languages. Once has been tested, it can run in Windows, Linux, Mac as well as embedded Linux such as Raspberry Pi, PCduino and BBB. Although it can run in Android, but module dependencies make it difficult to port modules related to low level hardware.
I present some important modules which are used in E-Badge MiniNote.
Since MiniNote uses CP2102 as its UART/USB interface, PySerial is very important to interface between host operation and MiniNote internal LPC1114 micro over virtual serial port.
It can be reused for firmware ISP programming as well. Since serial port has different device name in Windows/Linux, we requires some different versions.
Python Image Library (PIL) is critical to perform image operations, including crop, rotate, resize, color conversion and more.
Since MiniNote is a display device anyway, image processing is a must feature.
The basic version is dedicated for 172x72 matrix and B/W image.
The advanced version will be upgraded to support any matrix and any color.
QRCode is very important in popular mobile applications. (The enclosed image is generated by Python QRcode, which points to http://mbed.org/)
MiniNote is designed to support QRcode up to version 13, which is 69*69 matrix, displayed in 172*72 matrix panel.
What can version 13 do? It depends on error correction features.
- High error correction configuration, it can contain up to 109 UTF8 Chinese characters,177 GB2312 Chinese characters, 259 ASCII+digits.
- Low error correction configuration, it can contain up to 262 UTF8 Chinese characters,425 GB2312 Chinese characters, 619 ASCII+digits.
We can save general information such as contact, address, name card in version 13. If you want a coarser QRcode, you may use any versions below 13, work with URL shortener services.
Barcodes for Python is another Python library dedicated for 1D barcode generation, including code128B/EAN-13/GS1-128/UPC.
It depends on other libraries to draw, otherwise you can fetch generated binary to draw on framebuffer by user code.
I will use wxPython as my desktop GUI toolbox. It can be depolyed to Windows, Linux and Mac with native looking. Before that, most of the code works in command line.
Python Utilities Listing¶
Since Python utilities are easy to build, easy to forgot and drop. I list some scripts/programs used in MiniNote project.
- scanport (in WIndows)
- lpcisp (in Windows)
Windows XP, Python 2.6
Platform to be tested¶
Windows XP + Python 2.6 Raspberry Pi Raspbian + Python 2.7 Ubuntu + Python 2.7
The code is available from github.com