This repository includes all of the code for the NoViz-Thermal prototype we use to explore how non-visual feedback can support users in behaving securely online. We collect TLS data through a Mozilla Firefox browser extension. This data is communicated to our node server and communicated to an Arduino Uno which controls a heating pad. The heating pad changes temperature based on the security information gathered from our browser extension. This system can be used to supplement or replace traditional HTTPS warnings.
=== The Team ===
This prototype started as Daniela Napoli's course project for exploring the role of embodied cognition in usable security. Sebastian Navas Chaparro refactored and optimized the web app to what you can see today!
Right now, we're exploring ways to improve thermal feedback and other potential non-visual feedback implementations. For more info about the project check out our short paper: https://www.usenix.org/system/files/soups2020_poster_napoli.pdf
This prototype was inspired by...
- Wilson et al.'s exploration of thermal feedback
- Liz Coelho's controllable heater project
- Reginald Watson's Open Sound Control (OSC) web app example
Welcome to the thermaltrackpad project! In the next few lines we will explain what you need to get this working. As we continue with the development of this project, this list may change in the near future.
Software: Arduino IDE, Processing IDE, MongoDB, Firefox Browser, NodeJS
Hardware: 1 Thermoelectric Cooler, 1 N-Channel MOSFET, 1 TMP102 digital temperature sensor, 1 10k ohm resistor, 1 Arduino Uno Rev 3 or equivalent, Three LEDS and 3 330 ohm resistors (for testing), Wire, alligator clips, breadboard
Using the command line...
- Navigate to the directory where you want to place the repository
git clone https://github.com/danielanapoli/thermaltrackpad.git
cd thermaltrackpad/trackpad/server
npm install
- Look at the file called config-example.json in the resources folder
- Create a config.json file following the example and store it in the resources folder
- Open your Firefox Browser
- In the search bar type:
about:debugging
- On the left of the screen, click on the This Firefox button
- Click on the Load temporary Add-on... button
- This will pop-up your file system
- Use the pop-up to navigate to our repository
- Inside the repository, you will find a folder called extension
- Pick the file called manifest.json
- Click on the open button
- Follow the picture at the bottom to assemble the hardware
- Open the Arduino IDE
- Click on the File button at the top of the screen
- Click on the Open... button
- This will pop-up your file system
- Use the pop-up to navigate to our repository
- Inside the repository, you will find a folder called arduino that contains a folder called thermaltrackpad
- Pick the file called thermaltrackpad.ino
- Click on the open button
- Install the VSync.h library
- You can find instructions here: https://github.com/erniejunior/VSync
- You can now connect the Arduino board to your computer using the USB cable
- Go to Tools->Port and choose one to communicate to the board
- Open the Processing IDE
- Click on the File button at the top of the screen
- Click on the Open... button
- This will pop-up your file system
- Use the pop-up to navigate to our repository
- Inside the repository, you will find a folder called osc that contains a folder called processing
- Pick the file called processing.pde
- Click on the open button
- Install the needed libraries by going to Sketch->Include Library...->Add Library...
- Use the filter to look for:
- VSync
- oscP5
- The install button is at the bottom-right of the screen
- Use the filter to look for:
- Make sure that the variable
port
(line 24) is set to the port being used for the Arduino- You can check the port in the Arduino IDE by going to Tools->Port
- Get the web app running:
- Using the command line
- Navigate to our repository
cd trackpad/server/
npm start
- Go to Firefox Browser
- Search for http://localhost:8080/
- Using the command line
- Make sure that your extension is set up
- Note: Everytime you open the Firefox Browser, you will have to set up the extension again
- Upload the Arduino sketch to the board
- Run the Processing sketch