| internal | ||
| systemd | ||
| .gitignore | ||
| args.go | ||
| config.example.toml | ||
| config.go | ||
| go.mod | ||
| go.sum | ||
| justfile | ||
| main.go | ||
| README.md | ||
| tuxwithfriends.png | ||
homedisplay
Copy config.example.toml to config.toml and fill in the values.
just run
# To specify config file location
just run -config=config.toml
# Usage help
just run -h
Systemd Service
To update the display on boot and every hour, register the systemd service:
./systemd/install
Dependencies
https://www.waveshare.com/wiki/5.83inch_e-Paper_HAT_Manual
Install the lgpio C library
wget https://github.com/joan2937/lg/archive/master.zip
unzip master.zip
cd lg-master
make
sudo make install
The last step gives a Python error but this is OK as we only need the C libs.
Waveshare display demo
git clone https://github.com/waveshare/e-Paper.git
Hardware Setup
This project was designed for the Waveshare 5.83" e-Paper display.
Set the switches on the e-Paper driver HAT according to the docs.
Editing files over SSH
Use SSHFS to mount the Raspberry Pi project dir on your local machine. Then use your local editor for the full editing experience, and changes are made on the Pi's filesystem.
sshfs user@pi:/home/user/homedisplay ~/mnt/homedisplay
Note: using sudo will cause SSH key authentication to fail, so run as non-root user.
Before powering down the Raspberry Pi or your local machine, disconnect the SSHFS.
umount ~/mnt/homedisplay
Running without the C libraries
You can run the project in preview mode if you don't have the C libraries installed.
This is enabled by the nodisplay build tag (e.g. go build -tags=nodisplay).
The image that would get output to the display is saved to output.png.
just preview
# In kitty terminal
just preview && icat output.png
To get the LSP working with the correct flags in NeoVim, export GOFLAGS="-tags=nodisplay" before opening the editor.
Docs
Disable power LED on the Raspberry Pi Zero W
Add the following to the bottom of /boot/firmware/config.txt:
[all]
dtparam=act_led_trigger=none
dtparam=act_led_activelow=on