Adding LED lights to the A & B buttons on the Wii Remote and Classic Controller
By Colin Geddes
January 18, 2007 – A new mod has been hacked for the Wii Remote and Classic Controller that allows for blue LED lights to be added to the A & B buttons on both the Classic and the Wii Remote controllers. These blue LED lights are the very same seen on the bottom of the Wii Remote to indicate which player you are controlling.
This mod obviously is not overtly complex, and the result is pretty damn cool! To utilize this on the classic controller, solder 3V mini blue LED’s to the red wire pin and use the black wire pin to ground.
The best part about this mod is that the additional lights do not have any noticeable affect on the Wii Remote battery life. Like the majority of current Wii mods, this mod is purely cosmetic. Come on…doesn’t it just look awesome?
New peripherals transform your Wii Remote.
by Colin Geddes
January 16, 2007 – If you’ve ever dreamed playing Wii Sports with sports equipment instead of a remote control, Japan’s Miyavix has the answer for you! The accessory maker has announced the Pega Sports Pack, a set of attachments that will turn your Wii Remote into a golf club, tennis racket and baseball bat.
With a price of 2,780 yen (approx. $24 USD), the Pega Sports Pack includes a Wii Remote cradle three attachments. When the Wii Remote is inserted into the cradle, the attachments can then be fastened to the cradle. These attachments vary in length. The longest attachment is the baseball bat which is 40 centimeters long
All of the buttons remain unobstructed when the Wii Remote is placed into the cradle. That said, the Wii Remote’s sensor is covered when in the cradle. Additionally, Miyavix confessed that the cradle leaves a slight mark on the top of the Wiimote.
More details to come soon… check with your favorite importer for details on the Pega Sports Pack
There are a number of ‘drivers’ and applications floating around for using your Wii-Mote to control your computer and vice versa. It is being used as a mouse, keyboard and vibrator. A number of people are using it for other cool things like playing guitar.
For the linux software get WMD
For OSX get Darwiin Remote.
For Windows users get GlovePIE or BigRedPimp’s Wii-Mote App
Comments (3)The below post comes from Liquidice’s blog.
Carl Kenner is the man when it comes to the Wii Mote. Not only was the he the first person to have a working application for Windows that could read the Wii-Mote, but he did all of the programing with no wii-mote to test with.
Ever since that day he has been the driving force behind many wii-mote hacks featured on this site. His software, GlovePIE is the heart and soul of making the Wii Remote work in Windows, and several sites have started to spring up to host scripts for using the Wii-Mote with various different types of applications. He was one of the first to add Nunchuck support to his app, and his GlovePIE software can also handle multiple Wii-motes.
One of the last pieces of the Wii-Mote to be discovered is it’s speaker. Up until now, nobody has been able to successfully communicate with the speaker to produce sounds. Carl made a post today to the WiiLi forums including a script that will bring the Wii Mote’s speaker to life.
Here is the GlovePIE script you will need to test out the Wii-Mote’s Speaker from Windows:
// Carl Kenner’s Wiimote Speaker Test script! Version 2
// A = start sound, B = stop sound
// Minus = decrease sample frequency
// Plus = increase sample frequency
// It takes a short time to start (due to delays built into Poke)
// Change the next line to set the rate at which sound data is sent
// BUT it must be low enough for the wiimote to respond to the B button
// it may depend on your PC speed. Must be at least 91 for freq 13.
pie.FrameRate = 120 Hz
if not var.initialized then
var.freq = 13 // Set sample rate = 3640 Hz (so computer can keep up)
var.volume = 0×40 // volume = 40 ??? Seems to be about max
debug = var.freq
var.initialized = true
end if
if var.On and (not Wiimote.One) and (not Wiimote.Two) then
// Report 18, send 20 bytes, square wave, 1/4 sample rate freq
WiimoteSend(1, 0×18, 20 shl 3, 0xCC,0×33,0xCC,0×33,0xCC,0×33,0xCC,0×33,0xCC,0×33, 0xCC,0×33,0xCC,0×33,0xCC,0×33,0xCC,0×33,0xCC,0×33)
else if var.On and Wiimote.One then
// Report 18, send 20 bytes, square wave, 1/2 sample rate freq
WiimoteSend(1, 0×18, 20 shl 3, 0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3, 0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3)
else if var.On and Wiimote.Two then
// Report 18, send 20 bytes, square wave, 1/8 sample rate freq
WiimoteSend(1, 0×18, 20 shl 3, 0xCC,0xCC,0×33,0×33,0xCC,0xCC,0×33,0×33,0xCC,0xCC, 0×33,0×33,0xCC,0xCC,0×33,0×33,0xCC,0xCC,0×33,0×33)
end if
if pressed(Wiimote.A) then
// Enable Speaker
Wiimote.Report14 = 0×04 | Int(Wiimote.Rumble)
// Mute Speaker
Wiimote.Report19 = 0×04 | Int(Wiimote.Rumble)
// Write 0×01 to register 0xa20009
WiimotePoke(1, 0×04a20009, 0×01)
// Write 0×08 to register 0xa20001
WiimotePoke(1, 0×04a20001, 0×08)
// Write 7-byte configuration to registers 0xa20001-0xa20008
WiimotePoke(1, 0×04a20001, 0×00)
WiimotePoke(1, 0×04a20002, 0×00)
WiimotePoke(1, 0×04a20003, 0×00)
WiimotePoke(1, 0×04a20004, var.freq)
WiimotePoke(1, 0×04a20005, var.volume) // 40
WiimotePoke(1, 0×04a20006, 0×00)
WiimotePoke(1, 0×04a20007, 0×00)
// Write 0×01 to register 0xa20008
WiimotePoke(1, 0×04a20008, 0×01)
// Unmute speaker
Wiimote.Report19 = 0×00 | Int(Wiimote.Rumble)
var.On = true
end if
if pressed(Wiimote.B) then
var.On = false
Wiimote.Report19 = 0×04 | Int(Wiimote.Rumble) // Mute Speaker
Wiimote.Report14 = 0×00 | Int(Wiimote.Rumble) // Disable speaker
end if
if pressed(Wiimote.Plus) then
var.freq–
debug = var.freq
// Mute Speaker
Wiimote.Report19 = 0×04 | Int(Wiimote.Rumble)
// Write 0×01 to register 0xa20009
WiimotePoke(1, 0×04a20009, 0×01)
// Write 0×08 to register 0xa20001
WiimotePoke(1, 0×04a20001, 0×08)
// Write 7-byte configuration to registers 0xa20001-0xa20008
WiimotePoke(1, 0×04a20001, 0×00)
WiimotePoke(1, 0×04a20002, 0×00)
WiimotePoke(1, 0×04a20003, 0×00)
WiimotePoke(1, 0×04a20004, var.freq) // max volume?
WiimotePoke(1, 0×04a20005, var.volume)
WiimotePoke(1, 0×04a20006, 0×00)
WiimotePoke(1, 0×04a20007, 0×00)
// Write 0×01 to register 0xa20008
WiimotePoke(1, 0×04a20008, 0×01)
// Unmute speaker
Wiimote.Report19 = 0×00 | Int(Wiimote.Rumble)
end if
if pressed(Wiimote.Minus) then
var.freq++
debug = var.freq
// Mute Speaker
Wiimote.Report19 = 0×04 | Int(Wiimote.Rumble)
// Write 0×01 to register 0xa20009
WiimotePoke(1, 0×04a20009, 0×01)
// Write 0×08 to register 0xa20001
WiimotePoke(1, 0×04a20001, 0×08)
// Write 7-byte configuration to registers 0xa20001-0xa20008
WiimotePoke(1, 0×04a20001, 0×00)
WiimotePoke(1, 0×04a20002, 0×00)
WiimotePoke(1, 0×04a20003, 0×00)
WiimotePoke(1, 0×04a20004, var.freq) // max volume?
WiimotePoke(1, 0×04a20005, var.volume)
WiimotePoke(1, 0×04a20006, 0×00)
WiimotePoke(1, 0×04a20007, 0×00)
// Write 0×01 to register 0xa20008
WiimotePoke(1, 0×04a20008, 0×01)
// Unmute speaker
Wiimote.Report19 = 0×00 | Int(Wiimote.Rumble)
end if
This is a huge accomplishment and you can bet that soon enough the hackers will be streaming all kinds crappy 4 bit sounds to their wii-motes. Let the fun begin!!!
Once again Carl, great work!
Next up is integrating the Speaker functionality into the other Windows Wii-Mote apps, as well as the Linux and OSX wii-mote programs. Developers will want to check out the WiiLi wiki for information on how to initialize the wii-mote speaker and send sounds to it.
Comments (2)