Friday, 7 August 2015

New Duet Electronics - Version 0.8.5

RepRap 3D printers with multiple extruders are becoming increasingly common however the majority tend to have dual extruders rather than 3 or more. Released in December 2013, the Duet 0.6 is now an established 32bit 3d printing electronics solution that has proven to be popular and versatile. With this in mind we decided to extend the Duet 0.6 to support two extruders on one board and developed the Duet 0.8.5.

The new features are highlighted below and importantly it features the same expansion header as the Duet 0.6 so it supports a Duex4 expansion boardA Duet 0.8.5 + a Duex4 gives support for 6 extruders. That's 9 stepper channels and 7 heater channels including the heated bed!

Duet V0.8.5 (picture updated 20160111 to show polarised pin headers)

We should thank David Crocker (DC42 on the RepRap forums) upfront for his helpful advice in the development of the Duet 0.8.5.

New Features in Duet 0.85

  • A second extruder channel (E1).
  • A second PWM fan output.
  • E1 motor current controlled by the SAM3X8E DAC0 channel. Thanks to David Crocker for this idea.
  • Two "always on" fan pins.
  • Dedicated header for the PanelDue.
  • Dedicated probe header, supports many different probes including David Crocker's mini IR probe.
  • Additional pins accessed on the SAM3X8E processor to enable the new features.


Improvements from 0.6

  • Lower noise components and circuit layout used for the 5V BUCK circuit.
  • Complete ground plane - reduce noise and potential ground loops.
  • Switches and power indication LEDS moved to the same edge as the SD/USB/Ethernet for simpler access and indication.
  • VSSA now present on the expansion header. This combined with the changes to the Duex4 0.2a mean that analogue ground is now used for all 7 temperature measurement channels.


Other Changes

Not necessarily improvements but changes to simplify the board or reduce component count:
  • USB is now a simple USB 2.0 device, rather than a Host/Device as before. This was never used on the 0.6 and removing it reduces component count.
  • Removed the IDC headers for the heatbed and motor/hotend wiring loom. The footprints took up valuable board space and I am not aware of a printer that used a complex loom terminated in a single IDC.
  • The FAN MOSFETs are now PMV40UN2R FETs which are lower power but more than adequate for fans and other lower current devices. They also don't use a second mosfet to increase turn on voltage, like in the 0.6 design, as that was overkill. This means they are inverting (use M106 I1 to change)
  • Extruder thermistor headers and fan headers moved towards the middle of the board to allow for the same board size as the Duet 0.6 to be used.
  • In order to support a 7th heater channel (Extruder 6) along with two PWM fans the PWM pin had to be shared. This means that you can't run 6 extruders AND 2 PWM fans at the same time.

Board Connections

Duet 0.8.5 Connections


The expansion header pins have changed slightly as shown in the picture below:


Duet 0.8.5 Expansion header pins back view
The pins on the Duex 0.6 that went to the extruder E1 on the Duex4 have been diverted to E1 on the Duet 0.8.5. New pins now go to E5 in place of E1 on the Duex4


Opensource Hardware

In the same manner as the Duet 0.6 the Duet is based on the Arduino Due, and the KiCAD source files are released under the CERN OHL 1.2 license, which means you are free to modify them and distribute products based on them, as long as you share your modifications under the same license. We believe this is a much more appropriate license for Open Hardware than a Creative Commons/GPL or other licence based around copyright.

The Duet 0.8.5 source files are available on GitHub so feel free to fork the project and modify away!

Duet 0.8.5 developed with the Open Source KiCAD EDA suite


KiCAD has continued to improve since I started to develop hardware over 2 years ago. It is a powerful, Open Source design suite which means that the source files for the Duet are open for anyone to use and so is the software needed to modify them.

Firmware & Webinterface

The Duet 0.8.5 runs RepRapFirmware, the linked github page has the Think3dPrint3d latest version based on David Crocker's fork. I have made the changes required to support the additional pins, extruder multiple PWM fans and hopefully this will be merged into David's fork shortly.

