Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Anycubic Vyper - compile fix, home screen temperature update, power fail display fix #26261

Merged
merged 9 commits into from
Jun 10, 2024

Conversation

Bob-the-Kuhn
Copy link
Contributor

This PR addresses three items:

  • The example configuration fails to compile with this error: 'class Anycubic::DgusTFT' has no member named 'language'
  • On the home screen there are symbols for the bed and heater. This PR adds code that updates the actual and commanded temperatures for both. Currently no data is displayed unless you navigate to specific other pages and come back but even then the contents do not get updated.
  • On power up or after pressing reset, the power loss recovery logic turns the LCD's backlight off.

Solutions:

1 - compile error

Because of the way ui_language is declared it can't just be used as a replacement for language within the UI.

  • Added the variable language to the class Anycubic::DgusTFT.
  • Modified the functions DgusTFT::set_language, DgusTFT::toggle_language and DGUSRxHandler::setLanguage so that both ui_language and language are updated at the same time.

2 - home screen: bed and heater updates

Added code to the function DgusTFT::idleLoop so that the bed and heater text area are updated when the english and chinese home screens are active.

3 - LCD's backlight turned off after pressing reset button or power up

Restoring the EEPROM eventually calls DgusTFT::powerLoss which turns off the LCD's backlight.

Added code to the function DgusTFT::idleLoop so that the LCD's backlight is turned on when the english and chinese home screens are active.


Testing

Hardware:
Motherboard: BTT SKR-PRO V1.1
LCD: DMG80480C043_02WTC

Software:
Latest bugfix-2.1.x
Starting configuration: bugfix-2.1.x/config/examples/AnyCubic/Vyper
Changes to configuration:

  #define MOTHERBOARD BOARD_BTT_SKR_PRO_V1_1
  #define POWER_MONITOR_VOLTAGE_PIN PG1
  #define AUTO_LEVEL_RX_PIN PF14
  #define BEEPER_PIN PG4
  #define I_UNDERSTAND_AND_ACCEPT_THAT_THERE_IS_ZERO_SUPPORT_FOR_THIS_CONTROLLER
  #define LCD_SERIAL_PORT  1
  #define LCD_BAUDRATE 115200
  #define CASE_LIGHT_PIN PG0

LCD firmware: downloaded from example config noted above


NOTE - Vyper display ZWLF043_001 won't talk on the serial port when uploaded with the DWIN set from the example config. The same SD card was used to upload both the ZWLF043_001 and the DMG80480C043_02WTC. The DMG80480C043_02WTC is fully functional but the ZWLF043_001 just goes through the power up graphics and then freezes with the Anycubic symbol being displayed. Either different DWIN sets are needed or I have a defective ZWLF043_001.

@Bob-the-Kuhn
Copy link
Contributor Author

The more I think about it the more I wonder why the original software turned the backlight off if power loss recovery was enabled. I just don't see a scenario where this is helpful.

Maybe the better approach is to disable turnng off the LCD.

@Bob-the-Kuhn
Copy link
Contributor Author

I've pushed a commit that disables power fail recovery from turning off the LCD's backlight. I just don't see a situation where turning off the LCD and requiring a reboot/reset to recover is a good thing.

@thinkyhead
Copy link
Member

It looks like you intended to use set_brightness someplace, but maybe that is no longer needed?

@thinkyhead thinkyhead force-pushed the bugfix-2.1.x branch 2 times, most recently from 9c65146 to 4f65466 Compare January 26, 2024 00:13
@thisiskeithb
Copy link
Member

thisiskeithb commented May 12, 2024

The example configuration fails to compile with this error: 'class Anycubic::DgusTFT' has no member named 'language'

Stock Vyper config compiles fine now, so I don't know if this is still needed.

There's still an issue with temperatures not displaying according to the user I'm helping on Discord today, so those changes are still needed.

One issue that has come up several times on Discord is the firmware name. The current format of firmware-20240512-012214.bin will not flash, but main_board_20240512_012214.bin will. It has to have the main_board_* prefix and no dashes/only underscores for the bootloader to pick it up. This also matches the naming convention of the community fork (though, they don't use a date).

The second reported issue is the Z axis not working, but I don't have more information on that at the moment.

@ngraziano
Copy link
Contributor

Hi

Concerning the temperature display problem on the main screen, I was about to do a PR with this commit eb9f48df0c57b900dd0ea0f66a2af9ba6264427e when I saw this PR here.

I think my fix is more correct because updating TXT_PREHEAT in page 1 handler does not make sense. But my fix do not include the part for brightness.

Let me know if do a PR with this commit.

ngraziano pushed a commit to ngraziano/Marlin-work that referenced this pull request Jun 9, 2024
@thinkyhead thinkyhead merged commit b99391c into MarlinFirmware:bugfix-2.1.x Jun 10, 2024
62 checks passed
@thisiskeithb
Copy link
Member

thisiskeithb commented Jun 25, 2024

This PR broke our Ender-3 S1 Plus and Ender-3 S1 Pro configs / likely any config with #define DGUS_LCD_UI E3S1PRO:

thisiskeithb added a commit to thisiskeithb/Marlin that referenced this pull request Jun 26, 2024
thinkyhead pushed a commit that referenced this pull request Jul 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants