USB Conversion to
MSA Control Board


Released 12-18-2012
Updated 1-9-2014  New software download to allow usage of Cypress FX2, non LP version.
Updated 2-10-2014  Added InitGenericUsb.dll to the Cypress driver software download folder
Updated 10-10-2016  Add picture and pin information for FX2 Mini Board
Updated 08-11-2017  New EEPROM firmware (msa-fw-cb-v33.hex) to support MSA Software Version 118.

     This page will explain how to add USB Control to the SLIM MSA. At this time, the Cypress software will  support Win XP through Win 8. I have verified this conversion with Win XP Pro and Win 7. I am not sure about Win 10.

The steps to incorporate USB Interface for MSA:
1. Obtain a Cypress development board using the Cypress CY7C68013A chip set.
2. Construct a wiring interface to couple the development board to the MSA's Control Board.
3. Modify the USB Card and SLIM Control Board for pull-up resistors.
4. Modify MSA SLIM Control Board's Line Filters
5. Install the Cypress driver software
6. Updating EEPROM Firmware.


1. Cypress Development Board
    There are several styles on the market, but I will use the EZ-USB FX2LP as the model for this discussion. They can be found on E-Bay with price ranges from $15 to $30. My particular board was a donation from Jim Hontoria, W1JGH, so that we could develop the hardware and software.
Cypress/ezfx2pic.gif  Cypress/v04built.gif
Cypress/FX2mini.gif
EZ-USB FX2LP (BESTELECS)                             Dave Robert's V0-4 Board                                   FX2 Mini Board

The
EZ-USB FX2LP has two jumpers labeled:
Bus Pwr--Leave this jumper to allow the computer to supply the +5v required to power the USB card.
EPROM--This jumper is in place during MSA operation. It will be removed during the software installation process, later on this page. Note: the EEPROM must be at least 16Kx8. Typical are the 24LC128 and 24LC256. The
24C128 and 24C256 are fine also. If the Cypress board is used with the new (in work) Python software, no EEPROM is needed. The jumper is left open.

Several small Mini Boards utilizing the 56 pin version of the Cypress can be found on E-bay for $5 - $20. One word of caution. A few of these boards, including the one in the photo, are known to have a Cypress chip that is either re-marked or counterfeit. It can be easily distinguished by the markings on the chip. These are the markings:
CY7C68013A-56PVXC
B 04 PHI 1125
CYP 631702
If you happen to get one, send it back to the vendor and demand one with a different marking. Recent testing proved it will not enumerate when connected to a USB 3 port. Also, I have not been able to use it with Python testing.

2. EZ Board to Control Board Interface
    The following Signal Table shows the Cypress signals that connect to the SLIM Control Board, LPT connector.
Cypress/signalslist.gif
The first column designates the Cypress Port signal names. Example, the first row is "Port B- Data 0".
The second
column designates where the Cypress signals are present on Dave Robert's V0-4 Board.
The third and fourth
columns designate where the Cypress signals are present on the EZ Board.
The fifth column designates where the Cypress signals are present on the FX2 Mini Board.
The sixth and seventh columns designate where the Cypress signals are to be routed to the SLIM Control Board, and the signal names normally associated with the LPT port of a computer. Example, the first row is "LPT-Pin 2 and Data D0".
    The signals that are noted as "Not used" are not used in the MSA, nor are there any plans to use them in the future. The "Reserved" signals may be used in the future.
    Note that ground connections are not shown in the above Signal Table. Connect at least one ground pin of the LPT connector to a ground on the EZ Board. LPT grounds are pins 18 thru 25. Grounds on the EZ Board are P4-2, 19, 22, 24, 26, and 40. If you duplicate my method of attaching a male DB25 to the EZ Board, also attach a ground wire to the shell of the DB25.

    The following is my method to interface the EZ Board to the Control Board.
