@T3P3Tony Thanks so much!
Posts made by JD
-
RE: Github repo files for Duet2 V1.06?
@dc42 Well, I'm not sure if there's some semantics about version numbers but I'm referring to Duet 2 PCB revision v1.06 as posted as a new version at the bottom of the Duet 2 docs page: https://docs.duet3d.com/Duet3D_hardware/Duet_2_family/Duet_2_WiFi_Ethernet_Hardware_Overview
but I'm not seeing it in that repository you've linked to, which is the same repository I was looking in before my question.Changes for the PCB revision V1.06 are listed there on the docs page as:
The following changes were necessary due to component availability issues, they do not result in functional changes to the design:.
Changed the 5V buck regulator to AP64200 due to part availability issues. Various passive component changes to support the new regulator.
In addition the following improvements to the design were made:
Split the 5V rail into 5V_INT and 5V_EXT. this provides additional protection to some of the more sensitive components on the board from abuse in the form or feeding >5V into a 5V pin. Added TVS diodes to improve ESD protection Increase the pad size for the VIN screw terminal pins
-
Github repo files for Duet2 V1.06?
Are the schematic and PCB files available in the Duet2 hardware repo for Duet2 V1.06 hardware?
I might be searching in the wrong place or maybe I shouldn't expect them to be there yet but i only see V1.04 and V1.05 project folders there.JD
-
RE: read "M260 Amm Rnn" into variable?
@o_lampe @dc42
Just adding that I would also like to see a general I2C read response parser or variable assignment that we can use for conditions in meta command programming. For instance, we have an I2C realtime clock calendar IC attached to a Duet2. We would like to use it to trigger g-codes at certain times of the day.Currently, we use the http interface to send an I2C command to program the current time of day and an alarm time in to the RTCC IC. Then we use a single alarm interrupt output pin from a single RTCC IC to trigger an endstop input that runs a triggerX.g file and we put our gcode commands in the trigger gcode file. This method is limited to the one time of day.
If we were able to arbitrarily query the TOD from the rtcc from gcode running standalone (no web,telnet,panel etc) we could develop some more useful gcodes.We also see some utility for some other i2c devices
JD
-
Longest axis move possible?
We have a duet2 v1.04c that I think we were operating the 3.2 firmware with. We have a single stepper motor that we just wanted to command to turn for 3 or more hours. It's not part of a cnc or 3d printer. The motor doesn't use any endstop. I didn't check the microsteps setting in the config but i suspect we're operating at 1/16 or 1/8th?
After G1 commanding the stepper motor to rotate for three hours from a gcode file, the system seemed as if it stopped rotating 20 or so minutes shy of the 3 hours and subsequent commands of the gcode file did not execute. The movement number was about 10200 and the feedrate was about 60.2
With the M114 command, we see that the microstep count is quite high (over 1000000?) after half an hour. We see that when then commanding the motor to turn back in the other direction that the microstep count then decrements. We haven't had an issue if the rotate forward for a half hour and then back for a half hour and repeat. The axis count doesnt move - i presume because the axis never gets homed. Is there a maximum microstep count? what is expected if the max count is reached or exceeded?
Thanks in advance, JD -
RE: How to trigger a thermistor temp too high error without a heater
@Oliver_Briggs Hi, I would also like a method that allows this. So far, I have been assigning pins as heaters against the thermistors but the heater pin is not actually attached to anything. I tried using a 'nil' pin but it didn't work. I don't remember if it did or didn't show up in the object model without it but it definitely didn't show on the web page without it.
-
Daemon & Trigger G Code execution method when using DSF / SBC
Just want to double check the operation of Daemon and Triggers when running with DSF on the SBC.
Currently I'm trying out the DSF / SBC with a DuetPi image on an rPi4 connected to a Duet2 board. It seems to be behaving itself so far.Lets say the daemon.g file functionality is set up to execute every 10 seconds, is the Duet2 board doing the timing and making this file request or is the SBC timing the daemon.g interval?
Does the Duet2 somehow cache the daemon.g list of gcode commands and execute them from ram or does it fetch and execute them line by line from the SBC?
Does the Duet2 somehow cache triggerX.g files and execute from ram or does it fetch and execute them line by line from the SBC?
I suppose if the answer is that the Duet2 board fetches and executes gcodes from the files line-by-line from the SBC, then in a scenario where Duet2 is running standalone without the SBC that it fetches and executes them locally from the SD card of the Duet2?
Thanks in advance for the clarification,
JD -
Object Model User Variables
I'm hoping a small array of user variables could be added in into the object model. Maybe 10 or less? that could have their value set with a gcode/mcode. They could be queried by object model requests on an interface and could be used inside gcode with meta commands. A workaround can be done at the moment using other settings associated with hardware like a dummy gpio pin or pwm pin but it uses a real hardware pin. it would be nice to associate a char string to each variable as well.
JD -
RE: Custom Icons PanelDue
Hi Ivan. I was looking for a converter tool also and hadn't seen mention of what tool was originally used.
Hopefully someone else gives you a better answer.I only wanted black/white icons so i mashed some awful C# code up if you want to try it. There's no prompt when you click the convert button but it should make a .c file in the same folder as the executable. The C file has an array. My format is missing the x and y bytes at the start of the array. you'll have to add that yourself.
I thought i might return to the code sometime to make it a proper tool for paneldue icons if no other better tool was available. Also, this is windows code and not so OS universal. Perhaps a python script using the pillow? pil? python libraries is in order. if gui based, it would be nice to somehow map a 16 colour bitmap to the panels theme palletes.
-
The icon c array is of type uint8_t - an unsigned 8 bit integer ( a byte).
-
The first two bytes are x and y size byte as like the other image arrays
-
Each byte represents two pixels.
-
the third byte and those after are the pixel pair bytes. The lower nibble (lower significant 4 bits of the byte) preceeds the higher nibble
-
each nibble (pixel) represents a palette map position value 0 to 15. you'll have to check the palette map for each theme to see what colour your pixel value creates
-
the pixels start in the top left corner of the icon and the next nibble and next bytes in the array increments down in the Y direction until a Y column is complete and x increments and fills down the next Y column.
My arrays just have values of 0x00, 0x01, 0x10 and 0x11. This only works because my 24 bit bitmap was only colours 0x000000 and 0xFFFFFF. and that's what my routine looks for. In the paneldue "light" palette, palette map position 0 is white? and palette map position 1 is white?
Sorry its not in github. i'll leave a dropbox link for a while if you want to look at the code or try the exe in the bin/debug folder
https://www.dropbox.com/s/kdzi67dnvtcw37x/BMP2RGB565Array.zip?dl=0 -
-
RE: state.time what Meta Command object model property type is it?
Thanks for the prompt reply.
I had to surround the concatenated expression with braces otherwise i got an error regarding non boolean expressions.The following works ok:
M117 Start ;message indicating gcode begin while {state.time ^ ""} != "2020-08-27T15:21:00" ;while the current machine time is not equal to a "future time" execute the next indented lines then loop back to this line G4 P50 ;dwell for 50 milliseconds M117 The time is now 2020-08-27T15:21:00 ;if we reach this line it means the machine time and "future time" strings were equal G4 S4 ;dwell for 4 seconds
If i think of it later I'll join the dozuki wiki and add some notes
JD -
state.time what Meta Command object model property type is it?
I'm experimenting with the object model and meta commands in a gcode file.
When performing the following object model property (date/time) request from a terminal...
M409 K"state.time"
the response is
{"key":"state.time","flags":"","result":"2020-08-26T18:08:25"}
However, if i have a Gcode file with:
if state.time == "2020-08-26T17:29:39"
M117 state.time processedan error is returned: meta command: cannot convert operands to same type
I don't think i've muffed up the formatting assuming state.time is a string. Other meta command string comparisons in the object model work ok.
state.time won't compare to any string which makes me suspect that for meta commands, state.time is not actually a string? is it perhaps a variable type that meta commands are not able to compare against?
other idle thoughts......
I understand reasons to keep the date and time together in one property but it would also be nice to have the option to obtain just the time or just the date.If state.time were a string (not behaving like one though?) it would be nice for the meta commands to include some string modifier/parser to be able to specify a character in the string or compare from some offset.
JD