Load cell data acquisition with Duet 3 6HC
-
@omiclette we've attached a load cell to a Duet temperature sensor input via an amplifier before now. Using the standard firmware you would only get a reading every 250ms. To get a reading every 1ms you would need to either modify the firmware, or use a separate controller (e.g. Arduino or Pi) to collect and store the data. Another possibility is to interface the load cell amplifier to an analog input on a SAMMYC21, then modify the Duet3D SAMMYC21 firmware to treat the load cell as an accelerometer. That way you could use the data collection facilities already in RRF to save the data to SD card.
-
@dc42 Thanks for your input, I will look into that!
-
@dc42 To modify the firmware, are the instructions of the following link the easiest way to do the modifications (changing the sample frequency to 1000Hz on a specific IO pin)? I don't have a lot of background in coding, I am trying to figure out how much work it would be to learn how to modify the firmware. https://github.com/Duet3D/RepRapFirmware/wiki/Building-RepRapFirmware
Thanks
Olivier -
@omiclette whether you modify the main board firmware or the SAMMYC21 firmware, I think the easiest approach will be to use the existing accelerometer code to do the data collection. It's designed to handle data rates in excess of 1000 samples/sec, whereas the interface used for temperature sensors is only designed to handle slow data rates.
If you modify the main board firmware then the code you need to change is mostly in function AccelerometerTaskCode at https://forum.duet3d.com/topic/25232/phi-open-source-wi-fi-ethernet-rrf-3d-printer-controller. You would also need to attach a callback function to the ADC input you use to read the load cell.
Do you work for a commercial organisation? If so then if you don't have the required skills, perhaps your organisation would pay for Duet3D to implement this for you.
-
@dc42 Thanks for your reply, I am a master student in mechanical engineering and if it is not too complicated I would like to do this modification myself. Otherwise, I will ask my superior if we can pay for the firmware modification. Could you give me the contact at Duet to obtain a quote for this modification?
Thanks
Olivier -
@dc42 Could you give me the contact at Duet to obtain a quote for this modification?
Best regards
Olivier -
@omiclette please email info@duet3d.com
-
@omiclette said in Load cell data acquisition with Duet 3 6HC:
I will use the load cell for specific short prints (ram extruder) to evaluate the pressure variation during the print.
Can't this be done by an independent acquisition system? Why does it need to be done on the Duet? Is this because you want to somehow sync between the stepper motor control?
Also, what pressure sensor and amplifier do you plan to use? Inexpensive ones such as HX711 based will get you up to ~140 samples/sec.
-
@t3p3tony Thank you for your reply.
-
@zapta You are right, this could be done with an independant acquisition system, but as you mentionned they would need to be sync together to get accurate data. I will start with a 50lb load cell directly under the piston rod (Omega LCFD-50, AD623 amplifier). We are working on integrating a pressure sensor just before the nozzle, but this will be for a later improvement. My understanding is that the data acquisition board is usually the limiting factor when a high sample frequency is needed, not the amplifier.
-
@omiclette, in this case may be easier to have a fast external logging system that also logs sync pulses from a duet output. You can generate the sync pulses with gcode or even record step count if you hook to a duet step pulses output.
As for amplifier, I used hx711 that is limited to 140 hertz but it seems that you plan to use something faster. Pay attention to the bandwidth of the sensor and amplifier. Max frequency ahoys be high enough.
BTW, you can also sync to high speed camera with a led that is driven by duet sync pulses.
Edit: for the duet modification, you can ask for loadcell reading and micro step counts. Would make the analysis simpler.
-
@zapta Thanks for your input, I didn't think of taking an output signal from the Duet that would be generated by some gcode, that seems like a good idea especially as I could possibly borrow a NI acquisition board for the duration of my project. I will compare both solutions.
-