Default state: Introduction

A USB device can be in one of five states:

* _Attached_ to an inactive hub;
* _Powered_ which is where we start out;
* _Default_ where we get right after a reset;
* _Address_ assigned; and
* _Configured_ where all the real work gets done.

Also, the latter three may also be _Suspended_. This is a state when we
have to power down as much as we can.

We do not have to worry about Attached because unless we have power we
aren’t even running.

Then the user plugs us in, we are Attached and Powered, start up,
connect to USB and get reset to the Default state.

The Default state is a brief intermediate step in the bus enumeration
process before we are given a USB address. Only one device on a single
USB bus can be in the Default state at the same time because at this
point the only way the host can address us is by “hey you”, and if there
were two then all kinds of chaos would ensue.

In the Default state, five distinct things can happen that we need to be
able to handle:

* We might lose power and/or connection to USB. This is not very
  interesting and the next time we are plugged in we start afresh from
  Powered through reset to Default.
* We might get another reset, for whatever reason. This gets us again to
  the same Default state.
* We might be Suspended and then either Resumed back to Default or force
  a remote wakeup.
* The host might ask for our descriptors (“Hey you, what’s your name?”).
* Or it might assign us an address (“Hey you, from now on I’ll call you
  Number Three”).
Default state: Tracking states

We will track and visualize the states by lighting different
combinations of LEDs while progressing through each state.

Initially, we are in the Powered state (both Caps and Num LEDs off).
When we get the reset signal, we transition to Default state (Caps off,
Num on). The other two states are left unused for now.