Pages: [1]   Go Down
Author Topic: Due as USBHost for Midikeyboard  (Read 1428 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,
I'm looking for a way to connect my Midikeyboard (MAudio Oxygen 61) to my Arduino Due via USB. This could end up in an extremly cheap and flexible way to access analog audio gear without the need of expensive analog keyboards.
I already digged into some interesting links i found on the forum and the web, i like to share with you.

http://makezine.com/2010/11/30/usbhacking/ - he already did it! - but i can't access his code.
http://www.beyondlogic.org/usbnutshell/usb1.shtml - how usb works in a nutshell
http://forum.arduino.cc/index.php?PHPSESSID=ttpp845u9t0ld93dj9adhgt0n6&topic=199608.0 - this code gives me quite realistic values.
http://www.usb.org/developers/devclass_docs/midi10.pdf - midi standard explained

Now i have to establish the connection between the due and the keyboard. I already read through the library files of USBHost (Usb.cpp, Usb.h) and tried to understand the magic going on in the MouseController.h / .cpp
I got quite stuck here. What are basically the next steps to go, to access the data from the keyboard?
I experimented a little bit with accessing the endpoints in my device, but i can only configure the standard endpoint 0.

Anyone out there already tried something similar?
Thanks a lot!

[EDIT]
Today i stumbled upon a very interesting link
http://www.usbmadesimple.co.uk/ums_4.htm
Still some help appreciated smiley-wink
« Last Edit: February 15, 2014, 08:57:13 am by OptimusPrime » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi.

About i can only configure the standard endpoint 0.
It was expected.
Because USB-MIDI device is one of USB -Audio device, not USB-HID device.
The USB keyboard/mouse are belong USB-HID and use the interrupt transfer of USB.
But the USB Audio device used the isochronous transfer of USB, normally.
USB MIDI device 1.0 http://www.usb.org/developers/devclass_docs/midi10.pdf

I haven't completed to study above document.
But I guess if you want to port it from USB Keyboard/Mouse drvier,
You should do something as below.
1.change the class id, subclass id, protocol id.
2.You should remove useless setup transfer that USB-HID have in enumeration stage
3.you should add specific setup transfer if it was mentioned in above document
  before enumeration completed
4. register the  isochronous transfer into host that will help you to complete the transfer that you want.
Logged

Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 632
Posts: 34510
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

You can not do that. You need a USB host shield - that contains another processor that acts as a USB host, the Arduino only has a USB client on it and that is a different thing.
Logged

Pages: [1]   Go Up
Jump to: