dkoch83 / marlin-1.1.9_anycubic_chiron Goto Github PK
View Code? Open in Web Editor NEWAnycubic Chiron Firmware based on Marlin-1.1.9
License: GNU General Public License v3.0
Anycubic Chiron Firmware based on Marlin-1.1.9
License: GNU General Public License v3.0
Hey dkoch83
I have installed your version on my Anycubic Chiron. In the default marlin version 1.1.0 (Anycubic 1.3.0) the z homing was different.
Anycubic:
Z-Homing to the endstops (optical) and after that the z axis moves more down (~3mm).
Your version:
In your version the movement stops directly if the endstop input is coming. So the Z axis is about 3mm above the leveled bed. Is this normal or can i change the way in the config.
Best regards Waidhofer Dominik
Hey, first of all, thanks for your work.
I put your firmware back on the anycubic chiron and when I started the first print from the SD the extrusion engine stopped. So I connected the octoprint and tried to print the same file (a calibration cube) and the extruder motor stopped at the same point.
If you want I can send you the .gcode file
Attached is a link to the photo of the place where it stops.
https://subefotos.com/ver/?bb36e8c37f833228c779f87ddca33146o.jpg
I'm waiting a few days in case he manages to solve the problem but I'll go back to the original firmware.
Thank you
Hallo!
Muss man die ganzen pins.xxxx.h die mit dabei sind, beim Chiron aber ja nicht benutzt werden alle mit auf das Board laden? Im Grunde müssten die pins.h, pins.ramps.h, trigorilla´s und noch 2-3 weitere reichen oder? Oder fehlt der Software irgendwas, wenn man diese files weglässt?
Since 2 weeks i have enabled the linear advance feature for getting better print corners, but in longer prints or if many edges are print the extruder motor shuts down and the gear can be turned with hand. Board: Trigorilla. This problem is already known also in the marlin 2.0 and lower versions. It looks like that the stepper driver shuts down (because of too much extrude and retractions causes by lin adv) and a restart of the print reenables the extruder motor.
https://github.com/MarlinFirmware/Marlin/issues/11825
Different people in different forums describes the same problem with LinAdv and they are using an tmc2208 step/dir or UART. My TMC2208 are used as step/dir. To solve the problem the extruder driver must be switched to TMC2209 (it looks like that this issue relsoved in firmware) or to another driver (A4988 or drv8825 or like that) OR DEACTIVATE LIN_ADV (Values = 0). I dont want to loose the high resolution of the steps from TMC2208 with extecellent print corner (no overextrusion) in comparison to A4988 or DRV8825. Addiotionally the main problem is that the Titan extruder from the stock Chiron has an ration of 3:1 (or 4:1). So this is the big problem: Too many steps (high resolution) for the same 1 mm in comaprison to an direct extruder and this causes (it looks like) that the driver shuts down.
Print speed E: 50mm/s
Travel speed X/Y: 100mm/s
Travel speed Z max: 20mm/s
LIN_ADV = 0.2 (tested from 0.1 to 1.0) doesnt matter (0 is working)
Retraction disabled
Coasting disabled
Yerk is default from your code
So my question to you dkoch83: Is it possible to use an TMC2209 in STEP/DIR mode in your configuration?
Best regards
Dominik
Thank you for the great adaptation!
I'm having an issue recovering from a filament sensor runout. The printer correctly moves up and to the rear of the print bed, then retracts the filament. However, the LCD appears to freeze up with the filament sensor warning message (doesn't respond to touch) and I'm unable to continue the print. I am printing via Octoprint and the Terminal window seems to indicates pressing a button to continue, but I'm not sure what it is referring to. Is there a command I can issue to continue?
Hi there,
I have to say this firmware from you is really the best I've had so far.
It runs really great with the standard Anycubic Chiron!
I still have a feasibility requirement.
I use a Rasperry PI and have connected it to the Anycubic Chiron Sensor.
In my Case i read the status of the Switch 0 or 1 from the Orignal Filament Sensor Switch.
When I start the printer now, I cannot click away the "External sensor" message.
I use davidramiro's firmware for my I3 Mega. Here I can click away the sensor message
even without a sensor connected.
Would it be possible to implement this?
Thank you Regards Raini
The SD Card Reader don't work.
Original Chiron with TMC2208 and Cable change.
What you need from me that i can help?
Habe erst zu spät gesehen das ich auch Deutsch schreiben kann.
Druck ab SD Karte ist leider nicht möglich.
Im Display wird die SD Karte als eingelegt angezeigt.
Mit der orig. Firmware 1.3 läufts.
Mit Marlin jedoch nicht.
Druck ab Octoprint geht jedoch Problemlos.
Originaler Chiron mit TMC2208
Is the new LCD of newer Chiron shipped with firmware 1.3.5 supported on this git?
Hello ladies
Yesterday i was trying to print with abs and petg. So i set my printing temperature to 250°C but my printer on the screen or Repetier Host reduces the value i set to 235°C. So i tried to dismount my anycubic touch screen, because i thought the screen has a limit inside. This did not work. So the code must be the problem. After searching the full code i found the code line where the maximum temperature will be reduced by 15°. I removed the "-15" and now it works. Now it's possible to set the temperature which is set under configuration.h
Configuration.h:362 --> My value is 250 instead of 265 !!!
#define HEATER_0_MAXTEMP 250
'-----------------------------------------------------------------------------------------
OLD
temperature.h:417
target_temperature[HOTEND_INDEX] = MIN(celsius, maxttemp[HOTEND_INDEX] - 15);
NEW
temperature.h:417
target_temperature[HOTEND_INDEX] = MIN(celsius, maxttemp[HOTEND_INDEX]);
'-----------------------------------------------------------------------------------------
'-----------------------------------------------------------------------------------------
OLD
temperature.h:452
MIN(celsius, BED_MAXTEMP - 15)
NEW
temperature.h:452
MIN(celsius, BED_MAXTEMP)
'-----------------------------------------------------------------------------------------
Hey dkoch83
Why is this maximum temperature reduced? The maximum possible temperature is already configurated under Configuration.h
This is a little bit confusing because in the touch lcd a value i think from 260 can be selected (I'm not quite sure)
Best regards
Waidhofer Dominik
Hello @dkoch83 !
As I have seen, you did an excellent job of making the Mesh Bed Leveling work with the integrated functions of the Chiron LCD. You have my full respect for it, because it's not as easy as it looks.
I myself develop for a number of Anycubic printers based on Marlin 2.0.x. in a so called unified Firmware and am trying to "blindly" implement ABL support for the Chiron. I really stuck to the Anycubic code and your implementation and tried to recreate the MBL. Unfortunately unsuccessful so far. The Menu works and the MBL starts, but then it crashes.
The worst part is that I don't own a Chiron myself. Debugging is almost impossible.
So I would be really happy if you could just take a look at my code. Maybe you will notice something right away that I missed?
I would also like to include you in the credits if that's ok with you. I'm also open to pull requests ;)
To get a first glimpse, please take a look here.
Best,
Olli
(I know that you're german too, but since this is github and I don't know how to contact you, I made an issue)
Hey dkoch83. The Anycubic Chiron firmware is based on the 1.1.9 version. My anycubic chiron touch display is defect. A new one is not available. In the configuration.h there is the option for #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER. When I uncomment this i get a lot of compilling errors. This would be fine if an alternative display can be integrated if the stock one (ugly thing) is defect. I have three 12864 display for replacement.
Thanks for your work
Errors
`
sketch\Marlin_main.cpp: In function 'bool ensure_safe_temperature(AdvancedPauseMode)':
Marlin_main.cpp:6964:7: error: 'lcd_advanced_pause_show_message' was not declared in this scope
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT, mode);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sketch\Marlin_main.cpp:6964:7: note: suggested alternative: 'advanced_pause_menu_response'
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT, mode);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
advanced_pause_menu_response
sketch\Marlin_main.cpp: In function 'bool load_filament(const float&, const float&, const float&, int8_t, bool, bool, AdvancedPauseMode)':
Marlin_main.cpp:7000:11: error: 'lcd_advanced_pause_show_message' was not declared in this scope
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sketch\Marlin_main.cpp:7000:11: note: suggested alternative: 'advanced_pause_menu_response'
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
advanced_pause_menu_response
Marlin_main.cpp:7009:11: error: 'lcd_advanced_pause_show_message' was not declared in this scope
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INSERT, mode);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sketch\Marlin_main.cpp:7009:11: note: suggested alternative: 'advanced_pause_menu_response'
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INSERT, mode);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
advanced_pause_menu_response
Marlin_main.cpp:7033:9: error: 'lcd_advanced_pause_show_message' was not declared in this scope
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_LOAD, mode);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sketch\Marlin_main.cpp:7033:9: note: suggested alternative: 'advanced_pause_menu_response'
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_LOAD, mode);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
advanced_pause_menu_response
Marlin_main.cpp:7072:15: error: 'lcd_advanced_pause_show_message' was not declared in this scope
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_PURGE, mode);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sketch\Marlin_main.cpp:7072:15: note: suggested alternative: 'advanced_pause_menu_response'
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_PURGE, mode);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
advanced_pause_menu_response
Marlin_main.cpp:7084:13: error: 'lcd_advanced_pause_show_message' was not declared in this scope
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_OPTION, mode);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sketch\Marlin_main.cpp:7084:13: note: suggested alternative: 'advanced_pause_menu_response'
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_OPTION, mode);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
advanced_pause_menu_response
sketch\Marlin_main.cpp: In function 'bool unload_filament(const float&, bool, AdvancedPauseMode)':
Marlin_main.cpp:7120:11: error: 'lcd_advanced_pause_show_message' was not declared in this scope
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sketch\Marlin_main.cpp:7120:11: note: suggested alternative: 'advanced_pause_menu_response'
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
advanced_pause_menu_response
Marlin_main.cpp:7130:9: error: 'lcd_advanced_pause_show_message' was not declared in this scope
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_UNLOAD, mode);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sketch\Marlin_main.cpp:7130:9: note: suggested alternative: 'advanced_pause_menu_response'
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_UNLOAD, mode);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
advanced_pause_menu_response
sketch\Marlin_main.cpp: In function 'bool pause_print(const float&, const point_t&, const float&, bool)':
Marlin_main.cpp:7189:11: error: 'lcd_advanced_pause_show_message' was not declared in this scope
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sketch\Marlin_main.cpp:7189:11: note: suggested alternative: 'advanced_pause_menu_response'
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
advanced_pause_menu_response
sketch\Marlin_main.cpp: In function 'void wait_for_filament_reload(int8_t)':
Marlin_main.cpp:7240:7: error: 'lcd_advanced_pause_show_message' was not declared in this scope
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INSERT);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sketch\Marlin_main.cpp:7240:7: note: suggested alternative: 'advanced_pause_menu_response'
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INSERT);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
advanced_pause_menu_response
sketch\Marlin_main.cpp: In function 'void resume_print(const float&, const float&, const float&, int8_t)':
Marlin_main.cpp:7357:7: error: 'lcd_advanced_pause_show_message' was not declared in this scope
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_RESUME);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sketch\Marlin_main.cpp:7357:7: note: suggested alternative: 'advanced_pause_menu_response'
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_RESUME);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
advanced_pause_menu_response
sketch\Marlin_main.cpp: In function 'void gcode_M105()':
Marlin_main.cpp:8298:24: error: 'UsbOnLineFlag' was not declared in this scope
if(!card.sdprinting) UsbOnLineFlag = true; // if reveive m105 from pc,meant usb on line
^~~~~~~~~~~~~
sketch\Marlin_main.cpp: In function 'void gcode_M109()':
Marlin_main.cpp:8633:2: error: 'write_to_lcd_P' was not declared in this scope
write_to_lcd_P(PSTR("J07\r\n")); //hotend heating done
^~~~~~~~~~~~~~
sketch\Marlin_main.cpp:8633:2: note: suggested alternative: 'wants_to_cool'
write_to_lcd_P(PSTR("J07\r\n")); //hotend heating done
^~~~~~~~~~~~~~
wants_to_cool
Marlin_main.cpp:8637:10: error: 'USBConnectFlag' was not declared in this scope
else if(USBConnectFlag) {
^~~~~~~~~~~~~~
sketch\Marlin_main.cpp:8637:10: note: suggested alternative: 'BlockFlag'
else if(USBConnectFlag) {
^~~~~~~~~~~~~~
BlockFlag
In file included from sketch\MarlinConfig.h:27:0,
from sketch\Marlin.h:35,
from sketch\Marlin_main.cpp:259:
sketch\Marlin_main.cpp: In function 'void gcode_M145()':
Marlin_main.cpp:8920:27: error: 'lcd_preheat_hotend_temp' was not declared in this scope
if (material >= COUNT(lcd_preheat_hotend_temp)) {
^
sketch\macros.h:123:26: note: in definition of macro 'COUNT'
#define COUNT(a) (sizeof(a)/sizeof(*a))
^
Marlin_main.cpp:8932:9: error: 'lcd_preheat_fan_speed' was not declared in this scope
lcd_preheat_fan_speed[material] = constrain(v, 0, 255);
^~~~~~~~~~~~~~~~~~~~~
Marlin_main.cpp:8937:11: error: 'lcd_preheat_bed_temp' was not declared in this scope
lcd_preheat_bed_temp[material] = constrain(v, BED_MINTEMP, BED_MAXTEMP - 15);
^~~~~~~~~~~~~~~~~~~~
sketch\Marlin_main.cpp:8937:11: note: suggested alternative: 'lcd_reset_status'
lcd_preheat_bed_temp[material] = constrain(v, BED_MINTEMP, BED_MAXTEMP - 15);
^~~~~~~~~~~~~~~~~~~~
lcd_reset_status
sketch\Marlin_main.cpp: In function 'void gcode_M851()':
Marlin_main.cpp:11012:3: error: 'SAVE_zprobe_zoffset' was not declared in this scope
SAVE_zprobe_zoffset = zprobe_zoffset;
^~~~~~~~~~~~~~~~~~~
sketch\Marlin_main.cpp:11012:3: note: suggested alternative: 'zprobe_zoffset'
SAVE_zprobe_zoffset = zprobe_zoffset;
^~~~~~~~~~~~~~~~~~~
zprobe_zoffset
sketch\Marlin_main.cpp: In function 'void gcode_M600()':
Marlin_main.cpp:11142:7: error: 'lcd_advanced_pause_show_message' was not declared in this scope
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INIT, ADVANCED_PAUSE_MODE_PAUSE_PRINT, target_extruder);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sketch\Marlin_main.cpp:11142:7: note: suggested alternative: 'advanced_pause_menu_response'
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INIT, ADVANCED_PAUSE_MODE_PAUSE_PRINT, target_extruder);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
advanced_pause_menu_response
sketch\Marlin_main.cpp: In function 'void kill(const char*)':
Marlin_main.cpp:15213:5: error: 'kill_screen' was not declared in this scope
kill_screen(lcd_msg);
^~~~~~~~~~~
exit status 1
'lcd_advanced_pause_show_message' was not declared in this scope`
Hello.
I have a Problem with the dual Z Homing.
I can move the Z Axis over the Display up. But when i want to home, only the left Motor moves Down. The right Motor doesnt move. When i change the cables. Same Problem on the other side.
When i manually help to home, then i can move both Motors up and down over the Display.
But a second try to home also doesnt work another Time.
Hey dkoch83. Is there a bugfix for the new TFT at the Chiron which fixes the issue, that if a filament runout is recognized, the message for runout on the display is very fast flickering and cannot quit by the user. I tried to quit the message after pulling back filament to the sensor. The old display didn't have this issue.
I looked at chiron_lcd.cpp:318 --> void FilamentScan() --> it looks like the message appears/dissapears with the speed of a fast loop.
Hello dkoch83
I tried to modified your version. In the "power_loss_recovery.cpp" function "void save_job_recovery_info()"
i want to integrate that if a ups is mounted and an outtage is occured the z axis should rise and/or the x axis should move. I tried several pieces of code
power_loss_recovery.cpp:
...
card.openJobRecoveryFile(false);
(void)card.saveJobRecoveryInfo();
#ifdef CHIRON_POWER_LOSS_RECOVERY
#ifdef POWER_LOSS_UPS_MOUNTED
// If power-loss pin was triggered, write just once then kill
if (READ(POWER_LOSS_DETECT_PIN) == POWER_LOSS_DETECT_STATE)
{
#ifdef DEBUG_POWER_LOSS_RECOVERY
SERIAL_PROTOCOLLNPGM("Power loss detected through input");
SERIAL_EOL();
#endif
#ifdef POWER_LOSS_ZRAISE
#ifdef DEBUG_POWER_LOSS_RECOVERY
SERIAL_PROTOCOLLNPGM("Raise Z axis for security");
SERIAL_EOL();
#endif
parser.parse("G91");
process_parsed_command();
planner.synchronize();
parser.parse("G1 Z5 F1500");
process_parsed_command();
planner.synchronize();
**NO MOVEMENT !!!**
#ifdef DEBUG_POWER_LOSS_RECOVERY
SERIAL_PROTOCOLLNPGM("Z axis raised");
SERIAL_EOL();
#endif
#endif
#ifdef POWER_LOSS_XMOVETOPOS
#ifdef DEBUG_POWER_LOSS_RECOVERY
SERIAL_PROTOCOLLNPGM("Move X axis for security");
SERIAL_EOL();
#endif
parser.parse("G90");
process_parsed_command();
planner.synchronize();
parser.parse("G1 X5 F1500");
process_parsed_command();
planner.synchronize();
**NO MOVEMENT !!!**
#ifdef DEBUG_POWER_LOSS_RECOVERY
SERIAL_PROTOCOLLNPGM("X axis moved");
SERIAL_EOL();
#endif
#endif
#ifdef DEBUG_POWER_LOSS_RECOVERY
SERIAL_PROTOCOLLNPGM("Power loss kill machine");
SERIAL_EOL();
#endif
//Kill machine
kill(PSTR(MSG_POWER_LOSS_RECOVERY));
}
#endif
#endif'
Hello,
I am trying to set up the Chiron using tmc2208 stepper drivers (5x) connected by UART. I am having some trouble getting the pins correct. Can you help me getting a good list? If im correct I have to set it in pins_RAMPS_Chiron.h.
#define X_SERIAL_TX_PIN -1
#define X_SERIAL_RX_PIN -1
#define X2_SERIAL_TX_PIN -1
#define X2_SERIAL_RX_PIN -1
#define Y_SERIAL_TX_PIN -1
#define Y_SERIAL_RX_PIN -1
#define Y2_SERIAL_TX_PIN -1
#define Y2_SERIAL_RX_PIN -1
#define Z_SERIAL_TX_PIN -1
#define Z_SERIAL_RX_PIN -1
#define Z2_SERIAL_TX_PIN -1
#define Z2_SERIAL_RX_PIN -1
#define E0_SERIAL_TX_PIN -1
#define E0_SERIAL_RX_PIN -1
#define E1_SERIAL_TX_PIN -1
#define E1_SERIAL_RX_PIN -1
#define E2_SERIAL_TX_PIN -1
#define E2_SERIAL_RX_PIN -1
#define E3_SERIAL_TX_PIN -1
#define E3_SERIAL_RX_PIN -1
#define E4_SERIAL_TX_PIN -1
#define E4_SERIAL_RX_PIN -1
I need X,Y,Z,Z2 and E0.
Laurens
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.