Tophat-Razr PCB Design Overview

PROJECT: Tophat-Razr-v1 BOARD VERSION: v6
OVERVIEW: Custom 4-layer PCB for a handheld Linux terminal device called Tophat. The board fits inside the lower half of a Motorola RAZR V3m clamshell shell. The device runs Alpine Linux with fish shell as default, an IPFS lite node for peer-to-peer package distribution, and SSH. Packages are distributed via IPFS with a three-tier signed index system (Tier 0 backtested signed release, Tier 1 IPFS p2p mirror, Tier 2 opt-in community overlay).
BOARD SPECIFICATIONS:
  • Dimensions: 88mm x 50mm (confirm with calipers from donor phone)
  • Stackup: 4-layer, 0.8mm total thickness
  • Copper: 1oz all layers
  • Finish: ENIG (gold) — required for fine pitch QFN pads
  • Solder mask: green
  • Layer 1 top: components, signal traces, RGB parallel lines
  • Layer 2: unbroken ground plane — no slots or breaks between chips
  • Layer 3: power planes — 5V, 3.3V, 1.8V pours
  • Layer 4 bottom: SPI buses, keyboard matrix, USB diff pairs
  • Manufacturer: JLCPCB, 5 bare boards + 2 PCBA assembled
THREE COMPUTE CHIPS:
  1. Allwinner V3s (QFN-88, 10x10mm, 0.4mm pitch) LCSC: C89764
    • Main CPU — Alpine Linux anchor, fish shell, IPFS lite node
    • RGB parallel display output to main display via hinge flex
    • SPI0 master → RK3528 (task offload)
    • SPI1 master → ESP32-S3-WROOM-1 (network + keypress)
    • I2S audio → MAX98357A speaker amp
    • UART0 debug (test points only, no connector)
    • Boots from SPI NOR flash 16MB on SPI bus
    • 33 ohm series resistor on all SPI CLK lines
    • 100nF decoupling cap on every power pin, placed <1mm from pin
  2. Rockchip RK3528 (LFBGA-450, 0.65mm pitch)
    • Burst compute — sleeps <1mA idle, wakes on demand from V3s
    • SPI0 slave ← V3s
    • WAKE GPIO output → V3s (RK3528 signals ready to receive)
    • READY GPIO output → V3s (RK3528 signals task complete)
    • Powers down aggressively between burst tasks
    • Requires careful BGA escape routing — if 4-layer insufficient upgrade to 6-layer 1.0mm stackup
    • Power rails: 3.3V, 1.8V, 1.0V from AXP203
  3. ESP32-S3-WROOM-1 MODULE (18x25.5mm) LCSC: C2913202
    • WiFi 4 + Bluetooth 5 — module handles all RF, no external antenna components needed
    • Placement: top right corner, antenna end overhanging board edge or facing shell exterior
    • NO copper pour under antenna section of module
    • Keyboard matrix scanner: 4 rows x 4 columns GPIO
    • Native USB-C OTG interface (D+/D- to USB-C port)
    • I2C master → FUSB302 USB-C PD controller
    • SPI1 slave ← V3s (network packets + keypress events)
    • WAKE GPIO output → V3s (pulls high on keypress or network)
    • DATA_READY GPIO output → V3s (signals data waiting on SPI)
    • Cover display driver → ST7789 1.3in via SPI
    • Runs independently while V3s sleeps
POWER MANAGEMENT:
AXP203 PMIC (QFN-48, 6x6mm, 0.5mm pitch) LCSC: C88659
  • Single power management IC — handles everything
  • Input: 5V from USB-C VBUS via FUSB302
  • LiPo charge: internal charger, max 1A charge rate
  • Power rails output:
    • 3.3V → V3s, ESP32-S3, display, audio, flash, SD
    • 1.8V → V3s IO, RK3528 IO
    • 1.0V → RK3528 core
  • I2C slave ← ESP32-S3 (receives charge current commands)
  • Battery gauge built in
  • NO BQ25895 — AXP203 internal charging only
