A complete software package for FSR dance pads.
Join the discord for any questions/suggestions
- React web UI to customize sensitivity
- Profiles & persistence
- Light support
- A Teensy or Arduino
- uses native keyboard library for Arduino and Joystick library for Teensy
- Python 3.6+
- virtualenv
- Node 12+
- yarn
Follow a guide like fsr-pad-guide or fsr to setup your Arduino/Teensy with FSRs.
- Install Arduino IDE (skip this if you're using OSX as it's included in Teensyduino)
- Install Teensyduino and get it connected to your Teensy and able to push firmware via Arduino IDE
- In Arduinio IDE, set the
Tools>USB TypetoSerial + Keyboard + Mouse + Joystick(orSerial + Keyboard + Mouse) - In Arduinio IDE, set the
Tools>Boardto your microcontroller (e.g.Teensy 4.0) - In Arduinio IDE, set the
Tools>Portto select the serial port for the plugged in microcontroller (e.g.COM5or/dev/something) - Copy in the code from fsr.ino
- By default, A0-A3 are the pins used for the FSR sensors in this software. If you aren't using these pins alter the SensorState array
- Push the code to the board
- Open
Tools>Serial Monitorto open the Serial Monitor - Within the serial monitor, enter
tto show current thresholds. - You can change a sensor threshold by entering numbers, where the first number is the sensor (0-indexed) followed by the threshold value. For example,
3180would set the 4th sensor to 180 thresholds. You can change these more easily in the UI later. - Enter
vto get the current sensor values. - Putting pressure on an FSR, you should notice the values change if you enter
vagain while maintaining pressure.
- Install Python
- Install Node
- Install yarn. A quick way to do this is with NPM:
npm install -g yarn
- Install yarn. A quick way to do this is with NPM:
- Within server.py, edit the
SERIAL_PORTconstant to match the serial port shown in the Arduino IDE (e.g. it might look like"/dev/ttyACM0"or"COM1")- You also may need to modify the
sensor_numbersvariable.
- You also may need to modify the
- Open a command prompt (or terminal) and navigate to
./webui/serverwithcd webui/server - Run
python -m venv venv(on Windows you may need to replacepythonwithpy) - Run
venv\Scripts\activate(on Linux you runsource venv/bin/activate) - Run
pip install -r requirements.txtto install dependencies - Then move to the
./webuidirectory by doingcd .. - Run
yarn install && yarn build && yarn start-api- On Linux, you'll also need to edit the
start-apiscript in./webui/package.jsonto referencevenv/bin/flaskinstead ofvenv/Scripts/flask
- On Linux, you'll also need to edit the
The UI should be up and running on http://localhost:5000 and you can use your device IP and the port to reach it from your phone (e.g. http://192.168.0.xxx:5000 )
- If you use localhost in your browser and if the UI looks choppy, try using your local IP instead
- If you see the following error, ensure the "Serial Monitor" isn't already open in Arduino IDE
serial.serialutil.SerialException: [Errno 16] could not open port /dev/cu.usbmodem83828101: [Errno 16] Resource busy: '/dev/cu.usbmodem83828101 - If you notice that your input is delayed and perhaps that delay increases over time, you can sometimes rectify that by restarting the server. Close your
start-apiwindow and run it again.
Create a new text file called start_fsrs.bat and place it on your desktop.
start "" http://YOUR_PC_NAME_OR_IP:5000/
cd C:\Users\YourUser\path\to\fsr\webui
yarn start-apiNow you can just click on that file to open the UI and start the server.

