Close
0%
0%

Hacking USB Hack Chat

Flip three times for best results

Wednesday, February 26, 2020 12:00 pm PST Local time zone:
Hack Chat
Similar projects worth following

Kate Temkin will host the Hack Chat on Wednesday, February 26, 2020 at noon Pacific Time.

Time zones got you down? Here's a handy time converter!

Join Hack ChatFor all its aggravating idiosyncrasies, the Universal Serial Bus has been a game-changer in peripheral connections for almost a quarter of a century now. What was once simply a means to connect a mouse and a keyboard to a computer has been extended and enhanced into something so much more than its original designers intended. The flexibility that led to these innovative uses for USB also led to its ubiquity, with some form of the connector sprouting from nearly every imaginable device.

Kate Temkin is well-versed in the intricacies of the Universal Serial Bus. As a software lead for Great Scott Gadgets, Kate has developed software and firmware for GSG's products, like GreatFET and HackRF. Kate also contributes to and maintains a number of open-source projects, including the FaceDancer project. And when she's not busy with all of this, she can be found sharing her deep knowledge with USB security training courses, where she shows how USB is vulnerable to attack, and what to do to prevent it.

Join us for the Hacking USB Hack Chat this week, where Kate will discuss anything and everything about USB. Come learn about what the future holds for the USB standard, and what you can do to keep your USB project on track.

  • Hack Chat Transcript, Part 2

    Lutetium02/26/2020 at 21:06 0 comments

    Kate Temkin12:32 PM
    @alexwhittemore That means you need to start scheduling the transfers in advance; which means using the async API; which brings the Usual Asynchronous Fun.

    Twisted Pair in my Hair12:32 PM
    In KiCad (newer versions at least) diff-pairs are pretty easy to route. Pcbnew automatically detects lines ending with "+"/"-" or "_P"/"_M" and starts a diff-pair. So I didn't even waste a lot of time on it.

    RichardCollins12:34 PM
    Every device should support "local processors" that can speak full speed to the sensors. Collect raw data, then analyze that data for optimal LOSSLESS compression. Many devices are running at high speed sending redundant data. Then wondering "why don't I have enough bandwidth to get my data from the sensor to the disk over there?"

    ThanhTran12:34 PM
    @Kate, would you have recommendation for any open source USB stack that don't use Linux?

    Kate Temkin12:34 PM
    @ThanhTran as in, an open source host-driver stack?

    de∫hipu12:36 PM
    tinyUSB is nice

    ThanhTran12:36 PM
    @Kate Temkin: Both host and device mode

    ThanhTran12:37 PM
    Thanks @de∫hipu

    Paul Stoffregen12:37 PM
    how well does TinyUSB really do host mode?

    Kate Temkin12:37 PM
    (Also: in regards to what I've been saying to @alexwhittemore: don't get me wrong -- you can use libusb quite effectively on Windows; you'll just need to do more "install time" configuration than on e.g. Linux or Mac.)

    Paul Stoffregen12:38 PM
    I see Adafruit & others using it, but mostly for device mode. Who's actually deploying TinyUSB for host use?

    Kate Temkin12:38 PM
    @ThanhTran I've used tinyUSB in device mode, and it is quite nice, if your CPU is supported by it [or you're willing to write a driver]. It has host mode; but I haven't played with that side of it. :)

    ThanhTran12:40 PM
    Thanks @Kate Temkin

    de∫hipu12:40 PM
    @Paul Stoffregen never used host mode on it, so I can't say, I think it does hid host on samd21 at least...

    Kate Temkin12:41 PM
    Host drivers are significantly more complex than device drivers; and embedded hosts applications on tiny microcontrollers are, relatively speaking, a lot more rare; so stacks like tinyUSB are usually built to target either a few easy cases or some very specific ones.

    Kate Temkin12:41 PM
    (Host *stacks, anyways)

    RichardCollins12:42 PM
    I have to leave now. You are all arguing how to optimize with parts within USB and the real issue, and probably the solution, is to deal with all devices. When you look at the core hardware interface in all OSs it has been treated as a stepchild of the OS that only wants to sell software or hardware. If the SENSOR community will set up their own core services in each OS, but independent, then you might gain some measure of control and stability. Then you can optimize USB to Ethernet, USB to disk, and the other data flows.

    Data flow optimizations is NOT something that OS and browser are good at. So build it from the hardware up, but do it with a global open community. Raise the money. A few hundred million would be cheap.

    WRR12:43 PM
    I just saw nMigen mentioned above - it looks like a super cool project, but I haven't seen much information about it. Any thoughts on it?

    Kate Temkin12:45 PM
    @WRR Honestly, I think nMigen [or something that looks a lot like it] is probably the direction a lot of people will end up going in.

    Kate Temkin12:45 PM
    Original Migen has a pretty expansive community; even if it's not anywhere near as expansive as the "classic" languages (VHDL/Verilog).

    Matti Virkkunen12:46 PM
    I haven't touched FPGAs but at first sight having a real programming language to generate stuff with seems like a good idea

    WRR12:47 PM
    Yeah, it does seem like a friendlier sort of HDL, and the "misoc" moduar RISC-V core looked like a cool idea. Thanks, and sorry to distract from USB!

    Kate Temkin12:47 PM
    In what I've done with them, languages like nMigen and original Migen are incredibly empowering. It's extremely difficult to create an "open stack" that's more than trivially customizable...

    Read more »

  • Hack Chat Transcript, Part 1

    Lutetium02/26/2020 at 21:06 2 comments

    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

    Kate Temkin12:00 PM
    Hi, everyone!

    Welcome, Kate - can you tell us a little about yourself?

    de∫hipu12:01 PM
    @Nicolas Tremblay do you have a lathe of turn undead?

    Kate Temkin12:01 PM
    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.

    Jeff Trull joined  the room.12:01 PM

    Matti Virkkunen12:01 PM
    In that case I've written a USB stack once from scratch (for microcontrollers with USB peripherals) so I guess that's low level

    Kate Temkin12:01 PM
    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.

    ThanhTran joined  the room.12:02 PM

    Nicolas Tremblay12:02 PM
    @de∫hipu nope, we have a mill to churn out more at a decent pace

    kaaliakahn12:02 PM
    @Kate Temkin How can a beginner start with USB?

    kaaliakahn12:03 PM
    @Kate Temkin What should be the steps to learn and code USB?

    Mark J Hughes12:03 PM
    @Kate Temkin Do you run into any enumeration issues with USB3.0 and Windows 10?

    epix joined  the room.12:03 PM

    Kate Temkin12:04 PM
    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".

    Eugene joined  the room.12:04 PM

    dan joined  the room.12:05 PM

    kaaliakahn12:06 PM
    @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

    Paul Stoffregen12:06 PM
    @Kate Temkin - Is Rhododendron shipping? Or if not, any idea of when it will become available for sale?

    TenoTrash12:06 PM
    @Kate Temkin , wich basic tools do you use to code USB for microcontrollers? Wich language, IDE, etc ?

    And cheers from Argentina!

    alexwhittemore12:06 PM
    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?

    kaaliakahn12:07 PM
    @alexwhittemore What about 1G or 10G ethernet? Why USB?

    Kate Temkin12:07 PM
    @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.

    alexwhittemore12:08 PM
    Ok, hypothetically speaking, call it 1.5GBps. And no 10Gig ethernet because who has that?

    Yannick (Gigawipf)12:08 PM
    @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.

    Kate Temkin12:08 PM
    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.

    de∫hipu12:09 PM
    @alexwhittemore I thought pretty much all modern ethernet cards are 10G?

    brianredbeard joined  the room.12:09 PM

    RichardCollins...

    Read more »

View all 2 event logs

Enjoy this event?

Share

Discussions

perry levac wrote 02/26/2020 at 19:54 point

Hi there. Perry here.

You know this reminds me of the paper feed tape for a old computer.

  Are you sure? yes | no

Interested in attending?

Become a member to follow this event or host your own