/tapper-time

Tapper time is a touchscren Pomodoro for use with Raspberry Pi and eInk display

Primary LanguagePythonMIT LicenseMIT

Tapper Time

Tapper time is a touchscren Pomodoro for use with Raspberry Pi and eInk display

This code makes a touchscreen eInk to-do list and pomodoro timer for your desk.

User Flow

  1. Enter your to-do list in a list making app (like Todoist)
  2. Set up the Raspberry Pi with your credentials and to-do list ID
  3. Scroll through your to-do list and select an item
  4. The Pomodoro timer will count down
  5. When the timer is finished, you can mark the task as done or not

Hardware

This project uses the eInk touchscreen with case and a Raspberry Pi Zero WH.

The drivers and demo are available from Waveshare.

Setup

Set Up the Raspberry Pi

Run the following steps on the Raspberry Pi

  1. Create a fresh SD Card image with Raspbian Lite
  2. Name the Raspberry Pi pomodoro
  3. Log in to the terminal on the Rasbperry Pi
  4. Using raspi-config, enable SPI and I2C
  5. Install pip3
sudo apt-get install libopenjp2-7
sudo apt-get update && sudo apt-get install python3-pip

Install TapperTime on your Raspberry Pi

  1. Pull the code to your host machine
  2. Make a copy of example_config.json and rename it to config.json
  3. Add your API token and todoist project ID
  4. Copy the files to your Raspberry Pi
rsync -a --mkpath --exclude-from=.rsync-exclude.txt . pi@pomodoro.local:~/pomodoro

Install TapperTime on your Raspberry Pi

  1. Install the specific dependencies
cd /home/pi/pomodoro
pip3 install -r requirements.txt
  1. Install TapperTime as a service
sudo cp pomodoro.service /etc/systemd/system/pomodoro.service
sudo chmod 644 /etc/systemd/system/pomodoro.service
  1. Test that the service works
sudo systemctl start pomodoro
sudo systemctl status pomodoro

Software

This project uses the Todoist API to retrieve and close tasks. You can set up the task source to point to other todo list apps, like Google Tasks, although authentication becomes more challenging.

All of the image drawing is handled by Pillow.

Developing

Sync the source files to the Raspberry Pi using rsync.

NOTE: This assumes that your Raspberry Pi is on your network as pomodoro.local

rsync -a --exclude-from=.rsync-exclude.txt . pi@pomodoro.local:~/pomodoro

Unit testing

Set up the unit test virtual environment

python3 -m venv new env-test
source env-test/bin/activate
pip3 install -r test/requirements.txt

Then run the tests

pytest