FUSB302BUCX USB-C PD Controller (QFN-24, 3x3mm, 0.5mm pitch) LCSC: C442699
  • Negotiates USB-C PD up to 20V/3A (60W)
  • CC1/CC2 from USB-C port
  • I2C → ESP32-S3 (reports negotiated voltage/current)
  • ESP32-S3 commands AXP203 charge current accordingly
  • Falls back to 5V/500mA standard charge if no PD adapter
LiPo Cell:
  • 800mAh, approximately 50x40x4mm
  • JST-PH 2-pin connector
  • Sits alongside chips within 8mm depth budget
  • Placement: bottom right zone of board
INTER-CHIP SPI BRIDGE:
V3s SPI0 ↔ RK3528:
  • Up to 40Mbps
  • Signals: CLK, MOSI, MISO, CS
  • 33 ohm series on CLK
  • WAKE + READY GPIO handshake
  • Purpose: burst task offload (heavy IPFS sync, compile)
V3s SPI1 ↔ ESP32-S3-WROOM-1:
  • Up to 40Mbps
  • Signals: CLK, MOSI, MISO, CS
  • 33 ohm series on CLK
  • WAKE + DATA_READY GPIO handshake
  • Purpose: network packets, keypress events, power commands
Simple frame protocol:
  • [1 byte type][1 byte length][N bytes payload]
  • 0x01 = keypress (2 bytes: keycode + modifier)
  • 0x02 = network packet (up to 1500 bytes raw ethernet frame)
  • 0x03 = power command (1 byte)
  • 0x04 = ack
All SPI traces: layer 4, parallel routing, matched length, under 30mm total, 33 ohm series termination on CLK lines. Shared ground plane layer 2 unbroken between all three chips.
DISPLAY:
Main display — ILI9341 2.4in TFT
  • Interface: RGB parallel from V3s
  • Connector: 24-pin FPC, 0.5mm pitch
  • Placement: top edge left of board
  • Connects via hinge flex cable to display in top shell half
  • RGB lines: length matched on layer 1
Cover display — ST7789 1.3in TFT
  • Interface: SPI from ESP32-S3
  • Connector: 12-pin FPC, 0.5mm pitch
  • Placement: top edge right of board
  • Shows IPFS node status, peer count, cache health, battery when main display off
Hinge flex connector:
  • Centre top edge of board
  • Carries: RGB parallel signals + I2S audio to top shell half
  • Flex cable routes through original V3m hinge
AUDIO: MAX98357AEWL I2S amplifier (WLCSP-9) LCSC: C460459
  • I2S signals from V3s
  • Drives original V3m speaker
  • Placement: near hinge flex connector
SPH0645LM4H MEMS microphone LCSC: C460782
  • PDM interface to V3s
  • Placement: near original V3m microphone aperture in shell
STORAGE: SPI NOR Flash 16MB (SOP-8) LCSC: C97521
  • Connected to V3s SPI bus
  • Boot source for Alpine Linux + V3s U-Boot
  • Placement: close to V3s
microSD slot LCSC: C91145
  • Connected to V3s SDMMC interface
  • User data, IPFS package cache, additional storage
  • Placement: right edge of board, accessible via shell cutout
USB-C: GCT USB4135-GF-A receptacle LCSC: C165948
  • Placement: bottom left edge (replaces original mini-USB cutout in V3m shell)
  • VBUS → AXP203 charge input
  • D+/D- → ESP32-S3 native USB OTG
  • CC1/CC2 → FUSB302 PD controller
  • USB D+/D- differential pair: 90 ohm impedance, layer 4
