Blueprint

AltoiDS (RetroPie Handheld)

AltoiDS is a concept for a tiny handheld gaming console inspired by classic systems from NES to DS. The idea is to fit a small single-board computer like a Raspberry Pi Zero 2 W or Radxa Zero 3W and a small TFT screen inside an XL Altoids tin using 3D-printed internal shells for buttons, controls, and battery. My reason for my choice of parts is available in my latest journal.

Created by lowpolyphosphorus lowpolyphosphorus

Tier 2

15 views

0 followers

Timeline

CAN CAN ⚡🚀 approved AltoiDS (RetroPie Handheld) ago

Tier approved: 2

Grant approved: $174.00

Nice project

lowpolyphosphorus lowpolyphosphorus submitted AltoiDS (RetroPie Handheld) for review ago

PenguinBoyMo PenguinBoyMo requested changes for AltoiDS (RetroPie Handheld) ago

Could you please reduce the price, thanks

lowpolyphosphorus lowpolyphosphorus submitted AltoiDS (RetroPie Handheld) for review ago

1Mon 1Mon requested changes for AltoiDS (RetroPie Handheld) ago

can you find a cheaper place to get the altoids tin? 30 dollars is kinda crazy :sob: please also remove the ai from your journal and readme!

lowpolyphosphorus lowpolyphosphorus submitted AltoiDS (RetroPie Handheld) for review ago

Tanook Tanook 🚀 requested changes for AltoiDS (RetroPie Handheld) ago

hello! in order for this to be accepted, this needs more polish. This is really hard to achieve in tinkercad, so I HIGHLY reccomend using fusion or onshape instead.

lowpolyphosphorus lowpolyphosphorus submitted AltoiDS (RetroPie Handheld) for review ago

Iamalive Iamalive 🚀 requested changes for AltoiDS (RetroPie Handheld) ago

Your repo's BOM(https://github.com/LowPolyPhosphorus/AltoiDS/blob/main/Documents/AltoiDS%20(RetroPie%20Emulator)%20BOM.csv) doesn't match your current cart?

lowpolyphosphorus lowpolyphosphorus added to the journal ago

BOM Cost Optimization

12/9/25

Today I reworked the Bill of Materials to cut costs by switching most components from Amazon to AliExpress suppliers.

Why the Change

My original BOM came out to $196.70 with most parts from Amazon. That was cutting it close to the Tier 2 budget ceiling of $200, leaving almost no room for adjustments or a custom PCB if needed. After the grant feedback, I needed to find ways to reduce costs while keeping the same quality components.

What I Did

Spent time searching AliExpress for equivalent parts from reliable sellers. Checked reviews, shipping times, and verified specs matched what I need.

Key changes:

  • Battery: $9.99 → $7.07 (saved $2.92)
  • TP4056 charger: $6.29 → $1.98 (saved $4.31)
  • Boost converter: $6.99 → $2.93 (saved $4.06)
  • Tactile switches: $8.99 → $7.61 (saved $1.38)
  • 6x6mm buttons: $6.99 → $2.38 (saved $4.61)
  • Audio jack: $9.99 → $0.72 (saved $9.27)
  • Jumper wires: $14.99 → $8.44 (saved $6.55)
  • Power switch: $6.00 → $2.50 (saved $3.50)

What stayed the same:

  • Radxa Zero 3W 4GB: Found better shipping deal at $52.63 total (was $51 + expensive shipping)
  • Display: Kept Elecrow ($7.50) - reliable seller with good documentation
  • MicroSD: Kept Amazon ($15) - Samsung brand, fast shipping
  • Resistor kit: Kept Amazon ($5.98) - needed the specific 10kΩ values
  • Tin: eBay ($15) - no cheaper source for XL size image (upgraded the board to a USB-C version too)

Results

Old BOM: $196.70
New BOM: $165.55
Savings: $31.15

This gives me $34.45 of budget headroom under the Tier 2 limit. That's enough to add a custom PCB (~$10-20) if needed to address the reviewer's complexity concerns, or just serves as buffer for unexpected costs.

Trade-offs

Shipping time: AliExpress parts take 2-4 weeks vs Amazon's 2-day. Not ideal but acceptable since I'm waiting on grant approval anyway.

Quality concerns: Checked seller ratings and reviews carefully. The modules (TP4056, MT3608) are all standard chips with datasheets - hard to mess up. The savings are mainly from cutting out Amazon's markup and using direct-from-China shipping.

