I fixed my Artist-D Pro, you will not believe what was wrong.

As you all know I thought my right (second) extruder was broken because it was heating up, but the stepper motor was not turning. So here is what I learned, most of it from people in this group and by breaking stuff. I am sharing this to help other readers. [LIST=1]

  • The cable breakout boards on the top of the right and left extruder are different, and the board in the Artist-D and Artist-D Pro are different.
  • If you mess this up, you will smoke your ribbon cables, which is a lot better than damaging your main controller but still quite disturbing.
  • To remove the bottom cover of the printer, you need to heat up the area on the bottom around when the gantry bolts go through the bottom. There are foam blocks under the back panel that is glued to the panel and the printer. After you remove all of the small bolts, this glue will hold the panel in place.
  • After opening up the printer, I was impressed with the quality of the build. All cables were tied down and neatly arranged. The power supply on my Pro model was a Maxwell power supply. The main power leads we in connectors and properly attached to the power supply.
  • Since I did not know what was holding the back panel in place, I removed the gantry (four bolts). This is unnecessary, and putting these bolts back in is painful since the printer is heavy, and it is hard to get the bolts to line up. [/LIST] However, all of that was not necessary.

    I discovered my problem was a firmware user interface bug.

    The front panel filament load and extruder movement command control only the left extruder when your printer is in duplicate mode. So if you are trying to load filament in the right extruder, you think it is broken. The temperature controls do work properly, so this led me to believe my stepper motor was either broken or the cabling, etc., was the problem.

    I understand how this coding error could occur and even understand the programmer may think this is correct. However, if you want to change filament for a duplication print job, you need to switch back to the auto park or full control mode.

    Here are some pictures of the inside of the printer you may find interesting.

    [ATTACH=JSON]{“data-align”:“none”,“data-size”:“custom”,“height”:“436”,“title”:“IMG_6513.jpeg”,“width”:“600”,“data-attachmentid”:11399}[/ATTACH]
    [ATTACH=JSON]{“data-align”:“none”,“data-size”:“custom”,“height”:“372”,“title”:“IMG_6511.jpeg”,“width”:“600”,“data-attachmentid”:11400}[/ATTACH]
    [ATTACH=JSON]{“data-align”:“none”,“data-size”:“custom”,“height”:“346”,“title”:“IMG_6516.jpeg”,“width”:“601”,“data-attachmentid”:11401}[/ATTACH]
    [ATTACH=JSON]{“data-align”:“none”,“data-size”:“custom”,“height”:“365”,“title”:“IMG_6514.jpeg”,“width”:“600”,“data-attachmentid”:11402}[/ATTACH]

    [ATTACH=JSON]{“data-align”:“none”,“data-size”:“custom”,“height”:“346”,“title”:“IMG_6506.jpeg”,“width”:“600”,“data-attachmentid”:11403}[/ATTACH]

    Continued in the next post … attachment limit reached.

  • *** Read this post second, after the one that follows it in the thread that I posted first.

    Here are the photos of the two versions of the cable breakout boards.

    What I learned from the JGMaker Facebook group is that they only used some of the traces (wires) in the ribbon cable. In the V1.2 Pro version, they increased the number of wires they use to care power.

    [ATTACH=JSON]{“alt”:“Click image for larger version Name: IMG_6508.jpeg Views: 1 Size: 3.38 MB ID: 11405”,“data-align”:“none”,“data-attachmentid”:“11405”,“data-size”:“custom”,“height”:“286”,“title”:“IMG_6508.jpeg”,“width”:“624”}[/ATTACH]
    [ATTACH=JSON]{“alt”:“Click image for larger version Name: IMG_6507.jpeg Views: 1 Size: 4.69 MB ID: 11406”,“data-align”:“none”,“data-attachmentid”:“11406”,“data-size”:“custom”,“height”:“275”,“title”:“IMG_6507.jpeg”,“width”:“623”}[/ATTACH]

    Thanks very much for this @irvshapiro1. The photos are very helpful. I have not tried to open the bottom yet. Now I know about the foam blocks.

    I am surprised about how little spare room there is inside the base, considering how big the base is.

    About the firmware issue. I did know that there are things that don’t work in Duplication or Mirror modes. I wrote about it in my original Artist D review post. One of the most important I believe is that the Z Offset setting for the right-hand extruder is inoperable in Dupe & MIrror modes. It makes sense. How would it be possible to dynamically adjust the Z Offset of 1 extruder when both extruders are on the same X rail & printing simultaneously? Of course it isn’t possible. This is probably the main reason why I say at least the right-hand extruder, if not both, should have a manual adjustment knob that can be adjusted dynamically while printing.

    @irvshapiro1 Do you think the firmware “bug” you discovered is something that will be fixed in a future firmware release? Or buried too deep in how they handle the different modes of the printer to be changed?

    There is a guy, TwinkieXLII, who’s taken on quite a bit of Artist D firmware development. It seems that even JG Maker recognizes his work, because they have a link to his github repository. I suspect that, if anyone would address this “bug”, it would be him.

    This is going to be a bit tricky to correct and it is a bug at the core of Marlin.

    First some background. Most menu commands in effect that send a Gcode command. For example, the change filament option sends an M600.

    Marlin (I am looking at the 2.x code) has built-in support for changing filament implemented as the M600 command. Here is the source code for M600:

    
    #if ENABLED(DUAL_X_CARRIAGE)
    int8_t DXC_ext = target_extruder;
    if (!parser.seen('T')) { // If no tool index is specified, M600 was (probably) sent in response to filament runout.
    // In this case, for duplicating modes set DXC_ext to the extruder that ran out.
    #if HAS_FILAMENT_SENSOR && NUM_RUNOUT_SENSORS > 1
    if (dxc_is_duplicating())
    DXC_ext = (READ(FIL_RUNOUT2_PIN) == FIL_RUNOUT_INVERTING) ? 1 : 0;
    #else
    DXC_ext = active_extruder;
    #endif
    }
    #endif
    
    

    We can see here that the M600 implementation has support for a T option (tool or extruder number). This is why when we are in the auto park or full support mode the load and unload menu options work correctly.

    My guess, and I have not found the code yet, is that when the printer is set to IDEX Mirror or Duplicate mode all T options, tool head (extruder), are ignored. For some reason when the printer is in duplicate or mirror mode it is unable to differentiate between extruding for a load/unload and extruding for a print. I am surprised that the bug did not result in extruding filament from both extruders at the same time instead of not working when T was set to 1 (the tool heads are 0 and 1).

    It may be that anytime the printer sees a tool head (T) option that is not 0 it ignores it when in Mirror or Duplicate mode. This would explain the bug.

    Either way probably not simple to correct at least not simple for me. For a Marlin expert, it may be a much easier fix.

    I hear you [USER][/USER]. Besides, I’ve been out of the programming world for some years. And Python is not a language I worked with much at all (it’s rising popularity came along at the time I was getting out). Maybe 1 of us should reach out to TwinkieXLII, to see if he’s aware of the issue and/or working on it.

    I have a jgmaker artist-d as well. I was going to upgrade the E1 extruder to a bmg with a simple mod that you can print a bracket that mounts to the top of the original fixture. My stepper cable was a little pinched but when I tried to extrude I remembered the firmware needed to be reversed. But now I put it back to normal because when I plugged in the stepper motor and tried to test it the stepper motor gear would just wobble back and forth and not fully turn. I’ve replaced the ribbon cable because we’ll just say mine got burnt per the 1st post during testing lol. But now everything is registering properly again but when I heat E1 and try to extrude from font panel the extruder does nothing. So I’m stumped. I’m also working with jgmaker. I literally had the printer 3 days and I wanted to use it with my palette 3 pro but the extruder don’t extrude consistently enough that’s why I wanted to try the bmg. But for now I’d just like ot to work stock again.

    I just managed to burn my ribbon cables too. I had a jumping heat end temp on the left head and figured I could trouble shoot if the problem is in the head or the cable/main board by switching the ribbons. Expensive mistake!
    Anyone else had the problem, that temperature seemed very delayed to heating? After switching of the hotend heater, temperature would climb another 5 to 10 degrees, then slowly falling but below the threshold after the heater switched on again, it would still fall for another 5 to 10 degrees, making it impossible to start prints. Did not do this from the beginning. I suspected a loose connection in the ribbon or thermistor. I can continue trouble shooting after my new ribbon cables arrive from China ?
    ‘This should probably be a new thread…

    I’m having a hard time understanding what you’re actually asking. I’d love to help. Are you saying basically your hotend temps aren’t holding steady? If that’s the case have you done a pid tune? As a start.

    Yes, the temperature is not holding. Did pid tune a couple times, no improvement. I suspect a problem with the thermistor or maybe the board. Looks like if there is a capacitor delaying the measurement leading to overswinging. Very strange. I thought maybe someone had a similar effect, that’s why I mentioned it.

    Do you have a link to the mod?

    I’ll get it.