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.

dbus_diagram

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

gplv3

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 hackers with the skills:

hardware python systemd python3 microcontroller pomodoro

This project is part of:

Hack Week 14 Hack Week 15

Activity

  • over 2 years ago: vcuadradojuan liked Gomoduino: put some nice lights on your workstation to notify your coleagues when you are busy
  • about 3 years ago: thutterer liked Gomoduino: put some nice lights on your workstation to notify your coleagues when you are busy
  • about 3 years ago: tonghuix liked Gomoduino: put some nice lights on your workstation to notify your coleagues when you are busy
  • about 3 years ago: tonghuix joined Gomoduino: put some nice lights on your workstation to notify your coleagues when you are busy
  • over 3 years ago: PSuarezHernandez liked Gomoduino: put some nice lights on your workstation to notify your coleagues when you are busy
  • over 3 years ago: thutterer liked Gomoduino: put some nice lights on your workstation to notify your coleagues when you are busy
  • over 3 years ago: dmaiocchi liked Gomoduino: put some nice lights on your workstation to notify your coleagues when you are busy
  • over 3 years ago: dwaas liked Gomoduino: put some nice lights on your workstation to notify your coleagues when you are busy
  • over 3 years ago: vcuadradojuan started Gomoduino: put some nice lights on your workstation to notify your coleagues when you are busy
  • over 3 years ago: vcuadradojuan added keyword "python" to Gomoduino: put some nice lights on your workstation to notify your coleagues when you are busy
  • All 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...


    "Physical" notifications with Raspberry Pi and addressable LEDs by dannysauer

    I'd like a way to have a device on my desk whic...


    Simple script to obtain latest project version for package maintenance purpose by wnereiz

    I am now maintaining many packages for openSUSE...


    Write a commandline client for the geekos by dheidler

    There used to be a tool called tel that would...


    openSUSE Leap release process improvements by lkocman

    Goal:

    I'd like to have the release proce...


    Home assistant that doesn't spy on you - developer's edition by DKarakasilis

    There are various home assistant solutions out ...


    Try to write simple rope-base Python language-server for LSP protocol by mcepl

    Future of tools supporting editors in dealing w...


    Migrate more OBS service scripts to pure systemd by enavarro_suse

    Following the work started in the last hackweek...


    make "predictable network interface names" more predictable by mkubecek

    Since the so-called "predictable names" for net...


    labgrid: add support for sispmctl and remote ykush access by mbrugger

    labgrid [0] is an embedded board control python...


    Fix terracumber, add some python unit tests, try to extend it and publish it by juliogonzalezgil

    Last year I developed [Terracumber](https://hac...


    Simple script to obtain latest project version for package maintenance purpose by wnereiz

    I am now maintaining many packages for openSUSE...


    SUSE Manager: Windows client support by pagarcia

    Let's see how much, if any, of the steps descri...


    Build admin-tools in a stand-alone environment without obs dependencies by dmulder

    The [admin-tools appimage](https://appimage.git...


    Playing with ESP8266 by lrupp

    The [ESP8266](https://en.wikipedia.org/wiki/ESP...