Loading

FIRMWARE

Please Login to Comment


Thread to document and discuss the various i3 mega's firmware.

This thread will almost certainly occasionally overlap with the HARDWARE thread:
https://www.thingiverse.com/groups/anycubic-i3-mega/topic:26118


Marlin 1.1.6 with original Anycubic i3 Mega display support
https://www.thingiverse.com/groups/anycubic-i3-mega/forums/general/topic:25471

Official firmware release
https://github.com/ANYCUBIC-3D/I3-MEGA/tree/master/Marlin_TFT_CR_V1.1.1
Usefulness unverified.

Everything else under this line was written before functional firmware was available, so is likely to be incorrect.





"I just got my printer and I want to flash the firmware to be sure it's the latest"
No. Flashing the i3 mega is not as easy as it should be. Just go and print stuff.

Why?

  • YES. The official sourcecode is "available" and you can modify it.

    • However simple things like the age of the files means that syntax will conflict with newer IDE's. Simple anomalies like trigorilla.h being referenced when the file is actually called Trigorilla.h (uppercase/lowercase discrepancy), and Configuration.h still using the standard LCD2004 (REPRAP_DISCOUNT_SMART_CONTROLLER) do not inspire confidence that it is actually the source. It almost certainly is not, but rather a hobbled-together collection of old code from previous printers that omits any reference to the i3 megas TFT.
    • Unofficial sourcecode is available. See note #1 at bottom
  • NO. The official source will not compile as-is.

    • It will give variable name errors unless you
    • 1) use the old Arduino IDE (at the time of writing this may no longer be possible)
    • or 2) you make some copy/paste edits to the source code to update the variable names to the new IDE requirements.
    • or 3) Manually go through a copy of the new code and intelligently insert values relevant from the old code, or that you know to be correct. This method is not difficult, but it does require an understanding of what you are doing. Comparing the 'official' mega sourcecode from Configuration.h against the new Marlin Configuration.h will help you to begin understanding.
  • YES. A compiled .hex is available for the i3 mega and i3 ultrabase.

    • So if you should manage to kill your firmware you "should* be able to reflash it from the pre-compiled hex.
    • One of these .hex files includes the dual z-endstop modification. So if your levels are always mysteriously wrong, and nozzle crashing into he bed on first print of the day, then you should consider this.
  • NO. We do not have access to the firmware for the touchscreen. (which is separate to the printer firmware)

    • In theory you can modify Marlin and not alter the touchscreen at all. However there is no known option for the anycubic TFT in marlin firmware, so you therefore cannot select a compatible display option in marlin, and therefore eithe rlose the display entirely, or need to (physically and in firmware) substitute another known display type.
    • REQUEST: Someone please try all of the other available Marlin options for LCD screens, to test if the anycubic screen is in any way functional under a similar driver.
  • YES. You can use a LCD2004 or 12864, or any commercial TFT like the MKS32

  • YES. If you are working on accessing or reverse engineering the TFT operations then you are our hero and we love you. Please keep us updated on any progress or task delegation requests.

  • NOTE: Anycubic seem to neglect to adjust the version number on their hex releases, so don't be surprised if the 'new' hex you flash has the same version number as the original one.
    • The above assumption needs confirmation, but I have seen it mentioned a couple of times now, so to the best of my knowledge it is correct.
    • REQUEST: Someome please test and confirm:
    • hex [list it's filename and where it came from]
    • has what purpose [list it's supposed functionality ie: dual-z-sensor, ultrabase version, original inductive sensor version, etc]
    • displays what version numbers

RELEVANT RESEARCH:
Bought to my attention by Matej Zubčić on Facebook:
https://github.com/DIYElectronicsZA/Anycubic_i3_Mega?files=1


Basic firmware info:

Anycubic official:
http://www.anycubic3d.com/en/col.jsp?id=158&fref=gc
https://drive.google.com/drive/folders/0B8VIB533cgdMMmJyb3hTNThuZFU
https://github.com/ANYCUBIC-3D/I3-MEGA

pkochubey's host of the hex:
https://yadi.sk/d/k95QGu9O3JXuk6

Arduino IDE (compile the sourcecode and upload the hex to printer):
https://www.arduino.cc/en/Guide/HomePage

  • How do I compile sourcecode:

    • get the Arduino IDE
    • get the source code (but becasue there is no really definitive package, and you will have to edit whatever you get anyway, you may as well just get the latest Marlin source and - using logic - modify it to be similar to whatever source code appears to be most like the i3 mega. The previous 'anycubic prusa i3' model's soure is probably most appropriate and available.
    • open the .ino file found within the source code with Arduino IDE
    • plug your computer into your arduino board via USB
    • check that the iDE is set to a mega 2560 type board
    • check that the iDE is set to the correct com port (the printer wil appear as one when it's connected)
    • Ctrl U
  • How do I decompile/edit the .hex? :
    • You don't.

NOTES:

  • 1 : If you know how to modify firmware code, and are prepared to use your brain to figure out if this is entirely appropriate or not there is this:
    https://github.com/duisenberg/AnyCubic-I3/tree/master/Firmware
    The standard machine does not use one driver for the two Z nemas - so there are some obvious modifications, but this source is likely to be about as close to standard with improvements as any.

From the Hardware topic I found information that it's board made by CBD Technology.
Below Information that I wrote in the other topic.
I bet you can also just upload original firmware of CBD-Technology from their site.

==================================================================
I actually sent gcodes that were provided by CBD-Tech in their setup and.... It works!
You can changed max temp. settings, thermistor type etc.

I used
M8023 I50
and now my heat bead will not go over 50degC.

at the end use gcode M8500 to save values.
I attach txt files which is in fact gcode file provided by CBD-Tech with all codes available as well ass descriptions.
One of the files have more descriptions I took it from ChiTu F Plus version 4.0.5 documentation and translated by google translator.

enjoy :)

Hi bkrzysiek,

Thank you for this post. I would like to ask few questions.

I have the 32bit Trigorilla Pro version motherboard. My firmware is 1.4v (i checked from display). Anycubic support states that i can not make a firmware update because they don't have it since it is not a open source firmware. But i found the firmware at https://github.com/derhopp/Marlin-with-Anycubic-i3-Mega-TFT . it actually has a statement that it is compatible with Anycubic i3 version 1.4. I can successfully compile the file but when i try to upload it, i come across an error of timeout. So is it possible to make a firmware upload or not?

If it is possible, I want to update the firmware for two reasons:

I'm changing the hot end with e3d v6 and i want to make auto PID, save the PID parameters to EEPROM so i need to enable EEPROM settings.This is not a must since i think i would be able to submit the PID parameters to gcode start instead of saving it to EEPROM.

Second reason is that, i've insulated the heat bed and i want to PID tune it. The way it is now is not stable at all. There is a lot of under/overshoots. I want to make PID tune but whenever i try to PID tune it by sending "M303 E-1 S60 C8", it heats hot end instead of heat bed.

i would really appreciate any help. Thank you in advance.

Where it is written that this firmware supports 1.4 anycubuc firmware?
It's Marlin, so my bet would be that it's for 8bit boards.
Easiest for you would be to ask your question on github you linked above. ;-)

In 32bit Anycubic firmware has no PID for heated bead at all, only for hotend.

I read it again. I misunderstood it unfortunately. So do you have a recommendation for me. I've already glued the insulation. I guess i can remove it somehow but easier way would be better of course.

Also Anycubic support sent me this instruction video:
https://drive.google.com/open?id=1B19JY7gT93_lNIiF5DnykFq37yMjvFEk
and these files that i attached but i do not see how they are relevant.

Since you are already talking to Anycubic, have you asked them about the specific M code for the bed PID...? You said that the M303 E-1 heats the hotend and not the bed, so they might have mapped it differently than stock Marlin.

See my post, few above this one.
You can download parameters that we can send to printer, and all explanation.
That is what you can set up. It is taken from Chinese vendor from which Anycubic ordered 32bit boards.
There is nothing for PID of the bed unfortunately.
Nobody knows what is in software really. When I posted information about who is making firmware for Anycubic printers, my comment was deleted by Anycubic from their github. :-)

Not sure what you are saying...;-)
I know and respect your initial findings and they were the reason I started a designated 32bit thread and I have had great luck changing my 32bit printer with commands. I know the heatbed commands are not in the documentation, hence my proposal to ask for it.

