MCU Connection Error, Kobra 1 Plus, TriGorilla ProB

Basic Information:

Printer Model: Anycubic Kobra Plus (Original)
MCU / Printerboard: TriGorilla Pro B v1.0.2
Host / SBC: RPi4 B
klippy.log
klippy.log (46.4 KB)

Describe your issue:

I’ve got an early version Kobra Plus, that originally came with a ProA board. I had upgraded the hotend to a E3D Revo 6, and due to some friction that I didn’t notice on the heater block wiring, it shorted against the frame and blew two resistors on my mainboard. (It would still work over SD card, but not USB to OctoPrint.)

I ordered a replacement from Anycubic, and they sent me the Pro B board.

I have been using this successfully for a while now, but severely missed my custom firmware that gave my ABL a 6x6 probe area, because my bed (or the nozzle ABL) sucks just enough to be annoying, and doesn’t adjust properly for one small area of the bed, causing print adhesion issues. Due to this, I tried upgrading to Klipper.

This is where I’ve hit some more friction. I’ve attempted using the RPi bootloader to install Klipper and flash the firmware, I’ve tried KIAUH, I’ve tried Catboat’s repository for KIAUH, I’ve even traced out the blown resistors on my ProA board, replaced them with some I had from a spare ProB board (suffered similar fate to the ProA, before I found the source of the original issue) and resurrected it to the point of working with a USB connection again… But I still keep having the same issue.

The ProA won’t seem to flash correctly anymore, so it’s stuck on my old custom marlin firmware, so I’ve kind of given up there.

My good ProB board will accept firmware flashes, but I cannot seem to get Klipper/Moonraker/Mainsail to communicate over USB.

I have verified both through /dev/serial/by-id/* and through KIAUH that the RPi is seeing the printer MCU, and tried multiple cables that I’ve verified are actually data USB-C cables through other sources (connecting my phone to computer, checking through OctoPrint on my old SD card, etc) I’ve tried both setting baud rate to the 115200 settings that OctoPrint would talk to the MCU on and default settings but with no success.

I’ve scoured the Discourse forums and reddit for an answer, and everything that’s seemed to work for others does not seem to work for me.

Every time I get this dreaded output from my logs:

mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/farrit/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/farrit/klipper/klippy/serialhdl.py", line 262, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/farrit/klipper/klippy/serialhdl.py", line 319, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/farrit/klipper/klippy/serialhdl.py", line 254, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/farrit/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed

The only thing I am not certain is actually working correctly is that the MCU is taking the firmware correctly. If I try to load Marlin back into it, it works fine, first attempt.

  • Plug in SD card,
  • Power on, few seconds later, 5 beeps.
  • Power down, remove SD card
  • Power on, Screen comes to life, sitting on the main page and responds to commands

However when I use the same SD card to attempt to load the Klipper firmware, I get the 5 beeps immediately. If I let it sit (once even overnight) before powering down to remove the SD and reboot, I still get the communication error. If I attempt to power cycle it a few times before power down and removing the SD cards, same result.

I feel like I’m spinning in circles here and I’m getting incredibly frustrated. And I fix commercial 3D printers all day as my career, so you know that’s saying a lot.

I’m trying to find an option that doesn’t result in me having to replace my MCU again, especially as the Kobra Plus doesn’t have a way of leveling the bed without the ABL, and if I did, I’d also have to upgrade to a BLTouch at minimum - and my wife thinks I have already spent too much time on this.

Any and all help would be much appreciated. Thank you in advance. I can’t wait to join this community fully.

Hello Farrit,

as you know i have the same issue and no solution for that for the moment.

But an other point:
In your printer.cfg you are using pin PB6 as pwr enable? I think its an own designed power switch isnt it? There is a “masterswitch” mosfet installed on the Trigorilla Pro B to enable the power for the heaters. Because of that you have to add following too.

[output_pin power_ctrl]
pin: PB4
value: 1

I hope somebody can help us with our problem and we can find a solution.

I have tried to add an SPST between RST and GND but it seems to make no diffrent.

1 Like

Yeah, I’ve been trying so many different configs and firmware flashes, I think I must have forgotten to confirm that was in this one. Thank you for the catch!

Solidarity to us Kobra boys, left on the sidelines :frowning:

DUDE. @DerGrinch I GOT IT WORKING.

Here are my settings.


My exact process was: Printer on, Insert SD card, I jumped RST and Ground, the flash noise happened, then popped out the SD card.

This whole time my printer was connected to my RPi4 and all of a sudden it just started working Let me know if this works for you!!!

1 Like

OMG you are a god! Thanks, its working for me too.

I read everytime to use 0x10000 for the application address, how did you get to use 0x8000?

Great work!

1 Like

I’m not super sure. I was just getting fed up, I defaulted my whole make configuration and tried each address one at a time. I knew the serial was going to be 15/9 because every ProB I’ve read has been using it, the only tossups being clock and the address. I’ve seen both clock speeds used and I’ve only seen the 0x01000 address written, but it wasn’t noted at all on a lot of the posts.

Thank you! I am encountering the same issue and suspect that this will resolve it. I will try this in the morning.

1 Like

@Farrit or @DerGrinch would one of you mind sharing your printer.cfg? I got as far as flashing the firmware. The board doesn’t beep at startup anymore but klipper still cannot connect to it. I have confirmed that the /dev usb port in my cfg file is correct. I built the firmware with the settings in the screenshot above. I suspect that my cfg file is missing something.

Hello @sch00n3r.

For this thread is already solved and you have your own unsolved problem, I strongly recommend to open a new thread with all requested information.

config-20241130-193645.zip (5.5 KB)

Here is my printer.cfg file.

i have also included my macro.cfg, as most of my macros are stored there so I don’t have to reboot every time I need to make a change.