@T3P3Tony V4 says "Filament Length:" at the bottom. V5 says "Material Length:" at the bottom
GeneRisi
@GeneRisi
Former IBM engineer (35 years), retired and doing volunteer work and playing. I am into Amateur Radio and 3d printing.
Best posts made by GeneRisi
-
RE: Simplify3d and Filament Timings
-
RE: Dumbfounded ! Firmware bug in 3.4 beta 6?
@dc42 I found the problem.
When tool T1 was being returned, the Y "parking" coordinate was off by 1 mm. The tool parking location didn't budge but the firmware thought that the tool location was 1mm beyond where it actually was. The machine is a corexy (E3D), so even though only the Y coordinate was off, I suspect it affected both the x and y location from the the firmware's perspective.
-
RE: Best IDEX nozzle wipe mechanisms?
@oliof I have the pebble wiper design installed and it works very well once you have it set up properly. Does it do more than any other purge and wipe tool? Maybe not.
I have an e3d tool changer with a couple of home made Orbiter / v6 hot end tools and a Hemera. The version I use is on a linear rail so that it can accommodate different size tools.
-
RE: Extruder parameter format question
I just created SeqTest.g which contains this:
M584 X0
M350 X16
M584 Y1
M350 Y16It runs fine. Did it do the right thing? I don't know yet.
-
RE: Accelerometer Usage
FWIW, twisted pair wiring is designed to use both wires in the pair. The signals we are carryng are not differential, so try connecting the "other" wire in the pair to ground at both ends of the wiring. You might find that it cleans up the signal quite a bit. I am using CAT5 unshielded cable for both the accelerometer and the Paneldue serial link without any issues (as far as I can tell)
-
RE: PanelDue 3.4.0-pre2 released
@mfs12 Has anyone mentioned a problem on the 5i where using the extrusion control (with tool 1) the extrusion length and speed do not remain highlighted after being selected? What would I provide for you to check this out if it is a new issue? I am using 3.4.0 b4.
On another note, could DWC report which version of firmware the Paneldue is running? It would be nice to have.
-
RE: All of a sudden, my corexy steppers aren't working
@generisi I found errors that make me wonder how it ever worked... It is fixed now - thank you!
-
RE: Dumbfounded ! Firmware bug in 3.4 beta 6?
@t3p3tony Here is a simple print file that demonstrates T1,T0,T1,T0:
G90 M83 M117 Preheat & Level G28 G10 P0 S242 R200; set extruder 0 active and standby temps G10 P1 S242 R200; set extruder 1 active and standby temps M190 S85 ; wait for bed temperature ;mesh gcode G29 Q0 T1 G1 E-0.8000 F3000 ; feature skirt ; tool H0.200 W0.400 G1 Z0.200 F360 G1 X145.575 Y112.700 F9000 G1 E0.8000 F3000 G1 X139.600 Y106.725 E0.2810 F90 G1 X137.300 Y104.425 E0.1082 G1 X137.300 Y95.575 E0.2944 G1 X145.575 Y87.300 E0.3892 G1 X154.425 Y87.300 E0.2944 G1 X156.725 Y89.600 E0.1082 G1 X162.700 Y95.575 E0.2810 G1 X162.700 Y104.425 E0.2944 G1 X154.425 Y112.700 E0.3892 G1 X145.575 Y112.700 E0.2944 G1 E-0.8000 F3000 ; feature cross - external single extrusion ; tool H0.200 W0.400 G1 Z0.400 F360 G1 X147.738 Y100.000 F9000 G1 Z0.200 F360 G1 E0.8000 F3000 G1 X149.641 Y100.000 E0.0633 F45 G1 X150.000 Y99.641 F9000 G1 X150.000 Y97.738 E0.0633 F45 G1 E-0.8000 F3000 G1 Z0.400 F360 G1 X152.262 Y100.000 F9000 G1 Z0.200 F360 G1 E0.8000 F3000 G1 X150.279 Y100.000 E0.0659 F45 G1 X150.200 Y100.000 E0.0026 ; tool H0.200 W0.416 G1 X150.117 Y100.000 E0.0029 ; tool H0.200 W0.499 G1 X150.000 Y100.000 E0.0049 G1 X150.000 Y100.117 E0.0049 ; tool H0.200 W0.416 G1 X150.000 Y100.200 E0.0029 ; tool H0.200 W0.400 G1 X150.000 Y100.279 E0.0026 G1 X150.000 Y102.262 E0.0659 G1 E-0.8000 F3000 ; layer end T0; G1 E-0.8000 F3000 ; feature skirt ; tool H0.200 W0.400 G1 Z0.200 F360 G1 X145.575 Y112.700 F9000 G1 E0.8000 F3000 G1 X139.600 Y106.725 E0.2810 F90 G1 X137.300 Y104.425 E0.1082 G1 X137.300 Y95.575 E0.2944 G1 X145.575 Y87.300 E0.3892 G1 X154.425 Y87.300 E0.2944 G1 X156.725 Y89.600 E0.1082 G1 X162.700 Y95.575 E0.2810 G1 X162.700 Y104.425 E0.2944 G1 X154.425 Y112.700 E0.3892 G1 X145.575 Y112.700 E0.2944 G1 E-0.8000 F3000 ; feature cross - external single extrusion ; tool H0.200 W0.400 G1 Z0.400 F360 G1 X147.738 Y100.000 F9000 G1 Z0.200 F360 G1 E0.8000 F3000 G1 X149.641 Y100.000 E0.0633 F45 G1 X150.000 Y99.641 F9000 G1 X150.000 Y97.738 E0.0633 F45 G1 E-0.8000 F3000 G1 Z0.400 F360 G1 X152.262 Y100.000 F9000 G1 Z0.200 F360 G1 E0.8000 F3000 G1 X150.279 Y100.000 E0.0659 F45 G1 X150.200 Y100.000 E0.0026 ; tool H0.200 W0.416 G1 X150.117 Y100.000 E0.0029 ; tool H0.200 W0.499 G1 X150.000 Y100.000 E0.0049 G1 X150.000 Y100.117 E0.0049 ; tool H0.200 W0.416 G1 X150.000 Y100.200 E0.0029 ; tool H0.200 W0.400 G1 X150.000 Y100.279 E0.0026 G1 X150.000 Y102.262 E0.0659 G1 E-0.8000 F3000 ; layer end ; pass 2 T1 G1 E-0.8000 F3000 ; feature skirt ; tool H0.200 W0.400 G1 Z0.200 F360 G1 X145.575 Y112.700 F9000 G1 E0.8000 F3000 G1 X139.600 Y106.725 E0.2810 F90 G1 X137.300 Y104.425 E0.1082 G1 X137.300 Y95.575 E0.2944 G1 X145.575 Y87.300 E0.3892 G1 X154.425 Y87.300 E0.2944 G1 X156.725 Y89.600 E0.1082 G1 X162.700 Y95.575 E0.2810 G1 X162.700 Y104.425 E0.2944 G1 X154.425 Y112.700 E0.3892 G1 X145.575 Y112.700 E0.2944 G1 E-0.8000 F3000 ; feature cross - external single extrusion ; tool H0.200 W0.400 G1 Z0.400 F360 G1 X147.738 Y100.000 F9000 G1 Z0.200 F360 G1 E0.8000 F3000 G1 X149.641 Y100.000 E0.0633 F45 G1 X150.000 Y99.641 F9000 G1 X150.000 Y97.738 E0.0633 F45 G1 E-0.8000 F3000 G1 Z0.400 F360 G1 X152.262 Y100.000 F9000 G1 Z0.200 F360 G1 E0.8000 F3000 G1 X150.279 Y100.000 E0.0659 F45 G1 X150.200 Y100.000 E0.0026 ; tool H0.200 W0.416 G1 X150.117 Y100.000 E0.0029 ; tool H0.200 W0.499 G1 X150.000 Y100.000 E0.0049 G1 X150.000 Y100.117 E0.0049 ; tool H0.200 W0.416 G1 X150.000 Y100.200 E0.0029 ; tool H0.200 W0.400 G1 X150.000 Y100.279 E0.0026 G1 X150.000 Y102.262 E0.0659 G1 E-0.8000 F3000 ; layer end T0; G1 E-0.8000 F3000 ; feature skirt ; tool H0.200 W0.400 G1 Z0.200 F360 G1 X145.575 Y112.700 F9000 G1 E0.8000 F3000 G1 X139.600 Y106.725 E0.2810 F90 G1 X137.300 Y104.425 E0.1082 G1 X137.300 Y95.575 E0.2944 G1 X145.575 Y87.300 E0.3892 G1 X154.425 Y87.300 E0.2944 G1 X156.725 Y89.600 E0.1082 G1 X162.700 Y95.575 E0.2810 G1 X162.700 Y104.425 E0.2944 G1 X154.425 Y112.700 E0.3892 G1 X145.575 Y112.700 E0.2944 G1 E-0.8000 F3000 ; feature cross - external single extrusion ; tool H0.200 W0.400 G1 Z0.400 F360 G1 X147.738 Y100.000 F9000 G1 Z0.200 F360 G1 E0.8000 F3000 G1 X149.641 Y100.000 E0.0633 F45 G1 X150.000 Y99.641 F9000 G1 X150.000 Y97.738 E0.0633 F45 G1 E-0.8000 F3000 G1 Z0.400 F360 G1 X152.262 Y100.000 F9000 G1 Z0.200 F360 G1 E0.8000 F3000 G1 X150.279 Y100.000 E0.0659 F45 G1 X150.200 Y100.000 E0.0026 ; tool H0.200 W0.416 G1 X150.117 Y100.000 E0.0029 ; tool H0.200 W0.499 G1 X150.000 Y100.000 E0.0049 G1 X150.000 Y100.117 E0.0049 ; tool H0.200 W0.416 G1 X150.000 Y100.200 E0.0029 ; tool H0.200 W0.400 G1 X150.000 Y100.279 E0.0026 G1 X150.000 Y102.262 E0.0659 G1 E-0.8000 F3000 ; layer end M117 Print Complete ! T-1 M999
-
[Feature request] add sort options to file list
@mfs12 It would be great to have an option in setup where the file name sorting could be specified. I would like "sort by date, most recent first" because I do a lot of test runs and find myself wanting to use the web interface to start the job because I can have it sort the files names by date. Thanks for considering my suggestion!
-
RE: different milling results dispite same G10 Offset
@cmp I wish I had better insight to help you out... what firmware version are you running? If the experiments below don't provide insight, would you please post the Tool1 and Tool4 pre,.g , post.g and free.g macros?
Please try typing M999 (this will force the firmware to do a reset) just before you start your print. Make sure that you don't execute any additional gcode before starting your print. See if running the normal "print, then mill" sequence a couple of times give the same offsets or different offsets.
Another variation of this experiment is to home the machine, then pick up the milling tool, then put it back, then pick up the print tool, then print the object, then return the print tool, pick up the milling tool and then mill the object. Try this sequence at least twice to see if the offsets are the same or different.
One more variation: Print the object, then pick up the milling tool but don't use it, then put the milling tool back, then pick up the printing tool and add layers on top. Do the additional layers line up with the original layers?
Latest posts made by GeneRisi
-
RE: Unable to configure MQTT when active on an interface
@rechrtb Now, I get this in my trace file:
2024-05-10 21:55:14 [debug] starting mqtt.g ... 2024-05-10 21:55:14 [debug] Configuring MQTT; responder state: 0 2024-05-10 21:55:14 [debug] Configuring MQTT; responder state: 0 2024-05-10 21:55:14 [debug] Configuring MQTT; responder state: 0 2024-05-10 21:55:14 [debug] MQTT is enabled on port 1884 2024-05-10 21:55:14 [debug] Failed to publish MQTT message, client not active 2024-05-10 21:55:14 [debug] Starting MQTT on ToolChanger 2024-05-10 21:55:14 [debug] ... ending mqtt.g
from this gcode:
M929 P"eventlog.txt" S3 ; start logging warnings to file eventlog.txt ; M111 P1 S1 ; traces turned on M111 P2 S1 ; M118 P1 S"starting mqtt.g ..." ; M586.4 C"ToolChanger" ; Set client ID M586.4 U"TC" K"wHg@tc" ; Set authentication credentials M586.4 S"printing3d" O2 ; Subscribe to topic ; M586 P4 R1884 H10.0.0.103 S1 ; this should initialize the responder ; M118 P6 S"Starting MQTT on ToolChanger" T"printing3d" ; Publish message (See M118 for more details) ; M118 P1 S"... ending mqtt.g" ; M111 P1 S0 ; traces turned off M111 P2 S0 ; M929 S0 ; tracing truned off ; ; finis
What does "client not active" mean in this case? Is "client" the Duet3d firmware?
Gene
-
RE: Unable to configure MQTT when active on an interface
@rechrtb Thanks for your help!
I think a small change to your config.g suggestion works slightly better. If instead, I use
if !exists(global.mqttInited) global mqttInited = false
then config.g can be run without a machine reset preceding it (which is possible if config.g is edited)
-
RE: Unable to configure MQTT when active on an interface
@droftarts , @rechrtb
I think I found the problem. in "Network.cpp" there is the following:// This is called at the end of config.g processing. It must only be called once. // Start the network if it was enabled void Network::Activate() noexcept { #if HAS_NETWORKING // Allocate network buffers NetworkBuffer::AllocateBuffers(NetworkBufferCount); // Activate the interfaces for (NetworkInterface *iface : interfaces) { if (iface != nullptr) { iface->Activate(); } } // Create the network responders # if SUPPORT_TELNET for (size_t i = 0; i < NumTelnetResponders; ++i) { responders = new TelnetResponder(responders); } # endif # if SUPPORT_FTP for (size_t i = 0; i < NumFtpResponders; ++i) { responders = new FtpResponder(responders); } # endif # if SUPPORT_HTTP for (size_t i = 0; i < NumHttpResponders; ++i) { responders = new HttpResponder(responders); } # endif #if SUPPORT_MULTICAST_DISCOVERY MulticastResponder::Init(); #endif #if SUPPORT_MQTT responders = clients = MqttClient::Init(responders, clients); #endif // Finally, create the network task networkTask.Create(NetworkLoop, "NETWORK", nullptr, TaskPriority::SpinPriority); #endif }
In MqttClient.cpp is this routine:
MqttClient *MqttClient::Init(NetworkResponder *n, NetworkClient *c) noexcept { instance = new MqttClient(n, c); return instance; }
which initializes "instance". "Instance" is used in the firmware that is called when M586.4 is seen. So, any use of M586.4 before the completion of the first call to config.g after reset should be unsuccessful. The error message is misleading; the problem is not that transactions are occurring but that the data structure hasn't been allocated yet.
I can apply your patch and test it out in my custom firmware build.
Gene
-
RE: Unable to configure MQTT when active on an interface
@droftarts Hi Ian,
Even waiting 20 seconds isn't enough to make it work in config.g. I wrote a macro and that didn't work either (when called from config.g at power on/reset). I also included a M586 P4 S0 before trying to establish the client ID
I added a debug output statement to MqttClient::Configure. When it runs as a part of config.g after machine reset, I get:
HTTP is enabled on port 80 power up + 00:00:00 [debug] FTP is enabled on port 21 power up + 00:00:00 [debug] TELNET is disabled power up + 00:00:00 [debug] MQTT is disabled power up + 00:00:00 [debug] Configuring MQTT; responder state: 4391195 power up + 00:00:00 [warn] Error: Unable to configure MQTT when active on an interface power up + 00:00:00 [debug] Configuring MQTT; responder state: 4391195 power up + 00:00:00 [warn] Error: Unable to configure MQTT when active on an interface power up + 00:00:00 [debug] Configuring MQTT; responder state: 4391195 power up + 00:00:00 [warn] Error: Unable to configure MQTT when active on an interface power up + 00:00:00 [debug] MQTT is enabled on port 1884 power up + 00:00:00 [debug] Failed to publish MQTT message, client not active power up + 00:00:00 [debug] Starting MQTT on ToolChanger power up + 00:00:00 [info] Event logging stopped
Running this after config.g has completed, from the web console, says that responder state is 0:
024-05-08 22:07:28 [debug] Configuring MQTT; responder state: 0 2024-05-08 22:07:28 [debug] Configuring MQTT; responder state: 0 2024-05-08 22:07:28 [debug] Configuring MQTT; responder state: 0 2024-05-08 22:07:28 [debug] MQTT is enabled on port 1884 2024-05-08 22:07:28 [debug] Failed to publish MQTT message, client not active 2024-05-08 22:07:28 [debug] Starting MQTT on ToolChanger 2024-05-08 22:07:28 [debug] ... ending mqtt.g
Is it possible that responder state is uninitialized in the first scenario and initialized in the second?
Gene
-
Unable to configure MQTT when active on an interface
I am getting this error in my config.g file from the line that defines the MQTT client ID. Has anyone seen this error?
I did a custom firmware build so it's possible that something isn't quite right with it.
Configuration file for Duet WiFi / Ethernet ; executed by the firmware on start-up ; *** General preferences *** ; M111 S0 ; Debugging off M550 P"ToolChanger" ; Set machine name G21 ; Work in millimetres G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves M555 P2 ; Set firmware compatibility to look like Marlin ; ; *** Network *** ; M552 S0 ; disable network interface M586.4 C"ToolChanger" ; Set client ID M586.4 S"printing3d" O2 ; Subscribe to topic ; M552 S1 ; Enable Networking M586 P0 S1 ; Enable HTTP M586 P1 S1 ; Enable FTP M586 P2 S0 ; Disable Telnet M586 P4 R1884 H10.0.0.66 S1 ; Enable MQTT protocol/client ; M118 P6 S"Starting MQTT on ToolChanger" T"printing3d" ; Publish message (See M118 for more details) ; M586 P4 S0 ; Disable MQTT protocol/client; disconnects from broker gracefully. (for now) ;
Strangely, it accepts the command when entered into the web console
-
RE: Any possibility to implement keep out area on Duet 2?
@dc42 Will the linker tell me if I have exceeded the RAM memory available or is the allocation dynamic and I need to run the firmware to find out?
-
RE: Any possibility to implement keep out area on Duet 2?
@dc42 A configuration with most of the kinematic types not included and support for the 12864 LCD not included give a .bin file size of 491,676 bytes. How do I know if there is enough SRAM available for the MQTT stack?
-
RE: Any possibility to implement keep out area on Duet 2?
@o_lampe I think that's an interesting idea and would be useful, in my opinion, if the freed up space could be used for other features. For example, I am interested in the KEEP_OUT area function and MQTT on my Duet 2. Since my printer only uses one kinematic type, the others provide no additional benefit and the code space is wasted.
Does FreeRTOS support dynamic loading without alot of overhead?
Another approach would be to host firmware builds on a remote machine along with a mechanism to pick and choose from a set of features and have an automated build create the binary.
Gene
-
RE: Any possibility to implement keep out area on Duet 2?
@dc42 I found the right invocation to build the individual projects. I needed to add the include path for MessageFormats.h to the RepRapFirmware project and when I did it built without errors. (on a MBP, M3) until it got to the last step
I found that instructions on building should also include instructions to install .NET SDK 6.x (x64 version only)
With my newfound success, I have a couple of questions:
-
How can I tell whether or not the binary will fit the constraints of the Duet 2 system?
-
Could MQTT also possibly fit in a custom DUET 2 build with only the basic kinematics included?
Thanks for making this possible!
Gene
-
-
RE: Any possibility to implement keep out area on Duet 2?
@dc42 I am trying to build the libraries but when I click on the hammer, it immediately jumps to
Configuring in: /Users/gene/Dev/RepRapFirmware/v3.5.1/FreeRTOS/src/build/default cmake -G Unix Makefiles -DCMAKE_EXPORT_COMPILE_COMMANDS=ON /Users/gene/Dev/RepRapFirmware/v3.5.1/FreeRTOS/src CMake Warning (dev) in CMakeLists.txt: No project() command is present. The top-level CMakeLists.txt file must contain a literal, direct call to the project() command. Add a line of code such as project(ProjectName)
I am not familiar with Eclipse. How do I build the libraries? Building CANlib woud be a great example for me. Thanks!
Gene