Idea: "barebones" Duet3D mainboard, maybe as Pi hat
-
Hi all,
I've now equipped a few printers with Duet hardware, and lately with all the CAN expansions for tool boards and single (bigger) motor drivers, I've found that I'm using the actual main board connectors less and less.
Example: bigger FFF printer with NEMA 23 for motion all around, it might use a 3HC expansion for X,Y,Z and 1LC Toolboard, or even an IDEX with three 1HCL for XYU and a 3HC for 2-3 Z drives, as well as 2 1LC toolboards - there is very little else that needs to be connected to the main board, maybe some temp sensors and small mosfets for switching PSU relais or bed heater SSRs.
So wouldn't it be feasible to have a "hat" for the Pi that acts as the Duet Main board but only has 5V and CAN outputs, maybe a few other connections that might not be included with one of the expansions; this concept would make wiring much simpler in general, as mostly there only has to be CAN + Power. Think of otherwise selecting the matching cable for each heater/sensor/motor/... and the matching cable chain which is probably a must for machines of this size.
Benefits would include a cheaper main board without unused stepper drivers, SD slot etc., and it could even be mounted externally, for example within the "monitor and UI box" that can be seen on many bigger CNC machines or SLS printers. Writing all of this up I realize that this would mostly appeal to printer OEMs that have to look out for cost at scale, versus the hobbyist who can afford to spend some extra bucks on unused stepper drivers etc.
Thoughts?
best regards, Niklas
-
I've been thinking this for a while. Especially relevant now I'm looking into conversion of my CNC mill and lathe. The plan was to use can for everything if possible.
Devs, is there a generic board that we could tie a can module to, or would that require a specific branch of the duet code? Or could we just run the code on something with the right processor and can already integrated?
Any thoughts would be great.
Many thanks
Barry M -
@sonderzug said in Idea: "barebones" Duet3D mainboard, maybe as Pi hat:
So wouldn't it be feasible to have a "hat" for the Pi
Bigtreetech took a different approach, fitting the PI on the controller, but I see you point about reducing size by delegating I/O to CAN bus slaves. BTW, they also have their own version of the compute module.
-
@cncmodeller like this?
https://www.sg-electronic-systems.com/can-bus-fd-shield-for-raspberry-pi/
It would be a game changer just running expansion boards off something like this.
-
@zapta Do these Pi-compute modules have a camera connector?
I don't use SBC for now, but I think an integrated camera would be on my wishlist then. -
@jumpedwithbothfeet I wonder if a PI with CAN-FD equals an RTOS microcontroller board?
-
@o_lampe that is electrickery beyond my knowledge!, I don't know how many of the functions are unloaded to the Pi from the mainboard in SBC mode, does the mainboard just control the steppers and provide sensor/io/power to the connected components? if that's the case why wouldn`t it work?... either way I now have many questions to try and find answers to
-
@jumpedwithbothfeet AFAIK the Pi can't do AD-conversion, which we'd need for temp-reading and PID-based PWM, but if all that would happen on the toolboards....
-
@o_lampe well they have their own processors and transmit their io via canbus so....maybe?, would you be able to update/upgrade the expansion boards without a mainboard as such, in reality these are @dc42 or @chrishamm questions! maybe they can put this to bed?
-
It might help folks to understand how the major functions are split between the SBC, RRF main board and the CAN board in a setup like this:
SBC:
Handles the web interface (wifi, networking etc.), file I/O, gcode parsing, Optionally it can handle a camera etc.RRF Main board:
Takes a pre-parsed gcode stream, executes the gcode instructions, performs motion planning (including homing/probing moves and input shaping), handles PID control for local heaters, generates steps for local motor drivers (including pressure advance), generates CAN commands for CAN boards, generates PWM signals for local fans, handles probes, endstops and accelerometers that are attached directly.CAN boards
Takes commands via CAN, generates steps for drivers (including pressure advance), handles PID control for local heaters, generates PWM signals for fans, handles attached probes, endstops and accelerometers. -
@gloomyandy said in Idea: "barebones" Duet3D mainboard, maybe as Pi hat:
RRF Main board:
Takes a pre-parsed gcode stream, executes the gcode instructions, performs motion planning (including homing/probing moves and input shaping),handles PID control for local heaters, generates steps for local motor drivers (including pressure advance), generates CAN commands for CAN boards,generates PWM signals for local fans, handles probes, endstops and accelerometers that are attached directly.A few of these tasks wouldn't happen on the mainboard/PI Hat , if it only has CAN connectivity. That would safe some board space and connectors and a lot of extra copper, making it cheaper and smaller.
Simple Fan-PWM signals could be provided by the RasPi, if they're not too time critical?
-
@o_lampe the pwm commands would be controlled by the expansion boards via can bus I think the biggest problem would be the motion planning and issuing the can commands surely?
-
@o_lampe Just to be clear, my post described how things are done in the current version of the firmware.
Clearly you can move things around (though I'm not sure that moving things like fan control to the rpi makes sense if motion planning remains on the RRF board as this needs to be synchronized with motion. This is particularly true with CNC or laser control).
If you move most of the control logic to the rPi you are effectively describing Klipper...
-
@gloomyandy
I understood. That's why I only mentioned Fan control. Part-cooling fan, Spindle and Laser control could be done by the toolboards.
I don't want to push RRF towards Klipper, but if it safes us money, I'm in. (I never tried Klipper, so there might be some drawbacks with their setting, too) -
I for one, wouldn't want to go the klipper route either, and to get this thread back on its original track I think a stripped down Duet board either with or without an SBC would be a great idea, especially as the maestro/duet 2 is realistically no longer available or a viable choice - just my opinion mind
-
@jumpedwithbothfeet what's wrong with the duet 3 mini?
-
@jumpedwithbothfeet you could always get an SKR3. That's just as powerful as a duet 3 6HC but with a smaller footprint
-
@jay_s_uk nothing wrong with the mini I would happily buy one, what I`m getting at is the range of boards is effectively limited too just two boards and their variants, and both have limiting factors in use and price, I just believe there is a case for a *stripped down universal duet board that can be tailored/built up to serve either CNC/FDM or any other project by the use of expansion boards by the user, basically a modular system.
I have previously looked at other boards like the SKR but various things like the drivers have always put me off, besides that my 6HC has never let me down despite some of the stupid mistakes I've made, I`d have one in every machine I make, if I could afford it
*edited - added stripped down
-
Hi all, thank you for the lively discussion, nice to see that this idea sparks some interest.
My idea was inspired for once by all of the already available expansion boards, as well as the uprising of more unconventional machines that are built, be it for the purpose of 3D printing or not. For example, as far as I can tell, people are now also working on implementing robot motion.
I'd think that a robotic arm with 3D printing effector would greatly benefit, in terms of simplified wiring, by having the respective driver boards for each joint very close to the motor, daisy chained, with the effector (1LC toolboard) at the end. An interesting field since people are implementing "true" 3D printing path generation.
In respect to the hardware requirements of this barebone mainboard, as has been discussed above, there has to be a µC on the board but I can imagine it to be a less potent one that the one found on the 6HC or even the mini 5+.
@o_lampe said in Idea: "barebones" Duet3D mainboard, maybe as Pi hat:
@gloomyandy said in Idea: "barebones" Duet3D mainboard, maybe as Pi hat:
RRF Main board:
Takes a pre-parsed gcode stream, executes the gcode instructions, performs motion planning (including homing/probing moves and input shaping),handles PID control for local heaters, generates steps for local motor drivers (including pressure advance), generates CAN commands for CAN boards,generates PWM signals for local fans, handles probes, endstops and accelerometers that are attached directly.A few of these tasks wouldn't happen on the mainboard/PI Hat , if it only has CAN connectivity. That would safe some board space and connectors and a lot of extra copper, making it cheaper and smaller.
Simple Fan-PWM signals could be provided by the RasPi, if they're not too time critical?
-
@sonderzug said in Idea: "barebones" Duet3D mainboard, maybe as Pi hat:
here has to be a µC on the board but I can imagine it to be a less potent one that the one found on the 6HC or even the mini 5+.
There are often smaller versions of the same MCU available, with less IO pins. As long as it has the same amount of RAM it would be ideal.
The barebone would also need less copper, since there are no drivers onboard.
It probably could be fed from the Raspberry and wouldn't need all the voltage converters?