PicoPCMCIA

This is a PCMCIA development board for retro-computing enthusiasts who want to experiment with audio, networking, and expansion on vintage laptops and mobile devices. While ISA users have enjoyed projects like PicoGUS and PicoMEM, PCMCIA users have long been limited to scarce legacy cards with narrow functionality — this board aims to change that. The project is fully open source, and while it is designed to encourage low-level experimentation and development, pre-built, community-provided firmware is available for users who want to test functionality without diving into the technical details. It is intended for hobbyist and development use and is not certified for production deployment.

Device Compatibility

This is a Type II, 5V, 16-bit PC Card designed for use in compliant PCMCIA sockets and should work in most devices. While I have not yet encountered a device advertising PCMCIA support that was incompatible, support for every device cannot be guaranteed. Power consumption varies depending on enabled functions; support for low-power devices such as the HP 200LX is considered mandatory, and the card has been tested to remain within the 150 mA limit while using network functionality and storage emulation. On devices with very limited power budgets, simultaneous use of networking and audio may require external power.

A short list of devices that I actively test on:

  • IBM PC110
  • HP 200LX
  • Amiga 1200
  • Apple Newton
  • HP Jornada 720
  • Compaq LTE Elite
  • IBM Thinkpad 235
  • IBM Thinkpad 240

Features Overview

Built around the RP2350 and leveraging the ISA-like nature of the PCMCIA bus, this project benefits greatly from code interchangeability with other RP-based retro projects, most notably PicoGUS and PicoMEM. This shared foundation allows features and improvements to move quickly between platforms, expanding functionality over time.

Wi-fi / Bluetooth

The card has an onboard wireless module containing the Infineon CYW43439, same as found on the Raspberry Pi Pico W. This allows the card to attach to modern Wi-Fi networks (2.4GHz 802.11b/g/n WPA2). It can then emulate an NE2000 adapter and/or a dialup modem allowing the host computer to access the network as if it was wired, unaware it is wireless.

Essentially every platform containing PCMCIA will have existing drivers to recognize and utilize the card as a modem or ethernet adapter making this a near universal option for all devices and platforms including rare devices such as the Apple Newton.

It also has a Bluetooth which opens up a lot of possibilities for A2DP wireless audio streaming and wireless gamepads/mice. Software for these features Bluetooth features are still under development and is at a proof of concept stage.

Audio

Hardware

The card has an included Texas Instruments TLV320AIC3254 which calls itself a “Very Low-Power Stereo Audio CODEC with programmable miniDSP”. The main features of this device in our application are:

  • DAC that is fed high quality audio from the RP2354 over i2s
  • Amplified stereo headphone amplifier
  • Line out feeding the host device internal speaker (where supported)
  • Line in from the onboard midi sythesizer (see below)
  • Line in from external i/o connector for mixing external audio
  • Controlled by the RP2350 via i2c (controlling volumes etc).

This is combined with a DREAM SAM2695 “Low power single chip synthesizer with effects and built-in codec”, this is the same chip used on the Serdashop Dreamblaster S2. It is a great device for DOS gaming and other applications, its main features are:

  • 64-voice polyphony (without effects)
  • 38-voice polyphony + effects
  • CleanWave soundset
  • General MIDI compatible effects
  • 4-band stereo equalizer

MPU-401

Emulation of intelligent mode MPU-401 is possible thanks to implementation done by PicoGUS base on SoftMPU/HardMPU. The midi output is driven to the internal SAM2695 as well as to an external Midi port. While using external Midi you are able to mute the internal SAM2695, or if you are not using any of the internal sound hardware you can power it down. Planning has been done with the external GPIO to support MIDI IN if ever implemented.

Sound Blaster Emulation

Sound Blaster emulation on PCMCIA is particularly challenging, as most PCMCIA sockets and cards lack native DMA support. To address this, the PicoPCMCIA implements DMA emulation, similar in spirit to the approach used by the infamous IBM 3D Sound card, resulting in good compatibility with many real-mode and protected-mode games — including the obligatory Doom. The IBM card was essentially the only card to offer this functionality, it seems it may have been that way due to IBM patenting (expired) the concept of DMA emulation with PCMCIA.

The core Sound Blaster emulation developed for PicoPCMCIA has been shared with the PicoGUS project, where it is actively used and has greatly benefited from additional community-contributed improvements. Adlib/OPL emulation is borrowed from the PicoGUS implementation.

Gravis Ultrasound (GUS)

Thanks to the incredible work from the PicoGUS, it is now possible to have the worlds first PCMCIA Gravis Ultrasound! Currently this does not support DMA so only some games/demos work. The GUS is a little bit different with its use of TC, but it may be possible to apply the DMA emulation strategies from the SoundBlaster mode to the GUS.

CD-ROM Audio

The card implements an emulated Panasonic MKE CD-ROM which an be used for both data and audio. The audio at full quality is sent to the TI DSP over i2c and can be used simultaneously with all the other audio functions. This code was shared to the PicoGUS and is currently in use there and has been improved by the community.

Storage Emulation

While storage emulation is not a primary focus given the ready availability of solutions like CompactFlash, it is supported and continues to evolve. Current implementations include Panasonic MKE CD-ROM emulation as well as linear flash emulation, and ATA/ATAPI emulation should be possible in the future once the PicoIDE project becomes available and code can be shared. Disk images can be BIN/CUE, ISO and are stored on the MicroSD card.

There is also a special edge case for the HP 200LX, where the card can emulate an “Accurite Doubleslot” device, allowing an emulated flash card to coexist with networking or sound functionality. This is particularly important on systems with only a single PCMCIA slot, where storage availability is at a premium.

USB

The USB port for the RP2354 is made available on the external connector. It’s primary purpose is to be used for flashing the card with firmware, however as demonstrated on the PicoGUS and PicoMEM, it can use used for USB Gamdpads and USB Mice which are presented the the host system as legacy gamepad and serial mouse. It has also been demonstrated the latest update to the PicoGUS that accessing flash storage at a reasonable speed is possible via USB.