Returns: If something arrives broken, AliExpress returns are slower than Amazon. Mitigated this by ordering from sellers with 95%+ ratings and thousands of orders.

Next Steps

  • Wait for grant approval with new $165.55 budget
  • Consider adding custom power management PCB with remaining budget (if denied)
  • Parts will take longer to arrive but cost savings are worth it

Repository: GitHub - AltoiDS

lowpolyphosphorus lowpolyphosphorus submitted AltoiDS (RetroPie Handheld) for review ago

NotARoomba NotARoomba 🚀 requested changes for AltoiDS (RetroPie Handheld) ago

Hey nice project and I like the design but could you try and order the components in your BOM from Aliexpress instead of amazon? The kits are unnecessary and you can buy sets of cables / buttons for cheaper on Aliexpress along with that Radaxa probably (https://es.aliexpress.com/item/1005007614734251.html).

lowpolyphosphorus lowpolyphosphorus submitted AltoiDS (RetroPie Handheld) for review ago

technical_. technical_. requested changes for AltoiDS (RetroPie Handheld) ago

As said, could you please provide a reason why a Radxa, versus a RP Zero would be preferred? There needs to be a reason for buying such an expensive component. In addition, since this is not using a custom PCB, this can only be a tier three, as it is using only premade modules with a custom case.

lowpolyphosphorus lowpolyphosphorus submitted AltoiDS (RetroPie Handheld) for review ago

technical_. technical_. requested changes for AltoiDS (RetroPie Handheld) ago

Please show the subtotal for the amazon cart. In addition, is there a specific reason why you are using such a expensive SBC? Would a RP zero2 be sufficient?

lowpolyphosphorus lowpolyphosphorus submitted AltoiDS (RetroPie Handheld) for review ago

lowpolyphosphorus lowpolyphosphorus added to the journal ago

Component Research & Selection Justification

12/7/25

Today I researched different single-board computers and components to figure out what would actually work best for this build. Spent time comparing specs, prices, and whether things would physically fit in the tin.

SBC Comparison

Board CPU Clock Speed RAM GPU WiFi Price Power Draw
Radxa Zero 3W Cortex-A55 (4-core) 1.6 GHz 1-8GB LPDDR4 Mali-G52-2EE WiFi 6 $15-$66 ~0.5A
Pi Zero 2W Cortex-A53 (4-core) 1.0 GHz 512MB LPDDR2 VideoCore IV WiFi 4 $15 0.46A
Orange Pi Zero 2W Cortex-A53 (4-core) 1.5 GHz 1-4GB LPDDR4 Mali-G31 MP2 WiFi 5 $13-$24 ~2.4W
Libre Le Potato Cortex-A53 (4-core) 1.5 GHz 2GB DDR3 Mali-450 None $35 ~1W

image
(credit: Radxa)

Why I Chose Radxa Zero 3W

The Radxa uses newer ARM Cortex-A55 cores instead of the older A53 cores in everything else. It's about 33% faster than the Pi Zero 2W in benchmarks. The Mali-G52 GPU is way better than the Pi's VideoCore IV and supports modern graphics APIs.

The big difference is RAM. Pi Zero 2W only has 512MB, which would struggle with SNES and Genesis games. The Radxa's 8GB gives tons of headroom and won't bottleneck anything.

At 65mm × 30mm, it's also one of the smallest boards with this much power, which matters when fitting everything in a tiny tin.

What I Almost Picked Instead

Pi Zero 2W: Cheapest option at $15 and has the best community support. But 512MB RAM just isn't enough for what I want to run. Would be fine for NES/Game Boy but that's it.

Orange Pi Zero 2W: Really close second choice. Similar performance to Radxa but slightly weaker GPU. Main concern was the 2.4W power draw getting too hot in the sealed tin.

image

(credit: AliExpress)

Libre Le Potato: Good performance but it's Pi 3 sized (too big) and has no built-in WiFi/Bluetooth. Would need USB dongles which defeats the compact design.

Display Choice

Went with the ILI9341 2.8" SPI display ($7.50) because:

  • Actually fits in the tin lid
  • Uses only 6 GPIO pins (leaves plenty for buttons)
  • Well documented Linux drivers
  • Cheap, which leaves budget for better CPU

320×240 resolution is low but works fine for pixel art games from the 8-bit and 16-bit era.

Battery

Picked a 2000mAh LiPo ($9.99). Did some quick math:

  • System draws about 5.5W during gaming
  • 2000mAh × 3.7V = 7.4Wh
  • 7.4Wh ÷ 5.5W = ~1.3 hours runtime

Not amazing but good enough for portable gaming sessions. Bigger batteries wouldn't physically fit in the available space.

Cost vs Performance

The Radxa costs $51 (3.4x more than Pi Zero), but you get:

  • 16x more RAM
  • 60% faster clock speed
  • Way better GPU
  • Newer CPU architecture

For what I'm trying to build, the extra cost is worth it. The Pi Zero would limit what games I could actually run smoothly.

What This Can Actually Run

Based on the specs, this should handle:

  • NES, Game Boy, SNES, Genesis: Perfect
  • Game Boy Advance: Great
  • PlayStation 1: Pretty good

Repository: GitHub - AltoiDS

lowpolyphosphorus lowpolyphosphorus added to the journal ago

Fusion 360 Case Refinements & Support Structure

12/6/25

Today I worked on fixing a major problem with the internal insert design in Fusion 360. The bottom tray had nowhere to actually sit inside the tin.

The Problem

The Altoids tin is completely smooth inside - no ridges, no notches, nothing for the insert to grab onto. If I just dropped the tray in, it would slide around whenever I moved the device or tried to install components. Friction alone wasn't going to cut it.

The Fix: Support Posts

Added support posts to the inside of the case model. These give the tray specific points to rest on so it stays level and doesn't shift around once everything's assembled.

image

Electrical Isolation Layer

Also modeled a small internal tray that sits between the electronics and the metal tin shell. Since the tin is conductive, I don't want any exposed pins or solder joints accidentally touching it and causing shorts. This tray keeps everything separated and safer.

image

New Renders

Made some fresh renders showing how it all fits together:

  • Case with the new support posts
  • Internal isolation tray
  • How components will actually sit inside

image

What Got Done

  • Added support structure so the insert actually stays put
  • Designed isolation tray for electrical safety
  • Cleaned up the CAD files
  • Generated documentation images
  • Pushed everything to GitHub

Next Steps

  • More Pre-liminary testing
  • Wait for grant approval
  • Test print the insert once I can order parts
  • See if the support posts are strong enough or need tweaking
  • Adjust sizing based on real hardware fitment

Repository: GitHub - AltoiDS

lowpolyphosphorus lowpolyphosphorus added to the journal ago

Thermal Analysis and Airflow Study for AltoiDS

12/6/25

For this journal I focused on evaluating the thermal behavior of the AltoiDS system and how heat will move through the enclosure, including passive cooling options, airflow limitations, and whether a vent cutout is necessary. Since the system is built inside a metal Altoids XL tin, heat transfer acts differently compared to plastic cases. The goal of this analysis was to understand where heat will build up, how it will exit the enclosure, and what design adjustments may be needed when the hardware arrives.

Overview

The Radxa Zero 3W, boost converter, chargng module, and display all generate heat inside a small metal enclosure with limited airflow. I used part specs, typical SBC thermal behavior, and heat transfer basics to estimate how the system will behave under a normal gaming workload.

Heat Sources

Radxa Zero 3W
Typical load temperatures range between 55–70°C in open air. In a closed metal tin, this can increase by 10–20°C depending on airflow and where heat accumulates. The CPU and GPU are the largest single heat producers in the system.

Boost Converter (MT3608)

Boost converters run warm under load, especially when stepping battery voltage to 5V at high current. Peak draw for the system can reach around 1A, so the converter can add noticeable heat. Most of this heat comes from switching losses in the inductor and MOSFET.

LiPo Battery

LiPo cells warm slightly during load and charging. They should be isolated from heat sources to avoid long-term degradation. They can tolerate some warmth but should not sit near the boost converter or SBC.

Display

The ILI9341 backlight produces mild heat, but the panel itself is not a major thermal driver. Most of its waste heat dissipates through the glass.

Enclosure Material Analysis

The Altoids tin is thin steel coated with tinplate. This has some unique thermal effects:

• Metal conducts heat quickly, so hotspots spread across the shell instead of staying local.
• The enclosure can work as one large passive heatsink if components are thermally coupled to the lid or bottom plate.
• Because the enclosure is sealed, it traps warm air and reaches equilibrium faster than plastic cases.

Adding Passive Cooling

I have small copper or aluminum heatsinks that will be mounted directly onto the Radxa CPU. These significantly improve thermal performance in confined spaces. The metal lid of the tin can also act as a supplemental heatsink if the thermal gap between the CPU heatsink and the lid is small enough to conduct some warmth.

Airflow Limitations

There is no natural airflow in a sealed Altoids tin. Even with passive heatsinks, warm air inside the enclosure has nowhere to exit unless vents are added. Because warm air rises, most heat will accumulate near the upper side of the enclosure, especially behind the display.

Vent Cutout Analysis

I evaluated whether a vent cutout would meaningfully improve airflow:

  • A vent located high in the lid would allow rising hot air to escape.
  • A vent along the side could allow cross ventilation if there is enough internal space.
  • Cutting the tin weakens structural strength, especially around button or screen areas.

image
*vent added to cad model 3d inserts

At this stage, I might add a small slit or grille if there is enough unoccupied metal after installing the screen. If not, passive cooling with heatsinks and thermal spacing should be enough for this hardware.

Thermal Management Strategy

Based on the analysis, the cooling plan is:

  • Place heatsinks on the Radxa CPU and possibly the boost converter.
  • Keep the boost converter physically separated from the battery.
  • Leave a small air gap above the CPU heatsink to allow heat to spread through the interior.
  • Avoid trapping the battery between heat sources.
  • Optionally add a vent if the final assembly shows temperatures climbing too high.

What I Need to Test When the Hardware Arrives:

  • Measure real temperature rise inside the tin after 15–20 minutes of emulation.
  • Test how hot the exterior shell gets to confirm safe operating temperatures.
  • Check whether the boost converter adds more heat than expected.
  • Confirm if a vent is needed or if passive cooling alone is enough.
  • Evaluate whether thermal pads or foil can improve heat conduction to the lid.

image

Conclusion

This study establishes the baseline expectations for heat buildup and cooling inside the AltoiDS system. The metal enclosure works both as a thermal conductor and a heat trap, so the final results will depend heavily on component placement and spacing. Once the hardware arrives, I can perform direct testing to finalize the cooling strategy and determine if a vent needs to be added.

lowpolyphosphorus lowpolyphosphorus added to the journal ago

Full Wiring & GPIO Routing Specification

12/6/2025

Focus: Hardware planning for electrical layout, GPIO assignments, and power routing

Today I created the full wiring and GPIO routing plan for the AltoiDS handheld. This included defining all button inputs, SPI display lines, the power system layout, grounding strategy, and the physical wire routing inside the enclosure.

System Overview

The wiring plan covers the Radxa Zero 3W, the ILI9341 SPI display, LiPo battery, TP4056 charger, MT3608 boost converter, momentary buttons for controls, the power switch, and optional audio parts. The goal was to create a stable and repeatable wiring layout that works in the small enclosure and keeps signals clean.

GPIO Assignments

I mapped every button to specific Radxa GPIO pins so the routing stays simple once the parts arrive.

Up: GPIO5 (pin 29)
Down: GPIO6 (pin 31)
Left: GPIO13 (pin 33)
Right: GPIO19 (pin 35)
A: GPIO26 (pin 37)
B: GPIO16 (pin 36)
X: GPIO20 (pin 38)
Y: GPIO21 (pin 40)
Start: GPIO23 (pin 16)
Select: GPIO24 (pin 18)
L1: GPIO25 (pin 22)
R1: GPIO22 (pin 15)

All inputs use pull-ups in software and switch to ground. Debounce will be handled in software.

SPI Display

I assigned the ILI9341 screen to the standard SPI0 bus for speed and stability.

SCLK: GPIO11 (pin 23)
MOSI: GPIO10 (pin 19)
MISO: GPIO9 (pin 21)
CS: GPIO8 (pin 24)
DC: GPIO7 (pin 26)
RESET: GPIO27 (pin 13)
VCC and LED on 3.3V, ground to system ground

Power System

Battery connects to the TP4056 on B+ and B−. The charger output feeds the MT3608 boost module, and the boost output goes to the Radxa 5V rail. I planned wire lengths, gauge, and placement to reduce drop during load spikes. Boost will be set around 5.1V.

Grounding and Noise Control

All grounds tie directly back to the Radxa instead of chaining. SPI wires stay short, button wires are routed away from power, and twisting clock and ground will help cut noise. The tin enclosure will only be grounded if later testing shows it improves stability.

Wire Routing Plan

Inside the tin, the plan is:

D-pad on a ribbon cable
ABXY grouped in heat shrink
Power wires along the walls
Button wires around the upper perimeter
SPI wires under the screen with foam for insulation
Wires are kept between 40 and 70 mm with strain relief

Work Completed

Checked Radxa documentation for pin functions, planned all button and display assignments, created the full power wiring plan, set routing rules for each wire group, and confirmed everything fits the enclosure layout.

Conclusion

This session produced the full electrical wiring plan for the AltoiDS handheld, including GPIO mapping, display routing, power system layout, grounding rules, and physical wire paths. This gives me a solid baseline for the actual wiring once the hardware arrives.

image

image
*Credit to Radxa Documentation Center

lowpolyphosphorus lowpolyphosphorus added to the journal ago

CAD Refinement & Project Organization

12/6/25

Time spent: 5.2 hours

Today I continued refining the 3D-printed internal mounting system and organized the project structure for Blueprint submission.

CAD Design Progress

Continued work in Fusion 360 on the internal mounting inserts. Built on the initial design from my previous session where I used the GrabCAD model by Mark Simonelli and calculated tin dimensions based on the 8-inch length from the eBay listing.

Made adjustments to component spacing, mounting points, and wire routing channels. The inserts are designed to be modular and snap/fit into the tin without permanent modifications.

Design Challenges

Working without physical components means relying on datasheets and calculated measurements. The current design uses best estimates based on the scaled GrabCAD model. Will need to iterate once I can test-fit actual components.

Project Organization

Python Scripts:

Added requirements.txt to the GitHub repo:

RPi.GPIO>=0.7.0

image

All test scripts organized in Python-Scripts folder:

  • pinout_validator.py – Validates GPIO assignments for conflicts
  • generate_button_map.py – Auto-generates RetroPie button configs
  • power_button_daemon.py – Monitors GPIO for safe shutdown
  • launcher_mock.py – Menu system prototype
  • debug_logger.py – Event logging for troubleshooting

Wiring Documentation:

Created detailed ASCII wiring diagram showing:

  • All GPIO pin assignments (10 buttons + power + display)
  • SPI connections for ILI9341 display
  • Power flow: Battery → TP4056 → MT3608 → Radxa
  • Pull-up resistor placement for each button

Budget Confirmation

Finalized BOM at $196.70 (including $40 shipping), which qualifies as Tier 2 for Blueprint. Project focus:

  • DIY assembly (no custom PCB)
  • 3D-printed mounting solutions
  • Hand-wiring all connections
  • Modular component placement

Next Steps

  • Submit for Blueprint Tier 2 grant approval
  • Order components once approved
  • Print test version of inserts
  • Take precise measurements with actual hardware
  • Iterate CAD design based on real fitment
  • Begin assembly and wiring

Repository updates: GitHub - AltoiDS

image

lowpolyphosphorus lowpolyphosphorus added to the journal ago

Rough Model: AltoiDS 3D Printable Inserts

12/6/25

Today I got the personal Fusion 360 plan and started designing the internal mounting inserts for AltoiDS. Since I don't have the physical components yet, I used measurements from a CAD model I found on GrabCAD by Mark Simonelli to plan the layout.

Fusion 360 Setup

Downloaded and installed Fusion 360 with the free personal license. This is my first time using proper CAD software for a project like this. Spent some time learning the basic interface and tools.
Design Process
Found an Altoids tin model on GrabCAD (created by Mark Simonelli) that has accurate dimensions. Used this as a reference to design internal mounting inserts that will hold the screen and button assembly, since the actual xl tin does not have published measurements the only size measurement is the eBay listing showing it to be 8 inches long, I calculated the size of the other sizes if scaled correctly to make a ratio to multiply part measurements by to get accurate sizes that are to scale in the CAD software.

The inserts are designed to be 3D printable and snap/fit into the tin without permanent modifications to the enclosure.
Models Created
Designed rough internal inserts based on the tin dimensions shown here:
image
image

Published STL files showing the inserts both inside and outside the Altoids tin to visualize how they'll fit.

Current Limitations

These are rough estimates since I don't have:

The actual physical tin to measure
The components to test-fit
Exact dimensions for all parts

Once I receive the hardware, I'll need to:

Take precise measurements w/ Caliper
Iterate on the design
Test print and adjust fitment
Add mounting points for specific components

What I Learned

Real CAD is more complex than I expected. Took time to figure out how to properly constrain parts and ensure measurements were accurate. The GrabCAD model was helpful as a starting reference, but I'll need real measurements for the final design.

Next Steps

Wait for grant approval
Order parts
Take precise measurements of actual components
Refine CAD models based on real hardware
Test print inserts
Iterate design based on fit testing

STL files available in repo: GitHub
(requirements.txt was also added to GitHub for Python Scripts)

lowpolyphosphorus lowpolyphosphorus added to the journal ago

Python + C Scripts

12/5/25

^ i had to sleep, so this got posted late

Today I wrote six Python scripts for testing and configuring the GPIO buttons once hardware arrives. These are based on my planned GPIO pinout.

Scripts Created

button_test.py - Button Input Testing

Monitors all 10 buttons (D-pad, ABXY, Start, Select) and prints which button gets pressed. Planned GPIO assignments:

"UP": 5, "DOWN": 6, "LEFT": 13, "RIGHT": 19
"A": 16, "B": 20, "X": 21, "Y": 26
"START": 17, "SELECT": 27

image

Checks GPIO pins every 0.05 seconds to detect presses.

pinout_validator.py - GPIO Conflict Check

Scans the button assignments to ensure no two buttons use the same GPIO pin. Ran it on my current plan: "No conflicts detected."

generatebuttonmap.py - Config Generator

Generates RetroPie-compatible button config files from GPIO pin definitions:

input_up_btn = "5"
input_down_btn = "6"
input_a_btn = "16"

image

powerbuttondaemon.py - Shutdown Handler

Monitors GPIO pin 4 for a 2+ second button hold to trigger safe shutdown. Prevents SD card corruption from hard power-offs.

launcher_mock.py - Menu Prototype

Text-based menu prototype using keyboard input:

=== AltoiDS Launcher ===
> Start RetroPie
  Settings
  Shutdown

debug_logger.py - Event Logger

Logs button events with timestamps to help troubleshoot input issues:

2024-12-05 14:23:17 | EVENT: A
2024-12-05 14:23:18 | EVENT: START

GPIO Organization

Grouped pins logically:

  • D-pad: pins 5, 6, 13, 19
  • ABXY: pins 16, 20, 21, 26
  • Start/Select: pins 17, 27

Current Status

Scripts are written but untested. Need actual hardware to verify GPIO functionality. Some scripts (validator, config generator) work now since they only process text. Others (button_test, power daemon) require GPIO hardware.

Next Steps

  • Create visual GPIO pinout diagram
  • Research Radxa GPIO library compatibility
  • Wait for grant approval
  • Test with hardware when it arrives

Repository: GitHub

image

All scripts are available in the AltoiDS Repo on Github

funkeudo funkeudo requested changes for AltoiDS (RetroPie Handheld) ago

there's little to no descriptions here - your journals are sparse (tier 1 projects should be anywhere from 60 to 100 hours total and include custom CNC machines and 3d printers), and your project does not include a custom PCB - I really don't see how this could be a Tier 1 project, I would personally give this a tier 3 or even 4, as you're using a LOT of prebuilt parts and hand-wiring them together in an arguably overpriced tin. I love the idea, but a lot more documentation couldn't hurt! Especially make sure that your README includes specific images of the final product, including assembled and unassembled images of your case including 3d models of parts, and finally, you have absolutely no code. All code-based projects require some sort of preliminary code to be able to submit! keep it up! :)

