Principle and goals

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8f8e6687-5ee6-49ab-a7c0-827af606534f/Untitled.png

The GPIO shield features:

Use the I2C bus

Add a physical button

PCB v1.1

ethoscope_GPIO_shield_1.1.zip

The jumper on J1 can be used to switch the voltage distributed by the Darlington array between internal 5V / external Vcc or internal 3.3V. Connecting external source to 5V and leaving the soldier jumper out it can also be used to use external power for those (i.e. not driven by the internal GPIO current). The Vcc for the I2C connector can also be changed between 3.3V and 5V soldering the right connections together. The connector labelled as ribbon mirrors the first 6 pins of the GPIO and can be used to connect the ribbon cable that goes to the lightbox

The jumper on J1 can be used to switch the voltage distributed by the Darlington array between internal 5V / external Vcc or internal 3.3V. Connecting external source to 5V and leaving the soldier jumper out it can also be used to use external power for those (i.e. not driven by the internal GPIO current). The Vcc for the I2C connector can also be changed between 3.3V and 5V soldering the right connections together. The connector labelled as ribbon mirrors the first 6 pins of the GPIO and can be used to connect the ribbon cable that goes to the lightbox

Components

Software control

The board is controlled by the GPIO.py script (github) which is launched independently by its own process service ethoscope_GPIO_listener.service. The service listens for buttons 33 and 37 and associates the following actions:

33 [short press] →ethoclient -c stop ; 33 [long press] → poweroff;

37 [short press] → systemctl restart ethoscope_device ; 37 [long press] → reboot;

Long press means at least 3 seconds. These are the default actions which are defined initially in the code and can be customised by altering the content of /etc/gpio.conf on the machine.