This repository houses a MicroPython driver for the M5Stack Joystick 2 Unit.
It allows you to:
- Read the current X and Y values of the joystick
- Either integer (0 - 65535) or float (0.0 - 1.0)
- Read whether the button is pressed or not
- Control the inbuilt RGB LED
- Read the value of the inbuilt RGB LED
- Read the Bootloader and Firmware version of the device
Vid.20250127.185815483.mp4
Below is a minimal example of setting up the peripheral and then reading values from it.
from machine import SoftI2C, Pin import joystick_2_unit i2c = SoftI2C(scl=Pin(32), sda=Pin(26)) # Pins for the ATOM Lite Grove port joystick = joystick_2_unit.Joystick2Unit(i2c) joystick.set_led(253, 176, 192) print( f"x: {joystick.get_x()}, y: {joystick.get_y()}," f" button: {joystick.is_pressed()}, led: {joystick.get_led()}" )See the examples folder for example code demonstrating all of the capabilities of the device. To run these, first modify examples/config.py to match the pins used for your board, and then you can use mpremote to mount and run the code. Eg:
mpremote mount . from examples import print_statusThe easiest way to install the package is using mip via mpremote:
mpremote mip install github:HowManyOliversAreThere/micropython-joystick-2-unitAlternatively just grab joystick_2_unit.py and load it however you like.