Skip to main content

Bill of Materials (BOM) with AliExpress Links

All components selected for the prototype, with direct purchase links.


MCU — ESP32-S3

OptionFlashPSRAMUSBPriceLink
ESP32-S3 DevKitC-1 N16R8 (clone)16 MB8 MB OctalDual USB-C$5.50-$7.00AliExpress
WeAct ESP32-S3-A N16R816 MB8 MB OctalDual USB-C$5.50-$7.50AliExpress (WeAct Store)
Waveshare ESP32-S3-DEV-KIT N16R816 MB8 MB OctalUSB-C$10.99-$12.99Waveshare

Recommended: ESP32-S3 DevKitC-1 N16R8 generic (~$6.00)


Display

Chosen: ILI9488 3.95" Bare LCD Panel (for custom PCB)

SpecValue
Size3.95"
Resolution320(RGB) × 480
ControllerILI9488
TouchResistive (SPI) — not connected, touch not used
Connector40-pin FPC, 0.5mm pitch
InterfaceMCU 8/16-bit parallel + SPI
BacklightWhite LED, 3.3V
Display colors262K
Price~$3.95
LinkAliExpress
Why bare panel instead of module?

The bare LCD panel connects directly to the PCB via a 40-pin FPC ribbon — no breakout PCB, no pin headers. This is how commercial handheld consoles are built: compact, thin, and plug-in. The FPC ribbon slides into the J4 connector on our PCB and locks with the latch. Zero soldering required.

ILI9488 vs ST7796S — driver notes

Both controllers are equivalent for 8-bit 8080 parallel with RGB565 (~20 MB/s). Key differences:

  • ESP-IDF: use community component esp_lcd_ili9488 (ST7796S has official Espressif component)
  • LovyanGFX / TFT_eSPI: both controllers fully supported
  • SPI limitation: ILI9488 does NOT support RGB565 over SPI (only RGB666/888). This does not affect us since we use parallel 8080.
  • Init sequence: slightly different command set, but handled by the driver library

Display Orientation (landscape for gaming)

Portrait (native)          Landscape (gaming mode)
┌──────────┐ ┌─────────────────────┐
│ │ │ │
│ 320px │ rotate │ 480px │
│ × │ --------> │ × │
│ 480px │ 90° CW │ 320px │
│ │ │ │
│ FPC ══ │ │ FPC ══ │
└──────────┘ └─────────────────────┘

FPC 40-Pin Pinout (ILI9488 panel datasheet)

ILI9488 FPC 40-pin pinout from datasheet

ILI9488 datasheet specifications

PinSymbolDirectionDescriptionConnection
1XLTouch panel logical footNC
2YUTouch panel logical footNC
3XRTouch panel logical footNC
4YDTouch panel logical footNC
5GNDGroundGND
6VDDII/O power supply (1.8–3.3V)+3V3
7VDDAAnalog/digital power (2.8–3.3V)+3V3
8TEOutputTearing effect (vsync)NC
9CSInputChip select (active low)GPIO12
10DC/RSInputData/Command selectGPIO14
11WRInputWrite strobe (8080 mode)GPIO46
12RDInputRead strobe (8080 mode)GPIO3
13SPI SDIInputSPI data inNC (parallel mode)
14SPI SDOOutputSPI data outNC (parallel mode)
15RESETInputReset (active low)GPIO13
16GNDGroundGND
17-24DB0-DB7I/O8-bit parallel data busGPIO4-11
25-32DB8-DB15I/O16-bit extensionNC (8-bit mode)
33LED-ABacklight anode (2.9–3.3V typ 3.1V)GPIO45 (PWM)
34-36LED-KBacklight cathode (8 chip white LED)GND
37GNDGroundGND
38IM0InputInterface mode select+3V3 (HIGH)
39IM1InputInterface mode select+3V3 (HIGH)
40IM2InputInterface mode selectGND (LOW)
Interface Mode Selection (IM2:IM1:IM0)
IM2IM1IM0ModeData Pins
0108080 16-bit parallelDB15-DB0
0118080 8-bit parallelDB7-DB0
1013-line 9-bit SPISDA in/out
1114-line 8-bit SPISDA in/out

Our design uses 8080 8-bit parallel (IM2=0, IM1=1, IM0=1): IM0 and IM1 pulled HIGH to +3V3, IM2 pulled LOW to GND.

Pinout verified from actual panel datasheet

