@hippy - Thank you for your very helpful reply!
In the process of looking for a USB Host library for the rp2040, I really didn't find anything outside of TinyUSB.
As a result, I started working on a barebones rp2040 native USB Host library, that I am calling PicoUSB (since it's supposed to be much smaller than TinyUSB and just for the rp2040). Here's a link to the code:
https://github.com/shreeve/pico-usb
The first step was to create a barebones native USB Device example. I used the `dev_lowlevel.c` example from `pico-examples`, which was very helpful. I basically hashed over it for several days, whittling it down to something that is as straightforward and simple as I could get it. What I tried to do is create a single file that has everything in there that I would have loved to have had when I started. I tried to present the code as I would chronologically think about it.
IMHO, it would be a good replacement for the `dev_lowlevel.c` example from `pico-examples`. It's still as limited as that original code (single buffered, only short transfers, etc.), but it should be clean and easy for someone to understand and pick up quickly. The next step for the PicoUSB code in `device.c` would be to add double-buffering.
I'm going to start working now on rp2040 native USB Host support. I can use TinyUSB or CherryUSB as examples, but I don't really know of any others. One is possibly `PicoLibSDK` (https://github.com/Panda381/PicoLibSDK), but it's based on TinyUSB and it doesn't use pico-sdk. I know that Alex Taradov has created some amazing USB Driver code (https://github.com/ataradov/free-dap), but it also does not use pico-sdk.
My goals are extreme simplicity, native rp2040 USB Host support, using the vanilla pico-sdk framework. If anyone has any examples of native USB Host, outside of TinyUSB, CherryUSB, or PicoLibSDK, please post here. Any other code to reference would be fantastic.
Thanks!
In the process of looking for a USB Host library for the rp2040, I really didn't find anything outside of TinyUSB.
As a result, I started working on a barebones rp2040 native USB Host library, that I am calling PicoUSB (since it's supposed to be much smaller than TinyUSB and just for the rp2040). Here's a link to the code:
https://github.com/shreeve/pico-usb
The first step was to create a barebones native USB Device example. I used the `dev_lowlevel.c` example from `pico-examples`, which was very helpful. I basically hashed over it for several days, whittling it down to something that is as straightforward and simple as I could get it. What I tried to do is create a single file that has everything in there that I would have loved to have had when I started. I tried to present the code as I would chronologically think about it.
IMHO, it would be a good replacement for the `dev_lowlevel.c` example from `pico-examples`. It's still as limited as that original code (single buffered, only short transfers, etc.), but it should be clean and easy for someone to understand and pick up quickly. The next step for the PicoUSB code in `device.c` would be to add double-buffering.
I'm going to start working now on rp2040 native USB Host support. I can use TinyUSB or CherryUSB as examples, but I don't really know of any others. One is possibly `PicoLibSDK` (https://github.com/Panda381/PicoLibSDK), but it's based on TinyUSB and it doesn't use pico-sdk. I know that Alex Taradov has created some amazing USB Driver code (https://github.com/ataradov/free-dap), but it also does not use pico-sdk.
My goals are extreme simplicity, native rp2040 USB Host support, using the vanilla pico-sdk framework. If anyone has any examples of native USB Host, outside of TinyUSB, CherryUSB, or PicoLibSDK, please post here. Any other code to reference would be fantastic.
Thanks!
Statistics: Posted by shreeve — Sat Jan 20, 2024 12:18 am