Generation 2 and generation 3 technology stacks share the same firmware but with different VIDs/PIDs.
Using Cypress firmware update tools with generation 2 modules does require a recovery boot, in order to force enumeration as Cypress USB Generic Driver.
On the other side, using Cypress firmware update tools with generation 3 modules may not require a recovery boot (if a Generation 3 reference firmware is running on USB FX2 microcontroller), but only an update boot. This is possible because the original Cypress USB Generic Driver (in case of a recovery boot) and the Trenz Electronic USB FX2 device driver ( in case of a regular boot) are both Cypress driver. Trenz Electronic USB FX2 driver derives from the original Cypress USB Generic Driver.
The firmware update procedure is similar for both generations. The following table summarizes the main differences. See also this video play lists for Cypress recovery boot and this page for OpenFutNet recovery boot.
generation | 2: recovery boot | 2: regular/update boot | 3: recovery boot | 3: regular/update boot |
---|---|---|---|---|
boot mode | firmware recovery | regular or firmware update | firmware recovery | regular or firmware update |
EEPROM switch (2) | EEPROM switch warning (3) | EEPROM always enabled (4) | EEPROM switch warning (3) | EEPROM always enabled (4) |
VID | 04B4 | 0547 | 04B4 | 0BD0 |
PID | 8613 | 1002 | 8613 | 0300 |
device enumerated | Cypress generic USB | DEWESoft TE03xx USB | Cypress generic USB | Trenz Electronic TE USB FX2 |
required driver | regular driver | |||
firmware source code | Source code available here. | Source code available here. | ||
firmware binary files | Binary files available here. | Binary files available here. | ||
recovery tool | Cypress USB Console, | not applicable | Cypress USB Console, | not applicable |
update tool | not applicable | Python OpenFut Generation2 | not applicable | Cypress USB Console, |