KEYBOARD MATRIX:
  • 4 rows x 4 columns = 16 keys
  • Maps to V3m numeric keypad (12 keys) + *, #, D-pad centre, call/end softkeys
  • BAT54S Schottky diodes on each column (ghosting prevention) LCSC: C15757
  • 10k pull-down resistors on each row
  • GPIO from ESP32-S3
  • Matrix traces run full width of bottom edge of board
  • Route directly to V3m key contact pad locations
NUMLOCK-STYLE KEY MAPPING (software, on ESP32-S3):
  • 1-9, 0 → T9 multi-tap for letters
    • → Ctrl modifier
  • → Space / Enter
  • D-pad up/down → terminal history scroll
  • D-pad left/right → cursor movement
  • Softkey left → Tab
  • Softkey right → Escape
  • Long press any number → symbol (!@#$%^&*())
PASSIVES AND SUPPORTING COMPONENTS:
  • 100nF 0402 decoupling caps x20 (LCSC: C14663) Place <1mm from every power pin on every chip
  • 10uF 0402 bulk caps x6 (LCSC: C19702) Place at power entry to each chip zone
  • 4.7uH 0402 inductors x2 (LCSC: C1035) For AXP203 buck converter outputs
  • 10k 0402 resistors x16 (LCSC: C25744) Keyboard matrix row pull-downs
  • 33 ohm 0402 resistors x8 (LCSC: C25082) SPI CLK series termination (2 per SPI bus x 4 signals)
  • BAT54S diodes x16 (LCSC: C15757) Keyboard matrix column ghosting prevention
  • ESD protection PRTR5V0U2X x3 (LCSC: C12333) On USB-C lines, display lines, SPI lines
  • LED 0402 red x1 (LCSC: C72043) Charge status indicator
  • Tactile reset switch x1 (LCSC: C318884) Hidden inside shell, accessible via pinhole
CONNECTORS PLACEMENT SUMMARY:
  • Top edge left: 24-pin FPC 0.5mm (main display)
  • Top edge centre: hinge flex connector (RGB + audio)
  • Top edge right: 12-pin FPC 0.5mm (cover display)
  • Right edge: microSD slot
  • Bottom left edge: USB-C receptacle
  • Bottom right: JST-PH 2-pin LiPo connector
  • Corner (any accessible): 4x debug test points (GND, 3V3, UART0_TX, UART0_RX)
CRITICAL ROUTING RULES:
  1. Ground plane layer 2: completely unbroken between all chips
  2. RGB parallel lines: length matched ±0.15mm, layer 1
  3. USB D+/D-: 90 ohm differential, layer 4
  4. SPI CLK lines: 33 ohm series termination resistor on each
  5. SPI buses: all 4 signals parallel routed, matched length, layer 4, under 30mm
  6. Decoupling caps: 100nF on every power pin <1mm from pin
  7. No copper pour under ESP32-S3-WROOM-1 antenna section
  8. LiPo and power components: bottom right zone only
  9. Keyboard matrix traces: bottom edge, layer 4
  10. BGA escape (RK3528): single via escape, 0.1mm trace/space If insufficient → upgrade to 6-layer 1.0mm
POWER BUDGET TARGETS:
  • Deep idle (ESP32 watching, rest asleep): ~45mA / 0.225W
  • Terminal active (V3s + ESP32): ~200mA / 1W
  • Burst compute (all three chips): ~600mA / 3W
  • Target runtime: 4+ hours typical use on 800mAh LiPo
IPFS PACKAGE DISTRIBUTION SYSTEM:
  • Three tier signed package index
  • Tier 0: backtested signed release (primary key, offline signing)
  • Tier 1: same packages mirrored over IPFS p2p (CID-based fetch)
  • Tier 2: community overlay (separate key, opt-in)
  • Each package: {name, version, sha256, cid, tier, signature}
  • Client verifies signed index → fetches by CID → sha256 verify
  • Node collection digest: sha256 of sorted cid:sha256 pairs
  • Nodes with failed integrity checks stop seeding automatically
  • DHT-based peer discovery, no central server
  • Bootstrap peers hardcoded in app config
  • IPNS pointer for index resolution
SOFTWARE STACK:
  • Bootloader: U-Boot for V3s
  • OS: Alpine Linux minimal (musl libc)
  • Shell: fish (default, pre-configured)
  • Package manager: apk pointing at Tophat IPFS repo
  • Prompt: Starship or custom fish prompt
  • Default tools: fzf, zoxide, ssh, git, curl
  • Bridge daemon: tophat-bridge (C, userspace SPI handler) Routes SPI frames to /dev/uinput (keyboard) or TUN/TAP interface (network)
  • IPFS: kubo-lite or go-ipfs-lite node
  • Cover display daemon: reads IPFS node stats, peer count, battery, pushes to ST7789 via ESP32-S3
I can’t continue executing project setup right now because this account has no available ACUs, so AI design actions are unavailable.
So far in this session, no schematic/layout changes were made. You provided a detailed v6 specification for Tophat-Razr-v1, a 4-layer handheld Linux terminal PCB targeting the Motorola RAZR V3m shell, with V3s + RK3528 + ESP32-S3 compute, AXP203 power management, USB-C PD, displays, audio, storage, keyboard matrix, and routing/placement constraints.
Remaining work once ACUs are available:
  • Rename the project from the random placeholder to Tophat-Razr-v1 and update the description.
  • Create a persistent project specification document from your v6 requirements.
  • Validate the architecture, especially RK3528 BGA feasibility on 4 layers and AXP203 rail/current suitability.
  • Build the schematic in functional blocks: power, compute, USB-C/PD, displays, audio, storage, keyboard, debug.
  • Create power budget, bring-up, firmware, and regulatory notes.
  • Move into PCB setup: 88 mm × 50 mm, 4-layer 0.8 mm stackup, placement constraints, then routing rules.
Create spec document
Check BGA feasibility
Review power budget
Plan schematic blocks
No schematic yet

Talk to Flux to get started.



  • Generic Inductor
    A generic fixed inductor suitable for rapid circuit topology development. The footprint automatically adapts based on the selected package, supporting standard SMD sizes (e.g., 0402, 0603, 0805) as well as well-known inductor packages such as SDR1806, PA4320, SRN6028, and SRR1260. Standard inductor values: 1.0 nH, 10 nH, 100 nH, 1.0 µH, 10 µH, 100 µH, 1.0 mH 1.2 nH, 12 nH, 120 nH, 1.2 µH, 12 µH, 120 µH, 1.2 mH 1.5 nH, 15 nH, 150 nH, 1.5 µH, 15 µH, 150 µH, 1.5 mH 1.8 nH, 18 nH, 180 nH, 1.8 µH, 18 µH, 180 µH, 1.8 mH 2.2 nH, 22 nH, 220 nH, 2.2 µH, 22 µH, 220 µH, 2.2 mH 2.7 nH, 27 nH, 270 nH, 2.7 µH, 27 µH, 270 µH, 2.7 mH 3.3 nH, 33 nH, 330 nH, 3.3 µH, 33 µH, 330 µH, 3.3 mH 3.9 nH, 39 nH, 390 nH, 3.9 µH, 39 µH, 390 µH, 3.9 mH 4.7 nH, 47 nH, 470 nH, 4.7 µH, 47 µH, 470 µH, 4.7 mH 5.6 nH, 56 nH, 560 nH, 5.6 µH, 56 µH, 560 µH, 5.6 mH 6.8 nH, 68 nH, 680 nH, 6.8 µH, 68 µH, 680 µH, 6.8 mH 8.2 nH, 82 nH, 820 nH, 8.2 µH, 82 µH, 820 µH, 8.2 mH #generics #CommonPartsLibrary
  • Generic Capacitor
    A generic fixed capacitor ideal for rapid circuit topology development. You can choose between polarized and non-polarized types, its symbol and the footprint will automatically adapt based on your selection. Supported options include standard SMD sizes for ceramic capacitors (e.g., 0402, 0603, 0805), SMD sizes for aluminum electrolytic capacitors, and through-hole footprints for polarized capacitors. Save precious design time by seamlessly add more information to this part (value, footprint, etc.) as it becomes available. Standard capacitor values: 1.0pF, 10pF, 100pF, 1000pF, 0.01uF, 0.1uF, 1.0uF, 10uF, 100uF, 1000uF, 10000uF 1.1pF, 11pF, 110pF, 1100pF 1.2pF, 12pF, 120pF, 1200pF 1.3pF, 13pF, 130pF, 1300pF 1.5pF, 15pF, 150pF, 1500pF, 0.015uF, 0.15uF, 1.5uF, 15uF, 150uF, 1500uF 1.6pF, 16pF, 160pF, 1600pF 1.8pF, 18pF, 180pF, 1800pF 2.0pF, 20pF, 200pF, 2000pF 2.2pF, 22pF, 220pF, 2200pF, 0.022uF, 0.22uF, 2.2uF, 22uF, 220uF, 2200uF 2.4pF, 24pF, 240pF, 2400pF 2.7pF, 27pF, 270pF, 2700pF 3.0pF, 30pF, 300pF, 3000pF 3.3pF, 33pF, 330pF, 3300pF, 0.033uF, 0.33uF, 3.3uF, 33uF, 330uF, 3300uF 3.6pF, 36pF, 360pF, 3600pF 3.9pF, 39pF, 390pF, 3900pF 4.3pF, 43pF, 430pF, 4300pF 4.7pF, 47pF, 470pF, 4700pF, 0.047uF, 0.47uF, 4.7uF, 47uF, 470uF, 4700uF 5.1pF, 51pF, 510pF, 5100pF 5.6pF, 56pF, 560pF, 5600pF 6.2pF, 62pF, 620pF, 6200pF 6.8pF, 68pF, 680pF, 6800pF, 0.068uF, 0.68uF, 6.8uF, 68uF, 680uF, 6800uF 7.5pF, 75pF, 750pF, 7500pF 8.2pF, 82pF, 820pF, 8200pF 9.1pF, 91pF, 910pF, 9100pF #generics #CommonPartsLibrary
  • Generic Resistor
    A generic fixed resistor ideal for rapid circuit topology development. Its footprint automatically adapts based on the selected package case code—supporting 0402, 0603, 0805, 1203, and many other standard SMD packages, as well as axial horizontal and vertical configurations. Save precious design time by seamlessly add more information to this part (value, footprint, etc.) as it becomes available. Standard resistor values: 1.0 ohm, 10 ohm, 100 ohm, 1.0k ohm, 10k ohm, 100k ohm, 1.0M ohm 1.1 ohm, 11 ohm, 110 ohm, 1.1k ohm, 11k ohm, 110k ohm, 1.1M ohm 1.2 ohm, 12 ohm, 120 ohm, 1.2k ohm, 12k ohm, 120k ohm, 1.2M ohm 1.3 ohm, 13 ohm, 130 ohm, 1.3k ohm, 13k ohm, 130k ohm, 1.3M ohm 1.5 ohm, 15 ohm, 150 ohm, 1.5k ohm, 15k ohm, 150k ohm, 1.5M ohm 1.6 ohm, 16 ohm, 160 ohm, 1.6k ohm, 16k ohm, 160k ohm, 1.6M ohm 1.8 ohm, 18 ohm, 180 ohm, 1.8K ohm, 18k ohm, 180k ohm, 1.8M ohm 2.0 ohm, 20 ohm, 200 ohm, 2.0k ohm, 20k ohm, 200k ohm, 2.0M ohm 2.2 ohm, 22 ohm, 220 ohm, 2.2k ohm, 22k ohm, 220k ohm, 2.2M ohm 2.4 ohm, 24 ohm, 240 ohm, 2.4k ohm, 24k ohm, 240k ohm, 2.4M ohm 2.7 ohm, 27 ohm, 270 ohm, 2.7k ohm, 27k ohm, 270k ohm, 2.7M ohm 3.0 ohm, 30 ohm, 300 ohm, 3.0K ohm, 30K ohm, 300K ohm, 3.0M ohm 3.3 ohm, 33 ohm, 330 ohm, 3.3k ohm, 33k ohm, 330k ohm, 3.3M ohm 3.6 ohm, 36 ohm, 360 ohm, 3.6k ohm, 36k ohm, 360k ohm, 3.6M ohm 3.9 ohm, 39 ohm, 390 ohm, 3.9k ohm, 39k ohm, 390k ohm, 3.9M ohm 4.3 ohm, 43 ohm, 430 ohm, 4.3k ohm, 43K ohm, 430K ohm, 4.3M ohm 4.7 ohm, 47 ohm, 470 ohm, 4.7k ohm, 47k ohm, 470k ohm, 4.7M ohm 5.1 ohm, 51 ohm, 510 ohm, 5.1k ohm, 51k ohm, 510k ohm, 5.1M ohm 5.6 ohm, 56 ohm, 560 ohm, 5.6k ohm, 56k ohm, 560k ohm, 5.6M ohm 6.2 ohm, 62 ohm, 620 ohm, 6.2k ohm, 62K ohm, 620K ohm, 6.2M ohm 6.8 ohm, 68 ohm, 680 ohm, 6.8k ohm, 68k ohm, 680k ohm, 6.8M ohm 7.5 ohm, 75 ohm, 750 ohm, 7.5k ohm, 75k ohm, 750k ohm, 7.5M ohm 8.2 ohm, 82 ohm, 820 ohm, 8.2k ohm, 82k ohm, 820k ohm, 8.2M ohm 9.1 ohm, 91 ohm, 910 ohm, 9.1k ohm, 91k ohm, 910k ohm, 9.1M ohm #generics #CommonPartsLibrary
  • Terminal
    Terminal
    An electrical connector acting as reusable interface to a conductor and creating a point where external circuits can be connected.
  • RMCF0805JT47K0
    General Purpose Thick Film Standard Power and High-Power Chip Resistor 47 kOhms ±5% 0.125W, 1/8W Chip Resistor 0805 (2012 Metric) Automotive AEC-Q200 Thick Film Features: - RMCF – standard power ratings - RMCP – high power ratings - Nickel barrier terminations standard - Power derating from 100% at 70ºC to zero at +155ºC - RoHS compliant, REACH compliant, and halogen free - AEC-Q200 compliant
  • 875105359001
    10 µF 16 V Aluminum - Polymer Capacitors Radial, Can - SMD 30mOhm 2000 Hrs @ 105°C #commonpartslibrary #capacitor #aluminumpolymer #radialcan
  • CTL1206FYW1T
    Yellow 595nm LED Indication - Discrete 1.7V 1206 (3216 Metric)
  • 1070TR
    Battery Holder (Open) Coin, 20.0mm 1 Cell SMD (SMT) Tab bate or batt #forLedBlink
  • Push Button
    A momentary or non-latching switch which causes a temporary change in the state of an electrical circuit only while the switch is physically actuated. SWITCH TACTILE SPST-NO 0.05A 24V
  • XY301V-A-5.0-3P
    Straight 3 pin 5mm 3-pin Pitch 5mm 15A 1.5 300V Screw terminal block 01x03 #screwblock #connector #commonPartsLibrary

Mass Jade Electromagnetic Shrinking Machine

Mass Jade Electromagnetic Shrinking Machine thumbnail
Welcome to your new project. Imagine what you can build here.

Properties

Properties describe core aspects of the project.

Pricing & Availability

See prices from popular manufacturers for your project.

Controls