USB oddity on Raspberry Pi with Ender 6 and other printers (power issue?)

edited August 2021 in Repetier-Server
I have two more-or-less identical setups using a Raspberry Pi (latest 4 with 4GB RAM). Both have the RPi camera, 1 usb camera and then 3 printers. They use the official power plug and no reports of voltage issues.

Setup1: 3x Voxelab Aquila
Setup2: 1x Aquila, 1x Creality Ender 3 V2 and added today 1x Creality Ender 6

All six printers use the same USB cable with the +ve blocked off. We have been running the setup for over a month 24/7 virtually and no issues.

I setup the Ender 6 today, and all was good. Then I moved the RPi and Ender 6 to their "home" and connected up the Aquila and Ender 3 again. However when I do this, the Ender 6 seems to have a melt down and the Ender 6 screen turns off. The ender 6 is stock firmware (latest) from Creality.

Troubleshoot led me to the connection of the Aquila and Ender 3, no matter if powered on, power lead connected but switched off or power lead off. I tested 5 different cables as well. No matter what the setup, the Ender 6 and the Aquila and/or the Ender 3 if connected at the same time the Ender 6 will not connect properly.

The Ender 3 and the Aquila are fine together. They have been running like 24/7 for over a month and continue to do so. Any idea what logs to look at? Could it be a limitation for data communication on the creality firmware.. seems weird one printer connecting will cause a second to stop.. when I have 3 on one RPi already.

Anyone use an Ender 6 with other printers, or maybe have some ideas? I assume its something to do with power or ground more than RS/RPi.

Console Log in RS for Ender 6:

1. Connected a second printer with the Ender 6
Mesg:22:38:30.331: Connection closed by os.

