template and source for hardware projects
Go to file
King Kévin af07a497fc switch to version 1 2022-06-27 15:02:31 +02:00
coraleda/subc lib: update CR2032 footprint 2022-06-27 13:57:47 +02:00
geda/symbols lib: add generated symbols and footprints 2021-07-22 13:11:32 +02:00
library@e482148d18 add parts library (as submodule) 2021-07-22 12:26:46 +02:00
picture doc add picture 2022-06-27 14:25:40 +02:00
.gitignore ignore output files 2021-07-22 12:36:45 +02:00
.gitmodules add parts library (as submodule) 2021-07-22 12:26:46 +02:00
.qeda.yaml lib: add used parts 2021-07-22 13:10:45 +02:00
CHANGELOG.md doc: add v0 details 2022-06-27 14:14:32 +02:00
DEVELOPMENT.md doc: put development instructions in seperate file 2022-06-27 14:05:42 +02:00
LICENSE.txt add CERN-OHL-S license 2021-07-22 12:22:58 +02:00
README.md doc: fix typo 2022-06-27 14:33:03 +02:00
Rakefile use correct schematic and board 2021-07-22 13:19:34 +02:00
gafrc add schematic configuration and template 2021-07-22 12:28:19 +02:00
usb-bug-detector.lht brd: fix R/S swap 2021-07-22 13:13:03 +02:00
usb-bug-detector.sch sch: fix R/S swap 2021-07-22 13:13:20 +02:00
version switch to version 1 2022-06-27 15:02:31 +02:00


the USB bug detector identifies USB type-A cables (or devices) with integrated circuits.


to use the USB bug detector, follow the steps provided on the back of the board:

  • insert a CR2025 or CR2032 coin cell battery in the USB bug detector for it to be operational
  • press on the RESET button to arm the test
  • the BUGGED LED should be off
  • plug the USB cable in the USB receptacle
  • if the BUGGED LED switches on, the USB cable embeds an integrated circuit (e.g. a bug)
  • if the BUGGED LED remains off, the cable is same to use

after the test, to save power, press again on the RESET button.

to ensure that the USB bug detector works, after pressing on the RESET button, press on the TEST button. this will simulate a USB plug with integrated circuit. the BUGGED LED should switch on. this also ensures the battery is not empty.

when the LED is on, the USB bug detector draws 3 mA. when the LED is off, the USB bug detector draws 64 nA. this results in a idle battery life of 419 years (for a typical 235 mAh CR2032 battery). this is more than the self life of the battery (~ 1%/year).


the board has an optional READY LED (with accompanying resistor located next to it). only populate it to debug the board. the READY LED will we on when the BUGGED LED isn't. this allows to always check if the battery is empty, but this also drains the battery even when not testing because an LED is always on.

the first prototype of the board (v0) offers three populating options, depending on the available NOR gate part and package:

  • 1x SOIC-14 package: U1+C1
  • 2x SOT23-5 pachgae: U2+C2, U3+C3
  • 2x SOT-353 package: U3+C3, U5+C5

only populate one of the options, depending on the availability of the NOR gate part. note: the Cx decoupling capacitor is not really necessary and is just present for good design.

mode of operation

an NOR-gate-based SR-latch is used. the RESET button triggers the R signal to reset the latch. when a USB cable is plugged, power is provided by the battery to the cable. if an integrated circuits is present, current will flow through. a 1 k Ohm resistor on the low side (e.g. ground) will create a voltage. if the plug draws more than 1.6 mA, the resulting 1.6 V will trigger the S signal to set the latch. the BUG LED will indicate when the SR-latch is set. the latch remains set until the RESET button is present. thus, even if the plug stops drawing power, the LED remains on.

this minimum 1.6 mA current draw is often caused by the decoupling/bypass capacitor required by integrated circuit, or accompanying voltage regulator. when charging, the capacitor acts as a short for a small time, allowing current to flow. on USB plugs with just resistors, or LEDs, the resulting current flow is not large enough.

the TEST circuit simulates an integrated circuit by putting a 100 nF capacitor across the USB receptacle.

because of the 1 k Ohm inline resistor, and limited 3.3 V provided by the battery, a maximum of 3.3 mA can be drawn by the USB plug. this is often not enough to power up integrated circuit properly, particularly if they use a radio interface. thus it is safe to use the USB bug detector on bugs, without activating it.