FINAL PROJECT STATUS: IN DEVELOPMENT
// DESIGNATION: CARTRIDGE BASED DEVICE [[PROD] SPIRAL DEVELOPMENT]

THIS

IS

PAK.

FAB ACADEMY 2026 TORONTO // LIMA // YOKOHAMA
Fig 1.0 — PAK render from Fusion 360.

PAK is a handheld 'dumb' device designed to restore intentionality and satisfaction to our every day devices. In an age of multitasking, this device does the opposite: it is a modular host where every application lives on its own physical cartridge.

The concept is simple: One app equals one cartridge. If you want to take notes, you insert the Notes cartridge. If you want to take a photo, you swap it for the Camera module. The device reintroduces the tactile joy of physical media (the satisfying click of a cartridge) and the deliberate act of powering something up and using it with your full attention. No notifications, no distractions. Just the satisfying tactile experience of a device that does one thing at a time, intentionally.

CARTRIDGE DEVELOPMENTSTATUS
POMODORO TIMER
A simple timer/countdown cartridge that reminds the user to take a 5 minute break every 40 minutes.
Prototyped on RP2040 and Breadboard REV 0.1
WORLD CLOCK
Uses the onboard RTC to keep track of time and show the user what time it is in the many countries they visit!
NOT YET DEVELOPED REV null
WEATHER
Uses the ESP32's Wifi Connection to make an API call, also uses an onboard DHT11 temperature and humidity sensor to poll the ambient temperature
TESTED DHT11 REV 0.1
TILT GAME
Inspired by early accelerometer games like WarioWare Twisted!
NOT YET DEVELOPED REV null
CRANK GAME
Uses a cartridge embedded rotary encoder to play a game, inspired by the Playdate Game Console!
NOT YET DEVELOPED REV null
MUSIC PLAYER
Utilizes a DHplayer and 3.5mm headphone jack to play music from a cartridge embedded microSD card.
TESTED (and killed) the DHplayer REV 0.1
CAMERA
Using an SPI camera, take simple images, and upload them to Google Photos! This would be a continuation of a previous project that I already completed on a raspberry pi W!
NOT YET DEVELOPED REV 2.0

DEVLOG

01
Ideation and Sketching>

In the months leading up to Fab Academy, words from one of my first meetings with my mentor Jorge at ESAN kept playing back in my head. He said to me that the best way to be successful in the course is to have a final project idea for the first week of classes. This tormented me for weeks, I had such a hard time coming to terms with the commitment. I quite literally had dozens of projects and things I wanted to explore, how could I pick just one?

What I'm sharing with you today ultimately comes back to the object that got me into tech in the first place: an original purple Game Boy Advance, my first personal device. I've always been fascinated by consumer electronics and the design language of the big names in the industry: Braun, Nintendo, Sony, Teenage Engineering.

I'm also drawn to the aesthetics of the early 2000s (having a strong sense of nostalgia for that world), and would be interested in designing devices that call upon the "blobject" and "frutiger aero" design language of this idyllic world that we have all left behind for less green pastures.

I've tried creating my own very simple 3D-printed electronics enclosures and have created simple circuits by repurposing existing logic boards and utilizing commercial boards, but the Fab Academy is going to give me an opportunity to push this understanding and learn more.

I also wanted to center my project around a problem, as any good designer does. Look for a problem, not a solution. As a high school teacher, I am no stranger to the impact that cell phones have had on attention spans, focus, and our abilities to be comfortable being bored. Using the internet and a cellphone is a near requirement for participation in society these days, and the creators of these devices and the software that powers them do not have our wellbeing in mind when their design prioritizes increasing engagement and data collection above all else.

Enter, my final project idea:

FINAL PROJECT IDEA, JANUARY 2026

