Tucker Osman began his iPod Nano 3G upgrade project in April 2020 at the start of the COVID‑19 pandemic, motivated by curiosity about why nobody had attempted to increase the storage of this model despite similar mods being common for iPod Classics. He chose the third‑generation Nano both because it was the newest revision with a NAND chip that uses leg‑mounted packaging (easier to work with than BGA) and for personal sentimental reasons, having owned one during his youth. At the outset Osman had limited hardware experience—mostly basic Arduino work—and no soldering or reverse‑engineering background, making the endeavor a steep learning curve. [primary]
The core obstacle was Apple’s firmware containing a strict whitelist of acceptable NAND chip IDs; when an unrecognized chip was installed the device displayed a “Red X” error (labeled bd hw or “bad hardware”). Osman first patched the NAND ID table in the firmware’s NAND driver, but the upgrade still failed during the production‑formatting phase when the firmware tried to verify written data. He developed two diagnostic tools: conditional spin‑locking to bisect code paths and data exfiltration through the device’s diagnostic mode, which revealed that verification reads returned all 0xFF values, indicating nothing had actually been written to the new NAND chip. This pointed to a failure in the write step rather than a simple ID mismatch. [primary]
Osman’s investigation showed that communication with the NAND chip was not performed via direct memory‑mapped registers but through a coprocessor (referred to as FMISS, FIL, or CS) that executes specialized bytecode to send commands to the NAND peripheral. By reverse engineering this microcode—comparing it against a leaked S5L8700X datasheet, creating custom assembler and disassembler tools, and iteratively testing patches—he eventually understood the instruction set and corrected the initialization sequence. The project succeeded after months of trial and error, demonstrating that deep firmware investigation can enable hardware modifications that Apple’s stock software would otherwise reject, though the process remains highly manual, requires soldering expertise, and is not accessible to average users. [primary]