We developed a system which will allow our upcoming 3D printers to change their tool heads during a print. Thus far, we have produce two successful prototypes. It uses the OpenGrab electropermanent magnet for the attachment mechanism.
The tool head PCB has a MAX31855 for thermocouple measurement, 25AA02UIDT EEPROM for storing calibration data, pass-through traces for switching loads, and a spot for a quadrature rotary encoder to sense filament movement.
The project’s Git repo can be found here.
Here’s a video helping to visualize the magnetic field produce by the electropermanent magnet with the use of ferrofluid. Specifically, when the net external magnetic field is zero, when the AlNiCo is saturated with all moments aligned and the net external magnetic field is non-zero, while being gaussed, and while being de-gaussed:
Here’s a demo video of our first print while keeping the toolheads heated in the docking station:
Here’s a demo video our first prototype during a print:
Here’s the layout of the tool head PCB I designed in KiCad:

Figure 1: Tool Head PCB Layout
Here’s the schematic:

Figure 2: Tool Head PCB Schematic
Here’s the carriage connector PCB with spring-loaded connectors (don’t worry, the traces aren’t being masked/exposed):

Figure 3: Carriage Connector PCB Layout
Here’s a photo showing the tool head PCB in use during a print:

Figure4: The Tool Head PCB in Action
The main electronics on this machine is the Replicape rev B3A (Trinamic TMC2100) and BeagleBone Black rev C using the TI AM3358 1GHz 32-bit ARM Cortex A8 and 512MB DDR3 as seen in Figure 5. The OS being Debian, running the Redeem Linux daemon, and an OctoPrint web server.

Figure 5: Main Electronics