This is a handheld device meant to replace your smartphone but still give you access to important features needed for modern life. The catch is that each of the features exists on it's own dedicated cartridge, much like a single game can only occupy one Game Boy Advance cartridge. Swapping "apps" is a deliberate action the user must take. The intended user is someone who wishes to "unplug" from the modern world of electronics and return to a time that humans used technology with intention, not compulsion.

Your first impression may be that this sounds overly ambitious, and I agree. But the development of the device and the added cartridges are meant to be spiralled into bits and pieces that be developed independently, and I can have a minimum viable product with many stretch goals. My primary goal with this device is to create a simple handheld computer that I have created the enclosure, custom PCB and software for, with one cartridge that runs a simple program.

Towards the end of my sketching, I started playing with the idea of a third design language that I've been interested in, and one that ultimately was the inspiration for the stylesheet for this website.

There are not a lot of words to describe this aesthetic. I tend to default to the Consumer Aesthetics Research Institute (CARI) when it comes to vocab. The site describes this look as: Vectorheart, characterized by "futuristic forms" and "high-contrast typography that borrows from both Swiss modernism and utilitarian industrial design".

I had an idea to run my sketches through Gemini's Nano Banana image generator to see what it could create.

and for fun, I asked it to try out the same render in clear plastic, a la Y2K.

02
Computer Aided Design>

I knew that for my first iteration of my device (which is still unnamed) I would want to start with a simple enclosure, without trying to over-complicate things to start. I knew roughly that I wanted the device to fit nicely in a pocket, and comfortably in one hand (hence why all of the controls are on one side). The user is meant to hold the device like a point and shoot camera, not a game console (despite the appearance haha).

I started out with a simple rectangular shell (dimensions can be found above), and carved out the space for the screen. I added a simple chamfer to the edges of the device and a bevel to the screen.

Using additional sketches on top of the top face of the main body, I started playing with shapes for the buttons and added electronics. Since I don't know what my final design will incorporate, I just used dimensions that felt right for placeholders. The beauty of parametric design is that I can easily come back and edit the numbers to fit different parts.

Since I also needed to revisit what the final cartridge design would be later, I decided to just import the Game Boy cartridge I modelled earlier as a placeholder. I intend to iterate on the design of the cartridge and make it something that better fits the aesthetic, form and function of the device. I was telling my mentor, Jorge, that I think one of the most important parts of the cartridge and device is getting the tolerance spot on for that perfect insertion feel.

Once I had a good starting place with the shell, I decided to try adding some surface motifs, like small vent holes, detailing lines, additional fillets to the corners for comfort. All things I want to iterate with once I'm able to start 3D printing prototypes.

I even went so far as creating placeholder internal components, like PCBs, a LiPo battery and screen. Obviously all TBD, but it allowed me to render out this terrific expanded view, and the animation that can be see as the (header for week 02)[./assignments/week02.html].

This was also a great opportunity to create some "promotional" material using my Illustrator skills. I created this image using some of the vector motifs I designed - which, unfortunately does not stand the test of my photo compression script. Perhaps I can use some kind of hybrid .svg and raster format for presenting my work. I would like to preserve that super clean minimalist high-contrast look.

04
Embedded Programming>

I wanted to take the opportunity this week to explore my options for the PAK's architecture. After doing a bit of reading and testing, I determined that the RP2350 would be the best fit for the PAK's main driver.

My main focus this week was to become a bit more familiar with developing for the RP2350 and slowly start to develop the actual development process for creating future PAK cartridges on the chip. I decided that, in place of a traditional app launcher (reminder that the PAK has no built in apps), I wanted a little character to be shown on the screen, and it could react to the user's inputs, animating when the user presses buttons or even inserts a PAK into the system!

Since I didn't have the full screen I wanted to use yet, I figured I would start develop a placeholder, or at least something that I could scale up to other device sizes.

IMAGE CAPTION
Here is the character's first waking moments! Still thinking of a name. I'm thinking PAK-BOY as an homage to the Game Boy.
IMG_FILE: pakboy_helloworld.webm
TYPE: WEBM
XYZ: 123
05
3D Printing and Scanning>

