Skip to content

Repository files navigation

procStop

ProcStop is a hardware checklist tool, you can use to keep track of your tasks for the current day. The idea came from a youtube video by Mike Boyd. ProcStop tries to expand on that idea by letting you define any number of tasks and also ensuring that you do them for as long as you planned. Also you'll get statistics to analyze your progress. ProcStop consists of a web interface and a client software. It is designed to run on a Raspberry Pi and currently only tested on Raspberry Pi 2 B with Raspbian, but could possibly run on any device with enough GPIO Pins.

Picture of procstop device turned on

Operation

  • First add the tasks you have to do for any day into the database using the web interface

  • After that turn on the device with the power switch on it's side

  • You can switch through your tasks for the current day using the left and right buttons

  • When you are working on a task, flip the switch on the front to active, the time will go down and the progress bar on top will fill up as you are doing the task

  • When you are done with a task or need a break, flip the switch on the front to idle

  • When you are done with all the tasks, flip the switch to idle and a little animation will start playing to congratulate you

  • If you are done earlier than anticipated with a task you can use a key to mark the task as done

ProcStop Web

The Web interface is used to add or delete tasks for any day you want and for viewing the statistics.

Screenshot of web interface used to add new tasks

ProcStop client

The client is used to operate the hardware described in the hardware section.

It can be built using cargo. Before running the client, make sure to place the config file config.toml in the directory ~/.config/procstop/ or load it using the -c <path> option from anywhere you like. The config file can be used to change the used gpio chip, the path to the sqlite3 database file, as well as all the used gpio pins.

Hardware

To build the hardware refer to the hardware diagram below, as well as the Hardware list. Eletronic circuit diagram of the hardware

The gpio pins in the diagram above are the default ones, they may be changed in the config file config.toml (see above). Also I used a gpio breakout board instead of connecting everything directly to the pi.

Hardware List

  • 1x Raspberry Pi
  • 16x green LEDs (Progress bar, finished LED)
  • 1x red LED (Active LED)
  • 1x simple Switch (Idle/active switch)
  • 1x DPST two Pole Switch (Standby switch)
  • 2x Buttons (Next/Previous Task)
  • 1x Key-activated "button" (for finishing a task early)
  • 15x 470Ω resistors (Progress bar leds)
  • 2x 100Ω resistors (for status and finished LEDs)
  • 5x 10kΩ resistors (Pull down resistors)
  • 1x 50kΩ Potentiometer resistor (for changing contrast of 1602 display)
  • 14x diodes (with as little a voltage drop as possible, for status bar)
  • 1x CD74HC4067 De-Multiplexer (for decreasing amount of gpio pins required by progress bar)
  • 1x TM1637 4-digit 7-segment Display (for displaying time left on current task)
  • 1x LCD 1602 Display (for displaying current tasks name and amount of total tasks)
  • 1x Raspberry Pi GPIO breakout board (for easier construction)
  • Enough wires to connect it all

For housing you may use any container, that is large enough to fit the Raspberry-Pi and the other electronics. I first prototyped it inside a cardboard box.

Internals (for developers)

The documentation below is not relevant for using the software as it is, but for anyone who may want to improve or change it.

Entity Relationship Diagram

About

Stop procrastinating now!

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages