Can someone explain the JohnCarlson21 LCD firmware?

Hi:

I’m in the process of deciding whether to order an SV04. I’ve done extensive customization to my current printer, which uses “standard” Marlin TFT_COLOR_UI. I’m not familiar with how the SV04 handles the display, since it appears that there is no display at all selected in configuration.h (of the Sovol 2.0.9.x source code, that is)

Can someone explain how this custom display firmware works, where it came from, what is it based on? Does it work/look like the Sovol display firmware, or is it completely different?

Any background would be helpful. Thanks!

same questions about GitHub - bphillips09/SV04-Touchscreen: SV04 Touchscreen Source :wink:

Hi,
the SV04 uses a DWIN T5L TFT LCD display, type DMG48270C043_03WTRZ35.
Display handling in the Sovol SV04 stock firmware which is based on Marlin v.2.0.9.2 is done with a custom class named LCD_RTS.h that drives the T5L display software in the DWIN display. The display software raw data can be retrieved from the Sovol SV04 stock display software using DWIN’s DGUS tool, the process is demonstrated in this YT video:
https://www.youtube.com/watch?v=smAnnwhfOvA
Brandon Phillips seems to have done this & implemented some updates + addons for the display software and in the SV04 stock firmware and posted the results on his GitHub account. He explained the changes in his current releases on GitHub. Except from altered & new functions the icons & handling in Brandon Phillips’s display software is the same.

According to the GitHub fork history John Carlson seems to have built his updates based on Brandon Phillips’ sources. The icons in John Carlson’s display software are different & far more colourful compared to stock display software, but besides from additional functions handling is the same. He explained the changes in his current releases on GitHub, too. Additionally, he posted a SV04 firmware version that is based on Marlin v.2.1.2.x

That is very helpful @Bjoern !

I’m still not clear on the concept of the DWIN display as opposed to Marlin TFT_COLOR_UI, for example. if I enable #define MESH_EDIT_MENU or #define MESH_EDIT_MENU in Marlin config, will the display just ignore it, because the structure is in the display unit? or does the actual menu structure still come from the mainboard firmware?

I never used TFT_COLOR_UI hence no conceptual comparison from me. The concept of DWIN DGUS TL5 displays basically consists of a serial data protocol & predefined sets of output screens & output elements like icons, textfields etc. & touch input elements like buttons, sliders etc. Detailled information is available for download here.
In general every SV04 firmware function with user output or input uses predefined screens with output fields / input buttons in the display software AND matching procedure calls of the LCD_RTS class. Therefore uncommenting the MESH_EDIT_MENU switch in the configuration.h file won’t help at all: Bilinear levelling is the only leveling method that has been implemented in the SV04 firmware with LCD_RTS support, UBL or MBL are not supported at all. It would need additional display screens in the display software, additional LCD_RTS procedure calls in the affected Marlin firmware classes & additional functionality in the LCD_RTS class.

@Bjoern - thanks.

Marlin with the text or TFT_COLOR_UI is very flexible, and adds menus as features are enabled/disabled. The display is more of a “dumb terminal”

I wonder if anyone has ever replaced the DWIN type display with a more marlin-integrated display from makerbase, etc? I have extensively leveraged those other marlin features like UBL in my current printer, and it would have been soooo much harder to modify two systems (mainboard, dwin) instead of one.

It would require a an other type of display with a serial bus.
I tried to find a way to exchange the DWIN display with a standard 12864 LCD display from my old SV01 printer, but it would need eight I/O pins to connect it via EXP3 port to the Creality v5.2.1 board. That would either require all optional I/O pins including my custom auto power-off function or it would require soldering on the motherboard in order to wire unused MCU pins (and the thrill not to ruin MCU or motherboard…). Therefore I kept the DWIN display with all its inconvenience.

