Tiny USB Joystick




Introduction: Tiny USB Joystick

About: Make it yourself if you cannot buy one!

This instuctables show how to make a very simple tiny USB joystick.

This instructables is related to Hall Effect USB Joystick for providing a low cost solution.

Step 1: Preparation


A 2-axis joystick breakout module

Digispark Dev Board

This is a tiny dev board that can emulate USB HID device, e.g. USB Keyboard, mouse or joystick


A tiny breadboard, some breadboard wires and some pin headers

Step 2: Pin Header Preparation

Soldering pin headers to the board if not yet.

CAUTION Before Plug Into Breadboard

Digispark dev board power pins are not breadboard friendly!

This project only require 5V and GND pins, It is required bent the 5V pin a little bin outside, so it is not connect in the same row while plug into breadboard. Or you will Blow Something Out.

Step 3: Assembly

The pin placement for both board are unbalance, it need further pins to support the corners that does not have pin header.

Here are the connection summary:

Digispark -> Joystick
GND       -> GND
5V        -> 5V
P2        -> VRx
P5        -> VRy
P0        -> SW


  • SW trigger by press down the joystick
  • P3 and P4 is connected to USB, so any USB HID project cannot connect other things to these 2 pins
  • P2 still available for something else, e.g. a signal LED or an extra button
  • It is required analog input pins to read VRx and VRy value, Digispark P2 and P5 are the analog input pins. Some board may not enabled P5 (efuse RSTDISBL bit). You may test it by Arduino "blink" example on pin 5. You are required to re-burn the Bootloader or simply change the efuse to enable it. More details: https://www.instructables.com/id/Digispark-DIY-Th...

Ref.: http://eleccelerator.com/fusecalc/fusecalc.php?ch...

Step 4: Program

Setup Arduino with Digispark support if not yet:


Download and program the source code:


Step 5: Enjoy!

Now you have a tiny device to help you operate with 2-axis analog value.

Be the First to Share


    • Metal Contest

      Metal Contest
    • Summer Fun: Student Design Challenge

      Summer Fun: Student Design Challenge
    • DIY Summer Camp Contest

      DIY Summer Camp Contest



    5 months ago on Step 4

    The code you shared doesn't actually read the joystick, it just moves one X programmatically.. same code as the example from the library..


    Reply 5 months ago

    The digispark have 2 pins can read analog signal, P2 and P5. However, some clone board keep P5 as reset pin and not yet enable P5 as a I/O pin in efuse. You may test the blink program on P5 to test is it can blink first.