What is CALE?
CALE is a screen administrator where you can mix content of different APIs and control the content
- Meeting room sign that updates every hour showing next meetings and attendees
- Living picture, showing events or Cloudwatch statistics
- Help screens at the side of your laptop, refreshing dynamic information every 10 minutes
- Any other application you may find interesting to see in real-time outside the monitor
What it does in two simple steps:
- CALE receives a request from your Screen
- Returns a response with an image or HTML if you want to use it anywhere in the web
Primary target displays are the so called Eink or Epaper. The technical term is electrophoretic ink, that when laminated to a plastic film and then adhered to electronics, it creates an Electronic Paper Display (EPD). The ones that expose an SPI interface for makers come in up to 2 EInk colors, 3 colors counting the white background, but in the first version of this Screen administrator tool we are targeting only the ones with Black ink (2 colors).
This particles are the diameter of human hairs. We are supporting many EPD displays using the library GxEPD
When an electrical field is applied the microcapsules with opposite sign float to the top of the display, creating a crisp image that can be seen withouth any backlight.
And how this is supposed to work automatically
Right now what the Firmware does is very simple:
- Wakes up, connects to your WiFi, and reads an image from CALE
- This image URL and authorization token you can get when you log in and compose your Screens
- The firmware sends the image to the Eink display and goes to sleep a predefined time (Ex. one hour) > Repeats the loop waking up again
- CALE API will provide an endpoint where you can query the right time for Timezone (Ex. now is 9 AM)
- The firmware will only fetch the image and send it to the display if the hour checked in Point 1 is between the "update display" hour range. For example if the update range is from 10 to 22 Hrs then the display will wake up at 9, check the time from the API and go to sleep one hour more without doing anything. In next wake up at 10 it will effectively see it's on the range and refresh the display.