chipKIT® Development Platform

Inspired by Arduino™

USB_Host_Shield

Created Sun, 19 Jun 2011 20:30:43 +0000 by Jacob Christ


Jacob Christ

Sun, 19 Jun 2011 20:30:43 +0000

I've been working on trying to get the USB_Host_Shield code running on chipKIT...

http://www.circuitsathome.com/products-page/arduino-shields/

Last weekend I got the code to compile.

This weekend I got the USB_Host_Shield code running but...

It still doesn't work yet do to datatype size differences between the AVR and PIC32 and who knows what other problems I'll find after I fix that (I'm hoping that PIC's and AVR's are the same endian type).

[color=#FF0000]UPDATE: It works, yeah![/color]

This only took me about 30 hours to get running on the 100% Arduino compatible chipKIT. (This is sarcasm for the sarcastically challenged)

Jacob


svofski

Mon, 04 Jul 2011 14:21:25 +0000

Congratulations!

Do you have any experience running USB Device examples from Microchip on MAX32? I need to transfer some data to the host PC rather fast (think low-res video): FT232-based 1 - 1.5mbps is not enough. I have no previous experience in this, it seems that my best bets are LibUSB Device or Mass Storage Device. What do you think?


Mark

Mon, 04 Jul 2011 15:10:16 +0000

This only took me about 30 hours to get running on the 100% Arduino compatible chipKIT. (This is sarcasm for the sarcastically challenged) Jacob

Jacob

Sorry it took so long, but the 100% applies to the things that follow the Arduino abstraction layer 100%. Anything that talks to hardware directly has to be re-done. We have most of the standard libraries complete and once that is done, then we should be 100% compatible with what is shipped from Arduino

Mark


Jacob Christ

Mon, 04 Jul 2011 19:39:25 +0000

Do you have any experience running USB Device examples from Microchip on MAX32? I need to transfer some data to the host PC rather fast (think low-res video): FT232-based 1 - 1.5mbps is not enough. I have no previous experience in this, it seems that my best bets are LibUSB Device or Mass Storage Device. What do you think?

I've done a lot of USB device work on PIC18, the chipKIT is my first adventure into PIC32 land. I've done a smidgen of Arduino in the past and I figured it would be a nice place to get my feet wet.

Nothing I've done has required much speed so I couldn't speak on the matter. I would guess that you could get close to the 12MB Full Speed depending on what else is going on in the chip.

Jacob


Jacob Christ

Mon, 04 Jul 2011 19:44:11 +0000

Sorry it took so long, but the 100% applies to the things that follow the Arduino abstraction layer 100%. Anything that talks to hardware directly has to be re-done. We have most of the standard libraries complete and once that is done, then we should be 100% compatible with what is shipped from Arduino Mark

"When its done" and "should be" are not 100%...

Don't get me wrong, I think the the attempt is great and I loving the platform, but I just think the marketing is a bit deceiving and possibly illegal.

"The road to hell is paved with good intentions"

Jacob


svofski

Tue, 05 Jul 2011 00:30:29 +0000

I've done a lot of USB device work on PIC18, the chipKIT is my first adventure into PIC32 land. I've done a smidgen of Arduino in the past and I figured it would be a nice place to get my feet wet. Nothing I've done has required much speed so I couldn't speak on the matter. I would guess that you could get close to the 12MB Full Speed depending on what else is going on in the chip.

I see. I've been doing this and that with AVRs since long time ago and never had a need for an Arduino, but Max32 looked like a nice piece of kit to get aquainted with PIC32.

Meanwhile I have found HardwareSerial_usb.c with pals in the git repository and a USB connector in my junk box. With this combination I measured 492 kbytes/sec from PIC32 to host PC, which amounts to 4-5 mbps, which is about a half of the theoretical limit. I think a custom HID device with bulk transfers should let me have all 12mbps. I wouldn't need this speed as such, but to let the controller do other time sensitive things between transfers I want to spit the data out as quickly as possible.