Open-Source and Free to use software makes $22 SUMP2 Logic Analyzer possible. The following steps are necessary to get SUMP2 running. If this is overly complicated, BlackMesaLabs recommends high quality commercial solutions such as the excellent family of USB logic analyzers from https://www.saleae.com/ SUMP2 Setup Steps 1) Program the FPGA configuration PROM with the SUMP2 hardware design. 2) Configure the FTDI device driver in Windows for Virtual COM Port operation. 3) Install Python 3.x for Windows. 4) Install PySerial so BML bd_server.py can communicate to FTDI VCP driver. 5) Install PyGame so BML sump2.py can interface with high speed graphics. [ 1 Programming the FPGA with the BML provided *.bin file ] Application = Lattice Diamond Programmer ( from 64bit version 3.4.1.213 ) 1) Insert iCEstick into USB port. If device driver is needed, ftdichip.com 2) Create a new project from a scan 3) Device Family = iCE40 4) Device = iCE40HX1K 5) Operation = DoubleClick on FastProgram 5a) AccessMode = SPI Flash Programming 5b) ProgrammingOptions:ProgrammingFile=downloaded *.bin file 5c) SPI Flash Options:Vendor=Micron 5d) SPI Flash Options:Device=SPI-N25Q032 5e) SPI Flash Options:Package=8-pin VDFPN8 5f) Click "OK" 6) Click the "Program" ICON, a chip with a gian green down arrow over it. If the FPGA was programmed correctly, a single green LED should now be lit. Note: On Steps 3),4) and 5), click on text below the field name, for example for "Device Family", click on "Generic JTAG Device". This should create a pulldown in place of "Generic JTAG Device" allowing user to select "iCE40" instead. For step 5) "Operation", the UI is even stranger as you must double-click on the default "Fast Program" to bring up a new dialog box. [ 2 Configuring FTDI Device Driver for Virtual Com Port operation ] The FT2232H chip on the iCEstick is actually 2 interfaces in a single device. For Windows7, under "Devices and Printers" the FF2232H should show up as a "Lattice FTUSB Interface Cable". Double-Clicking this and selecting "Hardware" tab should list "USB Composite Device","USB Serial Converter A", "USB Serial Converter B". The "Converter A" port is connected directly to the SPI configuration PROM for the FPGA and is used by the Lattice Diamond Programmer for programming a blank PROM. The "Converter B" port is connected to the FPGA for end user configuration. The default is for both ports to require DLLs for communication. The SUMP2 project needs what is called a "Virtual Com Port" on Converter B. Enabling VCP operation will make "Converter B" port of the FT2232H look like a regular COM# serial port to software. Step-1) "Start Menu", "Devices and Printers" Step-2) double-click "Lattice FTUSB Interface Cable" Step-3) select "Hardware" tab. Step-4) select "USB Serial Converter B" and then "Properties". Step-5) select "Advanced" tab and click "Load VCP" = "X" (Yes) and then "OK". Step-6) Remove iCEstick from this USB port and reinsert. Step-7) Confirm "Hardware" tab from above "USB Serial Port(COM#)" now listed. WARNING: This configuration only sticks for a single USB port for some reason. If you switch the iCEstick to a different USB port, you will have to do this same procedure again. Very annoying. A better solution, but one that is much more complicated is to configure the FT2232H chip to always enable VCP on Converter B by default. This is possible using the FTDI FT_PROG utility. [ 3 Installing Python 3.x ] Download installer from www.python.org Example: https://www.python.org/downloads/python-3.5.2.exe [ 4 Installing PySerial ] Download WHL file from https://pypi.python.org/pypi/pyserial Place WHL in Python scripts directory and do following from command line: pip install pyserial-3.1.1-py2.py3-none-any.whl [ 5 Installing PyGame ] Download both WHLs from http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame pygame-1.9.2b1-cp35-cp35m-win_amd64.whl pygame-1.9.2b1-cp35-cp35m-win32.whl Copy both WHLs to Python Scripts dir possibly C:\Users\username\AppData\Local\Programs\Python\Python35\Scripts Try both of these, one should fail, the other should hopefully work. pip install pygame-1.9.2b1-cp35-cp35m-win32.whl pip install pygame-1.9.2b1-cp35-cp35m-win_amd64.whl EOF