The firmware has also improved substantially since the Duet 0.6. The majority of these improvements Think3dprint3d can take no credit for as they are the work of the RepRap community.

David Crocker has done excellent work in optimising the firmware and implementing segmentation free support for Delta printers. Old-style firmwares rely on segmentation to calculate movement but this can add printing artefacts. On David's fork the delta transform is calculated for each step, i.e. it's segmentation free, and thus the quality is higher. This is only possible due to the higher processing speed of 32 bit electronics.

Christian Hammacher (on the RepRap forums as zombiepantslol) has done a fantastic job continuing to improve the web interface:

Updated RepRapFirmware Web Interface with 6 extruders - Large Screen (PC) view
I am now also using the webinterface from my mobile, here are a couple of screenshots of that:

RepRapFirmware Web Interface on Mobile

RepRapFirmware Web Interface on Mobile - Print page


Production & Availability

The Duet 0.8.5 boards are being produced for us in the UK by a local electronics manufacturer. The first batch is finished and available on our website:


Also available as a bundle with the Duex4, and I will be very excited to see someone using all 6 extruders!




56 comments:

  1. Is there a BOM available?

    ReplyDelete
    Replies
    1. Hi yeah if you load it up in KiCAD you can look at the components and generate a BOM

      Delete
  2. Hi! Where can I find manuals? How to connect everything, install firmware (is it nesessary?) etc.

    ReplyDelete
    Replies
    1. Hi Andrew

      The RepRap Wiki has information on how its connected:
      http://reprap.org/wiki/Duet

      RepRapPro has a good guide how to update the firmware, just replace their version of the firmware linked from the page with My version linked in the blog:
      https://reprappro.com/documentation/commissioning-introduction/maintenance-duet/#RepRapPro_Firmware

      The config.g file on the SD card can be edited for all the specific settings for your printer.

      Cheers

      Tony

      Delete
    2. Thanks for your reply.
      I have Duet in my hands now. I connected USB and nothing happens, just 3 LEDs on: 5V, 3.3V, USB. I can't connect from the PC, I can't see it on my home network either.
      Looks like the SD card has no firmware, I hoped it should be there...

      Delete
    3. HI PKM

      we send the Duet out with the SD image written to the SD card, but its also available here:
      https://github.com/T3P3/RepRapFirmware/tree/dev/SD-image

      Best to start with the most similar printer to yours (Ormerod, Kossel, CoreXY) and rename that folder to /sys then edit config.g to match your printer.

      Cheers

      Tony

      Delete
    4. Hi Tony
      OK if the SD image is there I should be able to test it somehow. Does it work from USB power, without 12V connected? Can I connect to it via USB from Repetier or Simplify3D? Which baud rate should I choose?

      Delete
    5. OK I edited the config.g and I can access the Duet on the network. Nice!

      Delete
  3. Hi,

    this board sounds great.
    I wonder why on the Duet the stepper drivers are not designed to be on plugable driver boards as on the Duex. In case of an burned/broken chip the complete Duet must be replaced.
    Is a plugable solution in scope ?

    ReplyDelete
    Replies
    1. Hi

      Both the Duet and Duex4 use stepper drivers mounted directly on the PCB, this significantly improves the heat dissipation, allowing for higher stepper motor currents before needing heatsinks/active cooling because the larger board area acts as a bigger heatsink. We have found this combined with the thermal shutdown protection built into the Allegro A4982 drivers means that we don't get burnt out stepper driver chips. Turn off the power supply before pluggin in and unpluggin motors and that removes the other failure modes so on balance this was a better option. If you wanted to use high power stepper driver circuits then the expansion header allows you to drive a further 4 stepper channels and it is relatively straight forward to use external stepper boards connected to those, although you would need custom wiring.

      Cheers

      Tony

      Delete
  4. Hi Tony,

    thanks for the details here. I really thought I have seen pin-and-socket connectors on the Duex4 but I can not find them on the pictures.

    Regards
    Andreas

    ReplyDelete
  5. I just installed Duet 0.8.5 to my delta... I find it pretty good, particularly web-interface.
    Just a couple of annoying things (for now):
    - it's hard to understand why the endstops pinout on Duet is "GND, 3.3V, STP" while RAMPS has "5V, GND, STP", I had to reassemble the connectors;
    - it would be very convenient to edit config files via web-interface, but I couldn't find this feature. I just heard that config.g can be uploaded;
    - the manuals and docs are very sparse, something's here and something's there...

    ReplyDelete
    Replies
    1. Hi

      Thanks for the feedback. The decision on the order of the endstop pins is lost to me now so I can't comment on that.

      Editing the config.g file in the web interface would be good, for now the easiest is to edit a local copy and then upload it - almost as quick.

      The vast majority of the user documentation is the RepRap wiki's Gcode page, along with the Duet page but you are right more in depth documentation for the RepRapFirmware would be good.

      Cheers

      Delete
  6. Hi, I have a few questions about the Duet board. It states that I can't use the 7th heater channel if I'm using the pwm fan pins. However, is the firmware flexible enough where I can use the 6th stepper driver to drive a stepper? And am I able to redefine these extra pins as I see fit, such as the PanelDue pins to say drive a servo instead? Thanks

    ReplyDelete
    Replies
    1. Hi JL

      You can use the Fan0 PWM channel no matter what configuration. If you want to use the Fan1 PWM channel for a second independently controlled PWM fan then you can't use the 7th heater channel as that uses the same PWM channel.

      The drive channels (0-8) and the heater channels (0-7) can be allocated independently of each other so you can fo example have 3 extruder drives feeding 1 heater channel. The Gcode page on the reprap wiki explains this in more detail, basically a "tool" consists of a number of stepper drives (0-n) and a number of heater channels (0-n):
      http://reprap.org/wiki/G-code#M563:_Define_or_remove_a_tool
      David Crocker has also added the ability to allocate drives flexibly to axis in his latest version of the firmware, that means that you can use any individual drives for X,Y and Z with the remainder used for extruders:
      http://reprap.org/wiki/G-code#M569:_Set_axis_direction_and_enable_values

      If you want to use pins that are allocated to a specific function in firmware (such as the PanelDue pins are allocated to serial communications) for another completely different function, then you will need to modify the firmware. I would pick pins that are on the expansion header of the Duex4 and not used for the PanelDue or probe if possible, that way your additional can be pulled into the main firmware in the future.

      Cheers

      Tony

      Delete
  7. Does the Duet support thermocouples or only thermistors to measure the head temperatures ?

    ReplyDelete
  8. Hi,

    I looked at the schematics of the Duet 0.8.5 and please correct me if I'm wrong.
    It looks like there is only one end-stop switch per axis.
    Does this mean the Duet can use the end-stop switches only as reference for start point (lets say min postion of axis) and do the other side (max postion of axis) only via software calculation ?


    Would it be possible to use further digital output pins for switching stuff light buildroom light , buildroom heating, buildroom ventilation, adding a webcam feature for abserving the buildroom and possbibly more extruders than the 6 with the combo of Duex4 ?
    There was some comment of a Duex8 on the Duet 0.6 thread.




    Regards
    Andreas

    ReplyDelete
    Replies
    1. Hi Andreas

      There is only one endstop per axis (can be maximum or minimum), that proves to be sufficient because one the printer is homed the endstops do not need to be used.You can control pins that are not allocated to other functions using M42 (http://reprap.org/wiki/G-code#M42:_Switch_I.2FO_pin)

      You can not stream video though the Duet board, but there is nothing stopping you setting up a wireless/networked webcam on the same network as the Duet to observe a print.

      With 6 extruders, a heated bed and a PWM fan you are at the limit of the PWM channels on the SAM3X8E processor. you could add another extruder by not using PWM on the heated bed (Bang Bang is fine for heated beds generally) and then configuring a few additional unallocated pins to do step, dir and enable.

      I would love to see a 7+ extuder printer!!

      Cheers

      Tony

      Delete
    2. M42 link has the pin numbering for 0.6, right? What is the correct pins for 0.8.5?

      Delete
    3. Hi PKM

      The pin number should be the same.

      Regards

      Tony

      Delete
  9. Tony,

    thanks for fast reqply.

    Regards
    Andreas

    ReplyDelete
  10. This comment has been removed by the author.

    ReplyDelete
  11. We use webinterface. When we want to calibrate extruder by "Extrude" button on interface, it said no tool selected. We send T0 command and M302 P0 commands. Now, it says "Extruding 1 mm of filament" but nothing happens.

    Moreover, when we set the hotend temperature to 240, nothing happens. "E0 Heat" led does not light.

    We think something is wrong in our configurations, but we could not find anything.

    Please help us for these problems.

    ReplyDelete
    Replies
    1. Hi Please email your config.g file so we can check the configuration is correct!

      Cheers

      Tony

      Delete
  12. It is supported currently coreXY?

    ReplyDelete
    Replies
    1. Hi Zman

      DC42's version of the RepRapFirmware supports CoreXY, See:

      http://reprap.org/wiki/Configuring_RepRapFirmware_for_a_CoreXY_printer

      Regards

      Tony

      Delete
  13. Hi Tony,

    I bought one Duet 0.8.5 with Duex4 kit and it seems to be working.
    But I have started to print some parts and it looks like Duet get stuck at some point of time.
    First few times the the board stuck early, about 2-5 layer.
    Printing stopped, no network connectivity, and the PanelDue shows "starting up" and the board lost homming infos, I found no way to access the Duet again. Even a reset via the resetswitch shows no result .

    Only making the board completely powerless solves the situation.

    I felt the heatsinks on the driver ICs and they were more than warm but could be touched.
    I thought it is the motor currents
    M906 X1800 Y1800 Z1800 E2000
    and reduced them to
    M906 X1500 Y1500 Z1500 E1500.
    That allows printing (and finishing) 3 cm height snowman.

    But when printing the snowman in 10 cm size the print stopped again at ~2,2 cm height (but more Filament extruded)

    Can you advice what I can check to solve the issue ?

    I have the heatsinks that was provided, installed and a fan is blowing from some distance to the heatsinks. Last time the error occured, the heatsinks has been nearly cold.


    Regards
    Andreas

    ReplyDelete
    Replies
    1. Hi Andreas

      Generally when the stepper drivers get too hot (high current and insufficient cooling) the thermal cut off built into the chips kick in and there is a brief pause in that channels motor movement until the chip cools down a bit. That sort of situation is not good but i have not seen it crash the main microprocessor on the board before.

      Generally issues with microprocessor crashing has been due to power supply issues, are you powering the duet using the onboard regulator or USB? issues with USB ground loops have caused some problems in the past so I recommend using the Ethernet and onboard regulator rather than USB after finishing the initial setup.

      It would useful to know how repeatable the problem is help get to the bottom if it.

      Cheers

      Tony

      Delete
  14. I 'm not sure about the first issue, where I had an PC ATX power supply attached to the Duet with using the ATX 5 v source. I still believe it was somehow related to the high values for the stepper current.

    Afterwards I attached an different external power supply to the Duet and use the internal 5 V source. With this power supply the error was pretty good reproduceable, but not exactly at the same point of time.
    I found out that the external power supply got hot and assume the power was not constant than.
    I switched back to the ATX power supply (300 W) and use the ATX 5 V again.
    But at lower current values in the config file .
    M906 X1500 Y1500 Z1500 E1500

    I did some bigger printings over 3 hours without issues, yet.

    I think the issue is the power supply, as you also pointed out.
    Thanks for you help.

    One question, you mention an Ethernet regulator, does this means the Duet can be powered over Ethernet for e.g. starting via network ?

    Regards
    Andreas

    ReplyDelete
  15. So I don't have to install KiCAD, can you tell me the mounting hole spacing? Are they the same as the 0.6 version board?

    ReplyDelete
    Replies
    1. Hi, the board is the same size as the 0.6 but the wholes are not exactly in the same place: They holes are at:
      (4,4)
      (4,119)
      (96,119)
      (96,4)

      Regards

      Tony

      Delete
  16. Is it necessary the PC or mobile should be in interacting state with the printer until printing is done?
    or simply we can turn off the PC and turn on whenever we require at the time printing ?
    will this effect the printing process?

    ReplyDelete
    Replies
    1. Hi, no its not required as long as you are using the web interface. you can disconnect or shut down your computer once you have started a print and then reconnect it later.

      Delete
  17. Does the 0.85 board have a 1k or 4.7k resistor for the temperature measurement?

    ReplyDelete
  18. David Crocker's firmware doesn't seem to have support for Mendel included in it. Can I just toss a mendel sys file in from another source?

    ReplyDelete
    Replies
    1. Hi Sorry for the delay, the Mendel style of printer (Cartesian, with a moving bed on Y and the X mounted on the Z axis moving up and down) is a standard use for the Duet board. I use them on Mendel90s. you can use a use a config.g file from another source (e.g. reprappro) however I suggest you compare it to the one for the Huxley in DC42's release:
      https://github.com/dc42/RepRapFirmware/tree/dev/SD-image/sys-Huxley
      (the huxley is effectively a mini mendel)
      As well as the delta ones (to pick up any latest changes), although not using the delay parts.

      Cheers

      Tony

      Delete
  19. The reset and Erase buttons. Do they soposed to be toggle buttons or do they get stuck when pressed? I have just received the duet and when i press it it seems to get stuck in and have to pull it out before i can press it again.

    ReplyDelete
    Replies
    1. Hi Luka

      They definitely should not get stuck in, that the first I have heard of that as well. Please email us directly to resolve this as the board wont work properly if either erase or reset are stuck in.

      Cheers

      Tony

      Delete
  20. Hello Tony,

    You sell boards with molex connectors now, right?
    Is this 2.54mm molex? Does this fit to Duet?
    http://www.aliexpress.com/store/product/KF2510-4Pin-Pitch-2-54MM-0-1inch-Pin-Header-Terminal-Housing-KF2510-4P/123320_1759336137.html

    These molex boards also being sold by US distributor now?

    ReplyDelete
    Replies
    1. Hi pkm

      Yes that is correct 2.54mm Molex compatible as you have linked, some of the headers are 3 way or 2 way as shown in the updated picture at the top of this blog post. If you email us before purchasing we can add the connectors and crimps for the wires onto the order for a nominal sum.

      Filastruder is distributing the boards in the US:
      http://www.filastruder.com/products/duet-controller-v0-8-5

      Demand has been so high that we are out of stock for a couple of weeks in both locations.

      Cheers

      Tony

      Delete
    2. Thanks!
      A friend is going to purchase in the US from filastruder, is it possible they add a few connectors too?

      Delete
    3. Hi

      I am not sure if they stock them, best to contact them directly.

      Cheers

      Tony

      Delete
  21. I am interested in creating a min & max homing macro for the syringe on a paste extruder. Since there is only one endstop per axis, I could only set the min or max for syringe position.

    Could I use the E0_STOP and E1_STOP (from the expansion header) and initialize them as min & max endstops using M574?

    ReplyDelete
    Replies
    1. Hi

      the M574 gcode in RepRapFirmware does not current support reconfiguring the endstops in the manner you describe however there is no hardware reason why this would not work. The functionality needs to be added to the firmware though.

      Delete
  22. Hi,

    I'm using dual Y on my cartesian printer wired in parallel at the moment, but as I want to enlarge the printer, I'm looking at using the spare E1 driver for the second Y motor.
    Is this possible, and how would I go about doing it?

    Excellent board you have by the way :) Big step up in all aspects, ease of use, build quality, print quality etc., compared to my previous mega/ramps.

    Regards
    Stefan

    ReplyDelete
    Replies
    1. Hi Stefan

      Currently the RepRapFirmware allows drives to be remapped:
      http://reprap.org/wiki/G-code#M569:_Set_axis_direction_and_enable_values
      but only 1 drive per axis.

      You will see this is a feature request of DC42's branch of the RepRapFirmware:
      https://github.com/dc42/RepRapFirmware/issues/38

      Which may have been implemented by another developer.

      Cheers

      Tony

      Delete
  23. Hi Tony,

    Thanks for your feedback.

    I did see now that you made a request regarding information from the last user post at Github.

    I use a customized Shapeoko2, with a gantry that is quite beefy and heavy, so being able to use two drivers would give me some more peace of mind.
    That being said it's currently running 180mm/s travel without missing steps, so capable it for sure is.

    Regards
    Stefan

    ReplyDelete
  24. Hi Tony,

    I have an issue with an extrernal stepper driver and the duet board. If you or someone else has any idea how to solve it please share it with me.

    The probem:
    When 23HS22-2804S, a nema 23 stepper motor, is connected to the duet board expansion pins with an external driver (M542T) is looses steps and doesn't work smoothly.

    Pins used:
    step[5] 19
    dir[5] 20
    en[5] 24

    Microstep Driver configuration:
    SW1: OFF
    SW2: OFF
    SW3: ON
    SW4: OFF
    SW5: ON
    SW6: ON
    SW7: ON
    SW8: ON -- 400 PULSE/REV

    Firmware version: dc42 fork, latest version

    Using an arduino MEGA to test the driver and the motor, the motor is working normally without loosing steps.

    I cannot set the driver at 200steps/rev because there is no configuration for this value. The default is 400 steps/rev. Do I have to change something on the firmware?
    Also I found from a forum post that the timing values for this driver are:

    Step Time > 1800
    Step Space > 1800
    Direction Hold > 8000
    Direction Setup > 6000

    Do I have to configure the firmware to reflect that? Thank you!


    Video showing the movement of the motor: https://vid.me/KrBH

    Motor datasheet: http://www.omc-stepperonline.com/download/pdf/23HS22-2804S.pdf
    Driver datasheet: http://www.omc-stepperonline.com/download/pdf/M542T.pdf

    ReplyDelete
  25. Hi Rexio

    Firstly the M542T (from the data sheet) looks like it is a 5V device, while the Duet is 3.3V so for reliable operation you probably need to step up the Step, Dir and Enable signals from 3.3V to 5V. The Arduino MEGA operates at 5V so that may explain why it works well with that.

    Further than that the step timing can be set with M569:
    http://reprap.org/wiki/Gcodes#M569:_Set_axis_direction_and_enable_values
    So try that as the onboard drivers have shorter minimum step pulses

    I would get it working in 1 direction first then diagnose the direction timing.

    Cheers

    Tony

    ReplyDelete
  26. Hi Tony,

    I was wondering how I can find the corresponding pinout of the duet board in relation to the firmware. For example in the firmware the endstops pin are defines as:

    const Pin END_STOP_PINS[DRIVES] = { 11, 28, 60, 31, 24, 46, 45, 44, X9 };

    but in the schematic X-stop is pin20 or PD7

    ReplyDelete
  27. Even though there is allready the Wifi Version, is someone able/willing, to tell me a Part Number or else for the Inductor L7 ? Having a hard Time finding a Part with 10µH and 100MHz in a 0603 Package

    ReplyDelete
    Replies
    1. We actually used a slightly different one in final production http://uk.farnell.com/murata/blm18ag471sn1d/ferrite-bead-0-35ohm-500ma-0603/dp/1515678RL

      Delete
  28. We actually used a slightly different one in final production http://uk.farnell.com/murata/blm18ag471sn1d/ferrite-bead-0-35ohm-500ma-0603/dp/1515678RL

    ReplyDelete

Comments are now moderated to reduce spam, please excuse the additional time this will entail.

Note: only a member of this blog may post a comment.