Cypress/ezpicside.gif  Cypress/ezpicbot.gif
    I took an old DB25M connector (with wires) and super-glued it to the bottom of the EZ Board. Then I ran the wires to the P1, P2, P3, and P4 pins. I will mount this in a small plastic box with the DB25 and USB connectors protruding out the ends. The extra wires have been cut off since the pictures were taken.
    You can fabricate a connector to connector conversion cable using the signal table above. Do not make the cable longer than 6 inches.

3. Modify the USB Card and SLIM Control Board for pull-up resistors
    As noted in the Signal Interface table, we are presently using two signals called "ACK" and "WAIT". These are the MSA's Analog to Digital Converter outputs for Magnitude and Phase. The ADC signals are open collector, so, they must be "pulled up" to 3.3 volts for the Cypress chip to read them. Cypress "says" that 5 volt input signals are allowable, but I contend that they are not, especially if the Cypress is not powered up. Therefore:
a. Remove the pull-up resistors on the MSA Control Board. These are R9, R10, R11, and R12. This eliminates the risk of sourcing an external voltage to the USB board when it is powered down.
b. Add 1 K resistors directly on the EZ Board. I used P4-37 and P4-38. I tied the other ends of the chip resistors to an available +3.3v pad, located at P1-21. Only two pull-ups are used (for WAIT and ACK). Three more may be added as the MSA project expands.
    Note: 
After this mod is done, the SLIM Control board may still work as a parallel interface. That is, using the Computer Parallel Port to MSA LPT. It depends on if your computer requires pull-up resistors on its Status Lines. My computer's LPT Status signals do not require external pull-ups. Therefore I can use the Control Board with either the Computer LPT or the USB Converter. Here is a test to see if the pull-up resistors are required for your computer. Re-boot the computer. Use a voltmeter to measure from computer ground to LPT port, pins 10, 11, 12, and 13.  If these pins are showing greater than +2.0 volts, the pull-ups are not required.

4. Modify MSA SLIM Control Board's Line Filters
    The SLIM Control Board's LPT lines have RC filters to decrease line noise. The RC filters are not necessary when t
he SLIM Control Board is being driven with short lines from the USB card. However, if the SLIM Control Board is already assembled with the RC filters, they may be left in place.
    As a reminder, paragraph 3a. states:
Remove the pull-up resistors on the MSA Control Board. These are R9, R10, R11, and R12.

5. Install the Cypress driver software

* Download the following software and place into your "MSA_Software" folder. If any folders named "usb configure 2.11 and signed drivers" already
    reside there,
delete them or change their names.
usb_configure_2.11_and_signed_drivers.zip Revised 8-06-17
  ( Updated 8-06-2017 added msa-fw-cb-v33.hex to folder)
* Unzip (extract) this folder within the "MSA_Software" folder. This will create the "usb configure.exe"'
program and driver subdirectories called "XP" and "Vista-Windows 7".

* Do not connect the Cypress EZ Board (aka. USB card) to the MSA hardware at this time.
* Use the Computer's USB to power the Cypress EZ Board. Install the EZ Board's 5v jumper accordingly.


Install Cypress driver onto the computer
    If only upgrading from MSA Software version 117 to version 118, skip this section and go to
"Install MSA firmware onto the Cypress's EEPROM"
* Remove the EEPROM jumper on the USB card.
* Connect computer to the USB card. Windows will identify there is a new USB device, and may then search to find drivers; you have to wait until it gives up. (If you see any messages about "This device will go faster", ignore them and they will go away).
* The Hardware Wizard Window should open.
    Note: it is possible that Windows instructs itself not to install the drivers, and no such response will be obtained. In this case, run Device Manager, locate and highlight the entry for the interface. Right click and uninstall. Disconnect the USB card and then re-connect. This should cause the Hardware Wizard to open.
