OK, let's get started. We're happy to have Kate Temkin here today to talk about USB hacking. Kate gave half of a great talk at Supercon on Everything SDR, so we wanted to ask her to drop by to keep the conversation going, and get more specific about USB
Welcome, Kate - can you tell us a little about yourself?
@Nicolas Tremblay do you have a lathe of turn undead?
Sure! I lead the software team -- and create all kinds of digital things -- over at Great Scott Gadgets. I like to work on all kinds of tools and educational materials; the kind of things that let people interact with and understand little pieces of technology.
In that case I've written a USB stack once from scratch (for microcontrollers with USB peripherals) so I guess that's low level
I do a fair amount of USB stuff -- I'm actively working on hardware and software for USB analysis/emulation/hacking. I also do a bunch of other things -- of late, I've been doing a lot of work with Lattice FPGAs, since they now have open-source tooling.
@de∫hipu nope, we have a mill to churn out more at a decent pace
@Kate Temkin How can a beginner start with USB?
@Kate Temkin What should be the steps to learn and code USB?
@Kate Temkin Do you run into any enumeration issues with USB3.0 and Windows 10?
A lot of the "getting started" depends on what kind of things you want to do with USB -- there's a pretty wide range of stuff, from "writing USB code for microcontrollers" to "writing host drivers" to "creating the raw hardware/gateware that talks USB".
@Kate Temkin Aren't these already available? I didn't have to do anything with my ucontroller and my pc (windows and Linux). So where does USB development comes handy. Sorry if these are very basic questions
@Kate Temkin - Is Rhododendron shipping? Or if not, any idea of when it will become available for sale?
@Kate Temkin , wich basic tools do you use to code USB for microcontrollers? Wich language, IDE, etc ?
And cheers from Argentina!
For my money - WHAT ABOUT HOST DRIVERS!? Like, ok, I've got a gadget, it needs to blast data over usb at 1GB/s. I know USB is a good choice, I know it has to be USB3, I know it can't be usb serial/virtual COM. Where do I start?
@alexwhittemore What about 1G or 10G ethernet? Why USB?
@Paul Stoffregen I'm actually not sure if Rhododendron is going to be released, or if we're going to go straight to LUNA -- which is kind of my follow-on project to Rhododendron.
Ok, hypothetically speaking, call it 1.5GBps. And no 10Gig ethernet because who has that?
@Kate Temkin did you ever work with ST microcontrollers and usb? If yes what is your opinion about their HAL functions vs low level calls directly? Spent weeks on my current projects getting a composite device to enumerate correctly and it was quite a battle until everything worked... There were many half baked things that caused some confusion.
I feel that it might have been better to learn it from the beginning on with lower level implementations.
For reference, Rhododendron is a super-low-cost USB analyzer I've worked with that rides atop the GreatFET platform. LUNA is a standalone USB multitool that I'm designing with similar low-cost goals; and which supports analysis.
@alexwhittemore I thought pretty much all modern ethernet cards are 10G?
Read more »