
a project by vcuadradojuan
https://github.com/viccuad/gomoduino
Gomoduino
Gomoduino: notify your colleagues when you are on a pomodoro
But what is it?
Gomoduino provides a traffic light-like sign showcasing when you are on available and on a break, and when you are on a pomodoro. It was made on a couple of afternoons as an excuse to learn how D-Bus works.
Potato photos:
<img src="https://github.com/viccuad/gomoduino/raw/master/assets/web/gomoduino_work.jpg" width="600" /> <img src="https://github.com/viccuad/gomoduino/raw/master/assets/web/gomoduino.jpg" width="600" />
How it works
It works in conjunction with Gnome Pomodoro, a Gnome-Shell application for managing your Pomodoros, with presence awareness, notifications, messaging status changes and more.
Gomoduino is comprised of 2 parts, a Python script, and an Arduino firmware. Gnome Pomodoro showcases its state by D-Bus signals. Gomoduino's Python script connects to D-Bus, parses the signals and relays information about state changes to the Arduino counterpart via serial comm. Then, the simple Arduino firmware changes the LED output so your folks can leave you be on your pomodoros.
Here is the Arduino layout:
<img src="https://github.com/viccuad/gomoduino/raw/master/assets/web/Sketch_schem.png" width="600" />
Here is the Python script usage:
```terminal $ ./gomoduino.py -h usage: gomoduino.py [-h] [-d] [-ns]
A script for inputting gnome-pomodoro's state to serial port
optional arguments: -h, --help show this help message and exit -d, --debug show debug messages -ns, --noserial don't try to connect serial port
```
See docs/
for more info on all of it.
Dependencies
For the Arduino part
Do it with Arduino IDE
(1). $ apt install arduino
or go console style:
(2). Install inotool
a. For Debian based systems: $ sudo apt-get install python-pip
b. Install inotool: $ pip install --user inotool
(never ever use pip with sudo!)
c. Add ~/.local/bin
to your PATH
For the Python script:
Debian:
$ apt install python-dbus python-serial
Opensuse:
$ zypper in dbus-1-python python-pyserial
Also, your user needs to be in the tty
and dialout
groups:
terminal
$ sudo usermod -a -G tty $USER
$ sudo usermod -a -G dialout $USER
Remember to log off and on again for the changes to take effect.
Building
Arduino part
Do it with Arduino IDE or go console style:
(2). $ cd firmware; ino build; ino upload
.
Python part
You might need to change the serial device you are going to connect to.
License
This work is released under the terms of GPLv3 license. You can find a copy of the GPLv3 license in LICENSE file.
TODO:
- [ ] Make a systemd's unit service file for it
- [ ] Improve host python script
- [ ] Add time counter BCD display to the microcontroller (currently missing HW, lends welcome)
- [ ] Make the script a nice python module to install it correctly
Looking for mad skills in:
hardware python systemd python3 microcontroller pomodoro
This project is part of:
Hack Week 14 Hack Week 15
Activity
Comments
Be the first to comment!
Similar Projects
work on sunxi a64 cpufreq driver (for teres-1, pine64) by mbrugger
With the teres-1 [1] laptop we have a first arm...
Uyuni: improve spacewalk-repo-sync performance by moio
Let's make reposync faster
Every day,
...
Evaluate mirrormanager (or mirrormanager2) for download.opensuse.org mirror management by lrupp
As there is no progress around [MIrrorPinky](ht...
Porting Askbot to Python 3 by rbueker
During the last year Askbot, a question and ans...
Make "salt-toaster" available to be used outside SUSE by PSuarezHernandez
The salt-toaster
(https://github.com/openSUSE...
Finish packaging Angr in OBS by a_faerber
Following a FOSDEM presentation on [Angr](http:...
Migrate more OBS service scripts to pure systemd by enavarro_suse
Following the work started in the last hackweek...
PXEAT - A PXE management tool by whdu
PXEAT (stand for PXE Administration Tool) ...
terracumber: python replacement for sumaform-test-runner by juliogonzalezgil
At SUSE Manager and Uyuni we use right now a se...
Finish packaging Angr in OBS by a_faerber
Following a FOSDEM presentation on [Angr](http:...