Community
cancel
Showing results for 
Search instead for 
Did you mean: 
DCimi
Novice
1,972 Views

Edison as USB MIDI peripheral - configure OTG as MIDI device

Hi all,

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

6 Replies
Sergio_A_Intel
Employee
44 Views

Hi,

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.

Sergio

DCimi
Novice
44 Views

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:

/thread/82330?start=0&tstart=0 https://communities.intel.com/thread/82330?start=0&tstart=0

but that's configuring the Edison as a HID peripheral, which is not really my case...

DCimi
Novice
44 Views

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

Sergio_A_Intel
Employee
44 Views

You can explore the kernel configuration on CONFIG_USB_MIDI_GADGET. Here you can do some kernel customization to enable the modules you need.

Sergio

DCimi
Novice
44 Views

Hi Sergio, thanks for your answer! I'm a bit of a newbie on kernel configuration, do you have some walkthrough to share, or some documentation?

Daniele

Sergio_A_Intel
Employee
44 Views

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 .

Another link that might be useful is this:http://linux-sunxi.org/USB_Gadget http://linux-sunxi.org/USB_Gadget

Sergio