* Update to Pico-SDK v1.5 * Hook in pico_rand, use ioctl to set ipv6 allmulti * Move into PicoSDK LWIP mutex, hack timer sizes * Utilize much of the PicoSDK infrastructure for WiFi * Add WiFi::begin(ssid, pass, bssid) * WiFiMulti to use BSSID, make more robust WiFiMulti will now be more aggressive and try all matching SSIDs, in order of RSSI, using the BSSID to identify individual APs in a mesh. Before, if the highest RSSI AP didn't connect, it would fail immediately. Now, it will go down the list, ordered by RSSI, to attempt to get a link. * Add Bluetooth support from Pico-SDK Able to build and run the HID Keyboard Demo from the Arduino IDE, almost as-is. Will probably need to make BT configurable. Enabling BT on a plain WiFi sketch uses 50KB of flash and 16KB of RAM even if no BT is used. * Separate picow libs, BT through menus, example Build normal Pico.a and 4 different options for PicoW IP/BT configuration. Use IP=>IP/Bluetooth menu to select between options. * CMakefile rationalization * Move BT TLV(pairing) out of last 2 flash sectors The pairing keys for BT are stored at the end of flash by default, but we use the last sector of flash for EPROM and the penultimate one for the filesystem. Overwriting those in BT could cause some real exciting crashes down the line. Move the store to an app-build specific address using a dummy const array to allocate space in the application image itself. * PicoBluetoothHID with BT Mouse, Joystick, Keyboard Add simple Bluetooth Classic HID helper function and port the existing USB HID devices to it. Port their examples. * Protect BT key storage from multicore * Add short-n-sweet Bluetooth documents * Add Bluetooth Serial port library * Turn off BT when the BT libraries exit |
||
|---|---|---|
| .. | ||
| api.md | ||
| readme.md | ||
Mouse library
The mouse functions enable 32u4 or SAMD micro based boards to control cursor movement on a connected computer through their micro’s native USB port. When updating the cursor position, it is always relative to the cursor’s previous location.
To use this library:
#include <Mouse.h>
Notes and warnings
These core libraries allow the 32u4 and SAMD based boards (Leonardo, Esplora, Zero, Due and MKR Family) to appear as a native Mouse and/or Keyboard to a connected computer.
A word of caution on using the Mouse and Keyboard libraries: if the Mouse or Keyboard library is constantly running, it will be difficult to program your board. Functions such as Mouse.move() and Keyboard.print() will move your cursor or send keystrokes to a connected computer and should only be called when you are ready to handle them. It is recommended to use a control system to turn this functionality on, like a physical switch or only responding to specific input you can control. Refer to the Mouse and Keyboard examples for some ways to handle this.
When using the Mouse or Keyboard library, it may be best to test your output first using Serial.print(). This way, you can be sure you know what values are being reported.
Examples
- KeyboardAndMouseControl: Demonstrates the Mouse and Keyboard commands in one program.
- ButtonMouseControl: Control cursor movement with 5 pushbuttons.
- JoystickMouseControl: Controls a computer’s cursor movement with a Joystick when a button is pressed.