Engineers Garage

  • Electronics Projects and Tutorials
    • Electronic Projects
      • Arduino Projects
      • AVR
      • Raspberry pi
      • ESP8266
      • BeagleBone
      • 8051 Microcontroller
      • ARM
      • PIC Microcontroller
      • STM32
    • Tutorials
      • Audio Electronics
      • Battery Management
      • Brainwave
      • Electric Vehicles
      • EMI/EMC/RFI
      • Hardware Filters
      • IoT tutorials
      • Power Tutorials
      • Python
      • Sensors
      • USB
      • VHDL
    • Circuit Design
    • Project Videos
    • Components
  • Articles
    • Tech Articles
    • Insight
    • Invention Stories
    • How to
    • What Is
  • News
    • Electronic Product News
    • Business News
    • Company/Start-up News
    • DIY Reviews
    • Guest Post
  • Forums
    • EDABoard.com
    • Electro-Tech-Online
    • EG Forum Archive
  • DigiKey Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • Learn
    • eBooks/Tech Tips
    • Design Guides
    • Learning Center
    • Tech Toolboxes
    • Webinars & Digital Events
  • Resources
    • Digital Issues
    • EE Training Days
    • LEAP Awards
    • Podcasts
    • Webinars / Digital Events
    • White Papers
    • Engineering Diversity & Inclusion
    • DesignFast
  • Guest Post Guidelines
  • Advertise
  • Subscribe

Connecting a Wii Controller to Raspberry Pi using Python

By Neha Rastogi September 20, 2016

Brian Hensley, an engineer by profession, is an active blogger who has contributed a lot of DIY projects on his site. One of these mentions about combining a Wii remote with a Raspberry Pi with the use of Python. This was a part of a robot project that Brian intended to develop. In this project, he wrote a program and ran it on the Pi which allowed him to connect the Wiimote through Bluetooth after which he was able to control the data with the help of Python. 
 
 
 
Before starting the procedure, Brian acquainted himself with the know-how of connecting a Wii controller to a virtual PC. Then he used the Cwiid module to write a small program that could easily grab the data. Once the connection was established, he ported it to the Raspberry Pi. For this setup, he used parts like Raspberry Pi, Wii controller, Standard Raspberry Pi cables and a Bluetooth USB dongle. 
 
First and foremost, the project needed the latest version of Debian to be downloaded on the Raspberry PI. After ensuring this, Brian plugged the dongle into the USB port of the PI and installed the Bluetooth package which took around 1 hour. This time, the duration can be reduced by eliminating the use of GUI. When the Bluetooth connection was established, he scanned for devices and pressed 1+2 on the controller to put it in the discovery mode. 
 
After that, he downloaded and installed the CwiiD module that lets the user control a Wiimote in python. Then he wrote the required program into the directory and called it. At this point, he pressed 1+2 on the remote which finally connected the controller to the Pi. 
 
Now as the buttons are pressed on the remote, related information is displayed on the screen depending upon the instructions that you had set. Here Brian had set the centre point as Position 50 with limits from 0-100. As a result, when he pointed the remote horizontally in front of the screen and pressed the left and right buttons, the values decremented and incremented respectively from 0 to 100.
 
Moreover, when he pressed the buttons 1 and 2 individually, the information was displayed accordingly disclosing which button was pressed. Then he pressed the left and button 1 which said it’s moving backwards while pressing right button along with 2 said that it’s moving forward. He also set the instructions for minus button which produced a rumbling sound on being pressed. Lastly, the Bluetooth connection was switched off by pressing the plus button. 
 
Brian had prepared this project with the aim of connecting the Wiimote to his robot so that it could be controlled through Pi via Python. You can also develop this interesting project at home by referring to this video uploaded by Brian that reveals the demo of the project. 

Filed Under: Reviews

 

Next Article

← Previous Article
Next Article →

Questions related to this article?
👉Ask and discuss on Electro-Tech-Online.com and EDAboard.com forums.



Tell Us What You Think!! Cancel reply

You must be logged in to post a comment.

EE TECH TOOLBOX

