In these pages on Hackster.io, I have shown several Arduino HID projects. For example:
Over on Arduino.cc, I have a few more relevant posts:
All of these projects are based around some old (by today standards) software described here. Warning: Examples for Arduino may require the 1.0.5 IDE.
Back when I was active in the V-USB movement, I experimented with many homebrew implementations of USB circuit adaptations.
For a long time I have forgotten about these HID projects...until today when I was working on my RPi Zero-W prototyping board.
I started to wonder how well the RPi Zero would accept HID devices that may not follow the original USB 1.1 specification very well (V-USB can be rather sloppy on the Arduino).
Generally speaking, my testing went very well.Scenario 1
Using my homemade T85 remake of the Sparkfun AVR Stick, I inserted the USB breadboard into the USB hub attached to the RPi Zero-W. From the open console, I had executed tee to copy the results to the file analog.txt before inserting the V-USB device. (Ctrl C will stop the recording).
I programmed my faux UNO to output all six analog channel values and 8 logical values of one of the digital ports. I input these into a spreadsheet where they can be parsed later. (The Official Nano runs the same sketch with the same results).
My article here details the Excel formulas (via a downloadable example) that can be used to parse the values into separate columns.Scenario 3
Using my Trinket clone "Chachka", I captured the analog0 value and the conversion to temperature in the notepad application running on the RPi Zero.
Rather than saying "Conclusion", I will say that more experimentation is needed before HID can be incorporated into anything more serious than play. The initial testing across "real Nano," "UNO clone," and two implementations on the tiny 85 indicate that HID is not something that should be casually dismissed for quick & dirty interfacing between RPi and Arduino - especially when the Arduino has analog inputs. Not tested (yet) is the natural HID-capable Arduino: the Pro-Micro (Leonardo) based on the Atmega32U4.
Remember, if you download any of the old Arduino HID test code, almost everything I referenced will require Arduino 1.0.5 to compile successfully. In building the V-USB interface, the zener diode (2x) value is critical and I selected this part after some experimentation: Zener 3.6V - 1N5227B-TAP by Vishay Semi (sourced: Newark 18M3528)