2. Removed second printer
Mesg:22:38:39.438: Dtr: true Rts: true
Mesg:22:38:39.440: Connection started
Mesg:22:38:39.440: Printer reset requested false
Mesg:22:38:39.440: Dtr: false Rts: false
Mesg:22:38:39.462: Dtr: true Rts: true
Recv:22:38:39.647: Response while unconnected:I2C_EEPROM Check Successed!
Recv:22:38:39.647: I2C_EEPROM Check Successed!
Recv:22:38:39.735: Response while unconnected:***Initing card is OK***
Recv:22:38:39.735: ***Initing card is OK***
Recv:22:38:39.753: Response while unconnected:echo:SD card ok
Recv:22:38:39.753: echo:SD card ok
Recv:22:38:42.471: Send init commands because we had no signal from a reset, assuming reset not available.
Recv:22:38:42.472: pos absolute false
Send:22:38:42.472: N1 M110
Send:22:38:42.472: N3 M115 ; Get firmware capabilities and info
Send:22:38:42.472: N4 M220 S100 ; Speed multiplier 100%
Send:22:38:42.472: N5 M221 S100 ; Flow multiplier 100%
Send:22:38:42.472: N6 G92 E0
Send:22:38:42.472: N7 G90
Recv:22:38:42.472: pos absolute true
Send:22:38:42.472: N8 M82
Recv:22:38:44.534: Response while unconnected:===Initing RTS has finished===
Recv:22:38:44.534: ===Initing RTS has finished===
Recv:22:38:44.540: Response while unconnected:Error:Line Number is not Last Line Number+1, Last Line: 0
Recv:22:38:44.540: Error:Line Number is not Last Line Number+1, Last Line: 0
Recv:22:38:44.543: Resend: 1
Recv:22:38:44.543: Ignore due to resend: ok
Send:22:38:44.624: Resend: N1 M110
Recv:22:38:44.817: Response while unconnected:echo:Unknown command: "220 S100"
Recv:22:38:44.817: echo:Unknown command: "220 S100"
Recv:22:38:44.817: Connection verified by:ok
Recv:22:38:44.818: ok (2)
Send:22:38:44.818: Resend: N8 M82
Recv:22:38:44.825: Error:Line Number is not Last Line Number+1, Last Line: 1
Recv:22:38:44.827: Resend: 2
Recv:22:38:44.827: Ignore due to resend: ok
Send:22:38:44.921: Resend: N5 M221 S100 ; Flow multiplier 100%
Recv:22:38:44.929: Error:Line Number is not Last Line Number+1, Last Line: 2
Recv:22:38:44.931: Resend: 3
Recv:22:38:44.931: Ignore due to resend: ok
Send:22:38:45.013: Resend: N3 M115 ; Get firmware capabilities and info
Recv:22:38:45.035: FIRMWARE_NAME:Marlin Creality 3D SOURCE_CODE_URL: PROTOCOL_VERSION:1.0 MACHINE_TYPE:Ender-6 EXTRUDER_COUNT:1 UUID:cede2a2f-41a2-4748-9b12-c55c62f367ff
Recv:22:38:45.037: Cap:SERIAL_XON_XOFF:0
Recv:22:38:45.040: Cap:BINARY_FILE_TRANSFER:0
Recv:22:38:45.040: Cap:EEPROM:1
Recv:22:38:45.043: Cap:VOLUMETRIC:1
Recv:22:38:45.045: Cap:AUTOREPORT_TEMP:1
Recv:22:38:45.046: Cap:PROGRESS:0
Recv:22:38:45.048: Cap:PRINT_JOB:1
Recv:22:38:45.048: Cap:AUTOLEVEL:0
Recv:22:38:45.051: Cap:Z_PROBE:0
Recv:22:38:45.051: Cap:LEVELING_DATA:0
Recv:22:38:45.054: Cap:BUILD_PERCENT:0
Recv:22:38:45.056: Cap:SOFTWARE_POWER:0
Recv:22:38:45.057: Cap:TOGGLE_LIGHTS:0
Recv:22:38:45.059: Cap:CASE_LIGHT_BRIGHTNESS:0
Recv:22:38:45.062: Cap:EMERGENCY_PARSER:0
Recv:22:38:45.065: Cap:PROMPT_SUPPORT:0
Recv:22:38:45.068: Cap:AUTOREPORT_SD_STATUS:0
Recv:22:38:45.068: Cap:THERMAL_PROTECTION:1
Recv:22:38:45.070: Cap:MOTION_MODES:0
Recv:22:38:45.074: Cap:CHAMBER_TEMPERATURE:0
Recv:22:38:45.074: ok
Send:22:38:45.074: Resend: N8 M82
Recv:22:38:45.081: Error:Line Number is not Last Line Number+1, Last Line: 3
Recv:22:38:45.084: Resend: 4
Recv:22:38:45.084: Ignore due to resend: ok
Send:22:38:45.166: Resend: N4 M220 S100 ; Speed multiplier 100%
Recv:22:38:45.173: ok
Send:22:38:45.174: Resend: N6 G92 E0
Recv:22:38:45.181: Error:Line Number is not Last Line Number+1, Last Line: 4
Recv:22:38:45.183: Resend: 5
Recv:22:38:45.183: Ignore due to resend: ok
Send:22:38:45.264: Resend: N5 M221 S100 ; Flow multiplier 100%
Recv:22:38:45.273: ok
Send:22:38:45.273: Resend: N7 G90
Recv:22:38:45.280: Error:Line Number is not Last Line Number+1, Last Line: 5
Recv:22:38:45.282: Resend: 6
Recv:22:38:45.282: Ignore due to resend: ok
Send:22:38:45.363: Resend: N6 G92 E0
Recv:22:38:45.376: ok
Send:22:38:45.376: Resend: N8 M82
Recv:22:38:45.383: Error:Line Number is not Last Line Number+1, Last Line: 6
Recv:22:38:45.386: Resend: 7
Recv:22:38:45.386: Ignore due to resend: ok
Send:22:38:45.467: Resend: N7 G90
Recv:22:38:45.474: ok
Send:22:38:45.474: Resend: N8 M82
Send:22:38:45.474: N9 G21 ; Use mm as unit
Send:22:38:45.474: N10 M114
Send:22:38:45.474: @getip
Send:22:38:45.477: N12 M155 S1
Send:22:38:45.477: M117
Recv:22:38:45.489: ok (5)
Send:22:38:54.462: @getip
Send:22:38:54.465: M117
Recv:22:38:54.470: ok