This pinout is from the actual ILI9488 4.0" panel datasheet (see images above). It differs significantly from generic/typical pinouts found online. Do NOT use generic ILI9488 pinout tables — always refer to this datasheet.

FPC Pin Reversal on PCB

When the display is mounted in landscape (CCW rotation), Pin 1 is at the south end of the FPC tail. The ribbon passes straight through the PCB slot to J4 on the bottom side without twisting, so display Pin N contacts connector Pad (41−N). The PCB traces are routed accordingly — e.g., display Pin 17 (DB0/GPIO4) connects to J4 Pad 24. See PCB FPC Slot for details.

Alternative Display Options

OptionSizeResolutionControllerInterfacePriceNotes
ST7796 4.0" bare panel + GT911 touch4.0"320x480ST7796S8/16-bit parallel~$8-12AliExpress — larger screen, official ESP-IDF driver
ST7796S 4.0" module + PCB4.0"320x480ST7796S8/16-bit parallel~$12-19Prototyping only (pin headers, no FPC)
ST7796S 3.5" IPS SPI3.5"320x480ST7796SSPI$8-$12Prototyping only

Power Supply

LiPo Battery

OptionCapacityDimensionsWeightPriceLink
LiPo 105080 5000mAh5000mAh50x80x10mm~80g~$5-8AliExpress
LiPo 104060 3000mAh3000mAh40x60x10mm~50g$6.70AliExpress
LiPo 103450 2000mAh2000mAh34x50x10mm~35g$3.50AliExpress

USB-C Charging Module

OptionFeaturesPriceLink
IP5306 USB-CCharge+boost 5V/2.4A, charge-and-play$1.59AliExpress
TP4056 USB-CCharge only 1A, no boost (needs external regulator)$0.25AliExpress

Voltage Regulator

OptionSpecificationPriceLink
AMS1117-3.3VLDO 5V->3.3V, 800mA$0.24AliExpress

Recommended: LiPo 5000mAh + IP5306 + AMS1117 (~$7-10)

Estimated battery life with 5000mAh

At an average draw of ~300mA (ESP32-S3 + display + audio), the 5000mAh battery provides approximately 14-16 hours of continuous gameplay.

Power architecture
USB-C -> [IP5306] -> 5V -> [AMS1117] -> 3.3V -> ESP32-S3
|
[LiPo Battery]

The IP5306 manages battery charge/discharge and provides stable 5V output. The AMS1117 steps it down to 3.3V for the ESP32.


Controls / Input

ComponentSpecificationPriceLink
Tact switch 6x6mm (20pcs)Momentary push button, for D-pad/A/B/X/Y/Start/Select/L/R (12 buttons)$1.04AliExpress
Rubber pads GBA-styleConductive silicone, better feel$0.27AliExpress
Rubber pads GBA full setD-pad + A/B + Start/Select + L/R$1.05AliExpress
PSP Joystick (removed)2-axis analog, PSP 2000/3000$2.11Removed in v2 — GPIOs reassigned to USB data and BTN_R

Audio

ComponentSpecificationPriceLink
Speaker 28mm 8ohm 0.5WMini speaker (5pc pack $4.05)$0.81/pcAliExpress
PAM8403 amplifier2ch 3W, with volume pot$0.44AliExpress

Storage

ComponentSpecificationPriceLink
SD Card module SPIMicro SD reader, built-in level shifter$0.45AliExpress
Micro SD 32GBClass 10 / UHS-I (Kingston or Samsung)$3.50AliExpress

Prototyping Supplies

ComponentSpecificationPriceLink
Breadboard 830 pointsFor phase 2 prototype~$2.00AliExpress
Jumper wires setM-M, M-F, F-F~$2.00AliExpress
Resistor/capacitor kitAssorted values~$2.00AliExpress

Budget Summary

CategoryComponentPrice
MCUESP32-S3 N16R8 DevKitC-1$6.00
DisplayILI9488 3.95" 8-bit parallel (bare panel)$3.95
BatteryLiPo 105080 5000mAh$6.50
ChargingIP5306 USB-C$1.59
RegulatorAMS1117-3.3V$0.24
ControlsTact switch 20pcs (12 buttons: D-pad, A, B, X, Y, Start, Select, L, R)$1.04
Extra controlsRubber pads$1.05
AudioSpeaker + PAM8403$1.25
StorageSD module + 32GB card$3.95
MiscBreadboard, jumpers, resistors$6.00
TOTAL$32.90

