@Phaedrux thank you for the assist,
I am working on a couple of things so you may see more coming in the future if they have a cool factor I am aiming for
@Phaedrux thank you for the assist,
I am working on a couple of things so you may see more coming in the future if they have a cool factor I am aiming for
Good Day all
Here is a little side project I was working on, Thanks to @dc42 for letting me know about the S7 switch I completely missed in the documentation.
It does force the users to be aware that DUET will connect to the 2.4Ghz network reliability, It prompts only for required information as needed. I have done a little testing on it here in my environment and it works well for me. Hopefully others can find it useful.
Not sure why its not showing properly in the preview however everything between Start and end macro is required.
---- Start Macro
;WIFI_CONFIG macro v1.1
;
; Author: Dr Jay (3D Emergency Room)
; Created: December 16, 2023
; Last Updated: December 16, 2023
;
; This macro helps configure WiFi settings on Duet boards
; Supports both Client and Access Point modes
;
; IMPORTANT WIFI REQUIREMENTS:
; - ONLY 2.4GHz networks are supported
; - 5GHz networks will NOT work
; - Dual-band networks must be split into separate 2.4GHz and 5GHz networks
;
; How to identify a 2.4GHz network:
; 1. Check your router settings - look for separate network names for 2.4GHz and 5GHz
; 2. Network names often end with "-2.4G" or "-2G" to distinguish them
; 3. 2.4GHz networks typically show lower but more stable signal strength
; 4. If using a dual-band router, ensure you've separated the bands with different SSIDs
; Initialize variables
var ssid = ""
var password = ""
var ip = ""
var gateway = ""
var subnet = ""
var mode = 0
var dhcp_mode = true ; Track if using DHCP
; Choose wireless mode
M291 P"Choose WiFi mode" R"Mode Selection" S4 K{"Client","Access Point"}
set global.result = input
set var.mode = global.result
if var.mode == 0
; CLIENT MODE
M291 P"WiFi Client Setup" R"Welcome" S3
; WARNING about 2.4GHz requirement
M291 P"WARNING: Your network MUST be 2.4GHz. 5GHz and dual-band networks will NOT work!" R"Network Requirement" S3
M291 P"Common 2.4GHz names end with: -2.4G, -2G, _2.4GHz" R"Network Identification" S3
M291 P"For dual-band routers: Split bands into separate networks" R"Router Setup" S3
M291 P"Recommended: Use WPA2-PSK security and channels 1, 6, or 11" R"Network Settings" S3
M291 P"Make sure you are connecting to a 2.4GHz network. Continue?" R"Confirm" S4 K{"Yes","No"}
set global.result = input
if global.result == 1
M291 P"Setup cancelled" R"Cancelled" S3
M99
; Prompt for SSID
M291 P"Enter WiFi network name (SSID)" R"Network Name" S7
set global.result = input
if global.result == ""
M291 P"Setup cancelled" R"Cancelled" S3
M99
set var.ssid = global.result
; Prompt for password
M291 P"Enter WiFi password" R"Network Password" S7
set global.result = input
if global.result == ""
M291 P"Setup cancelled" R"Cancelled" S3
M99
set var.password = global.result
; Ask about custom IP
M291 P"Use custom IP configuration?" R"IP Config" S4 K{"No (DHCP)","Yes"}
set global.result = input
if global.result == 1
set var.dhcp_mode = false
; Get IP address
M291 P"Enter IP address (e.g. 192.168.1.100)" R"IP Address" S7
set global.result = input
if global.result == ""
M291 P"Using DHCP" R"Info" S3
set var.dhcp_mode = true
else
set var.ip = global.result
; Get gateway
M291 P"Enter gateway address (e.g. 192.168.1.1)" R"Gateway" S7
set global.result = input
set var.gateway = global.result
; Get subnet mask
M291 P"Enter subnet mask (e.g. 255.255.255.0)" R"Subnet" S7
set global.result = input
set var.subnet = global.result
; Configure WiFi
M291 P"Configuring WiFi..." R"Please Wait" S3
M552 S0 ; Disable network
G4 P1000 ; Wait 1 second
M587 S{var.ssid} P{var.password} ; Configure WiFi
; Set custom IP if provided
if !var.dhcp_mode
M552 P{var.ip} ; Set IP address
M553 P{var.subnet} ; Set subnet mask
M554 P{var.gateway} ; Set gateway
G4 P2000 ; Wait 2 seconds
M552 S1 ; Enable network
else
; ACCESS POINT MODE
M291 P"WiFi Access Point Setup" R"Welcome" S3
; Prompt for AP name
M291 P"Enter Access Point name" R"AP Name" S7
set global.result = input
if global.result == ""
M291 P"Setup cancelled" R"Cancelled" S3
M99
set var.ssid = global.result
; Prompt for AP password (minimum 8 characters)
M291 P"Enter AP password (min 8 chars)" R"AP Password" S7
set global.result = input
if global.result == "" || strlen(global.result) < 8
M291 P"Invalid password - minimum 8 characters" R"Error" S3
M99
set var.password = global.result
; Configure Access Point
M291 P"Creating Access Point..." R"Please Wait" S3
M552 S0 ; Disable network
G4 P1000 ; Wait 1 second
M589 S{var.ssid} P{var.password} ; Configure Access Point
G4 P2000 ; Wait 2 seconds
M552 S1 ; Enable network
; Report network status
M552 ; Report current network status
; Final message
if var.mode == 0
M291 P"WiFi client setup complete. Check connection status above." R"Complete" S3
else
M291 P"Access Point created. SSID: " ^ {var.ssid} R"Complete" S3
; Clear sensitive data
set var.ssid = ""
set var.password = ""
set var.ip = ""
set var.gateway = ""
set var.subnet = ""
; Recommend power cycle
M291 P"Please power cycle your printer to ensure network settings are properly applied" R"Power Cycle" S3
--- End macro
ok, I am going to rework this using your suggestions,
Side Question but related, It does not appear that the M291 allows for user input except selecting options that are coded into the macro.
Is there a command to allow user free text input using the onscreen keyboard? Think about something like
What is your network name? Then allowing a user to type in the name of the network they want to connect to?
Essentially trying to sudo prompt for an input to the M587 command?
If you like I can break this question out to a separate thread for others to search on.
@jay_s_uk well darn it, bad when you so used to working in another language
Thank you for that catch, rework time
I think I am describing this properly.
On my IDEX printer I have 4 head options, I am creating a macro for Calibrating X,Y and Z offset. for both heads. The purpose of this macro is to verify a setup is compatiable and assign correct BLtouch offsets based on print head used (BLtouch location is different on a couple of the print heads)
In the start of the macro I am asking to choose which print heads are installed. (As not all are compatiable with each other due to nozzle depth below the gantry.
I have 4 Head options they are: GHR, GS, GHF, and GUF.
First issue is in line # 6, I was going to attempt to use this variable as an input to my K switch on my M291 command. I am not sure if this one is possible but I commented it out for now and added the string directly onto the K switch while I figure out the second problem.
I am having issues starting at line 50, l am trying to get the macro to decide if the print heads are compatiable with each other. I have the values of the heads added as a 2 digit number and stored in var.head_configuration, so I can compare. If the number starts or ends with a 1 the other number must be a 1, If the number in the variable starts or ends with a 3 the other number must also be 3. All other combonations are valid. Is there an easier way to do this or am I going down the wrong path? Suggestions welcome
here is the setup for my macro
; Calibration Setup Macro
;*** VARIABLES ***
var primary_head = -1 ; Variable to store primary head selection
var secondary_head = -1 ; Variable to store secondary head selection
; var head_names = ["GS", "GHF", "GUF", "GHR"]; ; Names of the heads
var head_configuration = -1; ; Variable to store the head configuration
var Temp_var = -1; Variable to be used for math
echo >"0:/sys/IAC_Setup_log.txt" {state.time}, "Setup Start Time stamp"
;*** WARNING BEFORE HEAD SELECTION ***
M291 S3 R"Important" P"** Ensure the correct print heads are installed before proceeding! **"
M291 S3 R"WARNING:" P"** Ensure calibration tool is NOT on the bed at this time. **"
;*** NOTICE ABOUT HEAD CHANGES ***
M291 S3 R"NOTICE" P"** If you change print heads, you must rerun this setup macro before attempting IDEX calibration again! **"
;*** HOMING COMMANDS ***
G28 ; Home all axes
G1 Y10 F4000 ; Move Y axis +10mm
G1 Y-10 F4000 ; Return Y axis to home
G1 Y10 F4000 ; Move Y axis +10mm
G1 Y-10 F4000 ; Return Y axis to home
;*** USER PROMPT FOR HEAD SELECTION ***
M291 R"Please choose print head installed in front position" P"Choose from list" K{"GS", "GHF", "GUF", "GHR"} S4
set var.primary_head = input("Enter your choice (1-4): ")
echo >>"0:/sys/IAC_Setup_log.txt" {state.time}, "Selected Primary Head:", var.primary_head
;*** HOMING FOR SECONDARY HEAD SELECTION ***
G1 U658.6 F4000 ; Move U axis -10mm
G1 U668.6 F4000 ; Return U axis to home
G1 U658.6 F4000 ; Move U axis -10mm
G1 U668.6 F4000 ; Return U axis to home
M291 R"Please choose print head installed in rear position" P"Choose from list" K{"GS", "GHF", "GUF", "GHR"} S4
set var.secondary_head = input("Enter your choice (1-4): ")
echo >>"0:/sys/IAC_Setup_log.txt" {state.time}, "Selected Secondary Head:", var.secondary_head
;*** LOG HEAD SELECTION ***
echo >>"0:/sys/IAC_Setup_log.txt" {state.time}, "Selected Primary Head:", var.primary_head
echo >>"0:/sys/IAC_Setup_log.txt" {state.time}, "Selected Secondary Head:", var.secondary_head
;*** VERIFY COMPATIBILITY ***
set var.Temp_var = var.primary_head ; placing head identifier in temp variable
set var.primary_head = (var.Temp_var*10) ; Changing decimal location of result
set var.head_configuration = (var.primary_head + var.secondary_head)
echo >>"0:/sys/IAC_Setup_log.txt" {state.time}, "Variable Head Configuration:", var.head_configuration
if (var.primary_head != var.secondary_head) ; Ensure primary and secondary are different
; Check compatibility based on the specified rules
if ((var.primary_head == 4 && var.secondary_head == 4) || ; Both GHR
(var.primary_head == 2 && var.secondary_head == 2) || ; Both GHF
((var.primary_head == 1 || var.primary_head == 3) && (var.secondary_head == 1 || var.secondary_head == 3))) ; GS and GUF combinations
; Both heads are compatible and different
set var.head_configuration = "Primary: " + var.head_names[var.primary_head - 1] + ", Secondary: " + var.head_names[var.secondary_head - 1]
echo >>"0:/sys/IAC_Setup_log.txt" {state.time}, "Head Configuration - "{var.head_configuration}"
M291 S3 R"Configuration Confirmed" P"Primary: {head_names[var.primary_head - 1]}, Secondary: {head_names[var.secondary_head - 1]}"
else
echo >>"0:/sys/IAC_Setup_log.txt" {state.time}, "Error: Incompatible heads selected."
M291 S3 R"Error" P"Sorry, these heads are incompatible together in an IDEX configuration."
; M112 ; Emergency stop to avoid potential issues
endif
else
echo >>"0:/sys/IAC_Setup_log.txt" {state.time}, "Error: Primary and Secondary heads are not compatiable."
M291 S3 R"Error" P"Primary and Secondary heads are not compatiable. Please try again."
; M112 ; Emergency stop to avoid potential issues
endif
@dc42 Let me ask a question, does this command report continuesly back to the console or only report once per entry? I realize now it is returning a response once per entry of the M591 command. I seem to remember it would give the results back every time there was a pulse in a previous firmware rev?
Was this ever the case or am I not remembering something correctly?
@dc42 HI DC
thanks for your reply, I apologize I put the incorrect command in the description,
That is the command I was running and not the M591 D0 S0
The command I did run was the M591 D0
Good Day all I am trying to configure a clog sensor, (wheel with optical sensor)
As the filament is moved through the sensor the red light is pulsing on and off, the light on the mainboard (e0stop) is also pulsing so I am ruling out wiring at this point
M122
=== Diagnostics ===
RepRapFirmware for Duet 2 WiFi/Ethernet version 3.5.2 (2024-06-11 17:13:43) running on Duet WiFi 1.02 or later + DueX5v0.11
Board ID: 0JD2M-9F8TA-GJ4TJ-6JKFD-3S86J-1RVL6
=== Filament sensors ===
check 3133587 clear 336281503
Extruder 0 sensor: ok
Config.g file
; Primary hotend Clog detector__________________________________________________
M591 D0 P7 C"e0stop" S1 L3.14 E10 R10:300 ; Clog Detector E0 [Add-On]
Using just the above configuration whenever I try to print I get the following message
9/26/2024, 2:25:15 PM Printing paused at X373.9 Y183.9 Z1.0 U675.0
9/26/2024, 2:25:07 PM No filament or possible clog on E0 - Paused
Resume state saved
Next I tried to enable reporting on the clog sensor
M591 D0 S0
Console is just showing no data,
I moved the sensor over to e1stop and updated config just to eliminate a bad port on the board, Same results.
Does anyone have any suggestions to be able to see the data being captured by the clog sensor?
Update to this post
I replaced the SD card with a new 16GB card, Formatted and reinstalled all the setup files.
It did give me an error message of mismatched firmware versions although I could not find evidence of anything mismatched. I did reflash the entire package of 3.5.2 and everything now is working as it should.
I can now edit and save changes to the config.g file, As an extra did modify some of the macro files as well as they no longer dissapear.
I would mark this one as resolved.
Just as an additional information I checked the previous SD card in a windows PC, Checked it for errors and no errors were picked up. Still a weird problem but I am chaulking it upto a problem with the origional SD card.
Agreed, Its bizzare and I cannot find a way to reproduce it. I will swap the SD card out with a new one, At least see if the problem continues. I will keep you updated
Good Day all, I am in process of changing over a CR10Max from the crealty board to a Duet2 Wifi.
Have everything installed and used a Duet control board from an old project. Did have 3.4.6 on it but flashed it to 3.5.2. Built the configuration from the online tool using general parameters. Now as I am commisioning it and updating the config.g file, every time I update the config.g it dissappears. Printer reboots and does come up but config.g is missing.
Not quite sure how to troubleshoot this one. I have renamed the .bak file to config.g and when I updated it, it also dissappeared, I pulled a new copy down to the printer over Wifi and tried the update again, This file also dissappeared.
I deleted everything on the SD card before I installed this board into this converted printer. No job files on it, Some generic macros but nothing I have run yet. Cannot think of what would be causing the file to delete except the firmware somehow? Maybe bad SD card although that does not make sense, other files are remaining if I edit them, other .g files or macros all stay. just the config.g
output from M122 below.
M122
=== Diagnostics ===
RepRapFirmware for Duet 2 WiFi/Ethernet version 3.5.2 (2024-06-11 17:13:43) running on Duet WiFi 1.02 or later
Board ID: 0JD0M-9P6M2-NW4SD-6JKD2-3S06P-1BNHM
Used output buffers: 3 of 26 (19 max)
=== RTOS ===
Static ram: 23384
Dynamic ram: 72744 of which 0 recycled
Never used RAM 14088, free system stack 136 words
Tasks: NETWORK(2,nWait 6,14.2%,217) HEAT(3,nWait 5,0.0%,328) Move(4,nWait 5,0.0%,298) MAIN(1,running,85.7%,744) IDLE(0,ready,0.0%,29), total 100.0%
Owned mutexes:
=== Platform ===
Last reset 02:34:28 ago, cause: power up
Last software reset at 2024-07-29 22:27, reason: User, Gcodes spinning, available RAM 17072, slot 2
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
Error status: 0x00
Aux0 errors 0,0,0
MCU temperature: min 21.2, current 24.4, max 24.8
Supply voltage: min 24.0, current 24.1, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes
Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/24/24, gc cycles 0
Events: 0 queued, 0 completed
Driver 0: standstill, SG min n/a
Driver 1: standstill, SG min 122
Driver 2: standstill, SG min n/a
Driver 3: standstill, SG min n/a
Driver 4: standstill, SG min n/a
Driver 5:
Driver 6:
Driver 7:
Driver 8:
Driver 9:
Driver 10:
Driver 11:
Date/time: 2024-07-30 01:19:50
Cache data hit count 4294967295
Slowest loop: 21.25ms; fastest: 0.16ms
I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
=== Storage ===
Free file entries: 10
SD card 0 detected, interface speed: 20.0MBytes/sec
SD card longest read time 0.8ms, write time 8.3ms, max retries 0
=== Move ===
DMs created 83, segments created 3, maxWait 335576ms, bed compensation in use: none, height map offset 0.000, max steps late 0, min interval 0, bad calcs 0, ebfmin 0.00, ebfmax 0.00
no step interrupt scheduled
Moves shaped first try 0, on retry 0, too short 0, wrong shape 0, maybepossible 0
=== DDARing 0 ===
Scheduled moves 11, completed 11, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 1], CDDA state -1
=== Heat ===
Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
=== GCodes ===
Movement locks held by null
HTTP is idle in state(s) 0
Telnet is idle in state(s) 0
File is idle in state(s) 0
USB is idle in state(s) 0
Aux is idle in state(s) 0
Trigger is idle in state(s) 0
Queue is idle in state(s) 0
LCD is idle in state(s) 0
Daemon is idle in state(s) 0
Autopause is idle in state(s) 0
Q0 segments left 0
Code queue 0 is empty
=== Network ===
Slowest loop: 27.35ms; fastest: 0.00ms
Responder states: HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
HTTP sessions: 1 of 8
=== WiFi ===
Interface state: active
Module is connected to access point
Failed messages: pending 0, notrdy 0, noresp 0
Firmware version 2.1.0
MAC address e8:db:84:f7:26:9e
Module reset reason: Turned on by main processor, Vcc 3.37, flash size 4194304, free heap 37884
WiFi IP address 192.168.0.198
Signal strength -65dBm, channel 11, mode 802.11n, reconnections 0
Clock register 00002002
Socket states: 0 0 0 0 0 0 0 0
Here is the link to my origional problem
Config and pics are there
https://forum.duet3d.com/topic/24586/duet-2-with-duex-5-cannot-get-bltouch-to-function
Yes correct, the black wire is not actually ground, the brown one is. The black wire (on factory bltouch units is actually a low digital. It's called ground but it's part of the pio.
I just got a new phone and do not have the pic, I will look for my old post and put a link to it here.
Bltouch/crtouch will not work with common ground both grounds must be on separate pins. I tried a similar configuration last year and feel your frustration.
HI @jay_s_uk , thanks for the reply
After installing just the Wifi update, Came up with the same scrolling error and then a message connected to the access point, IP address 255.255.255.255,
That was weird because that is a broadcast address. Anyway did the S0 and S1 again and it connected properly. Error is basically still happening.
I updated the DWC as a separate step to help anyone else troubleshoot,
First time I power cycled the printer, Came up perfectly, Connected properly and gave me the proper IP address.
Power cycled it again and back to the same error message.
However, If I just do nothing Eventually it does come online itself. Sometimes takes 2 mins to connect and give me the IP.
So I started thinking maybe there may be some other networks in the configuration that is toying with it. I ran the procedure listed in this Post
https://forum.duet3d.com/topic/9888/how-to-erase-remembered-networks/4
basically the M588 S"*"
I set up my network again from scratch with the M587 and now after 10 power cycles, It seems to be working ok.
If I was to guess what may be going on as you apply firmware versions it may be adding "default" or "beta" networks that it has to scan and see that they are not there before it will move on to the next one. That is strictly my guess but the version of the DWC definitely had the biggest effect.
For me, I just like to try and understand the source of the error but for anyone else troubleshooting this error take @jay_s_uk 's advice and ensure your firmware versions match.
ok, will do that now, In process of commissioning this printer so want to have it running without an issue.
I will post the results shortly.
sure not an issue, Posted a smaller chunk of it but here is the whole output, Including the M115 as well.
9/27/2022, 10:48:22 AM M115
FIRMWARE_NAME: RepRapFirmware for Duet 2 WiFi/Ethernet FIRMWARE_VERSION: 3.4.2 ELECTRONICS: Duet WiFi 1.02 or later + DueX5v0.11 FIRMWARE_DATE: 2022-09-13 15:11:16
9/27/2022, 10:47:19 AM M122
=== Diagnostics ===
RepRapFirmware for Duet 2 WiFi/Ethernet version 3.4.2 (2022-09-13 15:11:16) running on Duet WiFi 1.02 or later + DueX5v0.11
Board ID: 0JD0M-9P6B2-NJ4S4-6J9D4-3SD6T-9U1UM
Used output buffers: 3 of 26 (26 max)
=== RTOS ===
Static ram: 23860
Dynamic ram: 76660 of which 0 recycled
Never used RAM 8560, free system stack 132 words
Tasks: NETWORK(ready,14.7%,242) HEAT(notifyWait,0.0%,333) Move(notifyWait,0.0%,292) DUEX(notifyWait,0.0%,24) MAIN(running,85.3%,442) IDLE(ready,0.0%,30), total 100.0%
Owned mutexes: WiFi(NETWORK)
=== Platform ===
Last reset 17:01:49 ago, cause: power up
Last software reset time unknown, reason: User, GCodes spinning, available RAM 8768, slot 1
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
Error status: 0x08
Aux0 errors 0,0,0
Step timer max interval 0
MCU temperature: min 30.9, current 31.4, max 31.9
Supply voltage: min 24.0, current 24.2, max 24.5, under voltage events: 0, over voltage events: 0, power good: yes
Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/8/8, gc cycles 0
Events: 0 queued, 0 completed
Driver 0: standstill, SG min n/a
Driver 1: standstill, SG min n/a
Driver 2: standstill, SG min n/a
Driver 3: standstill, SG min n/a
Driver 4: standstill, SG min n/a
Driver 5: standstill, SG min n/a
Driver 6: standstill, SG min n/a
Driver 7: standstill, SG min n/a
Driver 8: standstill, SG min n/a
Driver 9: standstill, SG min n/a
Driver 10:
Driver 11:
Date/time: 2022-09-27 10:47:18
Cache data hit count 4294967295
Slowest loop: 7.25ms; fastest: 0.19ms
I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
=== Storage ===
Free file entries: 10
SD card 0 detected, interface speed: 20.0MBytes/sec
SD card longest read time 0.5ms, write time 0.0ms, max retries 0
=== Move ===
DMs created 83, segments created 6, maxWait 0ms, bed compensation in use: mesh, comp offset 0.000
=== MainDDARing ===
Scheduled moves 700, completed 700, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== AuxDDARing ===
Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== Heat ===
Bed heaters -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
=== GCodes ===
Segments left: 0
Movement lock held by null
HTTP is idle in state(s) 0
Telnet is idle in state(s) 0
File is idle in state(s) 0
USB is idle in state(s) 0
Aux is idle in state(s) 0
Trigger is idle in state(s) 0
Queue is idle in state(s) 0
LCD is idle in state(s) 0
Daemon is idle in state(s) 0
Autopause is idle in state(s) 0
Code queue is empty
=== Filament sensors ===
Extruder 0 sensor: ok
Extruder 1 sensor: ok
=== DueX ===
Read count 0, 0.00 reads/min
=== Network ===
Slowest loop: 242.70ms; fastest: 0.07ms
Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions
HTTP sessions: 1 of 8
= WiFi =
Network state is active
WiFi module is connected to access point
Failed messages: pending 0, notready 0, noresp 0
WiFi firmware version 1.26
WiFi MAC address c8:c9:a3:40:90:f4
WiFi Vcc 3.40, reset reason Power up
WiFi flash size 2097152, free heap 25456
WiFi IP address 192.168.66.104
WiFi signal strength -54dBm, mode 802.11n, reconnections 0, sleep mode modem
Clock register 00002002
Socket states: 0 0 0 0 0 0 0 0
This is a bit of a strange one so I am going to post what I am seeing and see if anyone else has seen the issue. Seems the issue only occurred after the upgrade to version RRF 3.4.2. I do not recall it happening on 3.3 although I did not stay there long as I was upgrading to the latest. This is a new build but a known good configuration on other printers.
I have worked through this thread https://forum.duet3d.com/topic/22157/wifi-reported-error-network-scan-failed/8
The problem seems very similar but not quite the same.
when I start the printer I get the following error message on the console
WiFi reported error: network scan failed (50 or so times) then it simply says connected but no IP address appears.
When I run M552 S0 and then M552 S1 it connects not an issue and gives me the IP.
In my config file, you will see additional M552 commands that have been commented out, I tried to not start the network at the beginning of the config file and only start it at the end, Does not matter when I start or stop the network. I have tried stopping (S0) at the end of the config and (S1) to restart it. Still no luck. Will only work flawlessly when I stop and restart the network from the console after boot.
new Build printer from a manufacturer, config files are from them,
The printer will boot up, I get repeated messages but no automatic connection.
Any suggestions would be appricated.
M122
=== Diagnostics ===
RepRapFirmware for Duet 2 WiFi/Ethernet version 3.4.2 (2022-09-13 15:11:16) running on Duet WiFi 1.02 or later + DueX5v0.11
Board ID: 0JD0M-9P6B2-NJ4S4-6J9D4-3SD6T-9U1UM
Used output buffers: 1 of 26 (14 max)
=== RTOS ===
Static ram: 23860
Dynamic ram: 76660 of which 0 recycled
Never used RAM 8560, free system stack 132 words
Tasks: NETWORK(ready,264.5%,242) HEAT(notifyWait,1.2%,333) Move(notifyWait,0.1%,292) DUEX(notifyWait,0.0%,24) MAIN(running,182.6%,442) IDLE(ready,0.3%,30), total 448.7%
Owned mutexes:
=== Platform ===
Last reset 16:54:30 ago, cause: power up
Duet Web Control 3.4.1
Config.g below
; General preferences_________________________________________________________
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M555 P2 ; Set output to look like Marlin
M575 P1 B57600 S1 ; Set auxiliary serial port baud rate and require checksum (for PanelDue)
; Network_____________________________________________________________________
M550 P"Big Meter" ; set printer name
;M551 P"MODIX3D" ; Set password (optional)
M552 S1 ; enable network
;M552 S0 ; disable network
;M552 P0.0.0.0 ; Uncomment this command for using Duet Ethernet board
; Drives_________________________________________________________________________
;Main board______________________________________________________________________
M569 P0 S0 ; Physical drive 0 . X1
M569 P1 S1 ; Physical drive 1 . X2
M569 P2 R-1 ; Physical drive 2 . Canceled
M569 P3 S0 ; Physical drive 3 goes backwards. E0-Extruder.
M569 P4 S0 ; Physical drive 4 goes forwards. E1-Extruder.
;Duex5 board_____________________________________________________________________
M569 P5 S0 ; Physical drive 5 . Y
M569 P6 S0 ; Physical drive 6 . Z1 (0,1000)
M569 P7 S0 ; Physical drive 7 . Z2 (0,0)
M569 P8 S0 ; Physical drive 8 . Z3 (1000,0)
M569 P9 S0 ; Physical drive 9 . Z4 (1000,1000)
;Settings_________________________________________________________
M584 X0:1 Y5 Z6:7:8:9 E3:4 P3 ; Driver mapping
M671 X-185:-185:1068:1068 Y1068:-46:-46:1068 S30 ; Anticlockwise
;___________________________________________________________________
M350 X16 Y16 Z16 E16:16 I1 ; Configure microstepping with interpolation
M92 X100 Y100 Z2000 E418.5:418.5 ; Set steps per mm
M566 X360 Y360 Z120 E3600:3600 P1 ; Set maximum instantaneous speed changes (mm/min)
M203 X9000 Y9000 Z200 E12000:12000 ; Set maximum speeds (mm/min)
M201 X1000 Y1000 Z120 E1000:1000 ; Set accelerations (mm/s^2)
M204 P500 ; Set print and travel accelerations (mm/s^2)
M906 X1800 Y1800 E1000:1000 I50 ; Set motor currents (mA) and motor idle factor in per cent
M906 Z1800 I50 ; set Z motor currents
M84 S100 ; Set idle timeout - 100 seconds
; Axis Limits
M208 X0 Y0 Z-2 S1 ; set axis minima
M208 X1000 Y1000 Z1000 S0 ; set axis maxima
; Endstops
M574 X1 S1 P"xstop + e0stop" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin xstop
M574 Y2 S1 P"ystop" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop
; Z-Probe
M558 P9 C"zprobe.in" H5 F120 T6000 A1 R0.7 ; BLTouch probing settings
M950 S0 C"duex.pwm5" ; sets the BLTouch probe
M376 H100 ; Height (mm) over which to taper off the bed compensation
G31 P500 X-25.5 Y26.9 ; BLTouch X and Y offset
M557 X{move.axes[0].min + sensors.probes[0].offsets[0] + 1, move.axes[0].max + sensors.probes[0].offsets[0] - 1} Y{move.axes[1].min + sensors.probes[0].offsets[1] + 1, move.axes[1].max + sensors.probes[0].offsets[1] - 1} P15:15
; The M557 is used to define the mesh grid area. It uses the P parameter to set the amount of probing points. P10:10 would be a 10x10 grid. Supports up to a 21x21 grid.
M98 P"config_probe.g" ; Load the Z-offset from the config_probe.g file
; The Z_offset value is now set in config_probe.g, not in config.g
; Adjust the values there, do not adjust anything here.
; Heaters___________________________________________________________
M140 H-1 ; disable heated bed (overrides default heater mapping)
;E0_________________________________________________________________
;M308 S0 P"e0temp" Y"thermistor" T100000 B4725 ; configure sensor 0 as thermistor on pin e0temp
;M308 S0 P"spi.cs1" Y"rtd-max31865" ; Configure sensor 0 as PT100 via the daughterboard
M308 S0 P"e0temp" Y"pt1000" ; Configure sensor 0 as PT1000 on pin e0temp
M950 H0 C"e0heat" T0 ; create nozzle heater output on e0heat and map it to sensor 0
M98 P"PID_tune_E0.g" R1 ; PID calibration
M143 H0 S285 ; set temperature limit for heater 0 to 285C
;E1_________________________________________________________________
;M308 S1 P"e1temp" Y"thermistor" T100000 B4725 ; configure sensor 1 as thermistor on pin e1temp
;M308 S1 P"spi.cs2" Y"rtd-max31865" ; Configure sensor 1 as PT100 via the daughterboard
M308 S1 P"e1temp" Y"pt1000" ; Configure sensor 1 as PT1000 on pin e1temp
M950 H1 C"e1heat" T1 ; create nozzle heater output on e1heat and map it to sensor 1
M98 P"PID_tune_E1.g" R1 ; PID calibration
M143 H1 S285 ; set temperature limit for heater 1 to 285C
; Fans______________________________________________________________
M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
M106 P0 S0 H-1 C"Primary blower fan" ; set fan 0 value. Thermostatic control is turned on
M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency
M106 P1 S0 H-1 C"Secondary blower fan" ; set fan 1 value. Thermostatic control is turned on
M950 F2 C"duex.fan7" Q500 ; create LED on pin fan2 and set its frequency
M106 P2 S0 H-1 C"LED" ; Disable fan channel for LED
M106 P2 S255 ; LED on by default
M950 F3 C"duex.fan5" Q500 ; create fan 3 on pin fan1 and set its frequency
M106 P3 S255 H0 T45 ; set fan 3 value. Thermostatic control is turned on
M950 F4 C"duex.fan6" Q500 ; create fan 4 on pin fan1 and set its frequency
M106 P4 S255 H1 T45 ; set fan 4 value. Thermostatic control is turned on
; Tools______________________________________________________________
;T0_________________________________________________________________
M563 P0 S"E0 Primary" D0 H0 F0 ; define tool 0
G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets
G10 P0 R0 S210 ; set initial tool 0 active and standby temperatures to 0C
;T1_________________________________________________________________
M563 P1 S"E1 Secondary" D1 H1 F1 ; define tool 1
G10 P1 X0 Y74.3 Z0 ; set tool 1 axis offsets
G10 P1 R0 S210 ; set initial tool 1 active and standby temperatures to 0C
; Automatic power saving____________________________________________
M911 S22.5 R29.0 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss. Power Failure Pause
; Custom settings__________________________________________________
M591 D0 P1 C"duex.e2stop" S1 ; Regular filament sensor for E0
M591 D1 P1 C"duex.e3stop" S1 ; Regular filament sensor for E1
; Add-on settings__________________________________________________
;M552 S1 ; enable network
; Primary hotend Clog detector__________________________________________________
;M950 J0 C"duex.e2stop" ; create Input Pin 0 on pin E2 to for M581 Command.
;M581 T1 P0 S0 R1 ; Runout switch for E0 As External Trigger
;M591 D0 P7 C"e1stop" S1 L4.2 E10 R10:1000 ; Clog Detector E0 [Add-On]
;Secondary hotend Clog detector__________________________________________________
;M950 J1 C"exp.e3stop" ; create Input Pin 1 on pin E3 to for M581 Command.
;M581 T1 P1 S0 R1 ; Runout switch for E1 As External Trigger
;M591 D1 P7 C"zstop" S1 L3.14 E10 R10:300 ; Clog Detector E1 [Add-On]
; Crash detector__________________________________________________
;M950 J2 C"duex.e4stop" ; create Input Pin 2 on pin E4 to for M581 Command.
;M581 P2 T0 S0 R0 ; Crash Detector [Add-On]
; Emergency stop button__________________________________________________
M950 J3 C"duex.e6stop" ; create Input Pin 2 on pin E4 to for M581 Command.
M581 P3 T0 S1 R0 ; Emergency stop [Add-On]
;M581 P3 T1 S1 R1 ; Emergency stop, pause the print [Add-On]
;M581 P3 T1 S1 R0 ; Emergency stop, pause always [Add-On]
; Automatic Z Offset Calibration____________________________________
M574 Z1 S1 P"!duex.e5stop" ; configure switch-type for Automatic z-offset
M501
wonder if there is a temp file or Cache that has not cleared itself correctly?
HI @Phaedrux
Thanks for the info, that's why I wanted to do a sanity check first. Sooner ask now than blow it up.