Custom Splash Screen Garbled



  • I'm having problems with a custom splash screen getting garbled.

    I have a version 2 PanelDue with an ATSAM3S4B chip, and a 7 inch display with an SSD1963QL9 controller.

    I have created a simple 800x480 24-bit bmp and compressed it with bmp2c-escher3d.

    I then combined it with the 1.21.3 release of PanelDue-v2-7.0 using the following command line:
    copy /b PanelDue-v2-7.0.bin+image.bin PanelDueFirmware.bin

    and then uploaded the file using bossac, thru the command line:
    bossac.exe –-port=COM3 -e -w -v -b PanelDueFirmware.bin

    The file uploads correctly, and everything else works perfectly, but the splash screen always ends up garbled. The top half of the image gets split in half and the left and right halves gets swapped around. There is then a gap of about 50 lines before the bottom half of the image is displayed (normally correctly positioned and orientated).

    I have tried numerous different bmp's with different colours and text but they're always garbled in exactly the same way - the bottom half of the image is correct, but the top half gets cut up and swapped around. Each bmp is pretty basic and between 20kb to 40kb when compressed so there is still plenty of memory left when the file is uploaded (the combined bin file only being 132 to 150 kb). 0_1537358007000_SplashScreen2.jpg

    I have also tried it with earlier firmware releases but get the same results.

    Any ideas or assistance would be greatly appreciated.



  • If you use one of the existing files in the SplashScreens directory does it work?



  • I experienced the same problem and gave up. It must be a problem with the hardware because I even had someone else make the bin file and test it working and when I used the same bin file the image was split. I gave up at that point.


  • administrators

    If you resurrect this thread after the TCT show and make both the .BMP and the .bin file available, I'll test them to see if I can reproduce the problem.



  • I've tried the Duet3d and Escher3D Splash Screen .bin files from the directory and had the same results:
    0_1538462736071_Duet3d.jpg

    0_1538462746780_Escher3d.jpg

    In all cases the Splash Screen picture gets garbled in a similar way, but once the splash screen disappears, the rest of the PanelDue displays and operate correctly. So it seems to be an issue either when Windows joins the two bin files, or something with the hardware when it uploads.

    The combined .bin file with the Duet3d Splashscreen:
    http://www.filedropper.com/panelduefirmware


  • administrators

    Please provide the original .bmp file too.



  • I don't have the original BMP for that one - I was using the SplashScreen-Duet3d-800x480.bin file from the 121.3 Source Code .zip files on GitHub.

    Here's all the files for my own Splash Screen though:

    SplashScreen bitmap http://www.filedropper.com/splashscreen-douglas
    Splashscreen bin file http://www.filedropper.com/splashscreen-douglas_1
    PanelDueFirmware bin file http://www.filedropper.com/paneldue-v2-7
    Combined Firmware bin file http://www.filedropper.com/panelduefirmware_1


  • administrators

    I'm sorry, I didn't read your post properly, I thought you had generated the .bin version of the image yourself.

    I've replicated the problem using the files you supplied for your own splash screen. I repeated the copy operation to concatenate the files, and that produced exactly the same file that you uploaded.

    I then appended your splash screen file to the version 3 7.0 nologo binary, flashed it to a version 3 board, and it worked.

    I think I know what is going wrong. The version 2 firmware runs on both 128Kb and 256kb flash memory versions of the ATSAM3S chip. So it uses the last 1K or so of the first 128kb of RAM as nonvolatile storage to save the user settings. This means that if the firmware binary + splash screen exceeds 128kb in length, part of the splash screen gets overwritten by the user settings.

    I guess I could fix this in the next firmware release by reading the chip ID register to find the memory size and use that to decide where to store the nonvolatile data.


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.