lowpolyphosphorus lowpolyphosphorus submitted AltoiDS (RetroPie Handheld) for review ago

lowpolyphosphorus lowpolyphosphorus added to the journal ago

Official BOM on Github (more part research)

12/5/2025

Today I finalized the Bill of Materials for AltoiDS. I researched the Radxa Zero 3 W for compatibility with ILI9341 SPI displays and confirmed the GPIO pinout to plan for all button connections. I selected 12×12 mm tactile switches for ABXY and D-pad controls and smaller 6×6 mm switches for Start/Select to save space. I also added a 10 kΩ resistor kit for reliable button inputs.

For power, I chose a 2000 mAh LiPo battery with a TP4056 charger and an MT3608 boost converter. I decided against an internal speaker to prioritize space for wiring and the battery. The enclosure will be an XL Altoids tin, slightly larger than a standard one, to fit all components and allow room for 3D-printed mounts.

This stage was mostly research and planning, preparing the layout and selecting parts for the project. The total cost is still slightly above $200 due to shipping.

image

image

lowpolyphosphorus lowpolyphosphorus added to the journal ago

Published BOM / Part Research

12/4/25

I continued refining the Bill of Materials (BOM) for AltoiDS, researching and selecting components for the handheld build. Each part was evaluated for compatibility, size, and cost, including the main board, screen, buttons, battery, and connectors. I compiled links and pricing to ensure efficient sourcing once the grant is awarded.

