Files
n_signer/firmware/teensy41/README.md

61 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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).