Skip to content

cbott/RemoteNote

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RemoteNote

An E-Paper display that displays messages from the internet RemoteNote project demo

Parts

Part Product Name
E-Paper Display Adafruit 2.9" Tri-Color eInk / ePaper Display FeatherWing - IL0373 - Red Black White
Controller Adafruit Feather M0 WiFi
Battery (optional) Adafruit LiPo or similar with JST connector
Enclosure 3D printed, see Mechanicals section
Fasteners (4x) M2.5x3mm such as McMaster PN 92095A113

Setup

  1. Install the Arduino IDE and add the relevant board manager and libraries as specified in https://learn.adafruit.com/adafruit-feather-m0-wifi-atwinc1500/setup
    • Complete the steps through the WiFi examples
  2. Add the Adafruit EPD library per https://learn.adafruit.com/adafruit-2-9-eink-display-breakouts-and-featherwings/arduino-setup
    • For a quick test you can upload "eink_count_example" to confirm the display is working
  3. Flash the SSL certificates for gist.githubusercontent.com to your board
    • Once again, this tutorial
    • Make sure to add the setPins() line to the WiFi101 "FirmwareUpdater" example sketch
    • I had to use an older 1.8.x version of the Arduino IDE to get the updater tool to work
  4. Create a secret gist titled Messages
    • Place your message in the file
    • RemoteNote will read up to 100 characters or until the keyword #END, though only 80 printable characters will fit on the screen
  5. Create a file called secrets.h with the following definitions
    // secrets.h
    #define SECRET_SSID "your wifi ssid"
    #define SECRET_PASS "your wifi password"
    #define SECRET_PAGE_ID "your/gist/path"
    
    where your/gist/path points to the raw view of the gist and will look something like cbott/xxxxxxxx/raw/Messages
  6. If you do not care about battery voltage sensing, update the EPD_CS define line in RemoteNote.ino to be 9 instead of 5
    • Assuming you want a nice battery percentage indicator, we need to modify the board a bit because the FeatherWing uses pin 9 (analog A7) for chip select, even though the Feather board uses that same pin for battery sensing.
    • Cut the jumper traces on the back of the FeatherWing labeled ECS and SDCS, and solder a jumper from the far side of ECS to the pin side of SDCS.
    • This will prevent SD card use but makes our code work correctly.
  7. Upload the RemoteNote program to your board and see your messages on the e-paper display!

Mechanicals

View the enclosure CAD model on OnShape

CAD models for boards provided by Adafruit_CAD_Parts repository

Message Formatting

By default, messages will be displayed in black text on a white background. With configured font size the screen is 5 rows of 16 characters each.

Messages may be prefixed with the string [BG R] or [BG B] to set the background color to be Red or Black. Following that with [R] or [W] will set the text color to either Red or White. These must be the first characters in the message and will apply to the whole message.

  • Example: [BG B][W]Hello World will display the message "Hello World" in white text on a black background.
  • Example: [R]Hello World will display the message "Hello World" in red text on a white background.

The Adafruit display uses CP437 encoding which, combined with HTTP responses modifying some formatting, can make it difficult to display special characters. Characters will need to be valid in both UTF8 and CP437 to make this work. Characters such as "<" may not display properly due to being escaped in the HTTP response.

Notes

  • RemoteNote is a Minimum Viable Product. There are probably many other projects which do the same thing but I have set this up to be as easy to get started with as possible - no wiring, API keys, or fancy stuff.
  • The Adafruit feather board's integrated battery controller charges at a rate of 200mA. Ensure that this does not exceed the capabilities of your chosen battery, likely requires a capacity >200mAh.
  • Some of the code may be easier with CircuitPython, unfortunately the Feather M0 does not have the memory needed for the displayio builtin library. Rather than finding a workaround I just switched to Arduino.

About

Show notes on a WiFi enabled e-ink display

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages