Announce: Framebuffer::GFX and FastLED_SPITFT::GFX

I’ve also released and uploaded version 1.2 of SmartMatrix::GFX to github and the arduino library manager. Hopefully the dependency I put on ‘SmartMatrix’ instead of ‘SmartMatrix3’ will make things “just work” (didn’t really test this since I work out of git instead of the arduino library manager).

@lemuroid as a heads up to you, if you end up updating SmartMatrix::GFX, you’ll need to update SmartMatrix (and the other way around), as well as FastLED_NeoMatrix_SmartMatrix_LEDMatrix_GFX_Demos/neomatrix_config.h at master · marcmerlin/FastLED_NeoMatrix_SmartMatrix_LEDMatrix_GFX_Demos · GitHub
the relevant bit is here:

    #define GPIOPINOUT 8
    #ifdef SMARTMATRIXV3
        #include <SmartLEDShieldV4.h>
        #include <SmartMatrix3.h>
    #else // As of 2020/11, SmartMatrix v4 has a new interface
        // https://community.pixelmatix.com/t/smartmatrix-library-4-0-changes-to-matrixhardware-includes/709/9
        #ifdef ESP32
            #include <MatrixHardware_ESP32_V0.h> // ESP32
        #else
            #include <MatrixHardware_KitV4.h>    // Teensy shield v4
        #endif
        #include <SmartMatrix.h>
    #endif
    #include <SmartMatrix_GFX.h>

There is no compelling reason for you to update, this is just a heads up if you end up doing so.

1 Like

Glad you got it working.

Hopefully the dependency I put on ‘SmartMatrix’ instead of ‘SmartMatrix3’ will make things “just work”

I’m not sure what will happen right now, as there is no library named SmartMatrix in Arduino Library Manager, but in the next week or so when SmartMatrix3 gets renamed to SmartMatrix, then hopefully it will just work

    #ifdef ESP32
        #include <MatrixHardware_ESP32_V0.h> // ESP32
    #else
        #include <MatrixHardware_KitV4.h>    // Teensy shield v4
    #endif

This code is a little simple and doesn’t take into account that there are more than two relevant hardware definitions now, but it’s in the sketch and can be edited easily to choose between other definitions, so it’s probably no big deal.

Thanks for the reply. I think you’re saying that SmartMatrix3 will disappear then?
In an ideal world, my old lib would have depended on your old lib, and my new lib would have depended on your new lib, but that’s probably overkill. People should just switch to the new one :slight_smile:

As for the ifdef, yes, it’s very simplistic, it’s just a “works for me” template. Obviously I can’t guess what shield people are using and they’ll need to adjust accordingly.

Yeah. Naming it SmartMatrix3 was shortsighted, and I didn’t realize it would cause problems when wanting to rev past 3.x.

If you want to release 1.2 to Arduino Library Manager you need to add a new tag in your repo

damn, I did but I forgot this step
git push origin 1.2
I forgot that git push doesn’t push new tags to github (not super obvious)

1 Like

I tested SmartMatrix::GFX installation with Arduino Library Manager (I also normally use git), and it fails when I try to update and have it install dependencies. If I try again and install just the library, it works. I’m going to be submitting the rename request shortly, so hopefully this is a short lived issue.

Library is already installed: Framebuffer GFX:1.0.0
Library is already installed: FastLED:3.3.3
Library is already installed: Adafruit GFX Library:1.10.0
Library is already installed: Adafruit BusIO:1.3.3
 no protocol: 
java.lang.RuntimeException: java.net.MalformedURLException: no protocol: 
	at cc.arduino.contributions.libraries.ui.LibraryManagerUI.lambda$onInstallPressed$4(LibraryManagerUI.java:248)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.MalformedURLException: no protocol: 
	at java.net.URL.<init>(URL.java:611)
	at java.net.URL.<init>(URL.java:508)
	at java.net.URL.<init>(URL.java:457)
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:64)
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:60)
	at cc.arduino.contributions.libraries.LibraryInstaller.performInstall(LibraryInstaller.java:155)
	at cc.arduino.contributions.libraries.LibraryInstaller.install(LibraryInstaller.java:125)
	at cc.arduino.contributions.libraries.ui.LibraryManagerUI.lambda$onInstallPressed$4(LibraryManagerUI.java:237)
	... 1 more

thanks for the heads up. Hopefully this indeed gets fixed when your rename goes through. Please let me know if not, and I’ll look into what needs to be fixed.

It’s been two weeks since the last batch of Arduino Library Manager requests were processed, so I hope that means they are close to doing the next batch:

“SmartMatrix3” is now renamed to “SmartMatrix” in Arduino Library Manager. I tested installing your library using Arduino Library Manager and the install is now smooth.

great to hear, thanks for getting back to me on this and closing the loop