Under the skin of the Hackpack v4, there’s a full computer with monitor and keyboard support. Once you break out of the SIGNAL kiosk you’ll initially be underwhelmed by how similar to your desktop it is (it even has a spreadsheet program!).
That’ll pass quickly. The true power of the Hackpack is in the platform. Let’s talk about how you break out, and what to do when you do.
There are three main paths to break out of the Hackpack v4 (and a somewhat hidden one you can hit through the webview).
Now that SIGNAL 2018 is over, we've created a firmware which boots to desktop.
pi and password is
The simplest way to break out of the kiosk is to use a keyboard and (probably) a Micro USB to USB dongle (such as this). Simply attach a keyboard and mouse… and when inside the SIGNAL 18 kiosk hold
ALT F4 to quit to desktop.
The white header on top of the board is a Seeed Grove connector with 3.3v UART signals aboard. Looking at the screen, from left to right the signals are Rx, Tx, 3.3V, Gnd.
Once logged in, you have a full shell. Run
sudo pkill -f kiosk.py to quit the SIGNAL kiosk and get to the desktop.
If you use one of the latter two methods to break out you probably don’t want to go back. We can help you with that too!
In the directory
/home/pi/firmware/bin there is a file
boot.sh which bootstraps the drivers and launches the kiosk. Remove or comment out this line and the next time you reboot, you’ll still taste freedom.
Hackpack v4s come by default with Wi-Fi credentials for SIGNAL 2018. There are two ways to connect to a new network.
sudo raspi-config and walk through the steps to connect.
/etc/wpa_supplicant/wpa_supplicant.conf, using your own network credentials in place of the network blocks inside.
Wi-Fi is persistent; any changes you make will automatically remain between boots.
Once you exit the kiosk, all of the functionality of your board is intact. There are three drivers running on top of a base Raspbian installation.
The LED driver onboard spins in a while loop waiting for input on a UNIX socket,
/dev/lightsocket. It expects packets 100 bytes long, padded with 0 and delimited by a vertical bar, e.g.:
Here are the commands accepted by the LED driver:
Seriously, though—you don’t need any integer over 120 or so. We mean it - the LEDs are extremely bright!
The easiest way to use the lightserver might be to use our Python light client. There we’ve defined 39 LED patterns which we use(d) during SIGNAL. Call the light client on the command line with:
python /home/pi/firmware/drivers/leds/light_client/lightclient.py -h
The input driver controls three major components on the Hackpack:
While it’s a complex piece of code, it should operate mostly as a black box. Other than some sensitivity thresholds (which we encourage you to customize), the most interesting thing we built is an input mode switch.
The input driver listens to a socket at
/dev/hackpack_input_driver. That socket allows you to flip between MOUSE mode and ARROW mode.
In MOUSE mode, the joystick operates with a mouse. The START button is a left click and the SELECT button is a right click.
In ARROW mode, the joystick acts like the arrow keys on the keyboard. The START button is an enter key and the SELECT button is a space.
Also onboard are 5 additional buttons:
If you hold down ESCAPE for 3 seconds, the Hackpack will power down safely.
cmake -DILI9341=ON -DGPIO_TFT_DATA_CONTROL=22 -DGPIO_TFT_RESET_PIN=27 -DGPIO_TFT_BACKLIGHT=23 -DSPI_BUS_CLOCK_DIVISOR=12 -DSTATISTICS=0 -DBACKLIGHT_CONTROL=ON -DDMA_TX_CHANNEL=11 -DDMA_RX_CHANNEL=4 -DDISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING=ON
If you do recompile, we suggest dropping it in the place of the current binary and restarting.
The driving goal of the Hackpack—and the drivers—is to provide you with a base for your next project well after the tents at SIGNAL have been taken down. We hope that you continue to use it long after the show and turn it into your own unique creation.
With the SIGNAL kiosk app, we’re showing you our take on one way to use the Hackpack. We know you’re going to take it further—and we can’t wait to see what you do with it.