Duet 2 Wifi IoT module is disappointing

  • The most frustrating aspect of this board, which is great in every other way, is the Wifi module. It's downright dangerous sometimes because I know when I want to hit emergency stop, I'm going to have to re-connect, or refresh a grayed out html screen in order to do so.

    Knowing what I know now with the many other reports of sub-par performance for this module and the fact it's the only wifi connected device I own that struggles consistently with connecting to my AP despite being the closest device to the AP, I would have much rather bought the ethernet version and run a third wifi mesh node just for this board.

    In fact I may contact Filastruder and see if I can buy an Ethernet version and send this wifi version back. Is there any reason other than cost you guys went with the Expressif hardware? Realtek and Intel make IoT networking devices. ESP is both bad and susceptible to a myriad of common attacks, and it seems that just connecting to it and trying to use it triggers a beacon or EAP client crash.

    Anyway, yeah, so if this thing can frustrate me, who has 20+ years in enterprise systems and datacenters, I don't know how your normal consumer puts up with the wifi issues. Obfuscating the issue with instructions to re-format the SD card or change wifi channel is just a smokescreen, lots of info out there in arduino communities about esp devices simply not being able to maintain connections. Next revision, please drop the bargain bin IoT networking hardware, if possible. Who knows, esp might be the only device that can run with your firmware, and if so, the wifi version should have been pulled off the drawing board.

  • I have run a Duet2 Wifi for over a year now and I have only had a couple of incidents of connectivity issues. The frequency of issues is certainly less than with a lot of other devices I have.

  • I would say someone with 20+ years of enterprise experience complaining about a wireless connection to an emergency stop button is a bit disappointing.

    If you are unable to return it, the board is the same, all you need to do is desloder the wifi module and install the ethernet module which is available. Or just run a wire to a e-stop swtich..

  • @jens55 You're a minority in the ESP32 populace and I envy your stable connection Helpful Google Search Link

    @bearer You're right. I should just hit the hardware palm slapper emergency stop button included with the kit, right? Or walk down stairs and hit the toggle on the C14 I installed for the Meanwell. Oh wait, yeah, that will that take longer than hitting F5 and spamming the button location, I bought a network connected device so I can control it through a web interface, but soldering the eth module might be an option.

    Yes this post is a product of frustration from this morning when all I wanted to do was upload a gcode file, which failed 14 times in a row because the very act of uploading it caused the espressif module to lose it's mind, for no reason. My printing enclosure is literally 18 feet from my router, which is an Asus GT-Ax11000 and it has no issues beaming wireless through physical infrastructure. My phone and laptop can connect to it through three stories of flooring and plumping.

    This is an example is an otherwise incredibly well designed and built board instilling an undeserved amount of frustration into the end user because of the less than transparent human to product interface. And it's honestly not dc42's fault, it's the devs in China, and maybe, to a lesser extent, Tensilicia because Espressif uses some closed source IP from Tensilica which allows some of these vulnerabilities to float around longer than they should. But for anyone else searching these forums for a fix, you're not alone.

  • @Dz Can you elaborate on how you came to the conclusion that there are many DUET Wifi owners that are experiencing Wifi issues? I have 6 machines all running on DUET Wifi boards for over a year and have not once had an issue related to the Wifi Module or the hardware in general.

  • @Dz said in Duet 2 Wifi IoT module is disappointing:

    You're a minority in the ESP32 populace

    its an esp2866 esp8266, but lets not let facts get in the way of a good rant.

    and yes, if you need to rely on the e-stop you should run a wire..

    post your M115 and M122 diagnostic output if you would rather want help with the issue

  • @Dz ...minority? 😉 lol
    I am running a lot of ESP32/8266 with connected sensors in my home environment without any problems.

  • Hehe, yeah, I just quickly looked at my DHCP server, and it has 17 ESP8266 devices ... of which 2 have connection issues, one very poor signal, and the other runs some code from Tiertime (nuff said). The rest are rock solid according to the logs they might have vulnerabilities but at less than $2 a pop and in a isolated network thats an acceptable cost/risk ratio for me.

  • For the "emergency stop" see also "manual emergency stop".



  • As far as WiFi goes, I had issues with the original also. I replaced the module with an ESP-07S which has an external antenna connection. No issues since doing that.

  • Consider increasing distance between access point and duet a bit, just for test. Too strong a signal is as bad as too weak for many radios (because the LNA is driven into a nonlinear region). Not sure the ESP's suffer from this too.

    Also, where is the antenne located? Not very near to an aluminium beam or other metal structure I hope?

    My Duet2Wifi has never lost it's connection unintentionally. Rock solid so far, with an old Dlink DIR-something access point in the garage. I can reach the Asus RT-AC87 AP in the house too.

  • Apropos wifi, what kind of speed do you get when uploading files from DWC?

    My duet wifi works very reliably but I wish it would be faster because Prusa Slicer times-out when uploading larger files. DWC reports a speed of ~250kb.

  • @Dz said in Duet 2 Wifi IoT module is disappointing:

    I don't know how your normal consumer puts up with the wifi issues.

    I studied normal consumers here for some time. They typically use patience, respect, and positive attitude to resolve technical problems.

  • administrators

    The internal antenna on the ESP12S is very short, much smaller than the wifi antenna in a smartphone. So unsurprisingly, it doesn't perform as well. For best wifi signal strength, mount the board vertically so that the antenna is vertical. Keep the antenna clear of metal parts of the printer structure. For situations in which these conditions can't be met, or where the WiFi signal strength is weak, use the external antenna version.

    In situations where the Duet reports poor signal strength or connectivity is intermittent, changing the WiFi router channel sometimes has a substantial effect.

    @Dz, thank you for drawing my attention to the ESP8266 vulnerabilities that were disclosed last September. According to Hackaday, two of them only apply to enterprise networks using EAP authentication, which the Duet doesn't support. The third requires the Duet to connect to a fake access point, which a Duet wouldn't try to connect to anyway, because it only connects to APs for which you have provided the SSID and password. So someone would have to impersonate the AP that you had programmed the Duet to use, with a stronger signal strength. It sounds that the investigators only managed to crash the ESP8266, not take it over. So I think the risk is low. Nevertheless, we'll update the SDK when Expressiv has fixed this.

  • @dc42 I think the crashing is due to the poor handshake manners in the ESP modules, and the vulnerabilities simply take advantage of this behavior. I'm certain this is my issues as well as @ElmoC and @joe92 after reading their threads.

    @bearer Output is below. I am not sure how much faith I have in it because re-connections arent logged (listed as zero when I have been force re-connected a dozen times in the last hour), and failed messages show zero when i have them shown in the console.

    === Diagnostics ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 3.0 running on Duet WiFi 1.02 or later
    Board ID: 08DGM-917NK-F2MS4-7JKDA-3SD6T-THT4D
    Used output buffers: 4 of 24 (11 max)
    === RTOS ===
    Static ram: 30516
    Dynamic ram: 91848 of which 32 recycled
    Exception stack ram used: 560
    Never used ram: 8116
    Tasks: NETWORK(ready,640) HEAT(blocked,1240) MAIN(running,3668) IDLE(ready,156)
    Owned mutexes:
    === Platform ===
    Last reset 16:09:17 ago, cause: power up
    Last software reset at 2020-01-30 22:29, reason: User, spinning module GCodes, available RAM 8196 bytes (slot 3)
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d
    Error status: 0
    Free file entries: 9
    SD card 0 detected, interface speed: 20.0MBytes/sec
    SD card longest block write time: 189.1ms, max retries 0
    MCU temperature: min 27.3, current 38.0, max 40.1
    Supply voltage: min 24.0, current 24.2, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: standstill, SG min/max 0/1023
    Driver 1: standstill, SG min/max 0/1023
    Driver 2: standstill, SG min/max 80/426
    Driver 3: standstill, SG min/max 0/86
    Driver 4: standstill, SG min/max not available
    Date/time: 2020-02-02 15:58:54
    Cache data hit count 4294967295
    Slowest loop: 74.46ms; fastest: 0.09ms
    I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
    === Move ===
    Hiccups: 0(0), FreeDm: 169, MinFreeDm: 109, MaxWait: 1614086ms
    Bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 6, completed moves: 6, StepErrors: 0, LaErrors: 0, Underruns: 0, 0
    === AuxDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0
    === Heat ===
    Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
    Heater 0 is on, I-accum = 0.1
    Heater 1 is on, I-accum = 0.7
    === GCodes ===
    Segments left: 0
    Stack records: 2 allocated, 0 in use
    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
    serial is idle in state(s) 0
    aux is idle in state(s) 0
    daemon is idle in state(s) 0
    queue is idle in state(s) 0
    autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 189.93ms; fastest: 0.00ms
    Responder states: HTTP(3) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
    HTTP sessions: 1 of 8

    • WiFi -
      Network state is running
      WiFi module is connected to access point
      Failed messages: pending 0, notready 0, noresp 0
      WiFi firmware version 1.23
      WiFi MAC address 60:01:94:2e:a9:1f
      WiFi Vcc 3.36, reset reason Turned on by main processor
      WiFi flash size 4194304, free heap 22144
      WiFi IP address
      WiFi signal strength -52dBm, reconnections 0, sleep mode modem
      Socket states: 2 0 0 0 0 0 0 0

  • @Dz said in Duet 2 Wifi IoT module is disappointing:

    @bearer Output is below. I am not sure how much faith I have in it

    thats hardly the point is it; but it is a quantitative report for dc42 and the other devs to evaluate the issue.

  • @bearer said in Duet 2 Wifi IoT module is disappointing:

    @Dz said in Duet 2 Wifi IoT module is disappointing:

    @bearer Output is below. I am not sure how much faith I have in it

    thats hardly the point is it; but it is a quantitative report for dc42 and the other devs to evaluate the issue

    WTF is your problem dude, seriously. I'm saying the report has proven false negatives in it.

    Let me dumb it down: If my car stalls five times in a day and the mechanic produces a diagnostics report that lists '0 stalls past 30 days' then I would have a problem with all data in the report given that one metric is known false. That's the point.

  • @Dz said in Duet 2 Wifi IoT module is disappointing:

    WTF is your problem dude, seriously. I'm saying the report has proven false negatives in it.

    and just maybe that is relevant to those evaluating if there is a problem...

  • Moderator

    Let's keep it cordial please.

  • FYI, I’ve had a lot of trouble with the WiFi cards as well - I switched to an Ethernet with a wifi repeater and it’s super solid now.

    In my setup, the cards are near a lot of metal (can’t be avoided). I have found that the interference tends to overheat the WiFi module (it gets so hot it you can’t touch it). I put a fan on it and started getting much better performance, although still not great By industry standards. Duet 3 with Pi is great though.

  • @TLAS I wonder if the Wifi module has changed between different versions of the Duet2 Wifi.

    I have v1.03 of the Duet2 Wifi and my Wifi module is only very slightly warm - The connection has also been rock solid for me, even with lots of metal nearby and the AP being located through both a wall and a ceiling.

  • @yngndrw
    Is your WiFi card near (or enclosed by) a lot of metal? Seems to have been the kicker for me. I have an older WiFi on a machine right next to the router and in a typical Rostock setup with a fan. Works OK, I get a dropout about once a month though. Same card that experienced the overheating so I’m not sure it’s a good standard to judge by.

  • @TLAS It's surrounded by aluminium extrusion (It's a Core XY machine with the board mounted at the back) and the printer is sitting on top of a metal box, but it isn't fully enclosed. I guess the environment / background noise might also have its part to play.

  • @Joel said in Duet 2 Wifi IoT module is disappointing:

    I replaced the module with an ESP-07S which has an external antenna connection. No issues since doing that.

    Did you need to do any firmware update or just a hardware swap and the duet takes care of the rest?

    Also, what gcode upload speed to you get from the duet web UI?

  • @zapta said in Duet 2 Wifi IoT module is disappointing:

    Did you need to do any firmware update

    need to flash the new module, but this is done like any other wifi firmware update (except it can't be done from DWC, you'll need serial console, PanelDue or a prepared trigger)

Log in to reply