@Bjoern not sure if you are still tinkering with SV04, but I’ve gone through lots of iterations of JCarlson firmware, Klipper, etc. by now I can make minor tweaks to bother firmware and the infuriating DWIN/DGUS.
My latest adventire is with octopi talking to the modified jcarlson firmware (since I abandoned klipper)
I find that octoprint/octopi works great, but when a print finishes the display on the printer remains on print status screen showing 100%. it is not “Stuck” -I can tell it to leave that screen. but I’d like to have octoprint tell the printer (and display) that the printing party is over.
Any idea how to force the screen beck to the home screen instead of the print status screen?

Hi again,
yes, I’m still putting some free time in enhancing the SV04 firmware - my current version can be found here & it does support octoprint.

You may want to add G-Code M1001 “Execute actions for SD print completion” as last instruction into the end script of your slicer or octoprint. This should bring up the SV04 start screen.

Is there any original source for sv04 from sovol version 1.14 ?
The on the sovol website is 2 years old
Thank you

Does installing this version of the firmware require any changes to the screen also?

Also, is there an already built version of the firmware.bin file?
Thanks.

Hi,
Have you take a look here ?
https://wiki.sovol3d.com/en/QUICKSTART

Hello wc4h,
you revived this thread after half a year. Thematically, three different firmware versions have been discussed. It would be quite helpful to know which of these versions your questions are related to…
In case of my firmware version, you’ll find answers & binaries in my GitHub repository.
/R
Björn

Your link to binaries has a part that says: “This SV04 Marlin firmware requires matching touchscreen software v1.14.3 that is available here:”

That answers my question. That is, the binary DOES require touchscreen software.

Thank you Bjoern.

1 Like

Hello, I am considering purchasing a SV04. I am excited to try out multimaterial designs.

On the discussion about the firmware Bjoern provides on github, I seem to remember it supports linear advance (m900), but I was hoping someone could confirm. My mind is boggled right now. I would also like to utilize input shaping (m593? M493? I don’t really understand the difference between these two honestly) …

Does this firmware support both of these?

Looking at the Wiki, the pictures look a lot like UBL is implemented as well. Very cool!

Hello aPpYe,
thanks a lot & welcome to the forum. I can answer your question for my current firmware version v1.14.6. It is based on Marlin firmware v.2.0.9 with additions regarding M423 - X Twist Compensation.

  • M900 will work. LIN_ADVANCE is supported.
  • M593 is not implemented. ZV Input Shaping is not supported. This is a newer feature that came with Marlin firmware v2.1.2.
  • M493 is not implemented. Fixed-Time Motion is not supported. This is a newer feature that came with Marlin firmware v2.1.3.
  • Unified Bed Leveling (UBL) is not supported. Implementing UBL would require much effort in the display software. Bilinear Leveling is supported instead & IMHO it works sufficiently. The implemented mesh viewer is a small add-on for displaying the measured surface topology.

/R
Björn

Thanks for replying! Slight bummer on the input shaping thing, but linear advance was the big one for me anyway. I like what you’ve done with bilinear ABL anyway. No “tilting” the mesh, so I will have to figure out something else, but

I think I am going to pick up this printer. I’m really excited to interlock things like TPU and PETG in my designs …

It’s used, and only a hundred bucks, so hopefully it hasn’t been dropped on its head. While I am on that, I am going to check it out later today most likely. Are there any common things to look for on a used Sovol SV04 to ensure it will be useful?

Asking the seller why this SV04 is being sold is always a good idea.
If you’re picking it up from the seller running a small test print is also helpful to find hidden problems. The SV04 is delivered with an SDcard that contains printing examples. The file named “calibration.gcode” should print a small calibration sample in Dual mode using PLA in both nozzles.
Good luck!
Björn

Yeah the seller says he only put about 36 hours on it and he never really messed with it after that. Hopefully this is true. Keeping my fingers crossed.

I like your idea of printing that calibration comb thing. I am guessing that should only take a few minutes to print. Hopefully the guy will let me print something. I’ll make sure to take some PLA with me and an SD card with the file on it.

Cool! Everything seems to be working as it should. The machine smells like it lived with a smoker, but that isn’t a big deal. A date with the air compressor and all is clean. I am so tired now though. Calibration and installation of your firmware is a tomorrow me problem …