* When the "Found New Hardware Wizard" eventually appears:
    1. Choose "No, not at this time" and click Next.
    2. Choose "Install from a list or specific location" and click Next.
    3. Choose "Search for the best driver in these locations", check "Include this location" and Browse to:
        MSA_Software/usb_configure_2.11_and_signed_drivers/MSA drivers/(XP or Vista-Windows 7).
    4. Click OK.
    5. Click Next.
    6. The Hardware Installation warning may appear. Click "Continue Anyway"
    7. The "Files Needed" window may open.

        If so, click Browse and select within the same MSA_Software folder:
        /usb_configure_2.11_and_signed_drivers/MSA drivers/XP(or Vista-Windows 7)/CYUSB(32 or 64).sys
        Click OK
    8. Click Finish to close the wizard.
    9.
Disconnect the USB card and reconnect it.
       
If the "Found New Hardware Wizard" appears again, go through the installation procedure again.
    10. Otherwise, the computer should indicate "New Hardware is operating normally"

        * You can verify this with the computer's Device Manager. It should indicate:
         "Cypress No EEPROM FX2LP"
    11.
Disconnect the USB card
* Continue to next section and Install the Cypress driver software.

Install MSA firmware onto the Cypress's EEPROM
  The goal is to load the EEPROM with the MSA firmware driver. After completion, every time the USB card is connected to a power source (usually the computer USB) the Cypress will self-load the MSA firmware from EEPROM. The computer will need only one driver installed in its System32/drivers folder. That is the previously installed "CYUSB( ).sys"
* Note that if you have any other connected USB device that is Cypress controlled, the following steps may find and reprogram it inadvertently. Disconnect it from the computer during this installation. Reconnect after completion.
* Connect computer to the USB card with EEPROM jumper removed
* The computer' Device Manager should indicate
"Cypress No EEPROM FX2LP"
* Install the EEPROM jumper.
* Go to the MSA_Software folder, open usb_configure_2.11_and_signed_drivers folder, and double-click the "usb configure.exe" program.  If you get any "Warning", go ahead and click "Run".
* The "N2PK USB Interface Control V2.11" dialog opens.
* There are 4 tabs at the top: Communicate with Adapter, Download Program, Program FX2 Chip EEPROM, and Setup.
* Go to the "Setup" tab
* Use the Browse button to select the "...\Vend_Ax.hex" file. It will be in
the "usb_configure_2.11_and_signed_drivers" folder 
* We want the
USB Driver name to be "cyUSB device 0". Click on the “Find devices” button and select "cyUSB device 0".
* In the
Interface Type area, click "MSA"
* Click "Save Settings".
* Click "
Program FX2 Chip EEPROM" tab
* Click "Download". The text area should read:
    Read file C:\xx\xx\xx\xx\usb_configure_2.11_and_signed_drivers\Vend_Ax.hex
    Byte Count = 0x0ddf bytes
    Driver name: cyUSB device 0
    SUCCESS: Program downloaded.
* The Write EEPROM area should read: "Erase EEPROM (Write FF's)"
* Use the pull-down and select "Load hex file to EEPROM (C2 file)"
* Click "Load File" button
* Browse and
select "msa-fw-cb-v33.hex". Click Open.
       (Updated 8-6-17, This is a new version of the USB / EEPROM firmware to support MSA Software version 118.)
* Now the text area should read:

    Read file C:\xx\xx\xx\xx\usb_configure 2.11 and signed drivers\msa-fw-cb-v33.hex
    Byte Count = 0x0e26 bytes
* Click "Write data".
* The "Please wait..." window will open while the EEPROM is loading. It should take 10 to 20 seconds.
    When successful, the text area should read:
    "EEPROM write completed (I think)"

* Click "Read" and it should read "CD CD CD CD CD CD CD CD"
* You can also click the "Verify Write" button.
* We are now finished programming the EEPROM for MSA operation with the SLIM Control Board
* The next time the USB card is re-connected to the computer, the computer will look for the correct driver.
* Exit the "N2PK USB Interface Control" window
* Disconnect the USB card from the computer
* Re
connect the USB card to the computer
* The computer may open 
the "Found New Hardware Wizard". If so, repeat the installation.
* When finished you can verify the computer's Device Manager. It should indicate:
       "G8KBB MSA USB via Slim-CB i/f v0.03"

