# YellowB0i 2.8 inch — materials and build record

Applies to our v1.32.3 boot-bubble / save-fix firmware, based on stable v1.32.

## Board-specific purchase links supplied and labeled by Zeek

- 2.8-inch display: https://a.co/d/0fLGCFg1
- 2.8-inch battery: https://a.co/d/0e80iVVC

These are Zeek's selected build links. Product specifications and selected listing variants have not been independently verified. Use the matching firmware target documented below.

## Parts used or required

- One **8 Ω, 1 W speaker with a two-pin connector**, matched to the board’s speaker socket. Confirm connector fit and pinout before connecting.

- One matching ESP32 display board (see exact firmware target below).
- microSD card formatted FAT32, plus an SD reader for preparing files. The tested unit reported approximately 29,850 MB.
- USB data cable and USB power source for flashing and USB-powered use.
- Printed plain, logo-free shell and bezel STL models from this package. Branded AMS models are stored separately in Desktop/Money Files/YellowB0i Logo Cases. User printer is a Bambu Lab A1 with AMS.
- For RFID: one Questwise Ventures Ultra-Compact NFC RFID PN532 Castellated Module, supplied link: https://www.tindie.com/products/questwise-ventures/ultra-compact-nfc-rfid-pn532-castellated-module/ . Set the module for SPI; module-specific switch settings and supply input must be confirmed from its documentation.
- Charging module (shared by both builds): https://a.co/d/02u3Suqu
- Boost converter (shared by both builds): https://a.co/d/0fZIuCsH
- Portable assembly uses a battery, charging/power module, boost module and power switch. Purchase links above identify the selected parts; electrical ratings, selected variants and the final power wiring are not independently verified. Do not infer a power schematic from photos alone.
- Hookup wire, matching connectors, insulation, and case fasteners. Connector types, screw sizes and quantities are not yet confirmed.
- Assembly tools: soldering iron, solder, wire cutters/strippers and multimeter. These are assembly requirements, not firmware dependencies.

The measured 2.8-inch battery envelope supplied during case design was 51.07 x 33.97 x 4.25 mm. This is a physical measurement, not a confirmed capacity or electrical rating; it does not establish the battery for the 3.2-inch case.

## Firmware wiring record

The following pin mapping comes directly from this build's hw_config.h:

| PN532 SPI signal | ESP32 GPIO |
| --- | --- |
| SCK | 18 |
| MISO | 19 |
| MOSI | 23 |
| SS / CS | 22 |

The SD card shares SCK/MISO/MOSI and uses its own CS on GPIO5. PN532 ground must share the board ground. The code uses software SPI for PN532 and restores the SD SPI bus afterward. One old RFID status message mentions GPIO21; the compiled pin definition is GPIO22. Do not use that status text as a wiring guide.

Optional PCF8574 button interface: address 0x20, SDA GPIO16, SCL GPIO17. It is not required for touch controls. Speaker DAC is GPIO26, amplifier enable GPIO4 (active low). Speaker: 8 Ω, 1 W with a two-pin connector; connector pitch remains unconfirmed.

## SD-card setup

Copy the CONTENTS of the included SD-card folder to the root of the card. Avoid an extra nested SD-card/ui directory. Put your own game and movie files into these folders:

```
/roms/gb/       .gb games
/roms/gbc/      .gbc games
/saves/        generated .sav files and previous .sav.bak backups
/movies/       converted .raw movies
/movies/Series name/Episode 01.raw
/ui/           supplied artwork and JPEG animation frames
```

Single movies can stay directly in /movies; series can have subfolders. MP4 files are not played directly. The original movie conversion script is included in Build-record; check its usage for conversion requirements.

Menu animation uses numbered JPEG frames (000.jpg, 001.jpg, etc.), not direct GIF decoding. Included UI folders preserve the source asset set: banner, settings-banner, rfid-banner, movies-banner, episodes-banner, rfid-mascot, and legacy settings/rfid assets. Settings drone artwork is embedded in firmware and does not need a separate GIF.

Use the game's own Save function, then allow at least six seconds before power off. Continuous cartridge RAM changes or failed SD writes can delay autosave. Manual save and exiting the ROM also write cartridge RAM. This is not a full emulator save state. Give GB/GBC games unique base filenames because the save path is /saves/<ROM name>.sav.

## Software used to build this release

- Build environment: PlatformIO environment `cyd`, project board identifier `esp32dev`.
- PlatformIO Core 6.2.0; Espressif32 platform 6.5.0.
- Arduino ESP32 framework 2.0.14 (package 3.20014.231204).
- Xtensa ESP32 GCC toolchain 8.4.0+2021r2-patch5.
- esptool.py 4.5.1 for image generation and local flashing.
- CPU 240 MHz, flash 4 MB / 80 MHz, QIO, custom partitions.csv.
- Emulator: vendored Walnut GB CGB core (`include/walnut_cgb.h`); retained Peanut GB header is not the active core include.
- TFT_eSPI 2.5.43; TJpg_Decoder 1.1.0; Adafruit PN532 1.3.4; Adafruit BusIO 1.17.4 (vendored project libraries).
- Arduino SD, SPI, SPIFFS, Preferences and Wire libraries supplied with the framework.
- Source project on Zeek's computer: `/Volumes/ssd/YellowB0i-build-tools/cyb28-v1.32.3-boot-bubble`.

Build command from the project directory: `pio run -e cyd`. Exact platformio.ini, hw_config.h, partition table and original build log are included in Build-record. This documentation folder is not a complete firmware source distribution; rebuilding requires the source project and its vendored libraries.

2.8-inch target: ESP32-2432S028R / ESP32-32E, ILI9341-compatible display at 240 x 320; resistive touch CLK25, CS33, MOSI32, MISO39, IRQ36; backlight GPIO21.

Full BIN flash offset is 0x0. Use only the BIN for the matching board. Keep the bundled flash/serial tools together. Choose no full erase to retain settings/calibration. These materials and records do not alter the firmware binary.

## Validation status

Both builds compiled successfully and passed host save transaction/dirty-tracking tests with address and undefined-behavior sanitizers. The 3.2-inch serial log confirmed a successful 8,192-byte Donkey Kong save on ROM exit. Live autosave and power-cycle recovery still need explicit hardware confirmation; the 2.8-inch save-fix build also awaits device testing.

Remixed by Xombi3 (https://github.com/Xombi3) and Zeek. See CREDITS.md and Licenses/ for original-project attribution and notices.
