Forearam Wrestling

by Upside Down Labs in Circuits > Sensors

491 Views, 1 Favorites, 0 Comments

Forearam Wrestling

Demo.gif

Build a fun EMG-powered arm wrestling game where two players compete using only their muscle signals. Using Muscle BioAmp Patchy, an Arduino UNO R4 Minima, a servo motor, and a simple web dashboard, the system measures each player's EMG signals in real time and moves the servo claw based on who generates the stronger muscle activity. It's a fun and interactive project that demonstrates how EMG signals can be used to create real-world human-computer interface (HCI) applications.

Watch the full video of this Instructable on YouTube.

Supplies

2 Patchy.png
1x claw control.png
2 Patchy Wire.png
2.png
Alcohol Swabs.png
Arduino Expansion Shield.png
USB Cable.png

1 × Arduino UNO R4 Minima

1 × Arduino UNO R4 Shield

(shield not included in the kit)

2 × Muscle BioAmp Patchy

Alcohol swabs

2 × 3-pin male-to-female jumper cables with REF cable

6 × female-to-female jumper cables

6 × Boxy Gel Electrodes

1 × Servo motor

1 × 3D-printed claw

1 × Laptop

Arduino IDE

USB Type-C cable

How the Game Works?

Demo.gif
claw movement.gif

This project uses two EMG channels to measure muscle activity from two different players.

Here is the basic idea:

  1. Each player places one Muscle BioAmp Patchy on their forearm.
  2. When a player flexes their muscles, the sensor detects the EMG signal.
  3. The Arduino reads both signals in real time.
  4. The stronger signal controls the servo claw.
  5. Player 1’s goal is to close the claw.
  6. Player 2’s goal is to open the claw.

Before the match starts, the system performs a calibration stage so it can measure the resting EMG level of both players.

Prepare the Skin

elbow skin prepartion.gif
skin preparation.gif

Good signal quality starts with proper skin preparation.

Use an alcohol swab to clean the forearm and elbow area of both players.

This helps reduce noise and improves signal quality.

Place the Electrodes

stack the patchy.gif
Electrode on forarm.gif
cable to patchy.gif
cable attached to elecrodes.gif

For each player, attach the electrodes carefully.

  1. Snap the Muscle BioAmp Patchy onto two adjacent Boxy Gel Electrodes.
  2. Peel the electrodes from the plastic sheet and stick one electrode to the bony region near the elbow.
  3. Place the BioAmp Patchy on the forearm, in the ulnar nerve region.
  4. Connect the Muscle BioAmp Patchy wire to the sensor.
  5. Connect the reference wire to the reference electrode.

Repeat the same process for the second player.

For fair gameplay, make sure both players have the sensor placed in the same position.

Make the Hardware Connections

stack.gif
male to female jumper cpnect.gif
Connecting Claw Controller to D3 pin at Shield.png
Arduino Shield Showing A0, A1 for Patchy 1, 2.png
Connecting Patchy 1 to Arduino Shield to A0, VCC, GND.png
Complete setup image.png

Now connect everything together.

  1. Stack the Arduino UNO R4 Shield on top of the Arduino UNO R4 Minima.
  2. Connect the female-to-female jumper cables to the male connector of each BioAmp Patchy cable.
  3. Connect the shield’s exposed power and analog pins to the sensors.

Use the following signal connections:

  1. Player 1 sensor → A0
  2. Player 2 sensor → A1

This defines the game:

  1. Player 1 tries to close the claw
  2. Player 2 tries to open the claw

Next, connect the servo motor:

  1. Servo power → power pins
  2. Servo ground → ground
  3. Servo signal → D2

If you do not have the Arduino shield, you can also use a breadboard to expose the VCC and GND pins and make the same connections using male-to-male jumper wires.




Upload the Firmware

go to the muscle bioamp arduino firmware - green code button.png
Extract and Open the firmware folder 14_2ch_emg_bioarm_wrestling.png
click on code and download zip.png
Opening .ino sketch.png
Board - Boards Manager.png
Install arduino uno r4 boards - v1.6.0.png
select correct com port.png
Upload button.png

Now it is time to load the Arduino code.

  1. Connect the Arduino UNO R4 Minima to your laptop using a USB Type-C cable.
  2. Open the Muscle BioAmp Arduino Firmware repository on GitHub.
  3. Open the folder named 14_2CH_EMG_ArmWrestling.
  4. Copy the code from the .ino file.
  5. Open the Arduino IDE and create a new sketch.
  6. Paste the code into the sketch.
  7. Open Boards Manager and install the Arduino UNO R4 boards package if needed.
  8. Go to Tools → Board and select Arduino UNO R4 Minima.
  9. Click Upload.

Once the upload is complete, the hardware is ready for the game.

Open the Dashboard

open the file index.html for the dashbaord (1).png
BioArm Wrestling interface screenshot.png
selecting webserial - cdc port for the arduino serial connection.png
Winner.png
45.png
Interface starting the match (start duel).png
Timer starts.png

Inside the same 14_2CH_EMG_ArmWrestling folder, you will also find dashboard.html.

This file is the web interface for the project.

Open the HTML file in your browser and connect it to the Arduino UNO R4 Minima through serial.

Check the Dashboard

Once the dashboard opens, you will see two cards:

  1. Player 1
  2. Player 2

Each card shows the real-time EMG signal from its sensor.

In the center of the screen, there is a vertical sliding bar that shows which player has the advantage:

  1. If Player 1 is stronger, the bar moves downward.
  2. If Player 2 is stronger, the bar moves upward.

The closer the bar moves to one side, the closer that player is to winning.

Calibration Stage

Before the actual match begins, the system must calibrate.

During calibration:

  1. Both players should keep their arms relaxed.
  2. The LED array lights up one by one.
  3. After that, the entire LED array blinks three times.
  4. Once calibration is complete, the game starts.

The dashboard also shows calibration progress.

When calibration reaches 100%, the system stores the resting EMG level of both sensors as the baseline.

This baseline is used to compare muscle activity during the game.

Watch the LED Indicator

The Arduino shield LED shows the current state of the system.

  1. During calibration, the LED blinks three times repeatedly.
  2. After calibration, the LED stays ON continuously to show that the game is ready.

If calibration is missed or you want to restart, click the Rematch button on the dashboard.

Start the Match

demo 2.gif

Now comes the fun part.

Two players compete against each other:

  1. Player 1 tries to contract harder and close the claw.
  2. Player 2 tries to contract harder and open the claw.

As the EMG signal changes, the servo claw moves in real time.

The stronger the signal difference, the more the claw moves in that direction.

This makes the game feel responsive and interactive.

See the Winner

winnerr.gif

At the end of the match, the dashboard announces the winner.

The result is also shown with the LEDs:

  1. If Player 1 wins, 1 LED glows.
  2. If Player 2 wins, 2 LEDs glow.

You can then start a new match using the rematch option or challenge another player.

Conclusion

This EMG-powered arm wrestling game is a fun way to explore muscle sensing, real-time control, and human-machine interaction.

Using just two EMG channels, a servo claw, and a simple dashboard, you can turn muscle activity into a competitive game between friends.

You can learn more about Muscle BioAmp Patchy in the documentation linked in the description. Links to the hardware and other tools are also provided there.

If you enjoyed this project, share it with your friends, leave a comment, and try building your own version.

Happy tinkering!