iCEstick40HX1K device is malfunctioned, and windows does not recognize it when programming bitstream on Diamond Programmer 3.5
I had problems with "USB device not recognized" as well but with the "MachXO3L Starter Kit". After a lot of research and a not very helpful response from the Lattice technical service I figured it out:
The USB bridge IC (FT2232H) needs a 12 MHz clock to function properly. This clock signal is generated by a oscillator which is connected to the FT2232H AND the FPGA. Accidently I added a clock output in my design and did not assign a fixed pad/pin for it. By chance Diamond placed this clock output exactly on the 12 MHz clock. Due to the interference the FT2232H malfunctioned.  

Solution: remove the shunt/0Ohm resistor between 12 MHz clock and FPGA pin. In the case of "MachXO3L Starter Kit" it is R23. If you have a oscilloscope around you can easily measure the frequency of the clock to check if the very same thing happend to you.