Different people have had different luck with Anycubic support - I think it depends on who you get connected with and possibly the tone in which you are asking. The times I have talked to Anycubic, they have been very helpful. That said, I have also reached out to Chitun directly to ask more info about their G and M cones and the person there was utterly unhelpful.

As such, I still think it's not a bad chance asking Anycubic directly about the right M-code. The worst thing that can happen is that they don't share it and you lost 3 mins of your life writing an email;-)

OK I understand. You can try asking.
The thing is, that in my opinion, the reason there is no PID parameters for heated bead in commands is that this firmware doesn't use PID on heated bead.

Seems like update.zw is just firmware to upload. When you save it to SD card it will automatically update the firmware.
This printer updates firmware like that, now by flashing it like marlin.
Who knows what is there it's Chinese :)

Second file is just .gcode with options to change. Same file I was uploading here but in Chinese language.

Comments deleted.

MODIFYING/CUSTOMIZING FIRMWARE ON 32BIT CONTROLLER BOARD

First of all, 'bkrzysiek' was correct - it is possible to make certain changes to the stock FW (V1.4)! Thanks so much for this lead bkrzysiek!

Second, I took the liberty to start a new thread on this matter - I think it makes better sense to compile everything to do with the 32bit board on it's own thread as right now, that board is very, very different from the 8bit board and the solutions are, too.

So, I moved my posts here:
https://www.thingiverse.com/groups/anycubic-i3-mega/forums/general/topic:31353

I have the 32-bit board as well. Are there different command for PID tuning? I saw some videos that use M501 to list current EEPROM settings and that did not work. They also use M303 and M301 for the PID tuning. I did see M303 and M301 in the docs but it said to include a tick but before I do anything I wanted a list of current settings.

it said to include a tick

Please elaborate.

