wabbitguy / Kobra_Plus

Anycubic Kobra PLUS 3D Printer Firmware
GNU General Public License v3.0
18 stars 3 forks source link

Difference between Kobra Plus and Max #7

Closed xromansx closed 8 months ago

xromansx commented 8 months ago

Hi, I would like to know what are the code differences for this 2 printer or it's only bed size ?

wabbitguy commented 8 months ago

@xromansx I have no idea, I never compared the two. They do have completely different configuration files because of the size, speeds, etc.

Why would you want to know this kind of information?

xromansx commented 8 months ago

I saw some intession to port Marlin up to date FW to Max non to Plus was thinking if I can try it.

wabbitguy commented 8 months ago

@xromansx I've tried more times than I will even admit to having tried to get Marlin 2.1 just to be able to compile for the Max. It's just countless hours of tracking down stuff that doesn't work, the majority of problems all come from the implementation of the LCD screen Anycubic uses. There's custom libraries that tie into the Marlin code to "make things work". It'd be easier to use a years old LCD with a rotary encoder because that code is already in Marlin. But everyone wants these brain dead LCD touch displays that have their own firmware (closed source so we can't make them do what we want).

If you hunt around on Github you'll find a couple of guys who have tried to get Marlin 2.1 to run on their Kobra's. Like this original Kobra:

Original Kobra

But again, that's a different animal than the PLUS. And keep in mind that AnyCubic used two completely different motherboards for the Kobra series.

xromansx commented 8 months ago

I found that repository also and wanted to continue from it. my main gall was make it working without LCD and maybe later with some free time to incorporate LCD or maybe to rewrite it's FW maybe it's simple i2c LCD with known controller.

wabbitguy commented 8 months ago

@xromansx Exactly. The older I2C LCD's would be adequate for most of the operation but the problem will be with the Motherboard because they don't have an I2C output on it. Just a "serial" output. Which probably means that you'd be further ahead to change the motherboard to something completely different and use a different display.

That's if you want to continue with Marlin. The other option would be Klipper of course. For myself, if the printer gave me problems with the motherboard I'd replace it with something else and stay with Marlin.

xromansx commented 8 months ago

As I understood Klipper is like a bridge to PI so not really interested. I'm satisfied with Marlin flexibility, but if LCD is communicating through serial it doesn't have so many options and can be easier integrated in marlin(with really limited capabilities(I think that's why they add so called closed library)), interesting what controller it uses. I would like also to try https://github.com/malebuffy/Kobra-Max-Cobra-Kai-UI-and-Firmware on Plus but not sure it's compatible. Also I start using more ESP3D with Marlin, really interesting project.

wabbitguy commented 8 months ago

@xromansx Klipper requires a computer to do all the GCODE processing. Be that a Raspberry PI, or an old unused PC/MAC/Linux box. The Klipper firmware takes the motherboard in the printer and turns it into nothing more than a controller for the stepper motors. The external PI/computer then takes the GCODE, parses it, then send controller commands to the printer via USB.

Where I've found the bottle neck is that some of the motherboards use the CH340x USB to serial converter chips for communication. Those are clones of other far more reliable USB to serial chips but cost the companies pennies so that's what they use. The issue is these chips are not always 100% reliable. When that happens the printer will wander off into no mans land...not a good sign.

Even using an external host like Octoprint/Astroprint/Repetier Server, that USB chip can cause issues. On my Kobra Max I could run it from an external host for almost a year and then one day, nope. I could get a print out of it that lasted less than a couple of hours but longer than that and the printer would quit/print garbage or think it was done and freeze. So I've had to resort back to SDcard printing and sneakernet.

The other issue with the Kobra motherboards (both revisions) is that for all the bragging about 32 bit they are severely limited for memory. The stock memory used for firmware is roughly 190K. When you add in a few changes and a larger mesh for bed levelling that will push it over 200K. And at that point the motherboard will either not start or crash within seconds. So a 7 x 7 grid is as big as you can go for a mesh. If you try 8 x 8 or larger it won't work at all. Pretty funny really since the Arduino MEGA 2560 has more memory than the Kobra motherboard.

For "malebuffy's" Kobra Max GUI, it will work on a PLUS BUT you also need his Kobra MAX firmware because all the hooks he put in for the display are required. The reason he did all that is because he's burned out every USB port on the several motherboards he's replaced. He has no idea why but that's the driving force behind all his work on the firmware and LCD. And yeah, I know him as well and we've shared a lot of code with each other.

In regards to the ancient LCD2004,, is the exact opposite. It was the first that literally opened up everything Marlin had. It's a generic display/encoder. Nothing fancy at all. Thus it allows far more control than ANY current touch screen does. But new users want a "toaster" printer where they can poke and prod it like their phones or tablets. So that's what the companies will cater to.

The touch screens are really nothing more than a graphic display with a control map file that allows one to lay out areas on the screen for text to show up or a button simulation. And you can create your own screens if you own the original LCD displays the Kobra series came with. Ala a Nextion LCD. There is an editor for that display so you can change the way the screen operates (or the BMP for how it looks). I created a number of changes and new screens for my Kobra Max and PLUS firmware here. The editor isn't friendly, there's no manual, so you have to figure it out on your own but a lot of us have so it's not impossible.

The ESP3D, I remember it too. I used it for a while myself but it requires a serial port to send/receive (TX/RX) data to the printer. Easy on the old Arduino MEGA/RAMPS setups. Impossible on a lot of newer motherboard because there's no TX/RX ports left. Although maybe one could throw away the LCD on the Kobra's and tie into the RX/TX lines it uses then adjust the firmware to use that port instead of the USB port. Not sure about that.

The ESP3D was neat, but I found it kind of slow when I wanted to send it GCODE files and have it store them. It writes to the SDcard at glacial speeds. And then because I have several printers, it got more complicated. So I stopped using it, bought Repetier Server Pro, stuck that on a single Rasp PI 3 with a powered USB hub and run all my printers from it. Been running that way for a long time now except I now have an SSD on the PI cause the SDcards don't seem to have a long lifespan with constant use.

Well that's kind of long and drawn out...sorry about that. Hope you get something figured out.

Mel

xromansx commented 8 months ago

yes it's a bit strange printer has lot of potential but not so friendly to open source community. It has hc32f460 so it's quiet powerful: 168MHz 192KB SRAM 512KB FLASH

internally it has 4 usarts so LCD is using different usart. Interesting what mcu is in LCD because it's behind metal shield. This is nice repo for marlin: https://github.com/maikramer/MarlinKobraMax and lot of work was already done.

Farrit1184 commented 5 months ago

FWIW, I was able to get the Cobra Kai LCD firmware to work on my Kobra plus using WabbitGuy's mainboard firmware - without having to do anything special.