61 lines
2.4 KiB
Markdown
61 lines
2.4 KiB
Markdown
# n_signer Teensy 4.1 Firmware
|
||
|
||
**Status:** Planned — not yet implemented. See
|
||
[`plans/teensy41_signer_port.md`](../../plans/teensy41_signer_port.md).
|
||
|
||
The **Teensy 4.1** (NXP i.MX RT1062, Cortex-M7 @ 600 MHz) is the high-capacity
|
||
OTP pad target. Its built-in SD slot supports **1 TB SDXC cards (exFAT)** via
|
||
PJRC's SdFat library, making it the ideal hardware signer for large one-time-pad
|
||
storage.
|
||
|
||
## Why the Teensy 4.1
|
||
|
||
| Concern | Teensy 4.1 | CYD (ESP32) | Feather S3 TFT (ESP32-S3) |
|
||
|---|---|---|---|
|
||
| MCU | 600 MHz Cortex-M7 | 240 MHz Xtensa LX6 | 240 MHz Xtensa LX7 |
|
||
| SRAM | 1 MB + 16 MB PSRAM | 512 KB (no PSRAM) | 512 KB + quad PSRAM |
|
||
| SD slot | **4-bit SDMMC, exFAT, up to 2 TB** | 1-bit SDSPI, FAT32, up to 32 GB | — |
|
||
| USB | Hi-Speed (480 Mbps) device + host | CH340 UART only | Full-Speed USB |
|
||
| WiFi | **None** | Yes (unused) | Yes (unused) |
|
||
| Ethernet | 10/100 PHY (optional) | — | — |
|
||
| PQ crypto speed | ~1-2 s SLH-DSA-128s | 5-30 s SLH-DSA-128s | 5-30 s SLH-DSA-128s |
|
||
|
||
## SD card size support
|
||
|
||
| Card type | Size | Works? |
|
||
|---|---|---|
|
||
| SDSC | ≤ 2 GB | Yes (FAT16/32) |
|
||
| SDHC | 2 – 32 GB | Yes (FAT32) |
|
||
| **SDXC** | **32 GB – 2 TB** | **Yes (exFAT via SdFat)** |
|
||
| SDUC | 2 – 128 TB | No |
|
||
|
||
**1 TB SDXC cards work** — SdFat has native exFAT support, and the Teensy's
|
||
4-bit SDMMC bus runs at ~20-40 MB/s. No reformatting needed.
|
||
|
||
## Display + touch
|
||
|
||
**4.0" ST7796S 480×320 SPI TFT with XPT2046 resistive touch** (Hosyond or
|
||
equivalent, ~$12-15). Specs: 4-wire SPI, RGB 65K, 3.3V~5V (works at the Teensy's
|
||
3.3V logic), XPT2046 resistive touch, includes touch pen + on-module SD slot.
|
||
|
||
Resistive touch is the right choice for a hardware signer (deliberate physical
|
||
activation, stylus-compatible, simple driver). The XPT2046 driver ports from
|
||
the CYD's [`touch.c`](../cyd_esp32_2432s028/main/touch.c) with 480×320
|
||
resolution constants. The ST7796S display driver is new code (different init
|
||
sequence than the CYD's ILI9341).
|
||
|
||
Wiring: TFT SPI on pins 11/12/13, CS=10, DC=9, RESET=8, BL=22; touch shares
|
||
the SPI bus with T_CS=7, T_IRQ=6. See
|
||
[`plans/teensy41_signer_port.md`](../../plans/teensy41_signer_port.md) for the
|
||
full pin table.
|
||
|
||
## Build (planned)
|
||
|
||
```bash
|
||
# Arduino CLI / Teensyduino
|
||
arduino-cli compile --fqbn teensy:avr:teensy41 firmware/teensy41
|
||
arduino-cli upload -p /dev/ttyACM0 --fqbn teensy:avr:teensy41 firmware/teensy41
|
||
```
|
||
|
||
See the port plan: [`plans/teensy41_signer_port.md`](../../plans/teensy41_signer_port.md).
|