First of all, major thanks to @AJ-Quick, @drphil3d, @Archeantus and @Pete_A for their previous posts regarding converting the Stratasys Dimension, Fortus (250), and uPrint models over to the Duet ecosystem, as I doubt I would have been able to get as far as I have without their previous research, experimentation, and engineering. A great thread here, resulting in this awesome Hackaday post detailing @Archeantus 's fully reversible conversion.
My twist on this was to instead of using the Duet 2 product line, attempt the conversion with a Duet 3 6HC and Sammy-C21.

The fully reversible approach is quite great because it's likely the easiest way to convert one of these machines, as the existing motion, sensing, and extruding hardware is solid. Other approaches, in my opinion, are implemented by swapping in substandard hardware, and at greater time & expense.
Ultimate goal is to have an adapter board that would simplify the conversion process (notional setup below); now that the motors and the bulk of the inputs/outputs can be managed, I think I can move on to refining the board.

For now though, the electronics enclosure is very much a living, breathing organism 

What is the current status?
Able to move the motors, home the axes, power on the heaters, and print!
What are the next major next steps?
Tool change, probe, nozzle cleaning macros need to be fully fleshed out. Would like to integrate the 9x limit/position switches into the configuration as best I can (X, Y, Z home, X, Y, Z end of travel, Z probe, Model toggle, Support Toggle)
What won't I be tackling in this project:
- Will not attempt to integrate the existing front user interface/screen. Instead, I'll likely pull that module out, and install a PI and touchscreen (do not intend to run the Duet with the SBC attached however)
What I haven't yet tested:
- Anything with the material bay. The user who posted the Hackaday project did some initial integration efforts, once I'm confident with the bulk of the printing portion of the printer, I'll look into the material bay control (less to use the material spools, but more to help loading in filament).
- Have not tested thermostat outputs as inputs on the Duet, but that should be low effort.
Something that surprised you?
I had previously experimented with driving the Geckodrive G320X with a Duet 2/ Duex, but I was genuinely surprised I was immediately able to get it moving as required with the Sammy-C21 STEP/DIR pins- was expecting to have to do a lot more fiddling!
Motor Control:
- Bypass the Stratasys PDB for the X, Y, and Z motors, instead wire directly to them from the 6HC
- Use the Sammy-C21 (default firmware build) to interface with a Geckodrive G320x via STEP/DIR. The Geckodrive interfaces with the PDB to control the DC motor for the extruder (the G320x actually doesn't directly connect to the motor armatures, rather it goes through to a L298P full bridge driver. In this application, the G320X is mainly used just to gain closed loop control of the motor).
- Instead of a Sammy-C21, a Duet 1XD could most likely be used.
Temperature Sensing:
There are three temperature sensors to interface with, all three are K-Type thermocouples. While the chamber thermocouple terminates inside the electronics enclosure, the two hotend thermocouples are terminated and processed in the print head. From the PDB the processed analog voltage spans from 0v (low temp) to 5v (high temp). To be read by the Duet temperature inputs, the analog voltages go through voltage dividers to get down to scale from 0v to 3.3v.
I validated the temperature range by soldering a few wires onto the existing Stratasys Control board, and running a print (with the original control board, SBC, etc), logging the values via a Labjack T7 DAQ. At the same time, I fed the analog voltages to the Duet, finding that ~1v was applies to the sensor inputs, biasing the temperature high. Once I made that discovery it was pretty straightforward to correct my M308 B and C values.
Limit Switches (Optical Switches):
I fed the limit switch outputs directly from the PDB to the 6HC inputs (5v signal, 6HC's inputs are 30v tolerant).
Enabling Head Blower Fan, LED Lights, etc:
A few ways of doing this - ultimately you need to send 5v to the PDB. To use the I/O headers, I used SN74AHCT125N level shifters to take 3v to 5v.
To use the low current outputs, this works well:

Plenty more to work on, but for now, proof of life:
https://www.youtube.com/watch?v=rRLwZSXlzxI