FRANK M1

FRANK M1 is the advanced model based on the RP Pico/Pico 2 board, which uses the RP2040/2350A chip. This board is designed for hobbyists and professionals who want a flexible, feature-rich platform for retro computing. Below you will find a detailed overview of its features, assembly tips, and usage instructions.

  • Raspberry Pi Pico/Pico 2 + RP2040-Zero for USB keyboard/mouse support
  • HDMI/VGA/Soft Composite/external TFT video output for maximum compatibility with modern and legacy displays
  • MicroSD (TF) card slot (combined large and small versions) for convenient storage expansion
  • Two DB9 gamepad ports (compatible with Atari/Sega controllers) for multiplayer gaming
  • RS232 port using MAX232 chip for serial communication with vintage and modern devices
  • PS/2 Keyboard port for classic keyboard support
  • USB Keyboard & Mouse ports for modern peripherals
  • Standard 3.5mm audio output for headphones or speakers
  • Tape input (3.5mm) for loading software from audio sources
  • TDA1387 DAC for high-quality digital audio output
  • PSRAM for expanded memory and improved performance
Latest HW Revision
1.17
Compatibility
M1P1M1P2
Source CodeRepository
LicenseGPL v3
Gerber FilesDownload
Bill of MaterialsView
SchematicsDownload

Assembly and Soldering Tips

Proper assembly is crucial for reliable operation. Before you begin, gather all required components and tools, including a fine-tipped soldering iron, quality solder, tweezers, and flux. Work in a well-lit, ventilated area. Take your time and double-check component placement before soldering.

  • Start by soldering all SMD components first. This is much easier before any through-hole parts are installed, as access to pads may become restricted.
  • Use a temperature-controlled soldering iron best results. Apply flux to SMD pads to help solder flow and prevent bridges.
  • After SMDs, proceed to through-hole components, beginning with the lowest-profile parts (resistors, diodes) and working up to taller components (connectors, capacitors).
  • When soldering pin headers for the Pico board, ensure they are perfectly vertical and fully seated. Solder one pin, check alignment, then finish the rest.
  • For connectors (USB, DB9, audio jacks), make sure they are flush with the PCB edge and well-supported during soldering to avoid cold joints.
  • Inspect all solder joints with a magnifier. Reflow any dull or cracked joints with a bit of fresh solder.
  • Clean the board with isopropyl alcohol to remove flux residue, especially around fine-pitch ICs and connectors.

To start up the device, you must solder at least the Pico board pins, one of the video outputs (HDMI, VGA, Composite, or TFT), and the PS/2 connector. The rest of the components are optional but highly recommended for the best experience and full functionality. Take extra care with the orientation of polarized components such as electrolytic capacitors and diodes.

Firmware Flashing Instructions

To flash firmware, press and hold the "Boot" button on your Pico board, then connect your FRANK to your computer via USB. When connected, release the "Boot" button. A new disk drive will appear on your computer. Copy your firmware file (.uf2 file) to this disk. After the firmware is copied, reboot it and start the new firmware. Each firmware is designed for a specific video output, so make sure you connect the proper one before testing. Always use the latest firmware version for best compatibility and performance.

If you encounter issues during flashing, ensure your USB cable supports data transfer (not just charging), and try a different USB port or cable if necessary. Avoid using USB hubs during flashing.

Switches (JP1-JP2)

FRANK M1 includes several switches that allow you to configure hardware features. Refer to the silkscreen labels on the PCB for exact locations.

