I am starting a project using a Teensy 4.1 and ILI9341 to create a user interface to a radio transceiver via USB.
I have the basic UI graphics and user touch screen inputs for the display working satisfactorily and am ready to
move on to the USB connection. However, I am new to the details of USB, and even though I have spent hours and hours reading
information and trying to learn what it's all about, it's like drinking from a firehose.
The radio is not a "well known" device from the USB perspective, i.e. not like a mouse or keyboard - at least for the microcontroller world.
It has a simple and well defined communications protocol using very short command messages and data requests. There are drivers available
for the PC and Arm platforms, so I guess what I need to do is basically create a driver for the Teensy.
The Teensy will operate as a Host, with the radio responding to commands and data requests.
But....I am lost in how to get started communicating with it via USB and need direction.
First of all, is the USBHost_t36 the correct library to be using for the 4.1? In looking through its code, I see references to Teensy 3.6.
I compiled and loaded the serial.ino example from this library and connected to the radio device, but the enumeration did not return anything.
To make sure my Teensy and the software was working, I connected a mouse, and the enumeration did return expected information, so I
have a functioning platform. Also, I know the radio device is functional, as I am able to communicate with it via commercially available software
on a PC and on a RPi.
I have been unable to find a high level description of the whole process of connecting USB devices and how to communicate with them.
With all due respect to the author of the examples in the library, and the tremendous effort to create them, I don't find them very useful
due to the lack of comments and description of what's going on in them. Also, they are written in "elegant" code, which can be difficult for
an amateur programmer to follow and decipher.
I have reached out to the radio manufacturer for information on Device Descriptor Vendor and Product ID, Configuration Descriptor, Interface Descriptor, Endpoint Descriptor, etc. but have not received any response yet.
So....sorry for the long intro - a newbie to this whole USB world could use some guidance!!
Any suggestions? Thanks!
I have the basic UI graphics and user touch screen inputs for the display working satisfactorily and am ready to
move on to the USB connection. However, I am new to the details of USB, and even though I have spent hours and hours reading
information and trying to learn what it's all about, it's like drinking from a firehose.
The radio is not a "well known" device from the USB perspective, i.e. not like a mouse or keyboard - at least for the microcontroller world.
It has a simple and well defined communications protocol using very short command messages and data requests. There are drivers available
for the PC and Arm platforms, so I guess what I need to do is basically create a driver for the Teensy.
The Teensy will operate as a Host, with the radio responding to commands and data requests.
But....I am lost in how to get started communicating with it via USB and need direction.
First of all, is the USBHost_t36 the correct library to be using for the 4.1? In looking through its code, I see references to Teensy 3.6.
I compiled and loaded the serial.ino example from this library and connected to the radio device, but the enumeration did not return anything.
To make sure my Teensy and the software was working, I connected a mouse, and the enumeration did return expected information, so I
have a functioning platform. Also, I know the radio device is functional, as I am able to communicate with it via commercially available software
on a PC and on a RPi.
I have been unable to find a high level description of the whole process of connecting USB devices and how to communicate with them.
With all due respect to the author of the examples in the library, and the tremendous effort to create them, I don't find them very useful
due to the lack of comments and description of what's going on in them. Also, they are written in "elegant" code, which can be difficult for
an amateur programmer to follow and decipher.
I have reached out to the radio manufacturer for information on Device Descriptor Vendor and Product ID, Configuration Descriptor, Interface Descriptor, Endpoint Descriptor, etc. but have not received any response yet.
So....sorry for the long intro - a newbie to this whole USB world could use some guidance!!
Any suggestions? Thanks!