Rhys 0 Posted March 24, 2014 Share Posted March 24, 2014 I know Energia does not currently support USB host/device on the Tiva chips due to TI's ridiculous licensing on the library code. I was wondering if anyone would be interested in collaborating on writing a USB stack for the Tiva chips for Energia. I was actually thinking of porting LUFA over to the Tiva, as it might be easier than starting from scratch. The idea being to do an end-run around TI's stupid Clickwrap license on all the useful parts of TivaWare beyond barebones support of the chips hardware. While I don't mind developing USB device code in CCS, USB support in Energia would make the Launchpad boards far more attractive to the average Arduino hacker as a less expensive and more feature reach platform. The new Tiva Connected Launchpad can physically do just about anything an Arduino Due can (and then some) at half the price, but the development environment just isn't up to snuff compared to Arduino. I would like to help remedy that if anyone else is interested in helping. Quote Link to post Share on other sites
dubnet 238 Posted March 24, 2014 Share Posted March 24, 2014 @Rhys It might not be a bad idea to cross post this over at 43oh since it seems more folks follow that board than this one. I am not a good enough coder to help but I think it is a great idea. Quote Link to post Share on other sites
bluehash 1,581 Posted March 24, 2014 Share Posted March 24, 2014 Interesting. If you need any hardware support, let me know. I can sponsor kits to some amount. Quote Link to post Share on other sites
spirilis 1,265 Posted March 24, 2014 Share Posted March 24, 2014 I'll second, the licensing of the USB subsystem in TivaWare seems like a colossal mistake to me. It does look like some portion of the USB hardware I/O is in driverlib, but the usblib ties it all together... Quote Link to post Share on other sites
pabigot 355 Posted March 24, 2014 Share Posted March 24, 2014 Tying this back to a sub-discussion at 43oh: CMSIS defines an API for USB host and peripheral devices. Implement that for TM4C, then bridge from that to LUFA (if necessary), and you'd have something that could work across the entire Cortex-M ecosystem. Quote Link to post Share on other sites
Rhys 0 Posted March 24, 2014 Author Share Posted March 24, 2014 @@bluehash - I'm good on hardware at the moment. I have a TM4C123 sitting on my desk, and a TM4C1294 that should be here in a day or two. @@dubnet - I'm not sure if I'm up to the task or not. I'm still relatively new to writing code myself.... I have written a few USB device firmware sets using the TivaWare USB library though, including some modifications to the USB library code itself. @@pabigot - I will look into that, it's definitely an idea that may save starting completely from the usb hardware driver in the driverlib (which is under a BSD license). Quote Link to post Share on other sites
pabigot 355 Posted March 24, 2014 Share Posted March 24, 2014 I should clarify: the CMSIS Peripheral Driver Interface which includes the USB interface in was added in CMSIS 4.0, which was only released a month ago. There's no implementation of it from TI or (AFAICT) anybody else; it's just the specification for an API which, if you implement to it, means you'd be able to re-use code that depends on it on any other Cortex-M device that also implements it. (Maybe; I'm a long way from looking at USB support on these things.) Quote Link to post Share on other sites
abecedarian 330 Posted March 25, 2014 Share Posted March 25, 2014 I think one BIG issue is USB devices have a Vendor ID as well as Product ID, so there are some proprietary things going on regardless of the code source license, and those tend to be tied to hardware exclusivity, from what I can tell. TI provides for people to use their lib and a block of VID/PID combos. And even though TI does permit certain VID/PID combinations, there's no guarantee that any one of us won't inadvertently duplicate things and cause potential conflicts should something get out into the wild. I.e. say I get the Hercules ECU out with USB boot-loader and such with some VID/PID combo and provide a driver and then RobG releases a DMX LED controller and uses the same VID/PID... and someone happens to want to use both? My opinion is that the only logical thing TI, or any vendor providing product for maker / hobby use for that matter, can do is restrict the license. I'm probably babbling so I'll shut up now. Quote Link to post Share on other sites
Rhys 0 Posted March 25, 2014 Author Share Posted March 25, 2014 VID/PID isn't really an issue. A properly implemented USB library would require the end user to configure a VID/PID combo in their code at time of use. That could be TI's, V-USB's, or your companie's, or whatever one you want to use. Implementing a CMSIS driver library might be a little beyond my skill level. That's more of a silicon vendor sort of thing. TI already has a low level USB hardware library in the driverlib that has a BSD license, I don't really want to reinvent the wheel. I just want to get a stack for the rest of it setup for Energia so the USB can be used there. Quote Link to post Share on other sites
igor 163 Posted March 26, 2014 Share Posted March 26, 2014 Have you tried asking Texas Instruments about the licensing on those libraries? They have been gradually opening the license on various of the files. Perhaps they might open those if asked? Thoughts on a couple of other library models/resources libOpenCM3 http://libopencm3.org/wiki/Main_Page USB support is one of the areas that are planned to be covered. They even list USB device as being one of the (few) sections that is written for the TM4C. USBHost on Arduino http://arduino.cc/en/Reference/USBHost USB Host Shield http://www.circuitsathome.com/arduino_usb_host_shield_projects Quote Link to post Share on other sites
Rhys 0 Posted March 27, 2014 Author Share Posted March 27, 2014 I posted on the e2e forum regarding the usblib license and have received no response to date. Quote Link to post Share on other sites
DewittMartz 0 Posted March 27, 2014 Share Posted March 27, 2014 I know Energia does not currently support USB host/device on the Tiva chips due to TI's ridiculous licensing on the library code. I was wondering if anyone would be interested in collaborating on writing a USB stack for the Tiva chips for Energia. I was actually thinking of porting LUFA over to the Tiva, as it might be easier than starting from scratch. The idea being to do an end-run around TI's stupid Clickwrap license on all the useful parts of TivaWare beyond barebones support of the chips hardware. While I don't mind developing USB device code in CCS, USB support in Energia would make the Launchpad boards far more attractive to the average Arduino hacker as a less expensive and more feature reach platform. The new Tiva Connected Launchpad can physically do just about anything an Arduino Due can (and then some) at half the price, but the development environment just isn't up to snuff compared to Arduino. I would like to help remedy that if anyone else is interested in helping. Hello friend were you able to find some solution? I need to support Energia a USB device, so can you help me out? Quote Link to post Share on other sites
Rhys 0 Posted March 27, 2014 Author Share Posted March 27, 2014 Nada, no response on the e2e forum from TI regarding the licensing I've just started to dig into various open source USB stacks. They all will require significant work to make usable with Energia, and will likely take me months to sift through and start to come up with a workable solution. I have a full time job and a family, I don't have a lot of time to work on it and it's going to be slow going. That's why I was hoping to find a few collaborators willing to help with the project. Quote Link to post Share on other sites
energia 485 Posted March 27, 2014 Share Posted March 27, 2014 I have brought this up within TI and the good thing is that all whom I talked to are open to converting the stack to the TI modified BSD license just as DriverLib. Give it a bit more time as these things can be a bit tedious legal wise. Once it is BSD I can definitely use some help from the USB experts here to mold this into an Energia library. With that said, I would definitely welcome an open source alternative! Robert spirilis, igor and Thorvard 3 Quote Link to post Share on other sites
igor 163 Posted March 27, 2014 Share Posted March 27, 2014 I would be willing to help. I have been meaning to learn more about USB, and have a project that could benefit from a more open licensed stack. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.