I threw together a couple recipes. These recipes aim to mimic the logitech unifying peripherals.
wireless_hid_hub.py: A simplistic program to receive HID report data buffers and forward them to the USB connection.
Currently implemented is
mouse
keyboard
gamepad
consumer HID (multimedia keypads)
Each HID profile is dedicated to pipes 1-4. Pipe 0 is used for pairing (which is only open for 60 seconds upon program start). Pipe 5 is closed, but it mainly reserved for a future feature like a MIDI input/output controller. This recipe will not work on the raspberry pi because the adafruit_blinka library does not provide the usb_hid module that is included with practically all circuitpython firmware.
wireless_hid_mouse.py: Simply pairs with the wireless_hid_hub and sends out a HID report buffer that resembles a USB mouse. Unlike other circuitpython libraries, this recipe supports the scroll wheel, middle (scroll wheel) button, and the special mouse buttons "forward" & "backward".
Other minor fixes
close_rx_pipe() now properly prevents the listen attribute from overriding the pipe 0 reading address
print_details() now prints a more accurate representation of the addresses used on the pipes. Like the TMRh20 RF24 library's printDetails(), the address now prints a "hexlified" string in big endian form.
NEWaddress_repr() helper function (belonging to the rf24.py module nut not the RF24 class) is the helper function that returns the address specified as a "hexlified" string in big endian form.
I threw together a couple recipes. These recipes aim to mimic the logitech unifying peripherals.
adafruit_blinka
library does not provide theusb_hid
module that is included with practically all circuitpython firmware.Other minor fixes
close_rx_pipe()
now properly prevents thelisten
attribute from overriding the pipe 0 reading addressprint_details()
now prints a more accurate representation of the addresses used on the pipes. Like the TMRh20 RF24 library'sprintDetails()
, the address now prints a "hexlified" string in big endian form.address_repr()
helper function (belonging to the rf24.py module nut not the RF24 class) is the helper function that returns the address specified as a "hexlified" string in big endian form.