MSDMouse Data switch. When enabled, the mouse data pin is connected to the Pico board's GPIO. Required for firmware with mouse support.
MSCMouse Clock switch. When enabled, the mouse clock pin is connected to the Pico board's GPIO. Required for firmware with mouse support.
GP1First gamepad switch. When enabled, the first gamepad is connected to the Pico board. Ensure this is set if you plan to use Gamepad 1.
GP2Second gamepad switch. When enabled, the second gamepad is connected to the Pico board.
PSRPSRAM switch. When enabled, the PSRAM chip is connected. Required if you have soldered the PSRAM chip for expanded memory.
ZERORP2040-Zero switch. When enabled, the RP2040-Zero module is powered up. Enable this if you want to use the USB keyboard/mouse ports. Remember to flash the correct firmware to the Zero module.
TX, RX, CTS, RTSRS232 switches. When enabled, the corresponding RS232 pins are connected to the Pico board's GPIOs. Only enable these if you plan to use the RS232 port to avoid conflicts with other functions.
PWLPWM (software) audio output switch, left channel. Enable if you want to use software audio output on the left channel.
PWRPWM (software) audio output switch, right channel. Enable if you want to use software audio output on the right channel.
BPRBeeper switch. Enable if you want to have a beeper for sound effects. Only required for PWM audio mode.
TDLTDA1387 DAC audio output switch, left channel. Enable if you want to use the TDA1387 DAC for high-quality audio output (left channel).
TDRTDA1387 DAC audio output switch, right channel. Enable if you want to use the TDA1387 DAC for high-quality audio output (right channel).
TAPETape loading switch. Enable if you want to load programs from tape. Connect the audio source to the Tape In jack.

Solder Jumpers (JP3-JP4)

Some features require solder jumpers (JP3, JP4) to be closed. These are small pads on the PCB that can be bridged with a blob of solder. Use a small amount of solder and a fine-tipped iron for best results.

JP3If you have soldered the PSRAM chip, you must also solder this jumper. It signals to the firmware that PSRAM is present. Don't forget to also enable the "PSR" switch on JP1.
JP4The board includes an advanced Low-Dropout Positive Fixed Voltage Regulator (NCP1117). If you choose not to install this regulator, you must solder the JP4 jumper so that +3V3 is powered by the Pico's internal regulator (not recommended for high-power setups).

Power Source

You can power up the FRANK by connecting any compatible +5V power source to any of the USB ports. For best results and reliability, use a high-quality USB power supply capable of delivering at least 1A. If you solder the USB Type C port below the Pico module, it's recommended to use it as the main power input. This leaves the other USB Type C ports on the Pico and RP2040-Zero available for data or peripheral connections.

For a more stable power source, solder the NCP1117 3.3V voltage regulator. If you don't have this regulator or choose not to install it, you must solder the JP4 jumper to use the Pico's built-in voltage regulator. Note that the Pico's regulator may not be sufficient for all peripherals.

  • Always check for shorts between power and ground before powering up for the first time.
  • If the board does not power up, disconnect immediately and inspect all solder joints and component orientation.
  • Use a multimeter to verify voltage levels at key points (3.3V, 5V rails) after assembly.

Video Output

FRANK supports four video output options: HDMI, VGA, Soft Composite, and external TFT display. Each output requires the corresponding connector to be soldered. There is no need to configure switches for video output, as each firmware version is tailored for a specific output. Check the firmware documentation to see which output is supported and ensure you have the correct connector installed.

  • For HDMI, use a high-quality HDMI connector and cable for best results.
  • For VGA, ensure the connector is firmly attached and all pins are soldered cleanly.
  • Composite output requires careful soldering of the RCA jack and associated components.
  • TFT displays may require additional wiring or adapters depending on the model.

Keyboard & Mouse

You can use your keyboard (and mouse in supported firmware) with FRANK. There are two options: connect a PS/2 keyboard/mouse to the PS/2 port, or use a USB keyboard/mouse. USB support is provided by the RP2040-Zero module, which acts as a USB to PS/2 adapter.

PS/2 and USB ports cannot work at the same time, so you need to choose which to use. For PS/2, no additional configuration is needed. To use the USB ports, turn on the corresponding switches of JP1:

  • "ZERO" to power up the RP2040-Zero module
  • "MOUSE CLK" and "MOUSE DATA" to activate the mouse pins (enable only if your firmware supports mouse; otherwise, leave open to avoid issues)

