Work Update
Last week I finished the chip detection driver, and worked on a rough prototype of the e-ink display driver. With the display driver I ran into some difficulty because there are very subtle differences between the models that are not made explicit in the documentation. It was a process of trial and error to get the screen to work, but once it began working it was an easier process to get the rest of the driver figured out.
I ended up using a second library to make generating images for the screen easier. The way an image is sent to the device is as a big two dimensional array of binary values, because each pixel the screen can either be on or off. However to generate text and graphics by hand would be a pain and require a large amount of boilerplate code. Instead I use a two step process. The first step is generating the image using PIL (Python Image Library). It creates a “canvas” that can then be drawn on. It has resources for drawing text, images, shapes, and more. Then the second step is to take that canvas and render it to black and white, and output an array like the one required by the screen. That data is then written to the screen’s memory.
Finally, I wrote some simple code to glue everything together for the demo. It was a simple loop that checks for new cards, checks for new chips, then updates the screen with the results if any are new. While this isn’t the exact approach that will be used for the final game coordinator running in the play area, I hope to be able to reuse a lot of the code.
Schedule Update
I believe I’m still on track for my tasks. Next week I will work on finalizing the game coordinator in the play area and building a simple server to test with on the central computer.