Replies: 9 comments 19 replies
|
Short version: yes, but the EnkPi would be a Tesserae client, not the thing running Tesserae. The server runs wherever Home Assistant lives (there's an HA App) or on any Docker host, renders the dashboard, and the Pico W just fetches a ready-made frame and pushes it to the panel. That's the offload-to-a-server model you already had, just with the server side done for you and the HA data coming from widgets rather than your own scripts. The board itself sounds like a good fit for @bablokb's generic CircuitPython client, https://github.com/bablokb/tesserae-device-circuitpython. It's built for exactly this case: one client, many boards, with the polling, ETag handling, sleep and battery workflows already done. Getting a new board on it is a matter of a configuration (and possibly a small HAL) rather than new firmware, and Bernhard has run it on a Pico W before. From the sbcshop repos, the 7.5" is 800x480 with separate black and red planes, 48000 bytes each, plus a micro SD slot, RTC, 6 buttons and a battery connector. Which size do you have? The 2.9/4.2/5.83 variants would be smaller still. Bernhard, two questions I'd rather you answer than me guess at:
Nothing is needed on the server side. The client registers as the generic CircuitPython kind and declares the panel size and gamut itself ( If you're happy to be the tester, that would be a real help in testing this firmware on microcontroller-class hardware. |
|
Mine is the 7.5" version, 800x480, black/white/red. I just installed Tessarae to my Homeassistant - looks very cool so far, way better than what I had built. Thanks for the tip, I'll take a look at the circuitpython link. My board has micropython - not sure what the differences are in detail and how much work would be needed to port it, but I guess that's a project for the weekend! |
|
I got Circuit python installed on my enk-pi board and copied over the libraries and example code for UC8179 - it basically just worked - I had to change the pin definitions, that's about all: spi = busio.SPI(board.GP10, board.GP11) # Uses SCK and MOSI |
|
That's great! The next step is to head over to my repository at https://github.com/bablokb/tesserae-device-circuitpython. The Readme tells you how to clone the firmware. At the end of the "Installation" section (the section is actually about the first step: cloning the repo including submodules) you will find a link to a second document that describes the installation on the board itself. If something is unclear, please give feedback. A good documentation is important and any help to improve it is highly appreciated. |
|
Well, it's almost working - I set the resolution to 800x240 and it is rendering something that looks like what HA is sending, though there's a lot of noise which suggests the pixel depth isn't set right. I tried mono as well as bwr_3 but there wasn't enough ram for the full resolution for that. The example code did render clearly at smaller resolutions so there's something funky happening there I think the only part of the docs that jumped out was where the settings file needs to be written to (not /src) and a bit more clarity around how the hw_config stuff works might be useful. I'll have another look tomorrow, need to do life stuff now :-) Once it's working I'll do a diff and let you know what I changed. |
|
I'd consider the driver side fixed now for the enk-pi 7.5" display, albeit at reduced resolution because of the limited memory available. In Tesserae in Home Assistant I made a new theme based on the 1 bit paper theme, to set all the colours to either full red, black or white. There are a few grey shades that it generates but they are rendering quite nicely now. The reduced resolution means the unused parts of the screen don't get refreshed properly - it's probably fine for testing but might be best not to leave the display running 24/7 like it, just in case anyone else is tempted :-) My hw config file, if you want to share it: I also had to set app_config.url to the actual address of my HA server, ie http: //192.168.21.128:8765 , and I also enabled app_config.debug which has been really useful. Thanks for your help everyone, look forward to seeing this project progressing. If there's anything you want me to test with this display, let me know, happy to help. |
|
@snowpie: This is now implemented. Pull the newest version ( I have updated the file If you run into problems, just reach out. |
|
Regarding the etag: this is normal: if there was a successful update, e-ink displays don't upate as long as the server sends a HTTP304. To fix this, make sure that the server updates the dashboard. There is one caveat currently: if the e-ink update fails, the etag is not deleted. But judging from your logs, you did not reach this stage. con1 is a "normal" 304 behavior, con2 fails so early it did not contact the server at all. |
|
It's confusing - I've actually deleted the old dashboard and linked a new one to the display device, but it's still telling me there's no display update required; previously it would always refresh on first power-up even if later on the update was skipped, and I could always send a new image manually to it via Send / Upload a file. The link in the log file here: is valid and is the one I would expect to see, but it's not being rendered onto the screen. I can confirm it is using the new mode: I have been up since 5am so it's possible I'm doing something wrong; I might wipe the device and start from scratch tomorrow and see if that solves it. |
Uh oh!
There was an error while loading. Please reload this page.
Hi, I've got one of these: https://shop.sb-components.co.uk/products/enkpi ; it's driven by a raspberry pi pico W, so it's super limited for memory etc . Before I got Home Assistant, I had it rendering weather reports, energy reports from my solar panels etc but the low resources meant everything had to be offloaded to a server and it was all a bit messy. Natively it runs micropython, though I believe you can flash it with other firmware.
I'd love to get it working with Home Assistant and make it a bit more flexible. Would that platform be able to run tesserae? Happy to help with testing it out and a bit of dev if needed, if you can give me a few pointers.
All reactions