Miniscope Board

General Category => DAQ Software/Firmware => Topic started by: gabishull on November 30, 2016, 05:58:49 PM

Title: Firmware Only Uploads when using 2.0 port
Post by: gabishull on November 30, 2016, 05:58:49 PM

So I have assembled everything correctly I assume due to the 3 LEDs on the main board lighting up as well as the red light on the CMOS board. My device initially registers as a cypress USB device in device manager and the control center when it is plugged into USB 2.0 ports as well as USB 3.0 ports. However, when I attempt to program the device through I2C EEPROM on the 3.0 port the device disappears from the control center as well as the device manager and does not reappear. It does not prompt me to select the proper .img file, but simply says "waiting for cypress boot programer device to enumerate..." then says "cypress boot programmer device not found". If I repeat this process with the USB 2.0 port, I am prompted to select the .img file, the uploading succeeds, I turn off the device and wire it to upload from EEPROM, and my device registers as a MINISCOPE. When I go into the software the error I get is msCAM frame retrieve error! and I see the red screen. I assume this failure may be due to the lack of using the USB 3.0 port, however, as I mentioned my upload only succeeds from the regular USB port. I am not sure why the super speed port upload is failing.

Things I have Done to Resolve USB 3.0 port error
- Verified it is a USB 3.0 cable, and port (SS is on both)
- tried on Windows 10 and 7
- Downloaded the drivers several times and verified it is in the proper location
- Tried simply flashing it to the RAM on USB 3.0 port (it fails)
- Verified the super speed port is routed correctly by booting into BIOS

Things I have Done to Resolve msCAM error
- unplugging the coax while powered, turning off, plugging back in and rebooting
- Connected to all camera number options (only red screen when using camera 0 thus I assume this is the correct one)
- clicked connect twice

Attached are images of the setup. Let me know what you think.

