Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

vintagehaptics

Bringing vintage 3D haptic devices back to life on modern computers — open hardware, open source, no vendor stack.

Four PHANTOMs

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:

Method 1 — replace the controller (VintageController)

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.

PHANTOM Premium 1.0 back panel

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.

Method 2 — keep the controller, open the driver (vintagedriver)

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) Desktop back
PHANTOM Premium 1.5 / 6DOF Parallel port (Double-EPP, two PCBs) 6DOF back
PHANTOM Omni FireWire (IEEE-1394) Omni back

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.

Which method for which device?

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).

Lineage

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.

The lab PC

Join the fun

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.

About

Support for old 3D haptics devices on modern computers

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors