dianlight / BIGTREETECH-TFT35-V1.2

3.5inch Serial Port Touch Screen, Support Marlin/Smoothieware/etc..
3 stars 0 forks source link

Compile errors marlin Nozzle Park / Babystepping #1

Open govido opened 5 years ago

govido commented 5 years ago

Hi, if I currently try to compile marlin with Nozzle Park Feature / Advanced Pause, I get the following error:

CONFIGURATION:_ https://docs.platformio.org/page/boards/nxplpc-arduino-lpc176x/nxp_lpc1768.html PLATFORM: NXP Arduino LPC176x > NXP LPC1768 HARDWARE: LPC1768 100MHz 31.80KB RAM (464KB Flash) DEBUG: CURRENT(cmsis-dap) ON-BOARD(cmsis-dap) EXTERNAL(blackmagic, jlink) Converting Marlin.ino Library Dependency Finder -> http://bit.ly/configure-pio-ldf LDF MODES: FINDER(off) COMPATIBILITY(strict) Collected 6 compatible libraries Scanning dependencies... Dependency Graph |-- 1.0.0 |-- 1.0.0 |-- 0.4 |-- 0.4.5 |-- 1.1.8 |-- #e35d62c upload disk: H: Compiling .pioenvs\LPC1768\src\src\gcode\feature\pause\M701_M702.cpp.o Compiling .pioenvs\LPC1768\src\src\gcode\gcode.cpp.o Compiling .pioenvs\LPC1768\src\src\gcode\geometry\G17-G19.cpp.o Compiling .pioenvs\LPC1768\src\src\gcode\geometry\G53-G59.cpp.o Compiling .pioenvs\LPC1768\src\src\gcode\geometry\G92.cpp.o Compiling .pioenvs\LPC1768\src\src\gcode\geometry\M206_M428.cpp.o Compiling .pioenvs\LPC1768\src\src\gcode\host\M110.cpp.o Compiling .pioenvs\LPC1768\src\src\gcode\host\M113.cpp.o Marlin\src\gcode\feature\pause\M701_M702.cpp: In static member function 'static void GcodeSuite::M701()': Marlin\src\gcode\feature\pause\M701_M702.cpp:108:59: error: 'fc_settings' was not declared in this scope : fc_settings[active_extruder].load_length); ^~~ Marlin\src\gcode\feature\pause\M701_M702.cpp:110:72: error: 'PAUSE_MODE_LOAD_FILAMENT' was not declared in this scope true, thermalManager.still_heating(target_extruder), PAUSE_MODE_LOAD_FILAMENT ^~~~~~~~ Marlin\src\gcode\feature\pause\M701_M702.cpp:110:72: note: suggested alternative: 'MSG_MMU2_LOAD_FILAMENT' true, thermalManager.still_heating(target_extruder), PAUSE_MODE_LOAD_FILAMENT ^~~~~~~~ MSG_MMU2_LOAD_FILAMENT Marlin\src\gcode\feature\pause\M701_M702.cpp:109:5: error: 'load_filament' was not declared in this scope load_filament(slow_load_length, fast_load_length, ADVANCED_PAUSE_PURGE_LENGTH, FILAMENT_CHANGE_ALERT_BEEPS, ^~~~~ Marlin\src\gcode\feature\pause\M701_M702.cpp: In static member function 'static void GcodeSuite::M702()': Marlin\src\gcode\feature\pause\M701_M702.cpp:217:59: error: 'fc_settings' was not declared in this scope : fc_settings[target_extruder].unload_length); ^~~ Marlin\src\gcode\feature\pause\M701_M702.cpp:219:44: error: 'PAUSE_MODE_UNLOAD_FILAMENT' was not declared in this scope unload_filament(unload_length, true, PAUSE_MODE_UNLOAD_FILAMENT ^~~~~~ Marlin\src\gcode\feature\pause\M701_M702.cpp:219:44: note: suggested alternative: 'MSG_MMU2_UNLOAD_FILAMENT' unload_filament(unload_length, true, PAUSE_MODE_UNLOAD_FILAMENT ^~~~~~ MSG_MMU2_UNLOAD_FILAMENT compilation terminated due to -fmax-errors=5. *** [.pioenvs\LPC1768\src\src\gcode\feature\pause\M701M702.cpp.o] Error 1

Compiling with Babystepping enabled also throws another error:

