UNSOLVED Maestro issues (Firmware not updating and no ethernet)



  • So I have successfully flashed the new 3.2 firmware onto the board through BOSSA, however I still have the same issue with the ethernet. No lights, and no DHCP lease. Is there anything else I can do to troubleshoot? I have tried with and without the SD card inserted, I have tried multiple ethernet cables, and even different routers. No chips are noticeably warm either.

    @dc42 mentioned in a previous thread to run the following commands to help troubleshoot. (https://forum.duet3d.com/topic/12923/duet-maestro-seems-to-have-died/4)

    Connecting...
    Error: Temperature reading fault on heater 0: sensor short to other wiring
    ok T:2000.0 /0.0 T0:2000.0 /0.0
    Printer is now online.
    >>>M552
    SENDING:M552
    Network is enabled, configured IP address: 0.0.0.0, actual IP address: 0.0.0.0
    >>>M39
    SENDING:M39
    SD card in slot 0: capacity 0.50Gb, free space 0.49Gb, speed 15.00MBytes/sec, cluster size 8kb
    >>>M503
    SENDING:M503
    ; Configuration file for Duet Maestro (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Tue Aug 04 2020 17:02:35 GMT-0400 (EDT)
    ; General preferences
    G90                                         ; send absolute coordinates...
    M83                                         ; ...but relative extruder moves
    M550 P"Dremel 3D20"                         ; set printer name
    ; Network
    M551 P"f00bar!23"                           ; set password
    M552 P0.0.0.0 S1                            ; enable network and acquire dynamic address via DHCP
    M586 P0 S1                                  ; enable HTTP
    M586 P1 S0                                  ; disable FTP
    M586 P2 S0                                  ; disable Telnet
    ; Drives
    M569 P0 S1                                  ; physical drive 0 goes forwards
    M569 P1 S1                                  ; physical drive 1 goes forwards
    M569 P2 S1                                  ; physical drive 2 goes forwards
    M569 P3 S1                                  ; physical drive 3 goes forwards
    M584 X0 Y1 Z2 E3                            ; set drive mapping
    M350 X128 Y128 E64 I0                       ; configure microstepping without interpolation
    M350 Z16 I1                                 ; configure microstepping with interpolation
    M92 X711.00 Y711.00 Z400.00 E400.00         ; set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00         ; set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z360.00 E1200.00     ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z50.00 E250.00         ; set accelerations (mm/s^2)
    M906 X800 Y800 Z800 E800 I30                ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                     ; Set idle timeout
    ; Axis Limits
    M208 X-20 Y0 Z0 S1                          ; set axis minima
    M208 X275 Y150 Z150 S0                      ; set axis maxima
    ; Endstops
    M574 X2 S1 P"!xstop"                        ; configure active-high endstop for high end on X via pin !xstop
    M574 Y2 S1 P"!ystop"                        ; configure active-high endstop for high end on Y via pin !ystop
    ;M574 Z1 S1 P"!zstop"                        ; configure active-high endstop for low end on Z via pin !zstop
    M574 Z1 S2                                  ; configure Z-probe endstop for low end on Z
    ; Z-Probe
    M558 P8 C"^zprobe.in" H1 F120 T6000         ; set Z probe type to unmodulated and the dive height + speeds
    G31 P500 X3.0 Y-33 Z1.073                   ; set Z probe trigger value, offset and trigger height
    M557 X10:224 Y7:150 S30                     ; define mesh grid
    M671 X65:165:116 Y10:10:150                 ; set positions of bed levelling screws
    ; Heaters
    M140 H-1                                    ; disable heated bed (overrides default heater mapping)
    M308 S0 P"spi.cs1" Y"thermocouple-max31856" ; configure sensor 0 as thermocouple via CS pin spi.cs1
    M950 H0 C"e0heat" T0                        ; create nozzle heater output on e0heat and map it to sensor 0
    M307 H0 B0 S1.00                            ; disable bang-bang mode for heater  and set PWM limit
    ; Fans
    M950 F0 C"fan0" Q500                        ; create fan 0 on pin fan0 and set its frequency
    M106 P0 S0 H0 T45                           ; 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                              ; set fan 1 value. Thermostatic control is turned off
    M950 F2 C"fan2" Q500                        ; create fan 2 on pin fan2 and set its frequency
    M106 P2 S0 H-1                              ; set fan 2 value. Thermostatic control is turned off
    ; Tools
    M563 P0 D0 H0 F0:1                          ; define tool 0
    G10 P0 X0 Y0 Z0                             ; set tool 0 axis offsets
    G10 P0 R0 S0                                ; set initial tool 0 active and standby temperatures to 0C
    ; Custom settings are not defined
    ; Miscellaneous
    T0                                          ; select first tool
    >>>M122
    >SENDING:M122
    >=== Diagnostics ===
    >RepRapFirmware for Duet 2 Maestro version 3.2 running on Duet Maestro 1.0
    >Board ID: 08DAM-9F9GA-J24TD-6JKDA-3SN6T-T40LV
    >Used output buffers: 1 of 24 (1 max)
    >=== RTOS ===
    >Static ram: 22292
    >Dynamic ram: 66368 of which 40 recycled
    >Never used RAM 26132, free system stack 204 words
    >Tasks: NETWORK(ready,550) HEAT(blocked,245) TMC(blocked,123) MAIN(running,497) IDLE(ready,20)
    >Owned mutexes: USB(MAIN)
    >=== Platform ===
    >Last reset 00:02:18 ago, cause: reset button
    >Last software reset details not available
    >Error status: 0x00
    >Aux0 errors 0,0,0
    >MCU temperature: min 37.0, current 37.9, max 38.2
    >Supply voltage: min 0.0, current 0.6, max 0.7, under voltage events: 0, over voltage events: 0, power good: no
    >Driver 0: position 0, ok, read errors 0, write errors 0, ifcnt 0, reads 0, writes 0, timeouts 0, DMA errors 0
    >Driver 1: position 0, ok, read errors 0, write errors 0, ifcnt 0, reads 0, writes 0, timeouts 0, DMA errors 0
    >Driver 2: position 0, ok, read errors 0, write errors 0, ifcnt 0, reads 0, writes 0, timeouts 0, DMA errors 0
    >Driver 3: position 0, ok, read errors 0, write errors 0, ifcnt 0, reads 0, writes 0, timeouts 0, DMA errors 0
    >Driver 4: position 0, ok, read errors 0, write errors 0, ifcnt 0, reads 0, writes 0, timeouts 0, DMA errors 0
    >Driver 5: position 0, ok, read errors 0, write errors 0, ifcnt 0, reads 0, writes 0, timeouts 0, DMA errors 0
    >Driver 6: position 0, ok, read errors 0, write errors 0, ifcnt 0, reads 0, writes 0, timeouts 0, DMA errors 0
    >Date/time: 1970-01-01 00:00:00
    >Slowest loop: 2.05ms; fastest: 0.17ms
    >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: 15.0MBytes/sec
    >SD card longest read time 0.4ms, write time 0.0ms, max retries 0
    >=== Move ===
    >DMs created 83, maxWait 0ms, bed compensation in use: none, comp offset 0.000
    >=== MainDDARing ===
    >Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
    >=== AuxDDARing ===
    >Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
    >=== Heat ===
    >Bed heaters = -1 -1, chamberHeaters = -1 -1
    >=== 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 ready with "M122" 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.
    >=== Network ===
    >Slowest loop: 0.31ms; fastest: 0.02ms
    >Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions
    >HTTP sessions: 0 of 8
    >Interface state establishingLink, link down
    

  • administrators

    When you boot up with the SD card removed, does the hot end still power on immediately?



  • @dc42 said in Maestro issues (Firmware not updating and no ethernet):

    When you boot up with the SD card removed, does the hot end still power on immediately?

    It no longer seems to be experiencing this fault with or without the SD card being inserted.

    I powered the board from my printer's PSU and connected the USB to my laptop (running off battery to avoid ground loops) and the heater and thermocouple board seem to be working properly.

    (Aside: When I don't have an SD card inserted, it still can read the proper temperature from the thermocouple board. This surprised me as I had assumed that the config.g file was not loaded into flash. I would have expected garbage values without the config.g file present on the SD card to tell the firmware to utilize the optional board)



  • Still no ethernet? I figured I'd try to build RRF3.2 for the Maestro with the changes indicated in this post: https://forum.duet3d.com/post/200505

    to see if that would skip past the auto negotiation and bring the link up, but ran into some errors building it - will poke it some when i find the time

    meanwhile if you have a managed switch, you could try setting a fixed link speed on the port the maestro is connected to.



  • @bearer said in Maestro issues (Firmware not updating and no ethernet):

    meanwhile if you have a managed switch, you could try setting a fixed link speed on the port the maestro is connected to.

    Unfortunately none of my switches are managed. I do have a spare wireless router that is compatible with DD-WRT which I could test with.

    I guess one other thing I could test is to go back to 3.1.1 and see if it's able to get a lease now that I've reflashed the firmware via BOSSA, as it was able to previously.



  • I remembered that I had an old router that only had 10/100 ports on it in the basement. After dusting it off and setting it up, I found that there was no difference. Still no lights, and no lease. I even tried again with a static IP to no avail.



  • The maestro is only 10/100 as well, but a very small handful of users have experienced incompatibility with some network gear and auto negotiation.

    Perhaps the easiest test is to try a direct cable connection to a computer, and change the drivers on the computer to have a fixed 100M full duplex connection instead of auto negotiation.



  • I'll give it a try, but I don't understand why it no longer works with the exact same hardware.



  • I connected my laptop and the board to each other through ethernet, set my laptop's IP to 192.168.0.2, subnet 255.255.255.0, gateway to 192.168.0.1, speed to 100baseT, and the printer's IP to 192.168.0.3, subnet 255.255.255.0, gateway to 192.168.0.1. No change. Also tried changing it between half and full duplex.

    I also just downgraded the firmware to 3.1.1 through BOSSA as that was the original firmware version that it worked on, but the ethernet doesn't work on it either.


  • Moderator

    It seems like whatever failure/short happened to cause the hotend to power up uncontrolled also damaged the ethernet port. Can you disconnect everything and get some clear, well-lit photos of the board? Perhaps we can spot a damaged component.



  • Here you go: https://www.dropbox.com/sh/d23sm2xxk35xh3v/AABKB4PaqMS7xzck2IXK-XPKa?dl=0

    (The little black circle on the bottom left of the Wiznet chip seemed to be a little bit of finger oil, which came off with some isopropyl. IMG_5878.jpg and IMG_5880.jpg were taken after cleaning)

    I don't see any obvious evidence of a damaged component.


  • Moderator

    Nothing jumps out at me either, but failures aren't always spectacular.

    When and where did you purchase the Maestro?



  • I purchased it from spool3d.ca on October 15th, 2019. It's taken quite a while to get everything set up - it has only done one print so far.


  • Moderator

    That is unfortunately well out of warranty.

    Perhaps @bearer may have a keener eye and can spot something in your photos or has an idea on potential repair.



  • I see. I'm kind of bummed out here to be honest, as this is the second piece of Duet hardware that has failed on me. The first being the IR sensor, which had a bad solder joint on the IR receiver, and now this. This certainly isn't something I would have expected from a premium product.


  • Moderator

    If you wish you can contact roland@duet3d.com and inquire about doing an exchange for a refurbished board at reduced cost, subject to availability.

    But hopefully bearer or DC42 has a better idea of what could have gone wrong and whether it's repairable. From the troubleshooting we've done it's safe to say that the network interface is no longer working.



  • (Pardon the delay)

    I missed that it worked prior to the upgrade; to troubleshoot I'd probably monitor the SPI bus between the W5500 and CPU and replace whichever failed to initialize as can't see any obvious failures.



  • I assume I would need a logic analyzer or oscilloscope with decoding functionality in order to do that?

    Are the pins exposed on some easily accessible test point? I don't see any traditional SPI pins on the back.

    Would it be possible for back-emf to destroy one of the stepper drivers is such a way that it would be messing up the rest of the SPI bus? I had my cantilevered bed fall a short distance before I noticed the board went bad.



  • @j3d said in Maestro issues (Firmware not updating and no ethernet):

    Are the pins exposed on some easily accessible test point?

    no, but the kicad sources are available https://github.com/Duet3D/Duet-2-Hardware/tree/master/Duet2/Duet2Maestro_v1.0 your options are the vias on the bottom or the pins on the top. and yes a logic analyzer would help.

    if lacking then starting with replacing the w5500 would be my bet, or you could try https://forum.duet3d.com/post/127089 - or as Phaedrux suggest maybe a refurbished exchange.



  • Do you happen to know what the SPI frequency is?



  • not sure, but i think <=12mhz (could be 1mhz but not too familiar with the code, which is also available on the duet3d github)

    (also stepper drivers on the maestro use uart, not spi)



  • I just received a response from my reseller saying that Duet discontinued the Maestro? Is this true? I haven't been able to find it in stock anywhere in Canada.


  • Moderator

    @j3d Yes, that is correct. The Maestro is no longer being made, though there may still be some boards out in the wild for sale.

    The replacement board is the Duet3 Mini5+ which is currently in early production and hitting retailers now.



  • @dc42 Is there any way that we can try and debug the SPI connection between the MCU and the PHY through firmware?


  • Moderator

    @Phaedrux said in Maestro issues (Firmware not updating and no ethernet):

    If you wish you can contact roland@duet3d.com and inquire about doing an exchange for a refurbished board at reduced cost, subject to availability.

    Have you taken advantage of this yet?


Log in to reply