Skip to content

This project turns a Wii/Wii-U Nunchuk remote into a simple BLE peripheral.

License

Notifications You must be signed in to change notification settings

AustinAttempts/BLE-Nunchuk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BLE-Nunchuk

This project turns a Wii/Wii-U Nunchuk remote into a simple BLE periphieral with the use of the Arduino Nano ESP32.

Required Materials

Setup

Software

To build this project in the Arduino IDE there are 2 extensions that must be installed.

  1. ArduinoBLE by Arduino
  2. WiiChuck by Kevin Harrington

Hardware

NOTE: Different manufactureres of the Nunchuk use different wiring colors for the 4 relevant connections. Due to this, it is important to base wiring off of connections to the propietary male connector instead of wire color. I note this becuase googled guides to the wiring guides can be missleading.

Remove the male connector and note how the wires are connected to the pin out compared to the below picture. The only wires that matter are connected to pins 1, 3, 4, 6.

Nunchuk Pinout

  • Pin 1 = SDA
  • Pin 3 = 3.3 v
  • Pin 4 = GND
  • Pin 6 = SCL

Using the Arduino Nano ESP32 pinout there is no explicit pins labeled for i2c SDA & SCl pins. However, the datasheet says they can be found as follows:

  • SDA = A4
  • SCL = A5

This is all the wiring required to get the project running!

Finally, to compile this project the ArduinoBLE Library by Arduino must also installed. This can easily be added using the Library Manager built into Arduino IDE. I strongly suggest reading this documentation as an introduction into Bluetooth Low Energy (BLE).

BLE Output

To easily test the Nunchuk you can use a generic central cenrtal app. I recommend LightBlue (IOS and Android) Android users can also use nRF Connect, however the IOS expierince on this app is lackluster.

In device discovery the device should be named 'Nunchuk'. Upon connection all below listed UUIDs should be viewable services:

Service UUID
Nunchuk e4257d92-0c9f-4fbc-bcf2-a8361bffcfb3

Inside the Nunchuk service are the following relevant characteristics which have read or notify permissions:

Value UUID Range
Z Button 9ea41596-18ec-45a9-a194-49597368e655 0 : 255
C Button 9ea41596-18ed-45a9-a194-49597368e655 0 : 255
Joystick X 9ea41596-18ee-45a9-a194-49597368e655 0 - 256
Joystick Y 9ea41596-18ef-45a9-a194-49597368e655 0 - 256
Accelration X 9ea41596-18f0-45a9-a194-49597368e655 0 - 256
Accelration Y 9ea41596-18f1-45a9-a194-49597368e655 0 - 256
Accelration Z 9ea41596-18f2-45a9-a194-49597368e655 0 - 256
Pitch 9ea41596-18f3-45a9-a194-49597368e655 0 - 256
Roll 9ea41596-18f4-45a9-a194-49597368e655 0 - 256

Contributing

I am just learning BLE and spent some time reading through the BLE Assigned Numbers docuemntation but still am unsure if I am properly using the predefined UUID's for characteristics. If anyone can help my undersatnding on the topic I would greatly welcome the input.

License

License: MIT

Refrences

  1. Wii Brew
  2. Using a Wii Nunchuk with Arduino

About

This project turns a Wii/Wii-U Nunchuk remote into a simple BLE peripheral.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages