I'm trying to build a MIDI controller with an Intel Edison (Arduino breakout). What I'd like to achieve is to plug the usb from the Edison to a pc, and get it recognized as a MIDI interface. I know I must configure the OTG USB port by installing the correct drivers, but I'm stuck at this point and can't find anything online. Anyone has ideas? Maybe something similar has been done to use the Edison as a HID interface, it should be not that different...
Any help is appreciated
Take a look at http://www.instructables.com/id/Programable-MIDI-Synth-with-Intel-Edison-and-Csoun/ Programable MIDI Synth with Intel Edison and Csound . This guide has steps that will guide you to connect the Edison with a MIDI device.
The guide also has the commands you need to use to update to the software tools you need to make the MIDI device recognized.
The OTG USB port must be used as a host. To use host mode you require an external power adapter.
Follow the steps of the guide and let me know if this helps.
Actually, this is the contrary of what I want to do. In the page you linked, the Edison is configured as a MIDI synth receiving controls from an external MIDI controller via USB. What I'd like to do is instead to build the MIDI controller itself! The OTG USB must be a client that can be connected on a pc or mac (or to an another Edison as in your example), and be recognized as a MIDI input device.
I found this thread:
but that's configuring the Edison as a HID peripheral, which is not really my case...
I went a bit deeper into the problem, and found out that I should use the Linux gadget API, that allows the device to be seen as a client peripheral (https://www.kernel.org/doc/htmldocs/gadget/ more info here). What I could not find instead is how should I use them to configure the Edison as a MIDI device. I guess I should set a new module on Yocto like this:
root:~> modprobe g_midi
but I'm not sure if it's included in the Yocto distro, nor if it's enough to just add the module. Any ideas?
Happy new Year
Specifically, to enable the midi_gadget there isn't any official documentation. You can find more information on kernel configuration in the Yocto official documentation such as in http://www.yoctoproject.org/docs/1.6.1/kernel-dev/kernel-dev.html Yocto Project Linux Kernel Development Manual .