Compiling .pioenvs\LPC1768\src\src\lcd\menu\menu_filament.cpp.o Marlin\src\lcd\extensible_ui\ui_api.cpp: In function 'void ExtUI::smartAdjustAxis_steps(int16_t, ExtUI::axis_t, bool)': Marlin\src\lcd\extensible_ui\ui_api.cpp:641:19: warning: unused variable 'mm' [-Wunused-variable] const float mm = steps * planner.steps_to_mm[axis]; ^~ Compiling .pioenvs\LPC1768\src\src\lcd\menu\menu_game.cpp.o Compiling .pioenvs\LPC1768\src\src\lcd\menu\menu_info.cpp.o Compiling .pioenvs\LPC1768\src\src\lcd\menu\menu_job_recovery.cpp.o Compiling .pioenvs\LPC1768\src\src\lcd\menu\menu_led.cpp.o Compiling .pioenvs\LPC1768\src\src\lcd\menu\menu_main.cpp.o Compiling .pioenvs\LPC1768\src\src\lcd\menu\menu_mixer.cpp.o Compiling .pioenvs\LPC1768\src\src\lcd\menu\menu_mmu2.cpp.o Compiling .pioenvs\LPC1768\src\src\lcd\menu\menu_motion.cpp.o Compiling .pioenvs\LPC1768\src\src\lcd\menu\menu_sdcard.cpp.o Compiling .pioenvs\LPC1768\src\src\lcd\menu\menu_service.cpp.o Compiling .pioenvs\LPC1768\src\src\lcd\menu\menu_temperature.cpp.o Compiling .pioenvs\LPC1768\src\src\lcd\menu\menu_tmc.cpp.o Compiling .pioenvs\LPC1768\src\src\lcd\menu\menu_tune.cpp.o Compiling .pioenvs\LPC1768\src\src\lcd\menu\menu_ubl.cpp.o Compiling .pioenvs\LPC1768\src\src\lcd\ultralcd.cpp.o Compiling .pioenvs\LPC1768\src\src\libs\L6470\L6470_Marlin.cpp.o Compiling .pioenvs\LPC1768\src\src\libs\buzzer.cpp.o Compiling .pioenvs\LPC1768\src\src\libs\hex_print_routines.cpp.o Compiling .pioenvs\LPC1768\src\src\libs\least_squares_fit.cpp.o Compiling .pioenvs\LPC1768\src\src\libs\nozzle.cpp.o Compiling .pioenvs\LPC1768\src\src\libs\numtostr.cpp.o Compiling .pioenvs\LPC1768\src\src\libs\stopwatch.cpp.o Compiling .pioenvs\LPC1768\src\src\libs\vector_3.cpp.o Compiling .pioenvs\LPC1768\src\src\module\configuration_store.cpp.o Compiling .pioenvs\LPC1768\src\src\module\delta.cpp.o Compiling .pioenvs\LPC1768\src\src\module\endstops.cpp.o Compiling .pioenvs\LPC1768\src\src\module\motion.cpp.o Compiling .pioenvs\LPC1768\src\src\module\planner.cpp.o Compiling .pioenvs\LPC1768\src\src\module\planner_bezier.cpp.o Compiling .pioenvs\LPC1768\src\src\module\printcounter.cpp.o Compiling .pioenvs\LPC1768\src\src\module\probe.cpp.o CMompiling .pioenvs\LPC1768\src\src\module\scara.cpp.oarlin\src\module\motion.cpp: In function 'void set_axis_is_at_home(AxisEnum)': C ompiling .pioenvs\LPC1768\src\src\module\servo.cpp.oM arlin\src\module\motion.cpp:1340:14: error: 'class Babystep' has no member named 'reset_total' babystep.reset_total(axis); ^~~ Compiling .pioenvs\LPC1768\src\src\module\stepper.cpp.o *** [.pioenvs\LPC1768\src\src\module\motion.cpp.o] Error 1

These options compile correctly with 12864 displays. Just to give you some feedback :)

govido commented 5 years ago

Additional infos: I flashed the new firmware to the display which seemed to work. But if I use your serial settings I get the following message from octoprint when I connect. I get brief connection an temperature and then it will disconnect.

Recv: //action:disconnect Disconnecting on request of the printer...

Another thing: If I use the screen as 'dumb' serial display I can also use an additional 12864 display, with extensible UI there seems to be only one display option available. Otherwise there will be tons of errors if I deactivate the sanitychecks before compiling.

dianlight commented 5 years ago

Hi, if I currently try to compile marlin with Nozzle Park Feature / Advanced Pause, I get the following error: ...

@govido can you post your Marlin config and config_adv

Sent with GitHawk

dianlight commented 5 years ago

Additional infos: ...

@govido for now external_ui don’t support multiple display existence.

For octoprint /disconnect problem. You use my patch in marlin firmware or the vanilla?

Sent with GitHawk

govido commented 5 years ago

Hi, I tested your marlin fork:

Marlinconfig.zip

dianlight commented 5 years ago

Hi, I found the problems and are out of my implementation:

L.

dianlight commented 5 years ago

Hi, I push a new version of TFT firmware and a new version of Marlin, Now the TFT is stable (need testing but now I use it in all my print jobs ) and the Marlin compile with NOZZLE_PARK feature.

For the multiple LCD and Marlin Menu un TFT35 is not possible to implement without a total rework where the serial between the printer and the LCD is not define in Marlin as primary or secondary serial for gcode but is only the LCD control channel like the MALYAN_LCD.

vMeph commented 5 years ago

@dianlight any videos in what the TFT can do right now? also is there anyway this will make it into ofiicical bug fix branch?

dianlight commented 5 years ago

@dianlight any videos in what the TFT can do right now? also is there anyway this will make it into ofiicical bug fix branch?

The actual firmware ( the TFT ) is able to switch in printer mode if there is a printjob from the other serial and use action commands . So if you use octoprint you will see the printing progress and you can stop/pause/resume from tft. To do it all the UART functions in TFT fw was rewritten to work by line ( as Marlin ).

I was ready to create the pull request but bigtree guys drop the tft35 firmware repository to switch to an unified fw for all his tft. So all my work need to be transferred and adapted manually and extend for other tft models. ( I have only tft35 model to test and now I have no time, maybe is a September/October work ).

I send the Marlin pull requests when/if bigtree merge my work. The dependence is mutual.

Sorry no video you need to clone and try it.