Stratadue: Duet 2 to Stratasys Interface



  • Strataduet.jpg

    Status: In Development

    Stratadue is an adapter board that connects a Duet 2 (Wifi/Ethernet) to a Stratasys 3D printer such as a uPrint (SE/Plus), Dimension 768 or 1200 (BST, SST, Elite) and possibly some Fortus machines. This board allows for complete control over the Stratasys machine, with the exception of the material bay (possibly available in a future update).

    The goal is to open up these once expensive industrial machines and allow them to be controlled to their fullest potential using the Duet 2. I will be working on the development of the adapter board and making the schematic, PCB, BOM, Duet config files and macros available as soon as they are ready.

    Complete details about interfacing with a Stratasys uPrint is here: https://wiki.cnc.xyz/Stratasys_uPrint_Retrofit

    I'll be posting details on my build in this thread as I progress.



  • This is super interesting as I have three 768 units (two working and one for spares) at work that have been on my list to convert to Duet control for a good few years now! If you have any of these adapter boards for sale, I've definitely be interested in a couple!



  • @ChrisP The goal will be to offer these as long nothing major needs to change. I also need to find a lower cost option for the Stratasys IDC connectors, they add about $30 to the BOM!



  • I thought the Fortus (at least the 900MC) uses servos. Some use steppers I guess?



  • @3DPMicro I am not sure. I believe at least one Fortus model may use the same controller card as the uPrint and the Dimension lines. I have not seen any Fortus electronics up close though. They are still relatively too new and expensive for people to start hacking them.



  • Fortus MC250 appears to be a variation of the uPrint and Dimension. So I would venture a guess to say the adapter could work there too.



  • IMG_20200411_211057.jpg

    Got in a little bit of testing tonight! I found more pins I needed to document. 😓 Hopefully they do not affect the operation and hopefully they don't result in a new hardware revision. They are related to serial data lines that communicate back to the controller, related to the 'secret' machine chip that identifies what type of machine the electronics are controlling. (uPrint, Dimension.. etc).

    Setting up the macros is a quick and fun way to test. I had to generate a custom build of RRF 3.0.1-RC6+ in order to get all the I/O defined, but I found just now that I introduced a bug where only half the I/O were working. That explains why half my I/O were not working despite the custom code.

    I plan on writing Macros for nearly every function that mimics the actual behavior of the Stratasys software. For example, Door lock will lock the operator door, but only if it is actually closed first. If the printer is in standby, and the LED light is off, once you open the door the LED lights come on... etc. I worry that I will be running out of 'Triggers' though. We need to have a trigger for the thermocouple alarms, UPS shut down notification and possibly On/Off switch soft power down.

    I am running into a problem that I am having trouble with currently. When enabling the power to the system, instead of being pulled high to 5V, the system enable is only around 3 volts. I have verified on my PCB that it isn't caused there, but instead is occurring on the Stratasys hardware. It is possible I do not have the machine fully activated yet, perhaps half on / half off is acting like a voltage divider causing half voltage.

    I also do not yet have readouts from the thermocouples. I'll be plugging in an Arduino and trying to read the data directly just to make sure it isn't my hardware.

    My custom servo driver code is causing phantom operation of the extruder servo motor. At least we have some movement there. 😉



  • before you run out of triggers, maybe using the new daemon feature allows you to check certain things once a second -- may delay some features (by up to a second), but save you triggers.



  • I found some more pins that I had not documented. Looks like I'll be needing to add a few more I/O pins on a new hardware revision.

    The uPrint has a pretty interesting feature where the Power Switch acts as a conventional On/Off switch, where A/C power flows through it. However once running, an internal relay takes over the voltage switch. So you can turn it on with a conventional power switch, but once it is turned on, the internal computer can take over and control the power. The power switch essentially becomes a momentary switch after that and the Duet can read the On/Off power switch status. I'd like for the Duet to also have this ability, so a hardware revision is necessary. A shutdown macro should ensure heaters are disabled, fans are run, temperatures are below a certain threshold and the build plate is stowed before the power is ultimately turned off.

    There are also a few more things found such as a head Thermostat. The documentation about what it's function is, is not very detailed. It appears to be yet another safety switch that should be monitored.

    I have still not determined why the system enable is not fully +5V on. The custom firmware has not been successful at allowing me to use the additional I/O chip yet.



  • I had a minor breakthrough on the uPrint today. I found that my changes to the firmware were actually successful. See pull request here. Both I/O chips are present and working, though the assignment of pins is still a little hit or miss. That is what was causing some issues, some things were working and others were not.

    As of now I have control over the chamber heaters, extruder heaters, fan and the end stops are now working. Enabling the motors lock them up, but it is apparent there is something not quite right. They are noisy and do not lock up fully. I also have not yet gotten any movement out of them.

    I also found that I made a fundamental mistake with the 'Power Enable' signal. I had assumed it was a standard I/O signal and therefore my logic level shifter would be sufficient to send the signal high. I'm finding now that it is actually a power signal and therefore needs a higher current signal. As soon as the 120VDC power supplies are enabled (which take the power enable signal directly) the voltage drops down to the 2-3 volt range. They are pulling the signal low.

    It is possible my motor enable signal is also requiring a stronger signal.

    I have updated the Reference on my Wiki with updated signal information and a few more Stratasys boards: https://wiki.cnc.xyz/Stratasys_uPrint_Retrofit#Reference



  • @AJ-Quick said in Stratadue: Duet 2 to Stratasys Interface:

    ...the assignment of pins is still a little hit or miss. That is what was causing some issues, some things were working and others were not.

    Whoops, turns out I had capitalized the variables in the firmware. Once fixed, the logical pin assignments work correctly.



  • I was able to do some testing of the thermocouples on the uPrint. I found that they output data on these ranges:

    Chamber: 23 - 90 degrees C
    Model and Support: 89 - 345 degrees C

    These ranges are +/- 2-3 degrees, did not have a very accurate meter when measuring.

    The test points on the PDC are adjusted so that 1V = 100 degrees, 5v = 500 degrees.. etc. But that is not the same signal that is output on the header J15.

    Under normal operation, 80 degrees C is the max for the chamber and 330 degrees C for the model and support. It makes sense that it is capable of reading just outside of that range. No idea why they would put the bottom end of the range where they did.



  • Stratadue-proto.jpg

    The latest design. Hopefully will be assembled and in-hand by the end of next week.

    So many little changes between this version and the last. Namely: The Power Enable now uses a MOSFET to supply higher amperage to the Stratasys PDB.

    New features:

    -Control over the printer's main power supply. If the power switch is flipped off, the board will be able to keep it alive and go into a controlled shutdown. The Duet will be able to turn itself off in a controlled manner.
    -Head Thermostat signal. There is an internal thermostat inside the printer's head that will trip if temperatures exceed a set point (100 degrees C). This is in addition to the head and chamber temperature alarms, and the three thermocouples.
    -Bed Level Probe has an enable / disable. As it turns out you can turn the bed level probe on and off, so that it is only detecting when it is going through the bed leveling routine. This was discovered and added to this revision. Previously the bed probe was always enabled. I believe the reason for this is that the bed probe uses the signal to determine when the probe is stowed and then when it is sensing the presence of the bed.

    Finally all uPrint printers (and presumably Dimension and Fortus) have a secret Machine ID eeprom located on the main body of the machine. This eeprom contains the serial number of the printer and the type of printer. On Stratasys machines, the hard drive contains the code to run all models of their printers. The eeprom tells the on-board computer what software to run. I found that the eeprom runs on a serial data bus, which the Duet2 has available. I figured I would breakout the signals and include an area where the signals could be read by the Duet2 should the need ever arise. The signals are by default not connected, but can be added by bridging the solder joint.

    My thought is that it could be possible for the Duet2 to read the eeprom and verify what type of machine it is plugged into (uPrint, Dimension, Fortus) and then load the appropriate configuration. It is completely unnecessary though.



  • This project is currently on hold. I had to go back to work on other things.

    I have not yet ordered a new revision of the hardware as I need to make sure that the Attiny85 is actually capable of driving the servo and steppers in a robust manner. I worry that the processing rate of the Attiny is not fast enough for the servo motor. Tuning is very difficult. I have some control over the servo in a closed loop, but am worried about lost steps, overshoot and oscillation.



  • I just stumbled upon this project and i'm amazed !!! Great work !!! I'm looking forward to the day where i can order one for my printer 😉


Log in to reply