It uses a PIC16F1455 USB microcontroller allowing the programmer hardware to be cheap.
Using the TinyFPGA Programmer Application you can program .jed files generated by Lattice Diamond.
The programmer firmware appears as a generic USB serial port when you connect it to a computer. GPIO pins on the programmer are controlled through this simple serial interface, encoded as 8-bit bytes with a command type field and data payload. The payload is typically a 6-bit bitmap representing the GPIO pins of the programmer.
|0||Configure Input (1)/Output (0)|
|1||Extended Command (Unused)|
|2||Set Outputs to the given values|
|3||Set Outputs and Sample Inputs (byte)|