FRANK Turns A 386 PC for Your RP2350 Into a Working Retro Machine
FRANK now puts A 386 PC for Your RP2350 on a microcontroller, despite the memory and peripheral demands of a complete PC. The open-source project emulates an i386 processor, VGA graphics, storage, input, and several period audio devices. It can boot DOS, Windows 3.x, Windows 95, and Linux, according to its developers.
That result challenges the usual split between microcontrollers and general-purpose computers. An RP2350 normally controls embedded hardware with limited memory and no desktop operating system. FRANK instead uses it as the foundation for a recognizable PC, complete with disk images and physical display output.
The important comparison is not between FRANK and a modern desktop. It is between full-system emulation and the smaller, specialized retro projects already running on microcontrollers. Earlier projects recreated individual consoles or 16-bit PCs. FRANK extends that approach to the larger hardware contract expected by 32-bit PC software.
A 386 PC for Your RP2350 Recreates More Than the CPU
FRANK matters because it emulates a usable PC platform, not merely an Intel instruction set.
The project's FRANK 386 firmware describes an i386 emulator with partial i486 and i586 instruction support. An optional x87 component emulates the floating-point unit used by some older software. These additions widen the range of operating systems and applications that the machine can attempt to run.
CPU emulation is only one part of the system. PC software also expects interrupt controllers, timers, keyboard interfaces, video hardware, disks, and sound devices. FRANK must reproduce enough of those components for software to recognize a coherent IBM-compatible computer.
The current feature list includes VGA and HDMI output at resolutions reaching 640 by 480 pixels. Storage comes from an SD card containing floppy, hard-drive, or CD-ROM images. Users can connect either PS/2 devices or USB keyboards and mice, depending on the firmware configuration.
Audio support spans several standards from different periods of PC history. The list includes a PC speaker, AdLib OPL2, Sound Blaster 16, Tandy audio, Covox, and Disney Sound Source. That breadth matters because DOS games often addressed specific sound hardware directly.
FRANK also includes a disk manager for changing virtual media while the emulator is running. A settings screen controls memory size, processor generation, floating-point emulation, sound devices, input options, and hardware clock settings. Those controls make the system behave more like a configurable retro PC than a fixed demonstration.
The emulator can expose between one and eight megabytes of guest memory. Reaching the upper limit requires eight megabytes of external pseudo-static RAM, usually called PSRAM. PSRAM is external dynamic memory presented through a simpler interface suited to embedded designs.
That requirement creates an important distinction. A standard Pico 2 board includes 520KB of on-chip SRAM, but it does not provide eight megabytes of PSRAM. Building the full machine therefore requires a compatible RP2350 board with additional memory and suitable display, storage, and input connections.
The supported hardware list reflects that reality. FRANK targets its own board, Murmulator variants, the Olimex PICO-PC, and the Waveshare RP2350-PiZero. Four GPIO layouts account for the different ways those boards connect video, storage, keyboards, controllers, and audio.
This is not a universal firmware image for every unmodified Pico 2. It is an emulator designed around a family of prepared RP2350 computers. The distinction keeps the achievement impressive without obscuring the hardware needed to reproduce it.
The project also relies on BIOS files and operating-system disk images stored on the SD card. Users must supply software they are entitled to use. FRANK provides the virtual machine, but it does not erase licensing questions surrounding commercial operating systems and games.
Most importantly, the project joins those components into one bootable environment. A microcontroller can now present old software with the interfaces it expects from a physical PC. That integration creates the central tension: whether flexibility can compensate for severe resource limits.
Why the RP2350 Can Carry a Complete PC Model
The RP2350 succeeds here because predictable I/O and software control matter as much as raw processor speed.
Raspberry Pi's RP2350 specification lists two Arm Cortex-M33 cores or two Hazard3 RISC-V cores running at up to 150MHz. The chip contains 520KB of SRAM and supports USB host and device operation. It also provides twelve programmable I/O state machines.
Programmable I/O, usually shortened to PIO, consists of small hardware engines that execute short programs for moving data through pins. These engines handle tightly timed signals without forcing the main processors to manage every transition. That design helps an embedded system generate video or communicate with unusual peripherals.
FRANK needs that kind of control. VGA output requires a steady stream of timed pixel and synchronization data. SD-card access, keyboard input, mouse handling, game controllers, and audio compete for processing time and pins.
A conventional computer delegates many of those tasks to dedicated hardware. A microcontroller project must divide them among software, fixed peripherals, DMA, and programmable I/O. DMA, or direct memory access, moves data without making the CPU copy every unit itself.
The RP2350 contains three PIO blocks, each holding four state machines. Raspberry Pi's PIO documentation says those state machines emphasize deterministic timing and close integration with GPIO and DMA. FRANK can use those traits to maintain external interfaces while its main cores execute the emulator.
The project does not remain within the chip's published 150MHz operating target. Its build configuration offers RP2350 clock settings of 378MHz or 504MHz. It also allows external PSRAM to run at either 133MHz or 166MHz.
Those settings represent substantial overclocking. Overclocking runs a component above its documented operating frequency, which can increase performance while reducing timing, voltage, and thermal margins. A setting that works on one board may behave differently on another.
The emulator's default build uses a 378MHz CPU setting and a 133MHz PSRAM setting. A custom build can select 504MHz and faster external memory. Runtime settings can also change processor and memory frequencies before a restart.
This mechanism explains why FRANK is more than a simple consequence of newer silicon. The developers combine an efficient emulator core, aggressive clock settings, external memory, and carefully assigned peripherals. Each element covers a limitation left by the others.
External PSRAM supplies the capacity needed by 32-bit PC software, but it has higher access costs than on-chip SRAM. Overclocking gives the interpreter more cycles, yet those cycles cannot remove every memory delay. PIO reduces I/O pressure, but it does not execute x86 instructions.
The workload therefore depends on orchestration. Video generation must remain stable while guest code runs. Disk operations cannot corrupt timing-sensitive devices. Audio emulation must produce regular samples without starving the emulated processor.
That orchestration is also why RP2350-based boards attract emulator developers. The chip offers direct access to low-level hardware behavior without requiring a desktop operating system underneath. Developers can control nearly every layer between guest software and the pins.
A full Linux computer could run a mature emulator with far more resources. However, it would also introduce a larger software stack, higher memory use, and less direct timing control. FRANK explores the opposite route: a small host recreating a larger historical machine through tightly managed resources.
FRANK Extends the Tiny386 Route Beyond Its Original Host
The project's main contest is full-system ambition against the narrower emulators that normally fit microcontrollers.
FRANK is based on Chunhui He's Tiny386 core, an emulator originally associated with ESP32-class hardware. Tiny386 implements the main x86 execution machinery in compact C code. It also incorporates peripheral concepts drawn from established projects.
The FRANK developers, Mikhail Matveev and DnCraptor, ported that foundation to the RP2350. Their repository credits Tiny386 for the i386 processor and core PC peripheral emulation. It also identifies several projects that contributed platform ideas or component implementations.
One of those predecessors is the Pico-286 emulator. Pico-286 targets 8086, 8088, 80186, and 286 software on RP2040 and RP2350 hardware. Its presence established that a Pico-class microcontroller could host a useful early PC environment.
The shift from a 286 model to an i386 model is meaningful. The i386 introduced a 32-bit programming model and paging features associated with more demanding operating systems. Software built around those capabilities expects a broader and more complicated machine.
FRANK does not stop at strict i386 behavior. Partial later instructions help it reach software that would otherwise reject the older processor. This is a practical compatibility choice, although it makes the machine less like a precise reproduction of one historical PC.
The same practical approach appears in the peripheral set. A real computer would not usually combine every listed sound device at once. An emulator can expose selectable hardware models because compatibility matters more than reproducing one factory configuration.
This places FRANK on a different branch from console emulation. A console offers a mostly fixed hardware target and a controlled software library. A PC must accept operating systems, drivers, BIOS interactions, storage layouts, and applications written for many configurations.
That openness increases both the appeal and the difficulty. Users can install familiar productivity software, games, utilities, or operating systems. However, each program can touch a different corner of the hardware model and reveal another missing behavior.
FRANK's heritage also shows how open-source emulator projects accumulate capability. Tiny386 contributes the central execution model. Pico-286 contributes RP2350 integration concepts and disk-management ideas. QEMU-derived components help represent classic PC peripherals.
SeaBIOS supplies open-source BIOS foundations, while FatFs handles FAT-formatted storage access. Other code supports sound synthesis, configuration files, and board-specific input. The result is less a single isolated invention than a careful assembly of reusable systems work.
That model contrasts with designing a custom retro computer around a simpler processor. A custom machine can define only the features its creator wants. FRANK accepts the much harder compatibility target established by decades of PC software.
The choice creates pressure on other microcontroller retro projects. Users increasingly expect firmware to provide polished menus, removable media, multiple input methods, and sound. A technical proof that only reaches a command prompt now competes with projects that feel like complete products.
FRANK raises that expectation while remaining an engineering project. Its repository provides build scripts and board configurations, but installation still demands compatible hardware and prepared storage. The audience remains comfortable with firmware, wiring, and disk images.
That constraint does not diminish the project's significance. It identifies the current boundary between a reproducible hobby computer and a consumer appliance. Crossing that boundary will require better packaging, tested images, and documented performance across common software.
The Hard Limit Is Consistent Performance, Not Boot Screens
Booting Windows or Linux establishes compatibility, but it does not establish speed, accuracy, or everyday reliability.
The repository says FRANK boots DOS, Windows 3.x, Windows 95, Linux, and other systems. That is a useful compatibility statement. It does not provide standardized benchmarks for boot time, application performance, frame rate, or emulated processor throughput.
This gap matters because emulation performance changes with each workload. A text editor may spend long periods waiting for input. A game can continuously exercise the CPU, graphics, timers, audio, and storage.
An operating system reaching its desktop also tests different behavior from sustained application use. Installation programs can require memory checks, protected-mode transitions, and unusual disk access. FRANK's troubleshooting notes already document specific accommodations for Windows 95 setup and startup.
For example, the documentation recommends bypassing one setup memory check when the installer reports no available memory. It also points users toward a separate patch for a Windows protection error. These workarounds indicate useful progress while showing that compatibility remains conditional.
The eight-megabyte guest limit imposes another boundary. That capacity is generous for many DOS programs and early Windows applications. It remains tight for later Windows 95 software or more ambitious Linux configurations.
Memory capacity is only part of the issue. The emulator repeatedly translates or interprets guest instructions using a processor with a different architecture. It must also represent devices whose timing assumptions were formed around physical buses and dedicated controllers.
Some older programs intentionally synchronize with exact video or processor behavior. Demos and games can rely on undocumented timing effects. A functionally correct hardware model may still produce visual errors or incorrect pacing when those assumptions are violated.
Audio adds another sensitivity. Sound Blaster software can depend on interrupt timing, DMA behavior, and buffer refill schedules. A brief delay that goes unnoticed in a spreadsheet can become an audible click or a stalled game.
The linked community discussion quickly focused on this uncertainty. Commenters praised the scope of the machine but repeatedly asked about performance. Others noted that timing-dependent software has always been difficult for virtual machines and emulators.
Those comments are reactions, not controlled testing. Still, they identify the right skeptical question. A long compatibility list becomes more useful when each entry includes tested versions, configuration settings, observed speed, and known faults.
Overclocking complicates that evidence. Results obtained at 504MHz do not necessarily represent every RP2350 board. Stability can depend on silicon variation, power quality, cooling, board layout, and external PSRAM.
The project's support for four board layouts broadens access but also expands the test matrix. HDMI and VGA paths may consume different resources. USB input disables the USB serial console in one configuration, changing how users can diagnose failures.
A cautious reading therefore separates three claims. FRANK clearly implements the components required to attempt a complete PC environment. The developers report that several operating systems boot. Broader claims about speed and compatibility still need repeatable measurements.
A useful benchmark suite would cover more than one headline application. It could measure a DOS CPU benchmark, storage throughput, VGA update speed, audio stability, and operating-system boot time. Each result should identify the board, clock, PSRAM setting, display mode, and firmware version.
Accuracy tests would add another dimension. Instruction suites can check flags, exceptions, and protected-mode behavior. Hardware tests can probe interrupt ordering, timer resolution, VGA registers, and sound-card communication.
These tests would not reduce the project's charm. They would make its achievement easier to compare and reproduce. They would also help developers decide whether a failure comes from the emulator, the guest software, or an unstable overclock.
Until that evidence appears, A 386 PC for Your RP2350 should be understood as an unusually complete and promising port. It is not yet a measured substitute for mature desktop emulators or original hardware.
Microcontroller Emulation Is Becoming a Platform Category
FRANK shows that flexible microcontrollers now support systems projects once reserved for application processors.
The RP2350 has already attracted ports of console emulators, video generators, synthesizers, and early PC environments. These projects share a strategy: combine two general-purpose cores with programmable I/O, DMA, external memory, and direct hardware access.
A microcontroller differs from an application processor found in a desktop or single-board Linux computer. It normally executes one firmware image without virtual memory or a general-purpose host operating system. That simpler environment gives developers predictable control but fewer resources.
Emulator authors can exploit that predictability. One core can concentrate on guest execution while another supports video, audio, or storage. Hardware state machines can maintain external signals even when the processors encounter an expensive workload.
This division is especially valuable for retro systems. Older displays and input devices often need regular timing more than enormous bandwidth. Their original processors were also far slower than current microcontroller cores, leaving room for software interpretation.
The i386 stretches that formula further than an 8-bit console. It brings protected mode, larger addresses, complex instructions, and a sprawling collection of PC peripherals. FRANK's success suggests the limit now depends on whole-system design rather than one headline clock rate.
The project also changes what a retro computer can look like. A traditional recreation uses original chips, field-programmable gate arrays, or a Linux board. An RP2350 solution occupies a middle ground between those approaches.
Original components provide historical behavior but can be scarce and difficult to integrate. FPGA designs reproduce digital logic directly, often with strong timing characteristics. Linux systems offer mature emulators and abundant resources, but they hide the machine beneath a larger computer.
A microcontroller emulator stays small and inspectable. Developers can trace firmware, assign individual pins, and understand how every peripheral reaches the guest. The compromise is that software must do more work within a narrow performance budget.
That compromise makes these projects useful beyond nostalgia. They demonstrate scheduling, memory management, protocol implementation, and real-time I/O under pressure. A developer can study how a complex system is reduced without becoming unrecognizable.
FRANK also illustrates the value of portable C implementations. A compact emulator core can move between ESP32 and RP2350 hardware because it avoids deep dependence on one host operating system. Board-specific layers then connect the core to video, storage, and input.
Portability remains incomplete because display and I/O techniques vary across chips. RP2350 PIO does not exist on every microcontroller. External memory interfaces and DMA behavior also differ.
Still, the reusable core changes the economics of experimentation. Developers do not need to rebuild an x86 interpreter before testing a new board. They can focus on memory placement, peripheral scheduling, and host-specific acceleration.
The resulting competition is productive. Pico-286 can optimize for earlier PC software and lower requirements. FRANK can pursue 32-bit compatibility. Console projects can trade generality for better frame rates and more exact hardware behavior.
None of these routes wins every use case. Their coexistence shows that microcontroller emulation has become a platform category rather than a collection of isolated stunts. Shared boards, firmware formats, and hardware patterns can support several recreated machines.
Three Signals Will Show Whether FRANK Becomes More Than a Demo
The next stage depends on measured performance, broader compatibility evidence, and easier reproduction across supported boards.
The first signal is a published benchmark set. FRANK needs results that tie guest performance to firmware version, board model, CPU clock, PSRAM speed, and video mode. Repeatable numbers would show whether the RP2350 port consistently improves on earlier Tiny386 hosts.
A benchmark set would also clarify the value of the two available overclock targets. If the higher setting produces substantial gains without errors across several boards, the project's performance case becomes stronger. Frequent crashes or visual corruption would weaken it.
The second signal is a public compatibility catalog. Boot screenshots attract attention, but sustained tests provide better evidence. Reports should cover installations, applications, games, audio modes, disk formats, and input devices.
A useful catalog would distinguish fully usable software from programs that merely start. It should record required patches and special configuration choices. That information would turn scattered user experiments into an engineering resource.
The third signal is simpler deployment. Prebuilt firmware already reduces part of the burden, but board-specific hardware and storage preparation remain significant. Clear wiring guides, validated accessory combinations, and versioned configuration examples would make results easier to reproduce.
Deployment improvements would also reveal whether the project can support newcomers without overwhelming its maintainers. A growing issue backlog around wiring and disk setup would suggest packaging problems. Contributions adding boards, tests, or documentation would point toward a healthier platform.
These signals matter more than another unusual boot target. FRANK has already shown that an RP2350 can host the outline of a 32-bit PC. The remaining question is whether many users can reproduce the same machine and receive comparable behavior.
Developers should watch the repository's releases, compatibility reports, and benchmark contributions. Retro-computing enthusiasts should compare those results with Pico-286, desktop emulators, and original hardware before selecting a platform. Board designers should watch which memory and video arrangements produce the fewest compromises.
A 386 PC for Your RP2350 is compelling because its limitations remain visible. Every megabyte, clock cycle, and I/O path has to justify itself. That pressure makes the project an unusually clear demonstration of how emulation works.
Try the project only with compatible hardware, documented firmware settings, and software you can legally use. Then record more than whether the desktop appears. Measure what runs, how it behaves, and which configuration made the result possible.