This week I wanted to start actually fleshing out the design and shape of both the PAK itself and the cartridges that would interface with it. After some earlier thinking, I decided that the best interface for the cartridges to the main unit would be through the use of spring loaded POGO pins, so I placed an order at the end of last week for a pack of 100. In the meantime, I could start thinking about how they would interface with the plastics. This would be design consideration #1.

Design consideration #2 would be to determine how I want the cartridges themselves to interface with the unit. I could opt for a friction fit akin to the Game Boy or home consoles like the SNES or N64, or I could opt for a push-push latch mechanism that feels a bit more luxurious and secure akin to a microSD card or Nintendo DS/3DS cartridge.

I found this 3D printable spring push-push mechanism on Makerworld that I thought would be a good start. It utilizes a heart shaped track/cam that allows a pin to travel in one direction around the path, preventing the spring from debouncing once pressed in.

IMAGE CAPTION
There's no sound here but it's super satisfying.
IMG_FILE: plaspring.webm
TYPE: WEBM
XYZ: 123

The spring mechanism is one thing but I would also need to envision away to "latch" the cartridge in place. There's a great video by Engineezy that shows how the mechanism for microSD cards works that I took inspiration from.

IMAGE CAPTION
Giving the "joints" tool a try in Fusion!
IMG_FILE: latchtest.webm
TYPE: WEBM
XYZ: 123

After some failed prints and further frustration with trying to wrap my head around how this mechanism would work, I attended the Global Open Time on Saturday and Saheen recommended to me a part I could order that would make my life much easier rather than trying to 3D print micro compliant mechanisms.

This is a push-push mechanism that is commonly found in cabinetry and enclosures like garbage cans. I placed an order for about a dozen and got to work incorporating it into my CAD file
IMAGE CAPTION
This is a push-push mechanism that is commonly found in cabinetry and enclosures like garbage cans. I placed an order for about a dozen and got to work incorporating it into my CAD file
IMG_FILE: Pasted image 20260223090551.jpg
TYPE: JPG
XYZ: 123

Design consideration #3 was to engineer a way that restricts the user from inserting the cartridge the wrong way (and thus shorting or messing with the pogo pin wiring). To do this I would take a page out of Nintendo's book with their Game Boy cartridge design. It has a chamfer on two edges of the same face that is complimented by a guiding "rail" inside the slot. Try to put it in the other way and you'll find the cartridge doesn't fit.

This was a great start to developing the actual shell to the device. I finally have one constraint to work around (although, the cartridge itself could still change sizes), so I can at least start with dimensioning out a PCB for the cartridge and perhaps the main unit next week and then continue iterating on the full shape of the case. I will say that I think the final unit itself needs to be fabricated with something a bit more fancy that PLA or ABS. I did like the way the resin print came out, so it's something to consider, but at least I have a good tool for rapid prototyping.

06
Electronics Design>

A key design decision made this week was the implementation of a dual-protocol bus for the cartridge, instead of picking either SPI or I2C, I chose to develop a system that could accommodate both as a future proofing method. The W25Q16 Flash IC that will store each cartridges software will communicate with the PAK via SPI (Clock, MOSI, MISO, CS) using a 7-pin configuration. I also chose to include an integrated I2C (SDA, SCL) line on pins 8 and 9 to allow for future "Hardware Apps." Once I've created the first simple cartridge (likely the Pomodoro app), I want to develop cartridges with more I/O functionality that isn't present on the main board. A single cartridge could house a camera module, a DAC for high-fidelity audio, or environmental sensors, all sharing the same two I2C pins.