You will need to flash the ps2x2pico firmware to the RP2040-Zero board. The mainstream version won't work because FRANK uses PIO pins, so the proper UF2 file needs to be downloaded here (use the "Stacked" version). Press the "Boot" button on your RP2040-Zero board and connect it to your computer. When connected, release the "Boot" button, and a new disk will appear. Copy your firmware file to the disk. After the firmware is copied, the device will reboot and start the new firmware.

Audio Output

FRANK M1 supports both software-based (PWM) and TDA1387 DAC (I2S) audio output. To select the desired output, turn on the corresponding switch of JP1:

  • "PWM L" and "PWM R" to use the software audio output (default, suitable for most uses)
  • "TDA L" and "TDA R" to use the TDA1387 DAC for higher quality audio (requires the DAC module to be installed)

The TDA1387 DAC module is optional. If you do not plan to use it, you can skip soldering it and use the default PWM audio output. For best sound quality, use shielded cables (Audiophiles: your moment has come).

You may also wish to turn on the "BEEP" switch on JP1 to connect the beeper. This will allow you to hear sound effects from the beeper in addition to the main audio output. The beeper is only required for PWM mode; disconnect it when using the TDA1387 DAC to avoid interference.

Tape Input

FRANK allows you to load programs and games from vintage tape players or other audio sources. Connect the audio output of your tape player to the "Tape In" input. The signal will be amplified and digitized by the Pico board, then processed by the firmware. To activate tape input, short the corresponding pin of JP1:

  • "TAPE" to enable audio input for tape loading

For best results, use a shielded cable for the tape input and keep it away from power lines and digital signals to minimize noise (and: Bonus points if you can explain to your friends what a tape is).

RS232 Port

FRANK uses the MAX232 chip to convert the Pico board's TTL-level signals to RS232 levels, allowing connection to computers or devices using the RS232 protocol. The RS232 port is available on the DB9 connector. To activate RS232 functionality, short the corresponding pins of JP1:

  • "RX" to connect the RX pin of the MAX232 and GPIO17 of the Pico board
  • "TX" to connect the TX pin of the MAX232 and GPIO16 of the Pico board
  • "CTS" to connect the CTS pin of the MAX232 and GPIO18 of the Pico board
  • "RTS" to connect the RTS pin of the MAX232 and GPIO19 of the Pico board

Because Gamepad 1 and PSRAM share the same GPIO pins, you may wish to disable these functions by removing the turning off the corresponding switches on JP1 when using the RS232 port. This will help avoid potential conflicts, although in practice issues are rare.

It's recommended to flash firmware that supports RS232 communication, such as VersaTerm.

PSRAM

PSRAM is an optional feature that expands the memory of your FRANK and is used by several firmware packages. Although optional, it is recommended to solder the PSRAM chip to avoid performance issues and to ensure compatibility with more software. To activate the soldered PSRAM, you must:

  • Turn on the "PSRAM" switch on JP1
  • Solder the JP3 jumper to signal PSRAM presence to the firmware

Take care when soldering the PSRAM chip, as it is sensitive to heat and static electricity. Use ESD protection and avoid prolonged contact with the soldering iron.

Gamepads

You may connect up to two gamepads to your FRANK for multiplayer gaming in supported firmware. The gamepads connect to the DB9 connectors labeled "Gamepad 1" and "Gamepad 2". To activate gamepad functionality, turn on the corresponding switches of JP1:

  • "GP1" to activate the first gamepad
  • "GP2" to activate the second gamepad

Use high-quality DB9 connectors and ensure all pins are soldered securely. Test gamepad functionality in firmware after assembly.

Final Checks and Troubleshooting

  • Double-check all jumper/switches settings and solder bridges before powering up.
  • Inspect for solder bridges, especially on fine-pitch ICs and connectors.
  • If the board does not function as expected, recheck all component orientations and connections.
  • Consult the official documentation and community forums for troubleshooting tips.

With careful assembly and configuration, your FRANK M1 will provide a versatile and reliable platform for retro computing, gaming, and hardware experimentation. Enjoy your build! (And remember: If it works, it's not a bug—it's a feature.)

Changelog

Every release is available on the Github repository.

1.17Stable tested version