Today, I have another revision "SZ", where "SZ" stands for "ShenZhen".
Minimalist design and the philosophy of "keep it simple stupid" are same. You see, this is important to minimize possible attack surface.
Update is required for three reasons:
USB A connector is considered difficult thing these days
USB A connector is large. Since it is large enough, it might be abused by an attacker. Replacing the connector with a malicious chip inside, it can compose a "chip in the middle" attack. Such an attack is practical these days.
Acknowledge/confirmation button is helpful for some use cases
OpenPGP card specification version 3.3 has the definition of "User Interaction Flag" by popular demand. It is added in order to limit an impact against hijacking of host PC, by requiring user interaction to the device directly.
KiCAD has been changed. The file format has been changed (again).
While schematics are mostly similar, PCB design is completely new. This is because the form factor is changed with new connector.
Instead of USB A connector, we use a special connector in China. It is available in the name of "ZL-272", and it is used with a metal enclosuer called "ZL-271".
We have another major change, the MCU. We use GD32F103TB now. GD32F103 has Cortex-M3 core which can run at 108MHz. Peripherals are mostly similar to STM32F103.
Since ZL-272 and GD32F103 are unique products in China and I took an advantage of ShenZhen industry for this update FST-01, I named it "FST-01SZ".
Components of FST-01SZ
- GD32F103TB
- USB connector
- LDO Regulator (3.3V)
- 12MHz XTAL
- Hall effect sensor
- SWD Port of GND/RST/SWDCLK/SWDIO/3V3
- USB Terminator
- LED
The change for FST-01SZ from FST-01G is change of MCU, change of LDO Regulator, change of XTAL, change of USB connector, removal of extension port, removal of optional SPI flash, adding hall effecto sensor, and adding RST and 3V3 to SWD port.
GD32F103TB
Major change from original FST-01 and FST-01G.
MCU is one of Cortex-M3 based ARM by GigaDevice Semiconductor, China. It runs at 108MHz (faster) and has 128KB flash ROM and 20KB RAM (same).
USB connector
Major change from original FST-01 and FST-01G.
In China, there is de facto standard form factor for USB thumb drive, which uses a small USB connector and a metal enclosure.
The small USB connector is available as ZL-272, and the metal enclosure is available as ZL-271.
Users can put FST-01SZ + ZL-272 into plastic enclosure or another metal enclosure.
LDO Regulator
This is the change from original FST-01 and FST-01G.
We use MCP1700-3302E/TT for 3.3V Regulator (from 5V), in preference to SOT-23-3 package.
For FST-01G, IIRC, I selected the regulator from Open Parts Library of Seeed Technology.
12MHz XTAL
This is the change from original FST-01 and FST-01G.
While 12MHz frequency is same, we use Epson FA-20H, which has smaller footprint.
Considering floating capacitance, we can omit load capacitors.
Hall effect sensor
This is the change from original FST-01 and FST-01G.
We have a hall effect sensor, so that user can use it with a magnet as acknowlege/confirmation interface.
SWD port
This is the change from original FST-01 and FST-01G.
We add RST pin and 3V3 output, thus, we have five-pin port of GND/RST/SWDCLK/SWDIO/3V3 with 1.27mm pitch. RST pin is good when an application uses sleep mode.
SWD port is to update MCU's flash ROM.
USB Terminator
We use NUF2221W1 USB Upstream Terminator.
This is because it has the feature of electrostatic discharge protection. It is also better for smaller footprint than two capacitors and two resistors.
No change for chip from original FST-01 and FST-01G.
LED
We use a LED to show status.
No change from original FST-01 and FST-01G.
No extension port
This is the change from original FST-01 and FST-01G.
We decided to have no I/O pins. (Mostly) nobody uses the extension port of FST-01 and FST-01G.
No SPI Flash memory
No (optional) SPI Flash memory any more. Original FST-01 has the chip.
No CE and WEEE marking
Since the board is covered by the metal enclosure, I don't put markings. FST-01G has these markings.