The project uses prebuilt components rather than a custom PCB due to my current skillset, but each piece was chosen to allow meaningful assembly, wiring, and testing, which supports a Tier 1 project. The total projected cost slightly exceeds $200 primarily due to shipping costs from multiple suppliers. This keeps the budget within the Tier 1 limit of $400 while allowing higher-performance parts like the Radxa Zero 3 W for broader emulation support, a larger TFT display, and a battery setup that provides longer playtime.

I also confirmed GPIO compatibility for buttons, selected 12×12 mm tactile switches for ABXY and D-pad controls, and smaller 6×6 mm switches for Start/Select to save space. The XL Altoids tin was chosen as the enclosure because a standard tin is too small for the layout, and it aligns with the project’s goal of a compact, “Altoids-sized” handheld. I planned 3D-printed internal mounts to maximize space efficiency and accommodate all components.

Additional components, like the TP4056 charging module and MT3608 boost converter, were chosen to support safe battery operation and stable voltage output. This BOM research ensures that once the grant is received, assembly and testing can proceed smoothly. Overall, the careful selection of parts and consideration of budget, function, and size justify the Tier 1 classification.

image

lowpolyphosphorus lowpolyphosphorus added to the journal ago

Concept Cad Files / Parts List

12/3/25

I started compiling the full Bill of Materials (BOM) for AltoiDS, including links, prices, and notes for each component. I also set up a GitHub repository to track project files, documentation, and CAD designs.