The PAK will also feature a D-PAD and 4 face buttons (A, B, START, and a fourth button I'm calling the "P" button for now). I want to be able to open the possibility to low latency gaming on the device, so I didn't want to pick a communication between the buttons and the microprocessor that would introduce any extra processing time, so I'm taking a page out of Nintendo's books and using an old school shift register (shown in the bottom right of my drawn schematic).

As I've explored in previous weeks, I'm exploring the use of Pogo Pins as the interface for the PAK, which means each cartridge would need a complimentary set of pads to connect with. Using the KiCAD Footprint Editor, I designed a custom 9-pin staggered layout in KiCAD's Footprint Editor.

Under the guidance of my mentor, Jorge, I opted to design a two-layer board rather than a simpler single-sided milled board. This was specifically chosen to increase the technical challenge and improve the device's performance. The entire bottom layer is a dedicated GND plane. This provides the shortest possible return path for high-speed signals, significantly reducing the electromagnetic noise generated by the display and flash memory clocks. Implementing this required the use of vias (small holes connecting the front and back layers).

IMAGE CAPTION
Getting all of the vias and connections sorted was certainly a puzzle! I'm eager to get this milled out and begin iterating on the design.

The goal this week was to create a "development board", not something that I can easily slide into the PAK's case right away. Just something that will help me quickly test and prototype the software and electrical connections. The board is using the XIAO, which is technically a daughterboard. I would like to eventually create this board with my own power regulation and and a baremetal RP2350, but I'm going with the XIAO for convenience for now as I continue to learn. The next version will also need precise M2.5 or M3 screw holes for mounting inside the 3D-printed case. The buttons and screen are currently placed for routing ease and debugging, and as
I mentioned in the weekly documentation, D-PADs aren't typically done with push buttons, but this is something to iterate on in the future once we have full access to the PCB milling machine!

08
Electronics Production>

If you read the full article from this week, you'll know that I had a tough ride, but I did manage to prototype and test more aspects of the PAK this week.

My goal for this week was to develop a circuit board for a PAK "dev kit", that is, a less "put together" version of the PAK that I can focus entirely on development with, rather than aesthetics. I wasn't able to mill the board out in a functional state, but I was at least able to test layout and practice my PCB design skills more.

After what I learned this week, I'll be redesigning the dev kit for a single side board, with more surface mounted components wherever possible.

The thing I did get closer to figuring out though was the cartridge mechanism, including the interface for where the pogo pins on the dev kit/main machine will slide into the cartridge.

and coupled with the push push mechanisms that my wife brought with her last week when she came to visit me, I was able to get the first functional prototype of the cartridge interface, with this SUPER satisfying click!

IMAGE CAPTION
Sorry for the weird focusing issues, I didn't even bother to look at the footage before packing up after this exhausting week of failures haha. I'll get better shots of it soon!
09
INPUT DEVICES>

I really wanted this week to be the turning point for the PAK, where I start developing my Fab Academy assignments in the actual PAK architecture. The goal for the start of this week was to create a working prototype of the cartridge and slot mechanism, and then just run all of the Input Devices (and similarly: next week's output devices) through some breakout pins that I could clean up later.

That was the plan of course.

As you can read in this week's assignment page, I managed to get a working prototype but it only cost me my sanity and a little bit of burnout.

The pogo pins are a neat thing to incorporate. My original plan was to have them run parallel to the push-push latches, but they simply do not have enough spring distance to match the latch spring. It would have also been harder to create two PCBs that would have run perpendicular to the main components inside of both the main device and the cartridge. So I tried running the pins perpendicular to the direction the cart would travel. My thinking was that the pogo pins would be supported by a 3D printed bracket, and I would position them at the right height to juuuuust miss rubbing against the plastic and introducing the lateral motion that would sheer any soldering job. I managed to get it working in principle, but it was delicate. It was not the kind of sturdy I would want for a final polished project.

So I'm making the decision here to abandon the pogo pins and switch to a more typical edge connector solution. I still really want to use the push-push mechanisms because the click is super satisfying, so I'll need to figure out a way to reduce the friction on the receiving end while still having enough tension to make contact with the cartridge pin pads.