If you search for M301 and M303 you come to this section. These are in brackets 【 】where as other commands are not and it says "if to enable this function, place a tick in front of the command". For me the tick symbol is `. I am wondering if the 32-bit board has some compatibility mode that requires a tick in front to parse it correctly.

;【M301 P22.2 I1.08 D114 】
;PID parameter setup of temperature, if you are not an expert, and your current temperature control is
;comparatively stable, you need not set the parameter。if to enable this function, place a tick in front of the command.
;M301 P22.2 I1.08 D114
; ==================================
;【M303 E0 S150 C5】if to enable this function, place a tick in front of the command.
;Automatic modulation PID command, this command will be blocked for a long time
;temperature 150°, automatic cycle vibrates 4 times, the PID parameter after automatic modulation can see through repetier-host
;M303 E0 S150 C5

I just received this from Anycubic. I was asking about doing the PID tuning in case I want to upgrade my hotend. Here is what I got which seems incorrect since you were able to save your settings. Were you able to figure out how to list the current EEPROM settings? The 8bit board used M501 from what I have read.

Email from Anycubic:
And I want to tell you that eeprom of MEGA04 cannot be used. And it cannot be modified by instructions.
Have a nice day~
Best regards

Very nice.
Can you link the source site? I'm not getting it when i search "CBD Technology"

http://www.cbd-3d.com/en/prod/fdm.shtml

Bartolomeus posted it a while ago.
There are few links there if you find difficult to find information in their site.
Look below (hardware) thread at the bottom.

https://www.thingiverse.com/groups/anycubic-i3-mega/forums/general/topic:26118

Just FYI, Anycubic have released source.

https://github.com/ANYCUBIC-3D/I3-MEGA

I have a v1 that I just bought second hand. the SD card reader didn't work so I re-flowed the solder on the card and got that working again. It had the old hotbed and I am having issues printing ABS over 100 on the bed. the jobs kept failing at 105 (and lifting at 100). The printer would just stop half way through the job. The last time I noticed on Octopi that it was a bed thermal condition.

I swapped out the old hotbed with my other I3 (v3) and tried again with no such luck. Then i read about PID tuning. I wanted to PID tune the bed to see if that would help out but it seems disabled as default in the firmware. Anyone know if its ok to re-enable it? Is what I'm trying to do a no-no or something?

That is pretty cool. Have you tried it? I've got a v1 version and the interface is a little crappier than the v3. I think I want to give this a try if it can do everything.

My firmware issue is not the same as the one discussed here. Mine has something to do with the SD card not being read correctly. But this issue has brought to my attention a possible disparity in firmware versions. Maybe this information is in some way germane to this thread.

The first i3 Mega was purchased through Banggood and does not have this problem. Firmware information: v1.4ORC23/P3 /UI:VO.1

The second i3 Mega was purchased through the Official Anycubic store on eBay and does have this problem: Firmware information V1.1.0.

After reporting a problem that extrusion stops on long and high temperature projects (similair to this https://www.thingiverse.com/groups/anycubic-i3-mega/forums/general/topic:21406 ), the seller sent me a new software for i3 mega with ultrabase, no bed sensor: I3_MEGA_V1.1.1_B.hex

2 questions:
■ anybody already already tried it?
■ How to backup current firmware and flash new?

New firmware file attached in case somebody need it.

I was not able to update using this binary, or saw no difference. Using Cura 3.2.0 to do the f/w upload.
Same with the binary compiled from https://github.com/ANYCUBIC-3D/I3-MEGA/tree/master/Marlin_TFT_CR_V1.1.1. The only update that worked for me was with https://github.com/derhopp/Marlin-with-Anycubic-i3-Mega-TFT but I did not like it. Any ideas?

This firmware did not fix the issue. I was still getting cold extrusion prevented error. I swapped my PSU with the one provided with my Tevo Tarantula, and nope, it is not a power supply issue...

I am lost for what could be causing this problem. Ive reported my findings to Anycubic moments ago, hopefully they can tell me what the heck is going on.

By the way, the firmware v1.1.1_B did not allow me to turn off stepper motors from the TFT panel, it would say OK! but the power remains until auto off timer runs out.

The new firmware didn’t fix the issue with the cold extrusion prevented error.

So I can confirm that the firmware did update, see the pictures, also, since Thermal cut off was confirmed to be 170 deg, the cold extrusion prevention came up when the temperature reached 169. something. So There is definitely something going on here. Unfortunately, the screen capture for the temperature graph didn't work as expected, I had set 4 minute snap intervals which meant that at the moment when the temperature dropped, I wasn't able to capture the detailed temp curve.

It is likely this error comes from a PSU power supply issue, you can see the bed temp was 56 at the time as well.

[Capture.PNG] - In the third row, shows firmware version 1.1.1_B
[Capture2.PNG] - Print log section showing the first occurrence of the Low extrusion temperature error with temperature readout just above it.

Same with me, still cold extrusion not fixed.
the only difference I noted: the pritbed heating takes much longer time time (it might be my mistake, but I'm almost sure it takes longer now)...

Okay, fingers crossed for the 1.1.1_B firmware. I use Arduino Builder to upload it and I can see the communication for the upload process. It looks promising, I did notice a couple of changes.

Notably, the boot up sound plays after the logo finishes. And the thermal control PID is much better, no more wild swings of +/- 4 degrees during print.

Here's what I was getting before and after comparison.

Okay, fingers crossed for the 1.1.1_B firmware. I use Arduino Builder to upload it and I can see the communication for the upload process. It looks promising, I did notice a couple of changes.

Notably, the boot up sound plays after the logo finishes. And the thermal control PID is much better, no more wild swings of +/- 4 degrees during print.

Here's what I was getting before and after comparison.

So.. after coming back with a failed print, I went to check the firmware version.. In the display panel on the info menu, it still shows firmware 1.1

I've even tried to upload old version, and it uploads successfully, but still shows version 1.1

so the question is, did I even upload it properly or is the display info completely detached from the actual firmware details.

I even went to check if M115 would show anything, but it just says Merlin 1.1-R8 or RB8 I forget...

I think I recall someone who had loaded a 'new' firmware hex reporting that the version identifier had not been changed. iirc it was the dual-z-sensor one.
I get the feeling that, among other things, anycubic neglect to alter version numberss when releasing changes to the code.

Okay, I had a hunch about that. I did make sure the printer was properly connected via software and “USB Online” indicator on the printer before uploading.

I’m doing a second Night of overnight printing to see if the issues resolved After a second attempt at uploading firmware 1.1.1_B

When flashing you should note that the display shows the board booted, and after the flash completes you will see it reset. That's a pretty good indication that your firmware was loaded. Particularly if the IDE also reports success.

Uh oh, mine did not do that. The display stayed the same with the exception of the start up chime. It would play that boot up chime after Cura indicated firmware upload successful.

Oh wait... i'm constantly forgetting if i'm in a i3mega or a generic ramps context. Doh.
The ramps will reboot after upload, I'm sure the i3 will too, but it's TFT is entirely separate from the mainboard in the context, so it's very likely it will not be visually apparent at all.
But if it beeps as if it's been booted or reconnecting, then chances are thats a fairly good indication too.
Looking at the console readout via something like octoprint or repatier host may also show you something relevant.

That makes sense, yes I did notice that the screen interface is quite something else from the board. I’ve only been using cura to upload firmware, I’ll try another free interface and see if logs show it. I know repetier server has firmware upload, but that’s for the pro version. What other free softwares will do the upload?

Edit: I checked last nights print and here was the result... it “cold extrusion prevented” at like 90% of the way of the print....

I always use the arduino ide (but have never successfully flashed my i3, with anything. I tried it once with the octo plugin and it was rejected by the mainboard, i forget the details... and another time i inadvertently tried to allow the pi to upload one while i was playing with grbl/klipper on it, and that aslo failed), but octoprint is what i am referring to any time i mention a console, and it has a hex upload plugin.

Arduino IDE can upload hex file? :O

I use avrdude from the command line to upload a compiled hex file but I use Arduino IDE to flash my own version of Marlin with real auto-leveling enabled.

oh... er... I'm not sure. Probably.
Sorry, everything I tried to do with my i3 was a while ago, and I quickly gave up all together. Now I have a second ramps based printer, so I keep forgetting to separate one from the other when I'm talking about this kind of thing.

Cura is able to upload the firmware. Look at the machine settings, and then on the default tab there is the option to upload firmware.

The protocol between the lcd and the fw i s proprietary. If you want to continue to use this display you must to know this protocol. In the display there are three file corresponding only to the graphics the fw is stored into the dsp and without development system can't be changed.

Dear Thingiverse Moderator:
Auto moderating a title post when the owner adds text and then edits it once more to add a carriage return, is ridiculous.
You might want to spend some money on getting someone to write a less stupid auto moderation script.

I flashed Marlin and the screen became useless so I reflashed the original hex from Anycubic and the screen is back to normal.

You can't use the TFT facilities because the protocol between TFT and Marlin is proprietary. But, you can make reverse engineering on the serial interface between the two boards (9600N81)

Marlin specifies the default LCD2004 screen, iirc.
You'd need to find out how anycubic specify their TFT and uncomment/add that to Configuration.h.

Or plug in an LCD2004

I'll probably replace it for an MKS-TFT32, they're the same size.
I'll stick with the stock firmware for the moment.

i'm sure anyone watching this thread will be specifically interested in hearing about how that goes.

I've already put in an e3d V6 and Titan extruder, drag chains, polymer bearings, quieter power supply, BuildFlex system with PEI instead of
Buildtak. The board supports 24V so maybe a future conversion, or I'll completely get rid of the Trigorilla board.

How much difference did the e3d v6 and titan extruder make? Did you use genuine? I want to print Polycarbonate on this, so interested to run a 24v heater block as well - how do you change it?

e3d v6 didn't make much of an immediate change, mostly more reliable for future use, and allows to use e3d nozzles..
Titan extruder didn't make much of a difference here, but it does on another build with a Volcano.
To go to 24v, change the power supply, board, hotend, heating bed and fan.
The Trigorilla board is supposed to take it but I wouldn't trust it for that since not enough specs are known.

As your mod relates to firmware I mean.

So I've been running with Marlin on the Trigorilla board for a week now and no real issue that couldn't be fixed by tweaking the firmware.
I traced the sensor wire that they installed in a half-assed way and made it function through the board for mesh leveling, no more DINDINDIN at a precision of +/-1000%.

It seams that for whatever reasons, the HUB board receives direct inputs from some sensors and relays their status to the board afterwards.
So I have to trace all the wires I need from the braid and connect them to their rightful place on the board to get rid of the TFT adaptor.

Fun Fact: I shorted my board while adjusting the DVR8825 stepper driver, that Vmot pin is really close to the GND pin.

2 options: Either micro-solder a replacement fuse (<0603>) or switch the board completely for any other random kind, MKD boards have a similar functionality than the built-in G5 command to restart print after power out.

It would be easier to rip out anything Trigorilla and replace it with a classic Marlin-compatible instead, but that doesn't solve the problem of having to figure out which cable is which in the braid.

Honestly, I think that in the end, only the i3 Mega frame will be left as original, if you don't count the drill holes, hmm, I mean speed holes that I made in it.

TiGa

Could not get what you ended up modding. I left at the following point since it was not worth my time

1) Screen cannot be modded with the trigorilla board
2) Interface cannot be modded
3) The Wiring hub and circuit needs to be modified with more relay interface and PWM

which finally led to the conclusion that better use it as is as else all that will be left is indeed a stable physical steel hardware platform, as the rest will have to go or be scrapped.I stopped at that on i3 mega as i can achieve all the mods to my satisfaction on my other 3d printers.I tool this is my another vanilla printer on my octopi with no modification.END OF STORY.........

Please keep us updated.
Can you make your sourcecode available. I realise the mega-specific parts of it are probably very few and easily figured out, but it would be nice to have a standard configuration available.
How are you handling the display? What #include are you using for it?
Photos? Can you try to illustrate the wires that run directly to the secondary board? It might help get others interested in deciphering the arrangement, and serve as a general reference.

The display is a no-go for now, I have to tap into the RX/TX to see that they are chatting about
If I replace the built-in TFT with the MKS TFT, the adaptor has to disappea, and all the wires in the braid have to be identified to reconnect them to their rightful place.

Besides switching in to 24V, I don't a lot left to do for it be all it can be.
I got my microscope in the mail today so I miht be able to replace the 0603 fuse and completely repair the board.

Ignoring the trigorilla compatibility part; have you tested the fit of the mks tft? Does it fit the hole perfectly? Would you need to print an internal support to install it securely? Does it's form factor interfere with any other existing parts?

The MKS TFT is 3.2" and the original is 3.5", also the SD card reader and USB port wouldn't line up so there would be a need to buy extenders.

I ended up replacing the blown fuse with an automotive fuse holder. It sounded easier to me than rewiring everything.

It is the same TriGorilla board as the Kossel BUT it is wired differently. The X/Y endstops, filament sensor, leveling sensor and extruder thermistor are wired directly to the adapter board instead of the main board. The Z endstop is way out in the left field, they have repurposed a random digital pin for it. The leveling sensor can be rerouted to the Z endstop pin to allow the use of REAL auto-leveling from the Marlin firmware, not the stupid piezo speaker. I used a buck converter to lower the signal from 12V to 5V.

Overall, with auto-leveling, magnetic removable bed coated in PEI, e3d V6 hotend, Titan extruder (not Bondtech), TMC2100 steppers (not 2130), 0.9 degrees motors, polymer bearings and Noctua fans, my printer almost has the same specs (ON PAPER) as the Original Prusa i3 MK3.

I'm sure there would be hundreds of people interested if you ever fully document how to 'convert' the mega into this kind of more 'normal' machine.

Comments deleted.

Finding resources for this TFT is a bit of a rabbit-warren, but here is some more relevant info.... in response to a post further down in another branch - posting it in main branch for ease of reference:

This document
http://www.logictechno.com/downloads/ELT035-1v1.1.pdf
is for the TFT according to pkochubey's research.

That document references:
"Uses LTTD320480035-L1TFT module"

Their product list has nothing referencing it:
http://logictechno.com/customised-tft-display-solutions/

Searching for
LTTD320480035 or PCT035 on their site gives no results.
But google does:
http://www.logictechno.com/downloads/pct-dev-kit-codes.pdf

This seems to be the relevant data, in for format:
Part Number, Decription, Developer's Kit , Part Number, Matching TFT, TFT + PCT, CLT SERIES, Smart Display, Module (SDM), Series
PCT035-3
LOGIC TECHNOLOGIES 3.5" 320X480" PROJECTED CAPACITIVE TOUCH PANEL WITH PIXCIR CONTROLLER
PCT035-3-EVK
LTTD320480035-L1
LTTD320480035-L1CT
CLT035-3

Therefore this is the devkit name:
PCT035-3-EVK
But of course they don't list this on their devkits page, and search isn;t somethng that is available on all of their pages, google also does not find anything.
http://logictechno.com/developer-kits/

According to the original pdf:
http://www.logictechno.com/downloads/ELT035-1v1.1.pdf
this is the filename of the devkit:
CDM2.04.06-win2000-xp-vista32-64-setup-win7
But again, google finds nothing.

Actually, the 'M7-M01' is a programme company who made many TFT models for logictechno company, its also ordering a special TFT model for ANYCUBIC, the 'M7-M01' company choosed a same IC for ANYCUBIC TFT, but its a quite difference function, include the commands.

HI, I've understood and verified that this file CDM2.04.06-win2000-xp-vista32-64-setup-win7 is only the driver for the FDTI (usb to serial) interface and it is not the development kit. In newer Windows version this file is not necessary.
Enry

True , checked this long back and it's just some drivers, anyway the update that there is a new screen is interesting and sets up a new hope

iyegod
The flashing of Marlin on i3 mega is also filled with the path of perils as it has a few bugs that will hit you once you do it. Somebody on an Italian forum did that just this week and were stuck

iirc the only issues I experienced were:

  • finding the correct IDE version. I think it was v1.0.1 i used, and it worked....after I....
  • renamed Trigorilla.h to trigorilla.h in Configuration.h ... or something like that.

My memory is a little foggy here, but later i think the IDE started bitching about versions, so i used v1.6.8.. and after making some easy find/replace substitutiuons for new VARIABLE_NAMES everything compiled ok. I didn't flash it though.. because I don't need to...and frankly I don't trust it now either.

You nailed it i went on a similar journey..before leaving it there as i did not find worth the merit.:-) and did not have a board to spare.Some day if i have an extra board and a bit of time i might even reattempt going the full way.Till then i will leave it in peace and keep pestering Anycubic to release the full code.In fact from a legal point of view, they are in total violation of all clauses of GPL, as its a clear they are using a GPL code and are not sharing back a derivative which is used to interface it or even compile it.

Yep.
I think we should be lobbying the mysterious TFT manufacturer too.

Maybe the gpl organization can help us there.

Please note, that new printers are equipped with different screens: http://lev.serebryakov.spb.ru/_sklad/anycubic3di3mega-screen-board-20170406.jpg

That's very interesting, any more details shared will be great help to this forum

I can not find any datasheet for this chip, though Nuvoton is well-known company... I don't know what could I check to provide more details, that could be seen on my photo.

Hmm we can start by emailing [email protected] on the exact model of ELT035-1being used on anycubic i3 mega, as there are many version based on the given onboard flash memory. Then we can perhaps order a developer kit to dig in the files from ELT_SW and further progress with the core files if Anycubic has in anyway altered it structurally and what has been left out.If the BmpDataBin is available then we can, in theory, recover all our BMP and the associated code it passes.Then its a open chest to progress from there on.

Indeed it looks to be a long start, but let's at least make a multipronged coordinated effort with both Anycubic and Logic, if all anycubic I3 Mega users stick it up,iam sure Anycubic would yield and they also would stand to be commercially benefitted by it

You first. You understand t best right now, so you should make the first approach.

Ok, isee the new updated i 3 model with the following changes

1) ultrabase composite fused glass bed heated platform
2) missing the leveling sensor

as informed by Jane the new i3 is missing the leveling sensor, which is logical since the induction loop sensor wont work with the composite laminated fused glass bed.Therefore leads to the conclusion that firmware must also be changed.Can any new purchaser check on their firmware version or ask for the source/hex from anycubic.

I would like that anycubic releases the updated firmware with the level sensor integrated for the current version owners, but with the addition of the glass bed vectors. This will allow us to add the glass bed without the manual tweaking of gcode /Cura parameters every time.Have requested the same to Anycubic Support team, and i await an answer from them if at all :-)

Anyupdate on the firmware images as else the code in PUBLIC folder cannot be compiled.I wanted to add wifi SD card support but cant do much.Is there any alternative way to add WifiSD card support on this printer.Keen to do do at that would help a lot in uploading files remotely for printing.

I have tried asking Jane and all they could manage to send out of the skype & mail communication is MC30.hex :-(

Read the other posts in this thread.
Keep asking for it in the nicest way possible, and ask to know who is the supplier of the tft, eventually we may get the assets, but evidently it will take persistence. According to Leafy the tft supplier is witholding. But maybe they just need to be asked enough times or in the right way.

The latest official comment on the lack of TFT image resource for firmware.
(This means that you cannot alter any component of firmware that needs to alter the touchscreen layout or contents)

Hi,
I've just talked to our engineers.
They tell me that the image resources are customized by our touchscreen supplier, so we are not able to get that resources, which could be their business secret.
Very sory that I can't help you with this issue.
Have a nice day!

------------------ Original ------------------
Date: Tue, Jul 18, 2017 03:10 PM
To: "Leafy"
Subject: Re: firmware

Thank you.
Can we also have the .BMP image resources?
The touchscreen requires all images to be compiled into a binary format, unless we have the existing images, we cannot modify or add new images.

What you think about swapping out the screen with a "opensource" one? and maybe even swap out the board with a marlin one and write custom firmware? I'am just throwing out idea's. I think the TFT Touchscreen is the weakest part of this printer. And I have a feeling just replacing this touchscreen with the same one isnt going to work well...

When you got a standard monochrome screen like the ultimaker, CR-10 and many other printers you can just swap it out since there are tons of suppliers. for those rotate / press knobs there are tons of suppliers too.

The CR-10 is in my view "opensource" if you flash the bootloader / oprom with the latest marlin you got a "opensource" printer.

Please correct me if i'am wrong. I print since 3d printers exist but I'am a guy that has hardware knowledge. but our guys are keeping the printers clean and running.

Maybe I don't even need an opensource printer since I never uploaded custom firmware to the ultimakers. BUT i'am a guy that likes to repair electronics without throwing it away since we live in a throw away society... I'd like to fix it and use it.

Edit: what about the images? is it possible to read out the code like resolutions / pixels and coordinations of maybe icons or not.

In terms of nice to use: the TFT is much better. More intuitive and easier to navigate.
But yes, you can use an old lcd. Personally I very rarely change anyhting via the tft, usually I use octoprint... so on my pc, but just as easily use a phone or tablet. I have an old phone sitting next to the printer that I could easily use with octoprint... simply placing it in front of the printers tft would be the easiest control system substitution ever :)

The printer itself is standard components. You will be able to upgrade ands repair it just like a PC.

Reverse engineering the tft images would be as simple as making a bunch of A, B, C etc images and loading them onto the tft... then compare where they appear with what was supposed to be there... then make new images that represent the actual commands and replace the existing images completely.
But that only replaces the images for existing commands.
I do not know how the TFT's firmware is programmed. AFAIK It essentially sends g-code to the printer, so you would also need to figure out how to add new commands if you want to add new functions. I am fairly sure the tft has separate firmware to do this... not a function of Marlin.

Anyone else having trouble configuring the EEPROM in MatterControl? I get an error message saying there is no EEPROM mapping for my firmware :(

I just did some PID tuning commands to store memory to eeprom and they worked. So evidently the i3 mega does have it enabled.
Therefore I'm not sure why an application wouldn't recognise it. Maybe just the application doesn't know specifically how to recognise the mega. Maybe only some commands are available.

Yep, probably.
EEPROM access has to be enabled in firmware, and that's not usually on by default. You need to recompile it.

Comments deleted.

The firmware for the printer appears to be talking over serial with the screen and the screen is also sending commands to the printer. These are custom commands that only the AnyCubic firmware can handle and translate to the actual G-Code that the Marlin (presumably) is using. The protocol is documented in the xlsx file and google translate managed to translate it ok it seems. It should be possible to port this over to a normal Marlin firmware with quite some work. I still haven't found the original source they used for their baseline to be able to easily find the parts they changed though.

To change the UI one also needs the firmware that is running on the TFT screen board, it is its own microcontroller and its own firmware. The image provided in this thread shows something that looks like a programming header and maybe it is possible to program it through usb as well but I couldn't figure out the microcontroller on the tft board to see how likely it is to program it.

There are movement commands coming from the TFT board to the mother board and it seems that the entire logic for the leveling is sitting on the TFT board.

I still don't have the printer and am interested in it except for the fact that it will not easily be possible to reprogram it. I also didn't find a replacement board to try programming if I brick the programmed board.

Can anyone provide full image of all sides of the boards to help identify the components and the connections?

So I wonder now... Buy it or not? I mean if you cannot change the firmware because of the screen and control board... you are not able to repair these printers? I have a strong feeling those printers will be made for couple of years and than they are gone out of nowhere and we have printers that has dead parts IF that happens!

What about replacing the all the boards with common "OpenSource" ones? replace the touchscreen with a Monochrome screen and drill a hole on the right side and install a knob in it. This is probably the best way if they discontinue the printer right?!

The reason I say this is because I see this touchscreen failing really quick.

The parts that might eventually fail are all standard. Easily replaced.
The TFT can be replaced too, so it's not really a problem.
It is however a problem that peope expect it to be completely opensource and then discover it is not. Unfortunately it seems even anycubic cannot do anything about this, as it is the supplier/manufacturer of the TFT that is witholding the image resources. Or so I am reliably informed.
Chances are it is trivial to modify the TFT anyway, we just haven't had someone figure it out yet becasue it's easier to plug in another touchscreeen like the MKS, or an old LCD2004 or 12864.
The i3 mega is a good machine. The robust frame and print-out-of-the-box alone make it worth buying. That said it a little expensive, and if you intend to modify it then it's a bit of a hassle.
.... But almost nobody only buys only one printer anyway, so it's a very good first 3dprinter.

On touch display we have DSP M7-M01. How it works you can see in doc: http://www.logictechno.com/downloads/ELT035-1v1.1.pdf

I've got printer where some Nuvoton chip (NUC120LC1...) is soldered on display/TFT board, bot DSP M7-M01.
Photo: http://lev.serebryakov.spb.ru/_sklad/anycubic3di3mega-screen-board-20170406.jpg

Also, I was able to build firmware from PUBLIC folder with old Arduino IDE (newer versions have newer compiler, which reports errors), but I didn't try to upload it yet, I don't want to brick my first and only printer.

Hello, did you know where to find the framework SW to make menues and so on for this display ? It's possible with it try to understand better how the protol uP<->TFT works. If somebody find it, please share the infos. Thanks.

Interesting!

The commands documented in this document and the ones used by the published firmware do not match. Either they have a different firmware on the tft board or the published firmware is incorrect.

All right, on DSP M7-M01 we have custom firmware from China. Also public version firmware for trigorilla is incorrect.

Is it possible to get correct firmwares?

I would like to be able to upgrade the firmware to the latest Marlin and still use the screen.

No, you can't get latest version of firmware. Chinese don't want release it.

You can get configuration from public firmware and set it on Marlin. But on marlin you can't use original TFT Touch, but you can use any other LCD display for 3d printers.

Any chance that the protocol between the existing tft screen and the main board be documented? Is it the same as the public firmware shows?
That would be good enough for me.

You can find some comands for tft in public source code. By fact you can create fully new all screens for this tft display and control it from marlin, bit it not so easy I guess. In any way more easy it buy new monochrome display.

You need the original TFT Dlogic framework SW that I've not yet found,

Not sure how long they will be available, but some general inside-the-box photos:

http://imgur.com/a/9HPeh

Cool on display board you can see USB connector, also U3 maybe it is memory for store resource. In any way need do reverse engenering for understood how it works. May be rewrite frimware on clear marlin it will be bad idea, because only China know how works it board. I see that it board not a http://www.ebay.com/itm/2-8-MKS-TFT28-LCD-Display-V1-3-Touch-Screen-for-3D-Printer-Ramps-V1-4-MKS-Base-/262595088810 because I know that mks tft28 support marlin by uart, but all resource for display stored on display module and on original module we have sd card for rewrite resources for display

Specific product data, for technical reference:

https://www.purchasingmachine.com/office-products/3d-printer/anycubic-integrated-3d-printer-main-board-compatible-mega2560-ramps1-4-combo-4-layers-pcb-controller-board-for-reprap-delta-kossel-mendel-prusa-i3/

Product Features

    Integrated with the multi-function of the Mega2560+ramps 1.4 kit, Great reduce the wiring problem, more convenient connection, and more stable.
    Firmware can use the same configuration as ramps 1.4, the marlin firmware which runs in Mega2560+ramps 1.4 kits can run in TriGorilla board directly
    Adopt ATmega2560 as the main control chip, coupled with the high performance USB serial converter CP2102. Support LCD2004 and LCD12864 without using adapter
    Support up to 5 motor drivers, support A4988/ DRV8825 /TMC2100 driver: Motor drive circuit doesn't integrate on the circuit board, so you can change any stepper motor driver when you need, easier to operate.
    TriGorilla had reserved SERVO, UART, IIC expansion, so you can control touch screen smart controller, control wireless module and the detection of break, etc

Product Description

Product Description:

TriGorilla is a main board developed by Anycubic R&D team that integrated with the multi- function of the Mega 2560+ramps 1.4 on respect of both software and hardware and has more premium features; the streamlined interfaces avoid the unnecessary troubles effectively and power than Ramps 1.4 + Mega2560, it is a feature rich all-in-one electronics solution for Reprap Mendel Prusa and other CNC devices

TriGorilla adopts DC-DC step-down scheme design and Recoverable fuse for short-circuit protection, improving the MEGA2560 board serious heating problem. Allowing any power supply from 10V-30V

Specifications:

Main Control Chip: ATMEGA256016AU

Input Power: 10V ~ 30V

Standby Current: 35mA±5mA

Stepper Motor Drivers: 5 channel Max

Hot bed Output Control: 1 channel

Heated output control: 2 channel

Under-current output control: 3 channel

Dimensions: 125mm x 82mm

Package List:
1* TriGorilla main board

Not specific to the Trigorilla board, but it does match with the basic compatibility of the trigorilla (Mega2560 RAMPS1-4).
Posting for future reference.

http://www.hkepc.com/forum/viewthread.php?fid=259&tid=2120148

Via Ebay

New message from: anycubic-official (2,520Red Star)
Dear friend,

Good day!

Here is the link about the mega firmware:https://drive.google.com/open?id=0B8VIB533cgdMaTdLQVU4SG8wd2M
If you have any problems,please feel free to contact us.

Best regards

Edit: does not contain the actual firmware... but I will pursue it and update this post when I find out.

So I wrote to a couple of people and prodded them about making firmware available......

I think I got the definitive response from David:

Thanks for your support , very sorry for that we do not have a firmware for i3mega which support free modification , because of the printer was sold as a complete kit ! so pls pay attention to the risk if you modify the firmware for i3mega , some functions of the printer may fail , and you may lose the qualification of the warranty 

------------------
Thanks and best regards 

David 

With a marginally useful suggestion... that may or may not be more useful than my initial impressions :

Hi Andrew

Sorry , if you would like to configurate the firmware for i3mega , you can find the firmware ( i3 , similar to i3mega ) that support modification via the link :
https://drive.google.com/drive/folders/0B8VIB533cgdMNGZfbm5FX2ZqTUE

Thanks and best regards 

And similar from ebay anycubic_official

New message from: anycubic-official (2,521Red Star)
Hi friend,

So sorry for any inconveniences brought to you!

We have reported this to our sub-manager,
if it available,we will tell you asap.

Anyway,if you buy some items from our store next time,
we will give you some discount,
here is the link:
http://ebay.us/8Wr2N1

Looking forward to do more business with you again in the near future.

Best regards

So it would seem that we need to pursue this entirely without anycubic's assistance.
I'm surprised at how disappointing this is. They made the i3 a rather good machine, but to have it closed source almost certainly have stopped me from buying it if I realised beforehand.

Still.... I guess we can ?safely? experiment with Marlin - without the TFT functionality - and if necessary revert to the original i3Mega hex file if we can't get any joy from Marlin.
Given that there is only 3 or 4 things I ever use the i3 touchscreen menus for anyway, and I could easily use the 7" touchscreen on the raspberry pi instead.

f* chinese. I get the same message.
I added in https://yadi.sk/d/k95QGu9O3JXuk6 new file MC30.hex it's fully frimware 1.0.1 from Anycubic team.

Comments deleted.

Is it possible this is an image resource in disguise?

In my Adobe Acrobat Pro I have one page for this document. Nothing interesting.

But why is an empty file so large?
Have you tried inspecting it in hex?

Bizarre.
Every other time I have opened it the page was blank. But right now when I open it I see what you see. Doh!
...it is a lot larger than the equivalent english version pdf file though.

Can you access the hex file in this post?
https://www.lesimprimantes3d.fr/forum/topic/8605-firmware-i3-mega-anycubic/?tab=comments#comment-99457
I suspect it is the same as you already posted.... but maybe there is more.

But... Does Marlin not have a touchscreen library we can replace anycubic's with?

I know only very basics about how to update firmware, and those available, but surely there is somehting opensource we can substitute for anycubic's? I rarely use any of the touchscreen menus anyway. I control the printer almost entirely from octopi across the network.... so temperature settings and filament in/out are about all I need.

Yes, I guess you can replace firmware, but for this need fully configure new firmware.

But this is a simple matter of editing Configuration.h and substituting some sensible values from the other Configuration.h files available.
....Right?
What is the downside to that?

Yes, configuration.h will nough

So what do you think would be missing if we did that?
Will there beany touchscreen menus?

With touch screen all interesting. Tommorow I try disassembled printer and check that display and microcontrolers used, becouse i think that in display board we have memory and processor. You can rewrite frimware on mainboard I think you will be see information on display, but you can not control information throught your touch. Marlin can not support this. Marlin can work with smart tft display, but in this case need rewrite and mainboard in our case it trigorilla and display board. But i don not sure that in our printer we use tft28 mks display

From the post I made above (and is pending moderation..lol):

Adopt ATmega2560 as the main control chip, coupled with the high performance USB serial converter CP2102. Support LCD2004 and LCD12864 without using adapter

Also I think that LCD2004 and 12864 it is simple monochrome display.

Yes i saw it. But need check it by fact in printer, i do not trust chineses.

Comments deleted.

hex it's fully firmware, it's not source code. Yes, I guess in hex file we have all needed resources.

Same question: what is the source of that... source?
Anycubic official? or did you pull it from your i3?

I don't know what I expected.. but it wasn't this:

binwalk ./MC30.hex    

DECIMAL         HEX             DESCRIPTION
-------------------------------------------------------------------------------------------------------
25158           0x6246          Windows CE RTOS

No, I try disassemble this hex in IDA and I see that this program for avr and I see in assembled code many copyright and words from display.

From alliexpress it's also official anycubic store

I see.
It seems strange that Marlin is GPL licence and opensource, and yet anycubic act dumb when you ask for their firmware.
Surely the only thing they have modified is some configuration files and added some menu images. Why should they be so secretive?

When Jolly was responding to my emails on another topic I asked him for the firmware source... and he completely ignored the question.

Maybe the chinese reflex to "close" opensource software, and then pretend they comply with the license, when clearly they do not, is so automatic that they do it even when they do not need to :)

Not being able to easily alter my firmware while using the authentic anycubic variant as the base is frustrating. I would definitely consider mentioning this as a negative if people asked me for my opinion on buying from this company, despite the fact that the machines otherwise seem very good.

From сorrespondence I understood that images and all stuff for touch screen under copyright, not under GPL. But in any way I think anycubic violates the license.

Can anyone verify if either of these are the correct sensor offset:
I'm having trouble accurately measuring my actual printer's X and Y, and neither of these Z values look real.

...and what IS the official source for the i3 mega's firmware anyway?

.../firmware/AnycubicForI3/AnycubicForI3/

#define X_PROBE_OFFSET_FROM_EXTRUDER -34
#define Y_PROBE_OFFSET_FROM_EXTRUDER 8
#define Z_PROBE_OFFSET_FROM_EXTRUDER -19.2

https://github.com/duisenberg/AnyCubic-I3/blob/master/Firmware/Marlin_1.1.0_RC8/Configuration.h

#define X_PROBE_OFFSET_FROM_EXTRUDER -29  // X offset: -left  +right  [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER 6  // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER -0.6 // Z offset: -below +above  [the nozzle]

No, it's source code not for Mega. You can see source code fore i3 Mega in PUBLIC.rar in this url: https://yadi.sk/d/k95QGu9O3JXuk6

But in anyway, you can't build new frimware by this public source code, because we don't have image resources for display :(

Where did this source come from? Did you upload it?

Image resources

...for the touchscreen?

for the touchscreen?
Yes.

Where did this source come from?
I found it from Facebook group. Developer from Anycubic sended this archive.

Comments deleted.