output from dmesg relating to the steps above
[ 1945.179229] usb 1-1.2: ch341-uart converter now attached to ttyUSB0
[ 1995.223521] ch341-uart ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
[ 1995.224039] ch341-uart ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
[ 1995.426165] usb 1-1.2: USB disconnect, device number 14
[ 1995.427102] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[ 1995.427193] ch341 1-1.2:1.0: device disconnected
[ 1995.972992] usb 1-1.4: new full-speed USB device number 15 using xhci_hcd
[ 1996.109103] usb 1-1.4: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64
[ 1996.109123] usb 1-1.4: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 1996.109139] usb 1-1.4: Product: USB Serial
[ 1996.113854] ch341 1-1.4:1.0: ch341-uart converter detected
[ 1996.119318] usb 1-1.4: ch341-uart converter now attached to ttyUSB0
[ 2003.551512] ch341-uart ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
[ 2003.583034] ch341-uart ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
[ 2003.619349] usb 1-1.4: USB disconnect, device number 15
[ 2003.620328] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[ 2003.620394] ch341 1-1.4:1.0: device disconnected
[ 2004.173032] usb 1-1.2: new full-speed USB device number 16 using xhci_hcd
[ 2004.309141] usb 1-1.2: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64
[ 2004.309160] usb 1-1.2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 2004.309176] usb 1-1.2: Product: USB Serial
[ 2004.313878] ch341 1-1.2:1.0: ch341-uart converter detected
[ 2004.319372] usb 1-1.2: ch341-uart converter now attached to ttyUSB0


  • edited August 2021
    While not related to my bug issue above yet, the Ender 6 has a default Marlin 1 firmware from Creality.

    I am likely going to try the Marlin 2.0 fork by InsanityAutomation -
    Firmware: Files/

    My Aquilas had their own version of Marlin 1.x from Voxelab/FlashForge and didnt disconnect like the E6 is doing. Hopefully this resolves my issue - I will test on Sunday most likely.

    Plan B is a Klipper option..
  • Does not look like a server issue. 
    [ 1995.223521] ch341-uart ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
    That is your real problem. You see every time the linux driver has that error it disconnects usb immediately.
    Are all printers on the same 220V phase? To be 100% sure set in printer config USB Reconnect on Timeout to never.

  • edited August 2021
    Thank you. I was leaning to a power issue of some sorts. The RPi and all three printers are all plugged into the same wall socket via a 4 way multi plug - each printer has their own TP-Link KP115 for power control.

    I have updated the Ender 6 firmware to the InsanityAutomation version of Marlin 2.0.9 - I will test the USB issues tomorrow.
  • I have borrowed another Ender 3 for testing. The Ender 6 runs with that Ender 3. But with my Ender 3 and/or Aquila the Ender 6 display goes blank and disappears.

    Both my Ender 3 and Aquila have a 24v LED bar attached to the power supply. I wonder if that is the underlying cause.

    But strange i have a various mixture for Aqulias and Ender 3s all with the same LED bar and they dont have issues with each other..

    I will dig into it further and will update as i progress, but seems it is a power issue.
  • I found the issue to be my Ender 3 and Aquila appears to have the 24V ground and the Mains Earth connected via the frame. It seems to be the SD card/USB port of the main board touching the metal frame.

    I am unsure why the borrowed Ender 3 does not cause the issue, maybe when I opened the Ender 3/Aquila I caused the PSU earth to connect to the printer frame by damaging the paint coating.

    I am building an enclosure, so the PSUs will be removed from the printer which will fix this issue for me.
  • Great you found it. Did not know that this would be a problem. Thought 24V ground is same as 5v ground on usb.
    But there can be a problem with earth since pi power supply has no own earth, so it gets it from printers and if they differ you might get in trouble like you.
  • What it seems to be is maybe the non-accessible USB Port of the Ender 6. The board lies beneath the printer and you have to remove 8 bolts to get to it and then run a cable out. The Other printers the USB comes out the side and touches the frame. So possibly that is a difference..

    But it works, and that is all that matters <span>:smiley:</span>. Thanks for the help, our details on the Power was spot on.
  • @twobit ; - Just had a chance to test on a new Ender 6 demo unit someone gave me.  Same issue.  So I indeed think it has to do with the grounding / bad contact of the USB port on the Ender 6.  It's located in such a ridiculous spot.  What I did was added a small USB extension cable which is insulated (it has plastic around the connectors on both ends) and ran it outside the main box and use that as a USB plug.  No idea why they decided to hide the USB port when on every other model it's visible.

    Anyway that worked.  Another thing that helped ALOT was to tape over the 5v port on the USB cable to stop the NUC/Raspberry from sharing power with the Ender 6 which is causing noise / dirty power due to ground fault issues.

    Once I did that it worked much better.  I then added a UPS (battery backup) with proper voltage regulation and it 100% fixed everything.  I live in a region with crappy power supply over main lines and it's not clean energy to be honest.  The UPS and voltage regulator seems to help.

    I suspect the USB port location on the Ender 6 combined with the metal frame pieces causes some grounding issues and with un-insulated USB connectors can cause noise on the lines.  Isolating them and stopping the 5v transfer between the NUC/Pi and the Ender 6 helps.  Just my 2 cents.
  • I do have the 5v isolated on the USB. I do agree, likely the Ender 6 is the root cause, but it was easier to strip my two little ones haha.

    I ran a 2m cable out the bottom and added extra insulation around the areas it gets to the frame and at the board as an extra.

    Now just have to get a good level bed... im trying the InsanityAutomation fork -
    Firmware: Files/

    With the manual mesh option. Hopefully it works well soon haha.
  • @twobit Yepppppp.  So the bed level, I love Enders even though I shouldn't and I get amazing results but it took me 5 months of trial and error (and I run a print farm).  So with all Enders including the 6 I highly suggest a BLTouch.  Yeah, we can level beds on our own, fine, but the Creality printers are weird, and seriously -- they are hard to level without a probe.  I use a BLTouch from Amazon (less than $20 outside USA - probably cheap inside) and flashed the correct firmware for it (  That is enough but - 

    If you want to go a step further you can just add a BLTouch and then compile Marlin (I am not saying Marlin is better, use whatever firmware, Repetier admins please don't delete this, I am not advertising some other firmware to be a jerk, I love your work), there is a Github repo with good notes:

    Anyway compile Marlin 2.0.8 with the proper adjustments and flash it (with or even without a probe) and you will get way better results. The stock Creality firmware uses an old Marlin (but stable, I get it) and it has lots of useful bed level assistant options disabled.

    With a probe + proper firmware the Ender 6 is a dream machine, hands down.  If you spent the money on an Ender 6 it's worth the extra $ to just get a probe.   Assuming you do get a probe (do it, trust me, I do this for a living and a passion, it's worth it with the Ender, even if you know how to level any other printer like a probe) - you can then use a simple Bed Level Visualizer, you just run a quick GCode command to get the probe data and paste it into a visualizer and you'll instantly see what adjustments to make - an example:

    Other print servers also have plugins for this and it's amazing.  In fact, Repetier Server is so dang good I switched to it for our entire operation but that is the ONLY feature I miss.  I seen a thread about the reasons why they haven't added this yet and it's complicated but we need it so bad.
  • I have a BLTouch 3.1 on my Ender 3 v2 and its been problems which is why I havent tried one on the Ender 6, also the Ender 6 Sprayboard seems to have issues with the BLTouch and need to plug straight to the main board, which is headache too.
  • @twobit Yes x2, I had to compile my own Marlin release to fix the issue.  The stock firmware was a mess. 
  • I didn't read through this whole conversation, but will state the Ender 6 has a known issue (shorting) with the USB and has burned up many a board, Pi, and the touch screen. I don't have one so not sure of the specifics , but I think it's actually a short at the screen? or connection to the screen that feeds back into the USB.. ? Personally, if you have a stock board on the Ender 6 I would disconnect it from the Pi, especially if it's tied in with other printers till you know more! 
  • @Thomllama yeah it's the connectors shorting, you can isolate them to fix it but yep it's a known thing. 
Sign In or Register to comment.