USB Host question for a complete beginner (FLIR)

Hello all !

I am proficient with “normal” arduino and avr programming, but am completely new to usb work.

I have a flir camera imaging core that has a usb interface for embedded integration. I simply want to tell it to zoom in or zoom out (digital zoom). I have the data sheets for the communication sentences to send, but I have NO idea how to actually send the data. Datasheet is attached (see page 19)

I have used the Circuits@Home’s MAX3421 mini usb board along with demo code and successfully gotten the devices ID etc, so I know comm is good.

Now, I am looking to have the most bear-bones code to successfully send either a zoom-in or zoom-out code

ANY help is greatly appreciated. I have spent a lot of time trying to get on my feet, but am truly lost.
THANKS!


edit:
While i’m a student, I can pay for really good help, as its been a project a long time in the making!

Interface for 3000 and 4000.pdf (580 KB)

I hate to bump this, but can anyone please help?

USB, like all modern communication protocols, has multiple layers.

There is the physical layer (the differential pair of wires connecting the devices), the link layer (performs CRC of incoming / outgoing packets), the packet layer (contains address and payload), and then the application stuff that goes into the packets.

Most Operating Systems implement drivers which provide everything up to the application layer, then it is up to applications on the PC to communicate commands through the driver.

Since there is no OS for the Arduino, you'll have to write almost all of that and in those layers. It won't be as simple as putting a command in the MAX3431's register to go out to your device.

I believe the IC I’m communicating with is the TI’s TMS320 (datasheet attached).

I knew there was something to do with layers, but really have no idea how to go about coding for this. I was really hoping to be able to use the USB-Host library (felis) GitHub - felis/USB_Host_Shield_2.0: Revision 2.0 of USB Host Library for Arduino.
the demo sketch reveals that there is good comm, and I was thinking I could rearrange this to communicate with my board. Do you think this is possible? Thanks in advance

TMS320.pdf (1.3 MB)

You need to either find somebody who has already done it and shared the solution (I guess that hasn't happened based on the response to this thread), or learn enough about USB host programming to implement it yourself (warning, this sounds like a very advanced project to me) or find somebody to implement it for you. In the last case you could ask for help in the Gigs and Collaborations section - note that most people would expect to be paid for doing work for you.

I am proficient with “normal” arduino and avr programming, but am completely new to usb work.

I have a flir camera imaging core that has a usb interface for embedded integration. I simply want to tell it to zoom in or zoom out (digital zoom), and maybe a couple other commands. I have the data sheets for the communication sentences to send, but I have NO idea how to actually send the data. Datasheet is attached (see page 19)

I have used the Circuits@Home’s (MAX3421 usb controller) mini usb board along with demo code and successfully gotten the devices ID etc, so I know comm is good.

Now, I am looking to have the most bear-bones code to successfully send either a zoom-in or zoom-out code etc.

I have the data-sheets attached for the camera core, and the chip on the camera that I believe deals with the USB.

While i’m a student, I can pay for really good help, as its been a project a long time in the making!

TMS320.pdf (1.3 MB)

Interface for 3000 and 4000.pdf (580 KB)

Camera is a USB slave, arduino is a USB slave. You need a solution such as USB Host shield (MAX3421E based) on the arduino to have it control the camera.

Can you program the Circuits@Home board?

CrossRoads, Thanks for the response!

I am currently using the MAX3421 to interface (the circuits@home is simply a breakout board for the chip).

Using the USB-Host library (Felis), I can use the test sketch and see a bunch of data come up that is accurate (i.e. device, vendor ID's correct, among other things).

Not sure If I can modify/use his work to further my project, or if I need a "from-scratch" solution

What is the test sketch running on?

currently, an arduino mega1280