A hardware-based USB 2.0 monitor & trigger platform, controlled from Python

Nov 12, 2019

Project update 6 of 6

Production Final Steps, Testing, and Shipping

by Colin O'Flynn

While our updates have been slow, behind the scenes we haven’t stopped. We received the initial version of the assembled boards a couple weeks ago, which triggered the final production run. We are now sitting on 250 PhyWhisperer-USB main boards:

They need to be assembled into a final unit (enclosure), tested, packed, and shipped on to you! This update has some quick notes on how we are doing that.


The current work-flow has boards being assembled into the enclosures, where we then run a test on them. We’re currently waiting on the final front-panel labels (and also the underside labels) which should be in this week.

This work-flow lets us continue to test while we wait for those final parts. Our test setup is based on what we used for other products (like ChipWhisperer), which has a test bench with some external gear, shown here in partially assembled state:

This test bench has cables for non-PhyWhisperer stuff present, so the ‘floating’ cables aren’t doing magic (they are doing nothing). The attached cables will, however:

  1. Check that the power consumption of the device appears in-spec (a bit of a sanity check for no issues with the power circuitry).
  2. Check that the LEDs and buttons all work (using a human in the loop).
  3. Check the ability to power cycle USB targets works OK.
  4. Using two USB "golden sample" devices, confirm that both USB Full-Speed and USB High-Speed sniffing works.

The last item is done with both Full-Speed and High-Speed as those actually use different transceivers on the USB3500 PHY mounted in the PhyWhisperer-USB. We test that both work as expected to ensure there are no unpleasant surprises at the end, if somehow one of the transceivers was internally damaged.

If devices pass the test OK, the report is printed to be kept with the physical unit for packaging. Once the front-panel labels are in stock we’ll be applying the labels and light pipes to complete the PhyWhisperer-USB.


When you think of a prototype, it’s normally an electronics prototype. But we also had to make a quick packaging prototype with scissors and tape to ensure everything would fit well for shipping, as we’d hate to order 250 of the wrong-sized boxes! This 6x6x2 inch (15x15x5 cm) sized box seemed to work perfectly:

Delivery Commitment

At this point we’re still waiting for a few pieces (labels mainly) before we can ship the final units onward to Crowd Supply. To fulfill the full quantity, we’re also waiting for more of the machined enclosures - we have 25 in-stock from our first run, and the remaining should be here this week. If no other problems occur, we expect to stay on-track for delivery of all Crowd Supply backers at start of December, but look for one more update with those details.

GIT Repo, Firmware, Software

You also might have noticed lots of activity with the PhyWhisperer-USB git repo lately. In preparation for shipping we made a few finalized updates. For example, the devices now have signed drivers in the repo as use their final USB VID/PID pair, and we’re now pushing PhyWhisperer-USB documentation to Expect more updates to the Python code to come still in following weeks!

Sign up to receive future updates for PhyWhisperer-USB.

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects