Info: WiiMote support for GLBasic games. Currently limited to Win32, though. Full support, full compatibility, any number of players. Uses WiiUse library, thus GPL or LGPL for non-commercial programs. Download: WiiMote.rar. How to Use Your Wii Remote As a Mouse on Windows. The Wii Remote was designed exclusively for the Nintendo Wii. Using a bluetooth adapter with BlueSoleil software, however, you can connect your Wii Remote to a computer running.
Wiimote - Wii. Brew. This article is a technical guide to the Wii Remote.
For a high- level overview of the Wii Remote, see the Wikipedia entry. The Wii Remote (informally known as the Wiimote) is the Wii's main input device. It is a wireless device, using standard Bluetooth technology to communicate with the Wii. It is built around a Broadcom BCM2. System- on- a- chip, and contains multiple peripherals that provide data to it, as well as an expansion port for external add- ons.
Johnny Chung Lee > Projects > Wii. The official discussion forums for my wiimote projects can be found here: WiimoteProject.com. The multitouch demos are custom C# DirectX programs. Oliver Kreylos' research and development homepage. Wiimote Hacking - Using the Nintendo Wii controller in ways that were never intended. Control Your PC using your WiiMote pointer as your mouse, with a On-Screen Virtual Keyboard. Managed Library for Nintendo's Wiimote. Posted: Mar 13, 2007 at. Okay i have been using the Wii library very successfully in many of my programs as a mouse and/or controller. The Wii Remote communicates using Bluetooth wireless technology. With additional programs, you can use the Wiimote to operate a PowerPoint presentation, a digital whiteboard, a home entertainment system, and much more.
Easily Connect a Wiimote to your PC. Use a bluetooth adapter and some free software to read data from your wiimote’s accelerometer and sensors. Want to watch this again later? Sign in to add this video to a playlist.
The Wii Remote uses (and, at times, abuses) the standard Bluetooth HID protocol to communicate with the host, which is directly based upon the USB HID standard. As such, it will appear as a standard input device to any Bluetooth host. However, the Wii Remote does not make use of the standard data types and HID descriptor, and only describes its report format length, leaving the actual contents undefined, which makes it useless with standard HID drivers (but some Wiimote Drivers exist). The Wii Remote actually uses a fairly complex set of operations, transmitted through HID Output reports, and returns a number of different data packets through its Input reports, which contain the data from its peripherals. Here are the known features and their status. Bluetooth Communication The wiimote communicates with the host via standard bluetooth protocol.
The wiimote can be placed into discoverable mode for 2. Holding down the 1 and 2 button continuously will force the wiimote to stay in discoverable mode without turning off.
This does not work with the sync button, though. When in discoverable mode, a number of the player LEDs based on the battery level will blink.
With full battery all four LEDs will blink, the lower the battery the less LEDs will blink. During device inquiry the host will find all discoverable nearby wiimotes. Now the host can establish a bluetooth baseband connection to the wiimote, no bluetooth pairing is needed, however, if bluetooth pairing is performed, the wiimote is able to reconnect to the host if disconnected. It is possible that authentication is now mandatory for the 1 + 2 temporary sync.
This involves sending a PIN to the wiimote. Bluetooth pairing is not required to use a wiimote and you can proceed by establishing a HID connection without pairing at all. However, if the wiimote is paired, it will actively seek out for its last connected host on disconnection and reestablish the connection. The following section explains the bluetooth device pairing, if no pairing is required, skip this section. The bluetooth device will ask the host for a link key, which must be rejected so it will ask for a PIN- Code.
The PIN- Code is the binary bluetooth address of the wiimote backwards. Following a short piece of C code to calculate the PIN. Lets assume the Wiimote has the bluetooth address . If you want the PIN for bluetooth pairing in a simple string, do the following. After pairing you continue with establishing the HID connection the same way as without pairing. That means if the wiimote is now disconnected from the host, it will actively seek out for the host if any button is pressed and establish a baseband and HID connection. The wiimote will never actively send pairing requests since this is not needed.
Also remember that this works with any button not only the power- button. However, after establishing the connection, the wiimote sends a button- input- report and this allows the host to see what button was pressed. So the host may reject the new connection if any button except the power- button was pressed. Also it is not yet investigated whether a link key has to be created (by sending a PIN) on every connection or whether the link key can be saved and reused on new connections. Though, creating a new link key on every connection works fine. That is, the last paired host is tried first and so one.
If button 1 and 2 or the sync button on its back are pressed, the wiimote will not actively seek out for its host but instead place itself in discoverable mode and wait for incoming connections so bluetooth pairing does not conflict with normal host- side connections. If this is considered a security issue, then don't pair your devices. In particular, it reports. Wii Remote/old Wii Remote Plus. Wii Remote Plus. Name Nintendo RVL- CNT- 0. Nintendo RVL- CNT- 0.
TR. Vendor ID 0x. Product ID 0x. 03. Major Device Class 1. On Windows you don't need to deal with L2.
CAP yourself, and can use high- level windows HID functions. This block includes an enumeration of reports that the device understands.
A report can be thought of similar to a network port assigned to a particular service. Reports are unidirectional however, and the HID descriptor lists for each port the direction (Input or Output) and the payload size for each port. Like all Bluetooth HID devices, the Wii Remote reports its HID descriptor block when queried using the SDP protocol. However, no information regarding the actual data units within each report is returned, only the length in bytes. When using a Wii Remote, all input reports are prepended with 0xa. Output reports are sent over the data pipe, which is also used to read input reports (thus, the control pipe is essentially unused).
Each byte is written out in hexadecimal, without the 0x prefix, separated by spaces. For example. is a DATA input packet (0xa. When using higher level HID functions rather than Bluetooth functions, the bytes in parentheses will never be present. This is not included above to avoid clutter. In every single Output Report, bit 0 (0x. Rumble feature. Additionally, bit 2 (0x.
Output Reports as the ON/OFF flag for the specific feature controlled by it. For example, sending 0x. Report 0x. 19 (Speaker Mute) will mute the speaker. Sending 0x. 00 will unmute it. These Output Reports share the above behavior: Data Reporting Mode (0x. IR Camera Enable (0x.
Speaker Enable (0x. Speaker Mute (0x. IR Enable 2 (0x. 1a).
This includes all the 0x. The Status Report will also be automatically sent when an Extension Controller is connected or disconnected. If this report is received when not requested, the application 'MUST' send report 0x. VV is the current battery level, L is the LED state, and F is a bitmask of flags indicating, whether the battery is flat, whether an expansion is currently connected, etc. It returns 1 to 1. This is 0xf (1. 6 bytes) for all but the last packet, where it might be less if the requested number of bytes is not a multiple of 1.
Known error values are 0 for no error, 7 when attempting to read from a write- only register or an expansion that is not connected, and 8 when attempting to read from nonexistant memory addresses. Thus, this must be known from the read request). If more than 1. 6 bytes are requested, multiple packets will be received, with AA AA addresses increasing by 1. It is sent when bit 1 of the first byte of any output report is set.
Each of these modes combines certain Core data features with data from external peripherals, and sends it to the host through one of the report IDs, determined by the mode. The data format from the peripherals is determined by the peripherals themselves, all the Wii Remote controller does is pull bytes from them and send them out to the host. Due to this, certain feature combinations are not available, as there are not enough bytes for them in any of the output modes. If bit 2 (0x. 04) is set, the Wii Remote will send reports whether there has been any change to the data or not. Otherwise, the Wii Remote will only send an output report when the data has changed. Each Mode is specified by the Output Report ID that the data will be sent to. For example, this will set mode to 0x.
Data will then arrive through Input Report 0x. Following a connection or disconnection event on the Extension Port, data reporting is disabled and the Data Reporting Mode must be reset before new data can arrive. In all modes except for 0x. Buttons data includes the LSBs of the Accelerometer data. In mode 0x. 3e/0x. Buttons data includes the Z- axis Accelerometer data.
AA AA AA is the Accelerometer data. The 8 EE bytes are from the Extension Controller currently connected to the Wii Remote.
AA AA AA is the Accelerometer data. The 1. 2 II bytes are from the built- in IR Camera. The 1. 9 EE bytes are from the Extension Controller currently connected to the Wii Remote. AA AA AA is the Accelerometer data. The 1. 6 EE bytes are from the Extension Controller currently connected to the Wii Remote. The 1. 0 II bytes are from the built- in IR Camera, and the 9 EE bytes are from the Extension Controller currently connected to the Wii Remote.
AA AA AA is the Accelerometer data. The 1. 0 II bytes are from the built- in IR Camera, and the 6 EE bytes are from the Extension Controller currently connected to the Wii Remote. It is the only input report that does not include core buttons. The data is interleaved, and is returned at half the speed of other modes (as two reports are needed for a single data unit). This mode returns data from the buttons, accelerometer, and IR camera in the Wii Remote. BB BB AA II II II II II II II II II II II II II II II II II II.
BB BB AA II II II II II II II II II II II II II II II II II II. BBBB is the core button data, as specified in the Buttons section. AA AA is the Accelerometer data, in a format specific to this mode described in the Interleaved Accelerometer Reporting section. The 3. 6 II bytes are from the built- in IR Camera.
This user part is used to store calibration constants, as well as the Mii Data. Additionally, many peripherals on the Wii Remote have registers which are accessible through a portion of the address space. Bit 2 (0x. 04) of MM selects the address space. Clearing this bit results in reading from EEPROM Memory, while setting it results in reading from the control registers.
Setting bit 3 (0x. As with all other reports, it also includes the Rumble flag, which must be set to the current rumble state to avoid affecting it. During data reads, regular input reporting is temporarily suspended.