- Gabriella Shull
Title: Re: Firmware Only Uploads when using 2.0 port
Post by: gabishull on November 30, 2016, 06:02:26 PM ( ( ( ( (
Title: Re: Firmware Only Uploads when using 2.0 port
Post by: Daniel Aharoni on November 30, 2016, 06:31:40 PM
Hi Gabriella,
I hope I will be able to help a bit.

I have never run into the issue of the I2C EEPROM programming failing when using a USB3.0 port but I think we can work around this. When programming the firmware to the EEPROM using either USB2.0 or USB3.0 is fine. If you were successful using USB2.0 then your DAQ PCB and EEPROM should now be programmed with the Miniscope firmware. Next, make sure to remove the K1 jumper while keeping the K2 jumper in place (also keep the J9 jumper to send USB power to the CMOS PCB). At this point, the DAQ PCB will only enumerate properly if connected to a USB3.0 port. If connected to a USB2.0 port it likely will still show up as a 'MINISCOPE' imaging device in Device Manager but will fail to connect when using our DAQ software. I will assume you tried switching back over to USB3.0 when attempting to connect to the Miniscope hardware but if not this should fix your problem.

If the connection problem persists when using USB3.0 try the following:
* Hook up the Miniscope hardware to another computer's USB3.0 port. This new computer does not need any of the Cypress software installed on it.
* Make sure your USB3.0 cable is of high quality and relatively short. We usually use 1 meter (3 foot) USB cable.
* From looking at your pictures there is a chance that the connection issues you are having is not due to USB but rather due to the coax cable used between the DAQ PCB and CMOS PCB. Since it looks like you are using a pretty thin coax cable (and it looks to be a cable our lab hasn't tested before) try cutting the coax cable pretty short, maybe 5 feet maximum. While the green DATA LINK LED might appear to be solidly on on the DAQ PCB, there is a chance that there are quick disconnects of the Data Link that are not perceived by eye due to how quickly they occur. You can connect an oscilloscope to the input of the LED and see if the signal driving the LED fluctuates at all.

In summary, I think you can assume your DAQ PCB EEPROM has been programmed successfully and the source of your connection issue is due to USB3.0 drivers, cables, or ports (switching between computers will help narrow this down) or the thin coax cable running between the DAQ PCB and CMOS PCB. Please keep me updated with your progress.
Title: Re: Firmware Only Uploads when using 2.0 port
Post by: gabishull on November 30, 2016, 11:17:00 PM
Thank you Daniel,

-When I verify that the USB registers in the 2.0 port as miniscope after removing K1 jumper and then proceed to plug the same USB into the super speed port it simply does not register in Device manager nor control center at all, nor do I hear a sound suggesting that a USB device has even been attached.

- I attempted this again on another computer that only has super speed ports and windows 10 (the primary computer has windows 7), the computer does not register that there was a device plugged in at all (in the boot from EEPROM mode aka without K1 jumper). If I put in the boot from USB mode it registers as the original device name from the supplier.

- The USB 3.0 device I am using is also 1 meter and, according to digi key, of high quality.

- Although the coax cable does seem long it is actually only 32 inches, would shortening it further be worth it?

I have yet to try the oscilloscope, but if the USB in the super speed port does not register at all as a device (in the boot from EEPROM mode (it does register as a normal cypress USB in the boot from USB mode but then fails to upload I2C or RAM)), would an error in the coax cable affect this registration process I am observing? If there is a driver problem, what do you predict would be at issue if it is loaded properly onto the EEPROM in the USB 2.0 port? I have up to date drivers from the latest Cypress model and have downloaded them several times on different machines. Although my USB 3.0 device is supposed to be of high quality I may try obtaining another one to verify it is not the USB itself. Let me know your thoughts, and thank you so much for your help.

Title: Re: Firmware Only Uploads when using 2.0 port
Post by: Daniel Aharoni on December 01, 2016, 02:02:37 AM
Hi Gabriella,
Thanks for the additional information. Now that I know the DAQ PCB enumerates as 'MINISCOPE' on USB2.0 but does not show up at all using USB3.0 I have a better idea of the issue. Firstly, this doesn't have anything to do with the coax cable or Data Link. Since you see the same issue on multiple computers and are using a decent USB3.0 cable (still wouldn't hurt trying a different USB cable) the source of the issue is likely the super speed USB lines on the DAQ PCB. USB3.0 uses an additional couple of line/traces/wires on top of what USB2.0 uses. I am guessing that, hopefully, one of the super speed traces coming off the USB3.0 connector wasn't soldered properly. If this is not the case then there may be an issue with the soldering of the BGA USB Host Controller IC or the ESD suppression IC.

We have never had an issue with PCB assembly through Sierra Circuits. Did you use Sierra Circuits or another PCB fab/assembly house?
Title: Re: Firmware Only Uploads when using 2.0 port
Post by: gabishull on December 01, 2016, 07:43:00 PM
Hello Daniel,

We purchased 2 boards from the same supplier as you. I tried the setup on the second board and it worked perfectly! I'm not sure how the other one was damaged, but thank you so much for the help. Will have to investigate further how the other one is damaged at a later time.

Gabriella Shull
Title: Re: Firmware Only Uploads when using 2.0 port
Post by: Daniel Aharoni on December 01, 2016, 08:52:22 PM
This is great to hear Gabriella. After hearing that your second board works fine I am pretty sure the source of the first board's problem was coming from the pair of super speed USB traces on the PCB or connections to these traces. I think most likely it is due to a poorly connected USB3.0 connector.

We haven't heard of any issues with the fabrication and assembly of these PCBs but I guess it was bound to happen at some point. If it is helpful to you in the future, you can ship the nonworking PCB to me and I will take a look. Either we will be able to fix it or we can ask Sierra Circuits to make you a new board in their next fabrication/assembly run.
Title: Re: Firmware Only Uploads when using 2.0 port
Post by: nh88 on December 05, 2016, 03:25:03 PM
Hello Gabriella,
I had the same problem as you but since I made the board myself (don't bother trying this.... it is hours of pain!), I assumed I had messed up somewhere. Now, after some struggling and reading your posts, I think it may have been an issue with USB 3. In the end, I made some repairs to my board (which may or may not have been necessary) and decided to change the EEPROM chip. Using powerbook (windows 7) instead of a Surface Pro 3, I got the board working. I can't be sure which of these was the problem but it may be worth trying a new EEPROM chip since they are easy to replace and cheap compared to the board.
Nick H