The progress has been rather slow this past week due to exams. Anyway, after some research I came to the conclusion that: the RPZ can't toggle its IO pins from within Processing fast enough to drive the EPD, writing an entire E-book software package is a tad ambitious and an ARM controller makes a decent alpha prototype driver for the EPD.
To present this visually this is now the new plan:
Let's break this down shall we?
The screenshot program on the RPZ basically takes a screenshot with python-webkit2png, then it reads the .png, applies a filter to convert to black and white (for now) and then sends this over SPI to the display controller.
The display controller shall be programmed in C because this is a language I am good with and basically pushes the incoming SPI data to the screen in the WP (weird protocol). The GPIO connection from the power management controller is basically a shutdown/low power mode command.
The power management controller keeps an eye on battery levels and sends a shutdown command over serial to the RPZ when the user turns the device of or the battery levels are low. This will be using an Arduino for now but the final product will use a more low power microcontroller. After all, it doesn't need to be powerful.
The interface buttons consist of a power switch, forward and backward switches and menu navigation switches. Nothing exciting.
The star of the show is Calibre, an all-in e-book package, we'll just be using the e-book viewer. Because the interface isn't what I want (too many colours and buttons that rely on a mouse/touchscreen input) I am going to write a plugin (also Python) that accepts GPIO inputs and simplifies the display. In case I can't get Calibre to accept GPIO inputs I will write another program to run on the RPZ that converts GPIO inputs to key presses, and Calibre will simply respond to these "hotkeys".
All of the programs on the RPZ will be started with a daemon so that restarting the device automatically opens them.