Note: This project includes the display driver for the Waveshare Pico e-Paper 2.9 (B) display provided by Waveshare
NOTE: This project was made using a Waveshare Pico e-Paper 2.9 (B) [V4], other models may have different pinouts which could send voltages to the wrong pins and therefore damage the display, before starting please check on the board the model (Pico e-Paper 2.9) and that the sticker has V4 written on it and that is in the B/W/R box
If you are using a Rasberry Pi WH (With GPIO headers):
# System config
fetchConfigFromRemote = False
scdate = 09
fastBoot = True
utcOffset = 2
refreshTime = 3600
ledOffEnable = False
ledOffStart = 21
ledOffEnd = 7
# Network config
ssid = 'YOUR_SSID'
password = 'YOUR_PASSWORD'
ntptime.host = "1.europe.pool.ntp.org"
scheduleServer = "YOUR_WEB_SERVER"
# Strings
str_today = "Today"
str_tomorrow = "Tomorrow"
str_months = ["Jan", "Feb", ...]
# Display driver config
EPD_WIDTH = 128
EPD_HEIGHT = 296
SCK_PIN = 10
DIN_PIN = 11
RST_PIN = 12
DC_PIN = 8
CS_PIN = 9
BUSY_PIN = 13
change the values to match your configurationfetchConfigFromRemote
: Fetch config from remote server, see example jsonscdate
: Time after which to show the schedule for the next dayfastBoot
: Use a less verbose init process (Faster)utcOffset
: UTC offset in hours (ex. 2 = UTC+2)refreshTime
: How many seconds to wait before issuing a refreshledOffEnable
: Enable LED scheduled controlledOffStart
: Time after which to turn off the onboard LED (Requires ledOffEnable
to be True)ledOffEnd
: Time after which to turn on the onboard LED (Requires ledOffEnable
to be True)ssid
: The SSID of your Wi-Fi network [REQUIRED]password
: The password of your Wi-Fi network [REQUIRED]ntptime.host
: NTP Server to use for time retrievalscheduleServer
: URL for the schedule.json hosted on a web server, you can find an example for formatting here, for more info see schedule format [REQUIRED]The Rasberry Pi Pico will retrieve your schedule from the defined web server, the screen can display up to 7 subjects, if more are defined "..." will be displayed instead, if the day dosen't contain any subject a "free" screen will be displayed. Example Schedule:
{
"weekly_schedule": {
"0": [
{
"time": "08",
"subject": "Hello World!"
}
],
"1": [
...
],
"2": [
...
],
"3": [
...
],
"4": [
...
],
"5": [
{
"displayMode": "free"
}
],
"6": [
...
]
}
}
For a full example see example/schedule.json
This project is not affiliated with any of the products used.