Skip to content
robertfisk edited this page Nov 28, 2016 · 8 revisions

Hardware configuration

Each USG has two indicator LEDs. The colour and position of these LEDs varies between versions.

USG v0.9: Each Olimex development board has a green ‘Status’ LED near the USB connector.

USG v1.0: Both LEDs are positioned beside the USB socket. The downstream LED is yellow, and the upstream LED is red.

Normal Operation

You should see both LEDs flash briefly when you apply power to the USG. Under normal operation they will not turn on at any other time.

Abnormal Operation

Each microcontroller (MCU) controls one of the two fault LEDs, and a problem may occur with either or both of them. Find the problem with the help of this handy troubleshooting chart.

LED doing this… …means this. Try this fix:
One or both LEDs fail to blink when plugged into a host No power, unprogrammed MCU, or faulty hardware Check your host has power. The corresponding MCU may be unprogrammed, or the circuit board may be faulty.
One or both LEDs stays lit when USG powered on Incorrect firmware version Firmware designed for a different USG hardware revision is loaded into the MCU, so check you are building from the correct Git branch. This can also be caused by loading Upstream’s firmware into the Downstream MCU, or vice versa.
One or both LEDs flash quickly (5Hz) when USG powered on FREAKOUT self-protection mechanism is triggered at bootup Firmware is damaged or buggy, or inter-MCU SPI link is damaged causing a failed self-test
One or both LEDs flash quickly (5Hz) while a USB device is attached FREAKOUT self-protection mechanism is triggered at runtime You may have a questionable USB device, but you are more likely to have found a bug in the USG firmware. Open a github issue and describe your problem!
Downstream’s LED flashes slowly (1Hz) when a USB device is attached Unsupported device class, or weird device configuration The USG doesn’t support this device right now. You can open an feature-request issue, and if enough people request something it may eventually be implemented :)