I created a rough CAD prototype to visualize the outside of the console. This helped plan proportions, button placements, and the overall look. The CAD only covers the exterior because I don’t have the components yet to model the inside.

For the main board, I chose the Radxa Zero 3 W instead of a Pi Zero 2 W because it has more RAM and processing power. This ensures smoother emulation across a wider range of systems, which is key for a handheld that aims to run games from NES to more demanding consoles.

The XL Altoids tin was chosen for both practical and conceptual reasons. The original idea was an Altoids-sized portable, but standard tins are too small to fit the components I need. The XL tin provides enough space for the board, screen, battery, and 3D-printed internal mounts, while keeping the device compact and visually appealing. It also reduces the need for fully custom fabrication while giving the finished project a polished look.

I also researched suitable screens and buttons, aiming for compact and compatible parts that will fit inside the tin once I receive the grant and can order the remaining components.

image
image
image

lowpolyphosphorus lowpolyphosphorus added to the journal ago

Headless Raspberry Pi

12/3/25

17648104310766773410378273012780
*Picture is just for concept, the display here is not compatible and the tin is not big enough for the final project, additionally for more computing power the Radxa 0 3W will be used for wider variety of emulation_

Since I do not yet have the grant, I haven’t been able to acquire the full components for AltoiDS, so I performed preliminary testing using parts I already had on hand. For this initial phase, I used a Raspberry Pi Zero 2 W to simulate the handheld console environment and imaged an SD card with RetroPie. I attempted to enter headless mode, but network configuration issues required me to reimage the SD card before I could successfully access the system. Once connected, I updated packages and completed a basic setup to ensure RetroPie runs properly on a compact board. I did not perform GPIO testing at this stage because the setup requires a functional display and I currently lack an OTG adapter to connect a keyboard. Additionally, I located a limited edition XL Altoids tin to serve as the future enclosure and planned how the board, display, and other components will fit, taking preliminary measurements for 3D-printed internal mounts. This testing phase serves as a foundation for the project and prepares the system for full assembly once the necessary materials are obtained.

Screenshot_20251203-180311.eBayIMG_20251203_180237483_HDR

lowpolyphosphorus lowpolyphosphorus started AltoiDS (RetroPie Handheld) ago