Bringing vintage 3D haptic devices back to life on modern computers — open hardware, open source, no vendor stack.
The SensAble PHANTOM family (1990s–2000s) are mechanically superb spatial haptic devices — precision cable drives, capstan transmissions, workspaces and force fidelity that still hold up today. Many sit unused in lab drawers because the vendor software lineage (SensAble → Geomagic → 3D Systems) is closed, fragile, and increasingly unbuildable on modern systems, and because the interfaces they use (parallel port, FireWire, proprietary amplifier boxes) disappeared from modern PCs.
This project revives them with two complementary methods, chosen by what the device actually exposes on its back panel:
Some devices are "just the robot": their connectors carry raw motor and encoder signals. The PHANTOM Premium 1.0 / 1.0A connects through a DB15 + DIN cable pair to a large external amplifier/interface box — the box does all the electronics, the arm itself is passive.
For these devices we replace the big box entirely with a small open Teensy 4.0-based USB controller (the "blue box") that connects directly to the motors and encoders — the same open electronics and firmware that drive WoodenHaptics and Polhem (literally the same firmware, a different device enum). Kinematics run on the PC. Works on Linux and Windows with the hfabapi driver and CHAI3D.
Status: working. Two Premium 1.0-class devices run this way in the lab today. Firmware + PCB: vintagecontroller.
Other devices have their controller electronics built in (or in an inseparable unit) and present a bus protocol instead of raw signals:
| Device | Bus | Back panel |
|---|---|---|
| PHANTOM Desktop | Parallel port (EPP) | ![]() |
| PHANTOM Premium 1.5 / 6DOF | Parallel port (Double-EPP, two PCBs) | ![]() |
| PHANTOM Omni | FireWire (IEEE-1394) | ![]() |
Here replacing the electronics makes little sense — instead we keep them and
speak their wire protocol directly, with a reverse-engineered open userspace
Linux driver and no vendor libraries (no libPHANToMIO / libHD /
OpenHaptics).
Status: working for the parallel-port devices. The full ~1 kHz servo protocol (encoders in, DAC forces out, amp-enable) is decoded; a userspace driver reads the Desktop at ~4 kHz and the Premium 6DOF at ~2 kHz with zero errors, force output verified — including on a modern PC through a PCIe parallel-port card (no legacy motherboard needed). The Omni's FireWire protocol is already decoded (thanks to a University of Twente reverse-engineering effort) but not yet running on our bench.
The code currently lives in a private research repo (it bundles vendor reference material collected during reverse engineering that must be cleaned out first); a public code drop into this project is being prepared. The research logbooks document the whole journey — including disassembling the Windows driver to prove what the "real" wire protocol is.
Look at the back of your device:
- Raw motor/encoder pins (DB15 + DIN, external amp box) → Method 1: replace the box with the open Teensy controller. (There is no parallel-port/driver alternative for these — the big box's PC interface is not something we target.)
- Parallel port or FireWire → Method 2: keep the electronics, use the open driver.
- USB / LAN (Geomagic Touch, Touch X) → these are the modern devices with living vendor support; not our focus (yet).
This is a sibling of the WoodenHaptics → Polhem open-source-hardware lineage, extending the same idea — an open stack for spatial haptics, from electronics to API — backwards in time to the classic devices. Method 1 literally reuses the WoodenHaptics/Polhem electronics; Method 2 opens the software side for the devices whose electronics are worth keeping. The goal is one open ecosystem where a WoodenHaptics, a Polhem, and a 1996 PHANTOM Premium all plug into the same API and the same CHAI3D scene.
This is (so far) a hobby effort. If you have a vintage PHANTOM in a drawer, a FireWire Omni to test, protocol knowledge, or just curiosity — get in touch or open an issue. Jonas Forsslund — jonas.forsslund@gmail.com
PHANTOM, Omni, Geomagic, and OpenHaptics are trademarks of 3D Systems, Inc. Teensy is a trademark of PJRC.COM, LLC. Names are used only to identify the genuine devices this project interoperates with. This project is independent and is not affiliated with, sponsored, or endorsed by these companies.