Button Layout

    [L]                         [R]

[X]
[D-pad] [Y] [A]
up/down/ [B]
left/right

[Select] [Start]

12 buttons total: D-pad (4), A, B, X, Y, Start, Select, L, R

Recommended budget

Plan for ~$55 to have margin for spares and unexpected needs.

Shipping

Most AliExpress sellers offer free shipping. Delivery time: 2-4 weeks (standard).


JLCPCB PCB Assembly — LCSC Part Numbers

For the custom PCB version (see PCB Design), all SMT components are sourced from LCSC for JLCPCB assembly.

RefComponentPackageLCSCClassDatasheet
U1ESP32-S3-WROOM-1-N16R8ModuleC2913202ExtendedPDF
U2IP5306 charger+boost ICeSOP-8C181692ExtendedPDF
U3AMS1117-3.3 LDOSOT-223C6186BasicPDF
U5PAM8403 audio amplifierSOP-16C5122557ExtendedPDF
J1USB-C 16-pin connectorSMTC2765186ExtendedPDF
U6Micro SD slot (TF-01A)SMTC91145ExtendedPDF
J4FPC 40-pin 0.5mm (display)SMTC2856812ExtendedPDF
J3JST PH 2-pin (battery)THTC173752ExtendedPDF
L11µH inductor 4.5ASMD 4×4C280579ExtendedPDF
SW1–SW13,SW_RST,SW_BOOTSMT tact switch 5.1×5.1mmSMTC318884ExtendedPDF
SW_PWRSlide switch SS-12D00G3SMTC431540ExtendedPDF
LED1Red LED 08050805C84256BasicPDF
LED2Green LED 08050805C19171391BasicPDF
R1–R25.1kΩ 08050805C27834BasicPDF
R3–R15,R1910kΩ 08050805C17414BasicPDF
R16100kΩ 08050805C149504BasicPDF
R17,R181kΩ 08050805C17513BasicPDF
R20,R2120kΩ bias (PAM8403 INL/INR)0805C4184Basic
C3–C16,C20,C21100nF 08050805C49678BasicPDF
C1,C17,C1810µF 08050805C15850BasicPDF
C2,C1922µF 12061206C12891BasicPDF
C220.47µF DC-blocking (PAM8403 input)0805C1525Basic
C23,C24,C251µF decoupling (PAM8403 VDD/PVDD)0805C15849Basic

Estimated PCB cost: $90 for 5 boards ($18/board) including fabrication, components, and assembly.

v2 Additional Components (Audio Coprocessor)

The v2 PCB adds an ESP32-S3-MINI-1-N8 as a dedicated audio coprocessor (see Phase 5 — Software Architecture):

RefComponentPackageLCSCClassUnit cost
U7ESP32-S3-MINI-1-N8Module (15.4×20.5mm)C2913206Extended$3.25
C26,C27100nF 0805 (decoupling)0805C49678Basic$0.01

v2 BOM delta: +$3.27 per unit. No external crystal, flash, or extra passives needed — the module integrates everything.

v2 estimated PCB cost: $106 for 5 boards ($21/board).


PCB Version — What to Buy Separately

When ordering the custom PCB from JLCPCB, the following components are NOT included in the assembly and must be purchased from AliExpress:

ComponentRefPriceConnection to PCBSolder?
ILI9488 3.95" bare LCD panel (40P FPC 0.5mm, resistive touch NC)U4~$3.95FPC ribbon → J4 connector (slide + latch)No
LiPo 105080 5000mAh batteryBT1~$6-8JST PH plug → J3 connectorNo
Speaker 28mm 8ΩSPK1~$0.802 wires → solder padsYes (easy)
PSP joystick (removed)J2Removed in v2 — GPIOs reassigned to USB data and BTN_R
~$17-23
tip

The display and battery are plug-in — no soldering skills required. Only the speaker (2 wires) needs soldering.

Display purchase — important

Buy the bare LCD panel (no PCB breakout board), specifically:

  • ILI9488 controller, 3.95", 320×480, 40-pin FPC 0.5mm pitch
  • Resistive touch (not connected — touch pins left NC on PCB)
  • AliExpress link

Do NOT buy display modules with PCB breakout + pin headers — those are for breadboard prototyping and won't fit the FPC connector on the PCB.