In the case where it doesn’t broadcast on startup, if you connect after with FluidTerm, can you retrieve the startup messages? How does that differ from the boot on USB power when it works?
If anyone has any ideas, I am confused as to how this could be possible at all.
I can’t seem to find a way to do this. I’ve posted the FluidTerm echo above, and it looks like everything is OK. The SSID appears within 10 seconds after running FluidTerm.
If I hook it up through the Arduino IDE, is there even an echo for me to see?
Once in FluidTerm, that command should reprint the startup log.
If there is no difference in the 2 situations, maybe try placing it in Verbose mode and trying again.
I am guessing the USB is either acting like an antenna, or giving the onboard antenna a bit more power?
How else would that have any effect.
Do you have anywhere else you can plug it in and try to connect with your phone or something.
I am guessing there is some sort of interference with the exact channel or something in your shop, you did say it was wifi noisy.
If it’s the channel, the channel can be changed as a test in the settings.
If it’s wifi interference, he could try temporarily shutting down some networks when there’s some down time and see if that helps.
If so, start turning things back on 1 by 1 until it starts failing again. If the interference can be isolated that way, maybe it will help lead to the explanation.
Two good ideas. Yes - I carried my power supply and the board around the house, including to my office where I think there is less interference from the neighbors, but no change.
I also tried wifi channel 6.
I don’t think my neighbors will turn their wifi off for my testing… I’m a renter in this house
I’ll go see what the startup shows.
I’m thinking down the road, or somewhere much further from your wifi.
12V from the car will boot the jackpot.
This is just nuts…
But yes if you can actually shut down most/all of your wifi stuff that would work as well.
It’s currently in STA>AP mode. Here’s the dump. I’ll put it back in AP mode and post those.
Here is the result of the ./fluidterm.sh startup:
--- Available ports:
--- 1: /dev/cu.Bluetooth-Incoming-Port 'n/a'
--- 2: /dev/cu.SoundcoreLifeQ35 'n/a'
--- 3: /dev/cu.usbserial-0001 'CP2102 USB to UART Bridge Controller'
--- Enter port index or full name: 3
--- FluidTerm v1.2.0 on /dev/cu.usbserial-0001 115200,8,N,1 ---
--- Quit: Ctrl+] or Ctrl+Q | Upload: Ctrl+U | Reset: Ctrl+R | ClearScreen: Ctrl+W ---
.....
[MSG:INFO: FluidNC v3.7.8]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.4]
[MSG:INFO: Local filesystem type is littlefs]
[MSG:INFO: Configuration file:config.yaml]
[MSG:INFO: Machine LowRider3]
[MSG:INFO: Board Jackpot TMC2209]
[MSG:INFO: UART1 Tx:gpio.0 Rx:gpio.4 RTS:NO_PIN Baud:115200]
[MSG:INFO: I2SO BCK:gpio.22 WS:gpio.17 DATA:gpio.21]
[MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]
[MSG:INFO: SD Card cs_pin:gpio.5 detect:NO_PIN freq:20000000]
[MSG:INFO: Stepping:I2S_static Pulse:4us Dsbl Delay:0us Dir Delay:1us Idle Delay:255ms]
[MSG:INFO: User Digital Output:0 on Pin:gpio.26]
[MSG:INFO: User Digital Output:1 on Pin:gpio.27]
[MSG:INFO: Axis count 3]
[MSG:INFO: Axis X (0.000,1220.000)]
[MSG:INFO: Motor0]
[MSG:INFO: tmc_2209 UART1 Addr:0 CS:NO_PIN Step:I2SO.2 Dir:I2SO.1 Disable:I2SO.0 R:0.110]
[MSG:INFO: X Neg Limit gpio.25]
[MSG:INFO: Axis Y (0.000,2440.000)]
[MSG:INFO: Motor0]
[MSG:INFO: tmc_2209 UART1 Addr:1 CS:NO_PIN Step:I2SO.5 Dir:I2SO.4 Disable:I2SO.7 R:0.110]
[MSG:INFO: Y Neg Limit gpio.33]
[MSG:INFO: Motor1]
[MSG:INFO: tmc_2209 UART1 Addr:3 CS:I2SO.14 Step:I2SO.13 Dir:I2SO.12 Disable:I2SO.15 R:0.110]
[MSG:INFO: Y2 Neg Limit gpio.35]
[MSG:INFO: Axis Z (-300.000,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: tmc_2209 UART1 Addr:2 CS:NO_PIN Step:I2SO.10 Dir:I2SO.9 Disable:I2SO.8 R:0.110]
[MSG:INFO: Z Pos Limit gpio.32]
[MSG:INFO: Motor1]
[MSG:INFO: tmc_2209 UART1 Addr:3 CS:I2SO.19 Step:I2SO.18 Dir:I2SO.17 Disable:I2SO.16 R:0.110]
[MSG:INFO: Z2 Pos Limit gpio.34]
[MSG:INFO: X Axis driver test passed]
[MSG:INFO: Y Axis driver test passed]
[MSG:INFO: Y2 Axis driver test passed]
[MSG:INFO: Z Axis driver test passed]
[MSG:INFO: Z2 Axis driver test passed]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: Using spindle NoSpindle]
[MSG:INFO: Flood coolant gpio.2]
[MSG:INFO: Mist coolant gpio.16]
[MSG:INFO: Probe Pin: gpio.36:low]
[MSG:INFO: Connecting to STA SSID:Dummy]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting..]
[MSG:INFO: Connected - IP is 192.168.1.28]
[MSG:INFO: WiFi on]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
Grbl 3.7 [FluidNC v3.7.8 (wifi) '$' for help]
And here is the result of $SS.
$SS
[MSG:INFO: FluidNC v3.7.8]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.4]
[MSG:INFO: Local filesystem type is littlefs]
[MSG:INFO: Configuration file:config.yaml]
[MSG:INFO: Machine LowRider3]
[MSG:INFO: Board Jackpot TMC2209]
[MSG:INFO: UART1 Tx:gpio.0 Rx:gpio.4 RTS:NO_PIN Baud:115200]
[MSG:INFO: I2SO BCK:gpio.22 WS:gpio.17 DATA:gpio.21]
[MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]
[MSG:INFO: SD Card cs_pin:gpio.5 detect:NO_PIN freq:20000000]
[MSG:INFO: Stepping:I2S_static Pulse:4us Dsbl Delay:0us Dir Delay:1us Idle Delay:255ms]
[MSG:INFO: User Digital Output:0 on Pin:gpio.26]
[MSG:INFO: User Digital Output:1 on Pin:gpio.27]
[MSG:INFO: Axis count 3]
[MSG:INFO: Axis X (0.000,1220.000)]
[MSG:INFO: Motor0]
[MSG:INFO: tmc_2209 UART1 Addr:0 CS:NO_PIN Step:I2SO.2 Dir:I2SO.1 Disable:I2SO.0 R:0.110]
[MSG:INFO: X Neg Limit gpio.25]
[MSG:INFO: Axis Y (0.000,2440.000)]
[MSG:INFO: Motor0]
[MSG:INFO: tmc_2209 UART1 Addr:1 CS:NO_PIN Step:I2SO.5 Dir:I2SO.4 Disable:I2SO.7 R:0.110]
[MSG:INFO: Y Neg Limit gpio.33]
[MSG:INFO: Motor1]
[MSG:INFO: tmc_2209 UART1 Addr:3 CS:I2SO.14 Step:I2SO.13 Dir:I2SO.12 Disable:I2SO.15 R:0.110]
[MSG:INFO: Y2 Neg Limit gpio.35]
[MSG:INFO: Axis Z (-300.000,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: tmc_2209 UART1 Addr:2 CS:NO_PIN Step:I2SO.10 Dir:I2SO.9 Disable:I2SO.8 R:0.110]
[MSG:INFO: Z Pos Limit gpio.32]
[MSG:INFO: Motor1]
[MSG:INFO: tmc_2209 UART1 Addr:3 CS:I2SO.19 Step:I2SO.18 Dir:I2SO.17 Disable:I2SO.16 R:0.110]
[MSG:INFO: Z2 Pos Limit gpio.34]
[MSG:INFO: X Axis driver test passed]
[MSG:INFO: Y Axis driver test passed]
[MSG:INFO: Y2 Axis driver test passed]
[MSG:INFO: Z Axis driver test passed]
[MSG:INFO: Z2 Axis driver test passed]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: Using spindle NoSpindle]
[MSG:INFO: Flood coolant gpio.2]
[MSG:INFO: Mist coolant gpio.16]
[MSG:INFO: Probe Pin: gpio.36:low]
[MSG:INFO: Connecting to STA SSID:Dummy]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting..]
[MSG:INFO: Connected - IP is 192.168.1.28]
[MSG:INFO: WiFi on]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
ok
And here’s the dump on AP Mode:
./fluidterm.sh first:
[MSG:INFO: FluidNC v3.7.8]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.4]
[MSG:INFO: Local filesystem type is littlefs]
[MSG:INFO: Configuration file:config.yaml]
[MSG:INFO: Machine LowRider3]
[MSG:INFO: Board Jackpot TMC2209]
[MSG:INFO: UART1 Tx:gpio.0 Rx:gpio.4 RTS:NO_PIN Baud:115200]
[MSG:INFO: I2SO BCK:gpio.22 WS:gpio.17 DATA:gpio.21]
[MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]
[MSG:INFO: SD Card cs_pin:gpio.5 detect:NO_PIN freq:20000000]
[MSG:INFO: Stepping:I2S_static Pulse:4us Dsbl Delay:0us Dir Delay:1us Idle Delay:255ms]
[MSG:INFO: User Digital Output:0 on Pin:gpio.26]
[MSG:INFO: User Digital Output:1 on Pin:gpio.27]
[MSG:INFO: Axis count 3]
[MSG:INFO: Axis X (0.000,1220.000)]
[MSG:INFO: Motor0]
[MSG:INFO: tmc_2209 UART1 Addr:0 CS:NO_PIN Step:I2SO.2 Dir:I2SO.1 Disable:I2SO.0 R:0.110]
[MSG:INFO: X Neg Limit gpio.25]
[MSG:INFO: Axis Y (0.000,2440.000)]
[MSG:INFO: Motor0]
[MSG:INFO: tmc_2209 UART1 Addr:1 CS:NO_PIN Step:I2SO.5 Dir:I2SO.4 Disable:I2SO.7 R:0.110]
[MSG:INFO: Y Neg Limit gpio.33]
[MSG:INFO: Motor1]
[MSG:INFO: tmc_2209 UART1 Addr:3 CS:I2SO.14 Step:I2SO.13 Dir:I2SO.12 Disable:I2SO.15 R:0.110]
[MSG:INFO: Y2 Neg Limit gpio.35]
[MSG:INFO: Axis Z (-300.000,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: tmc_2209 UART1 Addr:2 CS:NO_PIN Step:I2SO.10 Dir:I2SO.9 Disable:I2SO.8 R:0.110]
[MSG:INFO: Z Pos Limit gpio.32]
[MSG:INFO: Motor1]
[MSG:INFO: tmc_2209 UART1 Addr:3 CS:I2SO.19 Step:I2SO.18 Dir:I2SO.17 Disable:I2SO.16 R:0.110]
[MSG:INFO: Z2 Pos Limit gpio.34]
[MSG:INFO: X Axis driver test passed]
[MSG:INFO: Y Axis driver test passed]
[MSG:INFO: Y2 Axis driver test passed]
[MSG:INFO: Z Axis driver test passed]
[MSG:INFO: Z2 Axis driver test passed]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: Using spindle NoSpindle]
[MSG:INFO: Flood coolant gpio.2]
[MSG:INFO: Mist coolant gpio.16]
[MSG:INFO: Probe Pin: gpio.36:low]
[MSG:INFO: AP SSID FluidNC IP 192.168.0.1 mask 255.255.255.0 channel 1]
[MSG:INFO: AP started]
[MSG:INFO: WiFi on]
[MSG:INFO: Captive Portal Started]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
Grbl 3.7 [FluidNC v3.7.8 (wifi) '$' for help]
and $SS:
$SS
[MSG:INFO: FluidNC v3.7.8]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.4]
[MSG:INFO: Local filesystem type is littlefs]
[MSG:INFO: Configuration file:config.yaml]
[MSG:INFO: Machine LowRider3]
[MSG:INFO: Board Jackpot TMC2209]
[MSG:INFO: UART1 Tx:gpio.0 Rx:gpio.4 RTS:NO_PIN Baud:115200]
[MSG:INFO: I2SO BCK:gpio.22 WS:gpio.17 DATA:gpio.21]
[MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]
[MSG:INFO: SD Card cs_pin:gpio.5 detect:NO_PIN freq:20000000]
[MSG:INFO: Stepping:I2S_static Pulse:4us Dsbl Delay:0us Dir Delay:1us Idle Delay:255ms]
[MSG:INFO: User Digital Output:0 on Pin:gpio.26]
[MSG:INFO: User Digital Output:1 on Pin:gpio.27]
[MSG:INFO: Axis count 3]
[MSG:INFO: Axis X (0.000,1220.000)]
[MSG:INFO: Motor0]
[MSG:INFO: tmc_2209 UART1 Addr:0 CS:NO_PIN Step:I2SO.2 Dir:I2SO.1 Disable:I2SO.0 R:0.110]
[MSG:INFO: X Neg Limit gpio.25]
[MSG:INFO: Axis Y (0.000,2440.000)]
[MSG:INFO: Motor0]
[MSG:INFO: tmc_2209 UART1 Addr:1 CS:NO_PIN Step:I2SO.5 Dir:I2SO.4 Disable:I2SO.7 R:0.110]
[MSG:INFO: Y Neg Limit gpio.33]
[MSG:INFO: Motor1]
[MSG:INFO: tmc_2209 UART1 Addr:3 CS:I2SO.14 Step:I2SO.13 Dir:I2SO.12 Disable:I2SO.15 R:0.110]
[MSG:INFO: Y2 Neg Limit gpio.35]
[MSG:INFO: Axis Z (-300.000,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: tmc_2209 UART1 Addr:2 CS:NO_PIN Step:I2SO.10 Dir:I2SO.9 Disable:I2SO.8 R:0.110]
[MSG:INFO: Z Pos Limit gpio.32]
[MSG:INFO: Motor1]
[MSG:INFO: tmc_2209 UART1 Addr:3 CS:I2SO.19 Step:I2SO.18 Dir:I2SO.17 Disable:I2SO.16 R:0.110]
[MSG:INFO: Z2 Pos Limit gpio.34]
[MSG:INFO: X Axis driver test passed]
[MSG:INFO: Y Axis driver test passed]
[MSG:INFO: Y2 Axis driver test passed]
[MSG:INFO: Z Axis driver test passed]
[MSG:INFO: Z2 Axis driver test passed]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: Using spindle NoSpindle]
[MSG:INFO: Flood coolant gpio.2]
[MSG:INFO: Mist coolant gpio.16]
[MSG:INFO: Probe Pin: gpio.36:low]
[MSG:INFO: AP SSID FluidNC IP 192.168.0.1 mask 255.255.255.0 channel 1]
[MSG:INFO: AP started]
[MSG:INFO: WiFi on]
[MSG:INFO: Captive Portal Started]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
ok
I can’t tell whether the FluidTerm echo and the $SS are referring to the same event. If FluidTerm started the boot, then $SS would show us the same thing right? I don’t see anything that refers to anything that indicates whether the startup is separate from the fluidterm echo.
I feel like I’m trying to tell if something is loading, but the only way to tell causes the load.
This is exactly the problem I’ve hit while trying to troubleshoot the same problem. I need to poke at it more though, because I’ve got some weird stuff I’ve hit - it seems using the serial terminal on my phone only mostly works…? - but haven’t explored enough to feel confident in yet.
My process right now is basically:
- Power up Jackpot from 24V. (No amount of waiting causes it to connect to my network at this point, nor does it start up its own access point.)
- Connect to USB
- Reset the MCU
- Watch it connect. It usually takes about six
Connecting...
messages. - Switch to WebUI
It is. You only need $SS in the case where you boot without USB connected so you can see it live and the AP mode isn’t broadcasting.
$SS only displays the same startup text again for when you were not connected during startup and couldn’t get to it
If you are on STA mode, and it will only connect to the wifi with the USB in, then @vicious1 suggestion that the USB could be acting as an antenna seems plausible.
Try running the following command $Wifi/ListAPs both with the USB in and out and see if there is a noticeable difference in signal strength.
I wouldn’t recommend running STA mode unless you have strong wifi connection, @vicious1 won’t recommend it at all.
I have seen the behavior before that if you have a very shaky Wifi connection, FluidNC will connect, but it doesn’t have a strong enough signal to really interface with it, so you can’t connect and actually use it. But since it thinks it is connected, it also won’t fall back to AP mode.
If that is the case, then your options are to:
- Extend your network to have a very strong signal at your machine
- Get a dedicated wifi router purely for the machine to run with
- Use AP mode
We can’t really diagnose and support home network connection issues, so you’ll probably have to start with 3. If it starts up just fine in AP mode, then it’s likely a home network issue you’ll have to work through.
I just checked the signal out there and it hovers between RSSIs of 40 and 50, which is what you’d expect given that it’s about 20 feet from two different wireless access points:
Since almost no ESP32s support 5GHz wi-fi, I put it on a dedicated 2.4GHz-only SSID that I run for IoT devices, so the stations circled in blue are all visible to it. That said, STA->AP mode should have it fall back to running as an access point and that just never happens.
@dgkeith237, one thing that has helped me troubleshoot is assigning a static IP to the ESP32. Since I know it’s always at same IP address, I can run ping -t x.x.x.90
and if it decides to show up on the network, I get a response.
It “should”, but I have found it to only be reliable when there is no network connection to be made at the start. If FluidNC can initially connect, I don’t think it is 100% reliable to fall back to the AP mode. I had a similar problem, and fixed it by increasing my wifi signal.
What did you check it with? I would be more interested to see what the output of the command from FluidNC on the ESP32 is rather than what the radio in your phone is detecting.
I don’t know the exact limits of what is/isn’t a problem, but I did see the same behavior as you when my signal was weak.
I do believe this is a boot only check. If it sees the network it is in STA mode, if not AP. It will not change back and forth at any other time. That would take far to many resources to monitor both. In this case it sees a network I don’t think it even needs to connect to go straight into STA mode. It sees the SSID. It probably tries to connect repeatedly until it locks up or runs out of memory.
We should fall back to AP mode testing get that working and if you want to try STA mode after that we will have more info to go on.
Makes sense. I found yesterday while I was testing my spare that there were times even in AP mode that I got FluidNC to crash just by hitting refresh on the web at the wrong time, so it’s possible that the “fall back” I previously saw could have actually been a restart.
All this was while I was just testing and squaring etc, so I had no jobs running and wouldn’t have been able to detect a reboot.
@dgkeith237 Looking at the 2 startup logs you posted, it looks like both of those are when you are running with the USB connected to FluidTerm on startup, and are not having issues. Is that correct?
If so, for the case where it boots up and doesn’t broadcast, but then corrects itself when you connect the USB, can you run the $SS command at that point and get the startup log for the bad case?
I checked it with my phone first, but when I run $wifi/listaps
, it shows the signals as being at 64, 50, and 32. As a very simple test, I created a test SSID just now called WNC-STA
and connected the ESP to that, then had my most distant WAP (the one that reads as 64 signal strength in the list) drop the WNC-STA SSID and the ESP reported over serial that it was just disconnected from wifi. More tests would be necessary to confirm, but I think it may connect to the first AP that it finds with a matching SSID rather than the one with the best signal.
I did this a couple of times and did get it to failover to AP mode from STA mode once, but only once it was down to a single SSID. Pure guesswork on my part, I think there may be a bug in the wifi logic where it ends up flagging a single WAP as bad, but if there are other WAPs on that SSID, it ends up in an odd state.
In any case, I don’t think wifi is the problem, since the device appears to just not be booting at all:
- After that, I switched FluidNC over AP mode.
- Power cycle sans USB, wait 30 seconds (I timed it!) no AP comes up.
- Plug in USB but don’t run FluidTerm, wait 30 seconds, still no AP.
- Connect with FluidTerm, try to run commands, no response.
$ss
does nothing, trying to use the overrides to senddr
does nothing. - Ctrl+R to reset the MCU, AP is up easily within 10 seconds and I can connect to it.
Maybe there’s too much startup draw on the power supply or something? I tried starting it up, then plugging it into a USB power brick, but that didn’t help. Now that I’m writing this, it’s obvious I should have connected it to USB power and then tried powering it up… but my garage is cold and I have to start work.