* Once the EEPROM is loaded with the MSA firmware and the computer has the correct driver installed, connecting the USB card to the computer will result in just an audio "bong bing".

    The computer may open the "Found New Hardware Wizard" whenever the EEPROM is re-configured or the USB card is attached to a different USB connection on the computer. If so, just repeat the Wizard installation.

    At any time, you can read the EEPROM to verify MSA firmware installation.
* Reconnect the USB card to the computer with the EEPROM jumper installed.
* Open "usb configure.exe" program again
*
Go to the "Setup" tab.
* The USB Driver name should be MSA USB device 0 (grayed)
* Click Find Devices and select (highlight) "MSA USB device 0". Click OK
* The 4 areas in this tab should show:
    USB Driver name    MSA USB device 0 (gray)
    Vend_Ax filename    ....\..\..\Vend_Ax_hex
    Configuration String  MSA FW
    Interface Type          MSA (dot)
* Click Save Settings
* Click "Program FX2 Chip EEPROM" tab
* Click "Download". The text area should read:
    Read file C:\xx\xx\xx\xx\usb_configure_2.11_and_signed_drivers\Vend_Ax.hex
    Byte Count = 0x0ddf bytes
    Driver name: MSA USB device 0
    SUCCESS: Program downloaded.

* Click "Read" and it should read "C2 00 00 00 00 00 00 00"
* Exit the "N2PK USB Interface Control" window
* Disconnect the USB card from the computer or connect the USB card to MSA for operation.

6. Updating EEPROM Firmware.
    If the Cypress board has already been programmed with a .hex file and all that is needed is to update the EEPROM with a new .hex file:
Note: if you have any other connected USB device that is Cypress controlled, the following steps may find and reprogram it inadvertently. Disconnect it from the computer during this installation. Reconnect after completion.
* Connect computer to the USB card with EEPROM jumper installed
* The computer's Device Manager should indicate 
"G8KBB MSA USB via Slim-CB i/f v0.03"
* Go to the MSA_Software folder, open usb_configure_2.11_and_signed_drivers folder, and double-click the "usb configure.exe" program.  If you get any "Warning", go ahead and click "Run".
* The "N2PK USB Interface Control V2.11" dialog opens.
* There are 4 tabs at the top: Communicate with Adapter, Download Program, Program FX2 Chip EEPROM, and Setup.

* Click "
Program FX2 Chip EEPROM" tab
* Click "Download". The text area should read:
    Read file C:\xx\xx\xx\xx\usb_configure_2.11_and_signed_drivers\Vend_Ax.hex
    Byte Count = 0x0ddf bytes
    Driver name: cyUSB device 0
    SUCCESS: Program downloaded.
* The Write EEPROM area should read: "Erase EEPROM (Write FF's)"
* Use the pull-down and select "Load hex file to EEPROM (C2 file)"
* Click "Load File" button
* Browse and
select "msa-fw-cb-v33.hex". Click Open.
       (Updated 8-6-17, This is a new version of the USB / EEPROM firmware to support MSA Software version 118.)
* Now the text area should read:

    Read file C:\xx\xx\xx\xx\usb_configure 2.11 and signed drivers\msa-fw-cb-v33.hex
    Byte Count = 0x0e26 bytes
* Click "Write data".
* The "Please wait..." window will open while the EEPROM is loading. It should take 10 to 20 seconds.
    When successful, the text area should read:
    "EEPROM write completed (I think)"

* Click "Read" and it should read "CD CD CD CD CD CD CD CD"
* You can also click the "Verify Write" button.
* We are now finished re-programming the EEPROM for MSA operation with the SLIM Control Board
* Exit the "N2PK USB Interface Control" window
* Disconnect the USB card from the computer
* Re
connect the USB card to the computer
* The Cypress Interface is ready to be used with the MSA Program