README

February 13, 2011 ยท View on GitHub

This is Arduino library for WiiRemote Bluetooth stack which supports minimum HCI and L2CAP layer for HID profile.

== First of all == This program is based on <wiiblue.pde> which is developed by Richard Ibbotson. This program also needs MAX3421E and USB libraries for Arduino written by Oleg Mazurov. The source codes can be grabbed from https://github.com/felis/USB_Host_Shield.

== Hardware Requirement == * Arduino * USB Host Shield * USB Bluetooth Device

== Software Requirement == * MAX3421E and USB library for Arduino written by Oleg Mazurov

== GNU GPL == WiiRemote Bluetooth stack on Arduino with USB Host Shield Copyright (C) 2010 Tomo Tanaka

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

== Files == WiiRemote/ +- WiiRemote.h +- WiiRemote.cpp +- keywords.txt | +- Max3421e_constants.h // written by Oleg +- Max3421e.h // written by Oleg +- Max3421e.cpp // written by Oleg +- ch9.h // written by Oleg +- Usb.h // written by Oleg +- Usb.cpp // written by Oleg | +- examples/ +- SteeringWii/ +- SteeringWii.pde

== Usage ==

=== Modify USB Device Descriptors === The values of CSR_VID and CSR_PID described in WiiRemote.h need to be modified to match descriptors of USB Bluetooth Device to be used.

== WiiRemote Class ==

=== Methods === * void init(void)

* void task(void (*pFunc)(void))

* uint8_t getStatus(void)
        This returns unsigned int as the status of USB Bluetooth Device and
        WiiRemote connection. Bit field shows as follows:
        bit 0:  WIIREMOTE_STATE_USB_AUTHORIZED
                USB BT Device is authorized as the library expects.
        bit 1:  WIIREMOTE_STATE_USB_CONFIGURED
                USB BT Device is plugged into the USB port on the Shield.
        bit 2:  WIIREMOTE_STATE_CONNECTED
                WiiRemote has been connected to USB BT Device.
        bit 3:  WIIREMOTE_STATE_RUNNING
                WiiRemote has been established L2CAP connection.

* void setBDAddress(uint8_t *bdaddr, int size)

* void setBDAddressMode(eBDAddressMode mode)
        This selects how to acquire BD_ADDR to establish HCI connection.
        The mode can be set:
            BD_ADDR_FIXED:    Use specified BD_ADDR set by setBDAddress().
            BD_ADDR_INQUIRY:  Discover BD_ADDR of WiiRemote to be connected.

* void getBDAddress(uint8_t *bdaddr, int size)

* uint8_t setLED(uint8_t led)
        This turns on/off LEDs of WiiRemote. setLED(0x0) turns off all LEDs,
        setLED(0x10) turns on LED1 and setLED(0xf0) turns o all LEDs.
        These enum can be used:
            WIIREMOTE_LED1 = 0x10,
            WIIREMOTE_LED2 = 0x20,
            WIIREMOTE_LED3 = 0x40,
            WIIREMOTE_LED4 = 0x80,

* bool buttonPressed(uint16_t button)
        This returns the state of WiiRemote button specified in the call.
        True if the button pressed. Buttons are:
            WIIREMOTE_LEFT  = 0x0001,
            WIIREMOTE_RIGHT = 0x0002,
            WIIREMOTE_DOWN  = 0x0004,
            WIIREMOTE_UP    = 0x0008,
            WIIREMOTE_PLUS  = 0x0010,
            WIIREMOTE_TWO   = 0x0100,
            WIIREMOTE_ONE   = 0x0200,
            WIIREMOTE_B     = 0x0400,
            WIIREMOTE_A     = 0x0800,
            WIIREMOTE_MINUS = 0x1000,
            WIIREMOTE_HOME  = 0x8000,

* bool buttonClicked(uint16_t button)
        This checkes whether a specified WiiRemote button is clicked.
        True if the button clicked. Buttons are the same as above.

=== Member Variables === * Report_t Report

== Hint == Hints from PS3 and Wiimote game controllers thread in Circuit@Home. - Bluetooth 1.x seems not work on this library.

== ACKNOWLEDGEMENT == I appreciate the gread codes developed by Richard and Oleg :-)