“ee
Tech Toolbox: Internet of Things
Explore practical strategies for minimizing attack surfaces, managing memory efficiently, and securing firmware. Download now to ensure your IoT implementations remain secure, efficient, and future-ready.

EE Learning Center

EE Learning Center
“engineers
EXPAND YOUR KNOWLEDGE AND STAY CONNECTED
Get the latest info on technologies, tools and strategies for EE professionals.

HAVE A QUESTION?

Have a technical question about an article or other engineering questions? Check out our engineering forums EDABoard.com and Electro-Tech-Online.com where you can get those questions asked and answered by your peers!


RSS EDABOARD.com Discussions

  • Does mobility carrier ratio changes with Wn? (0.18um) inverter design
  • DC/DC Converter with wide range input
  • i need an embedded c program that will read a 12 bit memory address from the io pins and output the data to pins from the memory in a 8051 mcontroller
  • DIY Buck Boost Converter using XL6019
  • Getting Started with Electronics: What Helped You the Most in the Beginning?

RSS Electro-Tech-Online.com Discussions

  • parallel-to-serial problem
  • 12v battery, 18v magic
  • STM32 checking self-written delay function
  • Behringer MX 1602 mixer - reading block diagram
  • Reclaiming missing motherboard header

Featured -USB Series

  • Controller Chip Selection for Developing USB Enabled Device (Part 6/6)
  • Signal and Encoding of USB System (Part 5/6)
  • USB Requests and Stages of Control Transfer (Part 4/6)
  • USB Descriptors and their Types (Part 3/6)
  • USB Protocol: Types of USB Packets and USB Transfers (Part 2/6)
  • Introduction to USB: Advantages, Disadvantages and Architecture (Part 1/6)

Recent Articles

  • Littelfuse driver achieves less than 1 µA standby current for energy-efficient designs
  • Microchip optimizes power consumption in transceiver-less FPGA design for automotive applications
  • What is an IoT platform and when is one useful?
  • Silanna launches laser driver IC with sub-2 ns FWHM pulse for LiDAR application
  • LEM introduces current sensors with bandwidth up to 2.5 MHz for precision applications

EE ENGINEERING TRAINING DAYS

engineering

Submit a Guest Post

submit a guest post
Engineers Garage
  • Analog IC TIps
  • Connector Tips
  • Battery Power Tips
  • DesignFast
  • EDABoard Forums
  • EE World Online
  • Electro-Tech-Online Forums
  • EV Engineering
  • Microcontroller Tips
  • Power Electronic Tips
  • Sensor Tips
  • Test and Measurement Tips
  • 5G Technology World
  • Subscribe to our newsletter
  • About Us
  • Contact Us
  • Advertise

Copyright © 2025 WTWH Media LLC. All Rights Reserved. The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of WTWH Media
Privacy Policy

Search Engineers Garage

  • Electronics Projects and Tutorials
    • Electronic Projects
      • Arduino Projects
      • AVR
      • Raspberry pi
      • ESP8266
      • BeagleBone
      • 8051 Microcontroller
      • ARM
      • PIC Microcontroller
      • STM32
    • Tutorials
      • Audio Electronics
      • Battery Management
      • Brainwave
      • Electric Vehicles
      • EMI/EMC/RFI
      • Hardware Filters
      • IoT tutorials
      • Power Tutorials
      • Python
      • Sensors
      • USB
      • VHDL
    • Circuit Design
    • Project Videos
    • Components
  • Articles
    • Tech Articles
    • Insight
    • Invention Stories
    • How to
    • What Is
  • News
    • Electronic Product News
    • Business News
    • Company/Start-up News
    • DIY Reviews
    • Guest Post
  • Forums
    • EDABoard.com
    • Electro-Tech-Online
    • EG Forum Archive
  • DigiKey Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • Learn
    • eBooks/Tech Tips
    • Design Guides
    • Learning Center
    • Tech Toolboxes
    • Webinars & Digital Events
  • Resources
    • Digital Issues
    • EE Training Days
    • LEAP Awards
    • Podcasts
    • Webinars / Digital Events
    • White Papers
    • Engineering Diversity & Inclusion
    • DesignFast
  • Guest Post Guidelines
  • Advertise
  • Subscribe