Easier to use Software



  • First of all, this is not a rant and I hope what I think is constructive. If I am not on the right lines please feel free to enlighten me and put me back in my box.

    I have been a Duet 2 Wi-Fi and DWC user for some time now and I think I have working understanding of what I need to know to get my cartesian printer working and have kept up to date with firmware changes (now on 3.2). However, I am increasingly frustrated by the fact that each time there is an update, within days, or so it seems, there is yet another edition to add features that I am never going to use, correct faults with the last one and require me to make changes to my config.g.

    Judging by some of the cries for help, that are handled by just a handful of contributors to whom we should be thankful, many people are in the same boat as me in that they just want a system that works without unnecessary complications getting in the way.

    Would it be possible to have a stable 3D print version of the software and strip out functions relating to esoteric printers and CNC so that the whole thing has far less dependencies and compromises? I suspect CNC users would welcome a similar arrangement.

    For those that need the extra functionality there is always the Duet 3 with its expansion boards and RasPi. (takes me back to RAMPS).



  • @jmshep said in Easier to use Software:

    and put me back in my box.

    Is it a nice box? Comfy? Roomy? I don't think you should be in a box even if it is a nice box. 😉

    and require me to make changes to my config.g.

    Well the change from v2 to v3 required some changes but I'm not aware of anything I've had to change since then.

    Would it be possible to have a stable 3D print version of the software and strip out functions relating to esoteric printers and CNC so that the whole thing has far less dependencies and compromises? I suspect CNC users would welcome a similar arrangement.

    Having something like that just adds to the workload of the already overworked coders.

    I am using 3.2.2 and find it is working well.

    I won't be upgrading until 3.4 if it has variables.

    And I will leave testing the beta versions to those with the time and inclination to do so.

    Frederick



  • @jmshep said in Easier to use Software:

    I am increasingly frustrated by the fact that each time there is an update, within days, or so it seems, there is yet another edition to add features that I am never going to use, correct faults with the last one and require me to make changes to my config.g.

    Same here. It's tedious to apply a new version, they are not backward compatible, and the new features are not relevant to my needs.

    Some projects address with with a LTS release https://en.wikipedia.org/wiki/Long-term_support . Duet3d seems to focus on moving forward as fast as possible.



  • @jmshep Yup - tend to agree (and I've been using RRF since the very early days of the Duet 06 boards). I mentioned years ago when a "feature" that was added to suit (subtractive) CNC users broke my (additive 3D printer) AB gantry, that subtractive CNC machines with their spindles, coolant systems, and need for workpiece co-ordinates, are very different animals to additive 3D printers, and that it would better for everyone if there were specific firmware versions for each. But I was firmly slapped and told that a one size fits all approach is better (but I suspect the real reason is that it's just less work to maintain a single one size doesn't fit all approach).



  • you cannot separate cnc from regular firmware . the future is to use different tools on same machine . 3d printer , laser cutter and cnc .

    i also think newer firmware should be backwards compatible . i also understand that sometimes its not possible .



  • @hackinistrator said in Easier to use Software:

    you cannot separate cnc from regular firmware . the future is to use different tools on same machine . 3d printer , laser cutter and cnc .

    i also think newer firmware should be backwards compatible . i also understand that sometimes its not possible .

    I think you need to get some terminology sorted out. CNC = Computer Numeric Control so by that definition, 3D printer are CNC machines. That's why I was careful to use the terms additive and subtractive.

    But leaving that aside and assuming by cnc you mean subtractive, then I don't agree that combing this with additive printing is the future. Such machines might just about be possible but combining those very different requirements into a single machine has all sorts of practical limitations. You can't print on something that is covered in swarf or cutting fluid is just one example that comes to mind. In my experience, multi purpose machines never work as well as machines designed for one particular task, neither do they save much on cost although I'll grant that they can save on space.

    But a dedicated subtractive manufacturing machine and a separate dedicate additive manufacturing machine, each one optimised for a particular task will always perform better than a single, multi purpose machine with the compromises that need to be made. That's just my opinion of course (albeit based on a lifetime of experience).


  • administrators

    @deckingman said in Easier to use Software:

    Such machines might just about be possible...

    They already exist:

    https://e3d-online.com/blogs/news/asmbl
    https://www.diabasemachines.com/hseries

    ASMBL is not intended as a CNC machine for metal, rather it's a 3D printer with the option to do light milling etc. of the printed part, for example to improve the surface finish.


  • administrators

    These are two (somewhat related) issues:

    1. Complexity of firmware

    2. Requirements for updates/LTS support/backwards compatibility.

    On the point about complexity of firmware, this is not limited/exclusively about additive vs subtractive. There are many features that some users find very valuable that others do not want/use. E.g. Workspace co-ordinates, the ability to map multiple axis to a motion system or split them apart again for certain functions, tool changing, filament management etc etc. Each of these add complexity. What we are trying to do is abstract the complexity where its not required for individual setups. For example having a config tool to allow generation of (basic) configurations as a start point, or developing a CNC version of DWC so that the UI presented can be tailored to the machine type.

    For updates/LTS/backwards compatibility, there is a tension between adding new features/removing limitations and never requiring any configuration changes and having perfect backwards compatibility. There was a big, necessary, change between RRF2 configurations and RRF3 configurations. Since that only very minor changes, or none at all, are required between firmware updates, except to enable new features. There is significant additional effort required in providing a true LTS version, we do discuss this internally and keep it under review.



  • @T3P3Tony said in Easier to use Software:

    ............................There was a big, necessary, change between RRF2 configurations and RRF3 configurations. Since that only very minor changes, or none at all, are required between firmware updates, except to enable new features.

    Well I've just been through the release notes for firmwares >3.0 and excluding new features I counted something like 22 instances of the form "If you were .....then you need to......".

    I guess it depends on you definition of "minor". Admittedly, the changes to individual files might be minor, but spread across multiple configurations or printers, it can add up to a lot of work. And of course, failure to read copious amounts of the release notes can lead to catastrophic results. (e.g. failure to add a new parameter to previously configured AB axes, because the default behaviour has been changed in firmware from linear to rotational).

    I'm just pointing out that having one single "do everything" firmware version, is not a pleasant user experience. Which was the OP's point and to which I agree.


  • administrators

    Software that has LTS versions normally requires security patches on an ongoing basis. So support for users who want to go on using them is needed, and most updates to LTS versions are security patches. You can also pay to get technical support for LTS versions.

    Although security is a concern for RRF, it is not a major concern except for the WiFi server and to a lesser extent the network stack, and RRF doesn't rely much on third-party libraries that may need security patches. So the main purpose of having an LTS version would be to do bug fixes. We already do that, for example we released 2.05.1 to fix bugs, and more recently 3.2.2.

    So LTS versions are less necessary for RRF than for e.g. Linux distributions and relational databases. Nevertheless, I can see two mechanisms by which they might come about

    • If an OEM pays to have one maintained
    • If members of the community come together and arrange to maintain an LTS fork

    The major cost of doing any release is testing. There is no way that Duet3D can test on the hundreds of machine configurations that RRF supports. So any LTS release would either be tested on only a small number of configurations, or rely heavily on community testing.

    @deckingman, you have a unique machine, and (like many other users) unique aspects to your configuration files. You refuse to run any beta or RC firmware versions, and then you scream loudly when we release a new "stable" firmware version that works for those who tested beta or RC versions, but doesn't work for you. Can you understand why this makes it hard for us to support you?



  • @T3P3Tony said in Easier to use Software:

    There are many features that some users find very valuable that others do not want/use.

    From a perspective of a single user, everything I need to deal with that is not relevant to my system impact my experience. Even small things such as having to sift through binaries and instructions for different systems or seeing 'processing' instead of 'printing' on my console.

    For developers is the other way around, the more you combine or abstract all your use cases, the easier it is to maintain the code line and to expand the set of features and supported use cases.

    I think that as developers you need to consider, at what point it's too much and my convenience over burden my users. And by users I mean all users, not just the fraction/minority (?) that participate in these forums.


  • administrators

    @zapta said in Easier to use Software:

    From a perspective of a single user, everything I need to deal with that is not relevant to my system impact my experience. Even small things such as having to sift through binaries...

    Having one firmware for a wide variety of systems means you have fewer binaries to sift through, surely? You would have five times as many if there were separate FDM, CNC, Laser, OpenPnP, and DLP builds of the firmware.

    and instructions for different systems...

    We've tried to put the CNC-, Laser- and DLP-specific bits on separate documentation pages; except for the GCodes page, which needs to be complete.

    or seeing 'processing' instead of 'printing' on my console.

    If that really worries you, I'm sure we can change it to "printing" when in FDM mode!

    For developers is the other way around, the more you combine or abstract all your use cases, the easier it is to maintain the code line and to expand the set of features and supported use cases.

    I think that as developers you need to consider, at what point it's too much and my convenience over burden my users. And by users I mean all users, not just the fraction/minority (?) that participate in these forums.

    Please elucidate "at what point it's too much and my convenience over burden my users". It should be the case that if you don't need a firmware feature, you can ignore it and it won't affect you. Is that not the case for you? What do you think we should improve? The documentation structure perhaps?



  • @dc42

    I am very happy with RRF v3.

    I did not find the changes from v2 to v3 as extensive as I first imagined.

    As I have progressed from v3.0.0 to v3.1.1 to v3.2.0 to v3.2.2 I have not encountered any changes I had to make.

    I did make changes to take advantage of new features but they were changes I chose to make, not had to make.

    I am very impressed with the folks who are developing the firmware for the various products.

    As in many aspects of life some few folks are hard to please and I see little reward in trying to.

    Kudos to you all.

    Frederick



  • I can sympathize with Duet3D's approach to the firmware development. They SELL hardware, but they give away the firmware for free. In order to support new hardware (that pays the bills), they have to update the firmware (that doesn't pay any bills.) In order to sell more hardware to mass producers and end users (which pays more bills), they have to add features to the firmware.

    In other words, it appears that the firmware is something they give away in order to make money on hardware.

    What motivation is there for Duet3D to fork RRF to simplified versions? Who or what is going to pay for that effort? It wouldn't do much good for Duet3D marketing to have firmware as trivial as something that runs on 8bit h/w, but requires the cost of a duet board to use it.

    By the way, @deckingman, I think your specific printer falls into the "esoteric printers" category. I don't remember exactly, but I doubt it would be much of an exaggeration to say you have something like 12 extruders pushing filament out of 20 or 30 hotends moving across 12 axes in 8 dimensions. I seriously doubt a "simplified" RRF would work on your machine.



  • @dc42 said in Easier to use Software:

    Having one firmware for a wide variety of systems means you have fewer binaries to sift through, surely? You would have five times as many if there were separate FDM, CNC, Laser, OpenPnP, and DLP builds of the firmware.

    If Duet2 Wifi stand alone 3D printer is a common use case, I could just make one 'track' selection and then find the just the binaries and instructions that are relevant to this track.

    Please elucidate "at what point it's too much and my convenience over burden my users".

    This is a subjective call that you as a owner/developer should do, depending how you want to balance between the conflicting goals and other goals/constraints of your business (e.g. desire to expand, desire to innovate, desire for a good user experience, limited resources, etc). Clearly too many version, some not backward compatible, and mixing of very different use cases, impact the experience of your users.



  • @deckingman, you have a unique machine, and (like many other users) unique aspects to your configuration files. You refuse to run any beta or RC firmware versions, and then you scream loudly when we release a new "stable" firmware version that works for those who tested beta or RC versions, but doesn't work for you. Can you understand why this makes it hard for us to support you?

    Oh that's rich.

    You seem to have conveniently forgotten the many hours I spent testing RRF2 beta firmwares, and then even more hundreds of hours I spent testing pre-production and then early beta RRF3 firmwares. As well as hundreds more hours converting my machine for Gen 3 so that you could have it on your stand at the TCT show. Oh and then taking a week off work without pay to be on your stand at the TCT Show - twice!

    My reward for all that was to be left with a machine which has less functionality than Gen 2 - even now, after 19 months.

    I've done more than my fare share of testing your beta firmware, with all the lost prints and wasted filaments that entails - much more than any other user you have.

    Yet for at least a year, if not more, you have chosen to prioritise other users desires/wishes over mine. That's fine but there is no incentive for me to waste my time and filament testing beta firmwares when those beta still don't address any of the problems I have with my machine.



  • @garyd9 said in Easier to use Software:

    By the way, @deckingman, I think your specific printer falls into the "esoteric printers" category. I don't remember exactly, but I doubt it would be much of an exaggeration to say you have something like 12 extruders pushing filament out of 20 or 30 hotends moving across 12 axes in 8 dimensions. I seriously doubt a "simplified" RRF would work on your machine.

    A slight exaggeration - just 6 extruders, and 3 gantries moving in only 3 directions. 🙂

    But the things is, the machine is fundamentally the same as it was 3 years ago, running Duet 2 with a Duex5 expansion board well before subtractive CNC support was added, or lasers, or fancy LEDs, or a bloody RPi (which I don't use) . OK maybe, I have a few macros running conditional gcode which makes life a little easier but I could easily live without them.

    If I stand back and look at things logically, even with my "esoteric" machine, there is so much stuff that is just a waste - both hardware and firmware. For example, to get 13 motors I end up with 3 expansion boards as well as the main board. IIRC there are about 18 IO connectors on each expansion board, excluding stepper drivers. That's 54 IO connectors in addition to those on the main board! Even I can't think of a use for all those connectors (despite how hard I try). But the hardware is the same as the firmware - it has to be all things to all users so it ends up being overly complex and only a fraction of the capabilities get used (even on a 12 extruder, 20 hot end, 12 axis machine).



  • It's interesting to compare Duet's releases to PrusaSlicer's releases, since both are open sourced and I use both for my printer.

    Duet's releases come very often, with features that do not benefit my printer and require me tracking and understanding all the non backwards compatible changes from the version I currently use. It got to a point that I stopped following or considering them, as in 'they are for other people'.

    PrusaSlicer's releases are very different, they don't come as often, each provides features I care about, and they don't break compatibility with my existing configurations or profiles. I am looking forward for those releases, install them as soon they are declared 'stable' and enjoy the features as they are useful and relevant to me and my printer.

    (This is a single person data point, which may or may not be typical).



  • @zapta said in Easier to use Software:

    It's interesting to compare Duet's releases to PrusaSlicer's releases, since both are open sourced and I use both for my printer.

    Duet's releases come very often, with features that do not benefit my printer and require me tracking and understanding all the non backwards compatible changes from the version I currently use. It got to a point that I stopped following or considering them, as in 'they are for other people'.

    PrusaSlicer's releases are very different, they don't come as often, each provides features I care about, and they don't break compatibility with my existing configurations or profiles. I am looking forward for those releases, install them as soon they are declared 'stable' and enjoy the features as they are useful and relevant to me and my printer.

    (This is a single person data point, which may or may not be typical).

    You are comparing apples and aardvarks.



  • @fcwilt said in Easier to use Software:

    You are comparing apples and aardvarks.

    @fcwilt, can you explain what you mean?

    I would think that they are comparable on several key dimensions, e.g. introduction of relevant features, ease of upgrade, release frequency, stability, my general interest in upcoming releases, etc.



  • From my perspective, I ugraded to 3.something when it became stable (from 2.something). I knew there would be teething issues and reconfiguration. I don't think I have had to do any changes to the configuration since then (currently running 3.2.0). I am not interested in minor upgrades here and there so have stayed put with that version. I might upgrade to 3.4 when that is stable.
    I suppose if there is a feature that I just must have, I will upgrade. At that point I will accept that I might have to tweak the configuration.
    For now, with my Duet 2 wifi board and expansion board, everything works and I am a happy camper.

    I desperately want to find a reason to go to a Duet 3 board but so far I have not found an excuse 😞

    Regarding what deckingman has posted - I am seriously surprised that he doesn't seem to get the support he deserves or has earned. I would have though that with his dedication to the cause, he would deserve special status as far as support is concerned.
    Deckingman - for what it's worth, I appreciate all you have done and no doubt will do in the future!

    One last thing ..... The shift from RRF2 to RRF3 is HUGE! As such, and with a limited amount of manpower available, nothing will come instantaneous. It might take many months before RRF3 is at a point where it progresses from 'stupendous amount of new stuff' to pretty stable with incremental upgrades. A point where the developers can take a breather and maybe deal with loose ends.
    Kudos to everybody involved in tackling this enormous project - you had a great product and decided to make it greater not just incrementally but profoundly.



  • @zapta said in Easier to use Software:

    I would think that they are comparable on several key dimensions, e.g. introduction of relevant features, ease of upgrade, release frequency, stability, my general interest in upcoming releases, etc.

    Application software, like a slicer, is a different beast from firmware for a hardware product.

    Writing application software is a lot more forgiving - for example, there are no hardware timing issues that can cause problems as cropped up in RRF v3.2.0 and was fixed in v3.2.2.

    Frederick



  • Another sound here. I am very happy with the speed of progress. Many new releases bring features I can actually use on my quite nothing special printer.

    Regarding the effort: last week I set up a Duet2 for testing a motion stage. I needed RRF3+ for that so I could use while loops to iterate the same movement tens of thousands of times. Zip-zap-zip-zap, all day long, all night long. It took me about 20 minutes going from plugging in the USB cable in a freshly arrived board to a WiFi-connected testbed that was exercising the motors running RRF 3.2. The process took upgrading the FW to 3.0, then to 3.2 (somehow going directly from 2.x to 3.2 would not work but I did not spend time on figuring out why), configuring the controller and writing a few lines of G-code.
    I am very comfortable with LinuxCNC, I can do the Arduino+stepper drive stuff too, but there is no single piece of kit that allowed me to get up and running THAT fast. Which is exactly why I chose a completely-overkill Duet for the task.

    Whatever you buy, you need to learn how to operate and maintain it or find someone who does it for you. Software is not different.



  • I have one printer running 2.0.5.1 and it is still working well enough that there is no inclination for me to upgrade. I thought I'd upgrade for one feature or the other, but so far "this printer works as is" has outlived any expected value from upgrading. As such, 2.0.5.1 is my personal LTS release as long as I can keep using the hardware and no features come up that would drastically improve quality of life with the printer (unlikely, as it's mostly hit-print-and-go).

    I have another printer that is running on Duet 3 hardware with Duet 3 hardware specific features (toolboard, SBC). With that I am tracking the beta releases, and for this particular printer I had to do a single configuration change for PanelDue since I am running it that was due to a firmware bug, and another change for the IR probe since it doesn't work on the toolboard for currently-unresolved issues. Which I think is reasonable compared to the other firmware options out there. Yes, I need to read the release notes of firmware, and a deprecation policy might be nice, i.e. a warning in release .x that feature A will change in release .y ...

    So far, I would say the interaction with the Duet3D team has been pretty good. Did I get everything I wanted? No. Did a bunch of things end up in main line RRF that I was asking for (like others)? Yes.



  • @jens55 Thank you!


Log in to reply