RoadTest: STM32L4R9I-DISCO Discovery Kit
Author: gsgill112
Creation date:
Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: My past experience with STM32L4 Nucleo Board with Nextion 3.2" LCD Display.
What were the biggest problems encountered?: Getting started with development on Kit, I.E. the learning curve for software tools.
Detailed Review:
INTRODUCTION
First of all, Thank You Element 14 Community to give me this awesome opportunity to RoadTest yet another awesome piece of hardware. This indeed was an exciting Roadtest and a solid product from ST.
Let's first go through a brief feature list of the STM32L4R9I-DISCO Development Board in "Whats in the Box Section"
As you can see at this point, This kit is Serious business. It has almost Everything you need for for development of a Wearable, Industrial, Consumer Application. I have purposefully left out IoT as the one thing this board lacks is the communications department. But that being said as the kit do include an Arduino Rev3 compatible header, PMOD header, Microbus Click Module as well as STMOD+ header it isn't a big challenge adding functionality. (though you do need to buy them)
UNBOXING
So, here's an short unboxing video of the kit
DISASSEMBLY
I tried So hard but My curiosity of what's beneath the display and actually How thin the display is got me to Disassemble the kit to as much as I can
So, Here are some Images of the Kit, Display and the additional daughter boards that come along.
OUT OF THE BOX DEMOS
Below are demos that come preprogrammed on the kit
{tabbedtable} Tab Label | Tab Content |
---|---|
Out of the Box (OOB) DEMOS | First things First. Lets first look at the demos provided out of the box.
There are 3 Main Demos covering all the aspects of the board as well as the GUI showcase
The ST emWin Demo that is the default interface that you can see on the display, The TouchGFX is next on the list with some awesome Graphics capability and amazing game to demonstrate the ART functionality and lastly the EmbeddedWiz GUI that is a functional demonstration with couple of watch faces and static images bragging the capabilities (Though they also do support ART 2D accelerator that have not demonstrated that in the OOBD).
In Last I have also added the Audio Recording and playback capability. This board also supports Audio capability and I have tested it. Though I was not able to record it and hence not there in the below videos. But the kit do outputs a really good audio playback support (NO MP3 THOUGH). |
STemWin DEMO | The ST emWin OOB Demo It is developed by ST and is FREE to use as add on library.
|
TouchGFX DEMO | The TouchGfx OOB Demo, It is also owned by ST but is not free, a separate designer is required to be downloaded.
|
EmbeddedWiz DEMO | The EmbeddedWiz OOB Demo, another awesome GUI software Not affiliated to ST but is somewhat amazing.
|
Audio Record and Playback DEMO | Audio Record and Playback OOB Demo.
|
GUI - TOOLS FOR THE KIT
Below are demos that come preprogrammed on the kit
{tabbedtable} Tab Label | Tab Content |
---|---|
GUI Development | There are a lot of GUI designing softwares available but few of them have the ART accelerator enabled.
In this Section I will be covering EmbeddedWiz, TouchGFX, STemWin and uLib as the major ones. |
EmbeddedWiz | The First section is EmbeddedWiz. Below are few demos of Embedded Wiz
This is all Objective Drag and configure Kinna interface and it auto generates the code. But I found the learning curve to be a steep one. Though it is really effective and you can build some really Awesome GUI's.
Download EmbeddedWiz HERE
Next lets see the Interface we get with Embedded Wiz. As I was saying it is all visual based GUI no programming needed The Main screen with a helloWorld Project Loaded. You can see the objects required for a simple project and on the right you can see the object interactions and calls.
Diving into an object revels its events and resources It is analogous to Functions inside a Class .
Here you can see the Application object with the GUI and on left a set of dead and drop components to build your GUI |
ST TouchGFX | The Second section is TouchGFX.
Touch GFX is more next with less learning curve and you can create some really impressive GUI. But it is on the pricer side; So ; Compromises everywhere.
TouchGFX is owned by ST so .. You know what I am thinking.. .. Why not make a free version Though I can understand ST needs to make some money too
Initially I did face some issues as even the eval version is not a free download, you need to register and wait for them to send you a download link, which they did not send, but after a while I finally did get the link and try it
Download TuchGFX Here
Everyone likes Awesome SplashScreen The basic Screen. It is much More intuitive and east to work with. It has many templates to choose from, just like android design studio.
as you can see it is Really easy to get started and has an PC based simulator also AWESOME !!!
|
ST emWin | The Third section is STemWin.
This is like a set of libraries given and is really promising. Though prior knowledge of C and some serious function calls are required. You have all the basic functions like showing a picture drawing objects and fonts are pre defines and is simple to use with simple function calls.
Moreover it is completely FREE FREE FREE FREE !!!!!! !!!!! (Don't imagine anything great and animated, and no drag and drop or Visual GUI present )
Download CubeL4 to get this library or Click HERE
<Video subject to if you guys need to see it. Comment below>
StemWin as a part of Cube L4 package. Note It has GUI design Tool, All other font Generator Tools and a Hefty documentation All that is needed
Tools that this baby come with
Straight forward Drag and drop GUI programming , Note It has a property tab, and all properties needs to be added manually. By default only the component properties are shown. |
LittleGL | Web HERE
It seams to be a really promising library. I am yet to get it functional !!
|
OTHERS | There are loads of other FREE and promising Libraries but Those will take a while testing them out
1. https://ugfx.io/ uGFX Library 2. https://embeddedlightning.com/ugui/ uGUI Library 3. http://www.minigui.org miniGUI Library
These were the top of my list. |
SOFTWARE TOOLS FOR THE KIT
Below are demos that come preprogrammed on the kit
{tabbedtable} Tab Label | Tab Content | ||||||||
---|---|---|---|---|---|---|---|---|---|
Software Development Tools | Any Hardware is only as good as the Software development tools and the debugging tools available. So, lets explore the software development tools available for the kit.
Now as we are talking about ST one of the biggest Semiconductor Manufacturers, So I do hope a rich support and development experience.
Finally One last thing I want to talk about is, IF you are familiar with ST development bundles like Cube Series , It will be a charm getting started, or else you have to struggle to get started. The examples are documented but are somewhat complicated using plethora of modules. There arnt simple getting started blinky kinna applications as examples; ST figures you can do it yourself . That being said if you get a hand of the software, You will rock up ST portfolio | ||||||||
ST Cube MX | The first on the list is ST Cube MX. This is one of the coolest Auto software generators; I still rank the Cypress PSoC Creator as the first one You can select an individual pin and configure the role of an individual pin without writing any code, AWESOME.
-- You can also configure the Clock and basic peripherals; Again without writing any piece of code -- It requires an active internet connection so No OFFLINE mode there -- You can select the Part as per the requirement That cool.
After entering the part number I was given a list of choices of Parts to select for and also the Discovery kit as well as Evaluation kit versions to select from. (This kit has the board definition files for the manufactured kit, so no need to worrying about what peripheral is connected where in the dev board)
I selected the STM32L4R9I-DISCO kit and selected to configure all the peripheral modes to default
Now, No wonder How much I tried, I was not able to get the GRAPHICS and display interface working. I HOPE SOMEONE CAN HELP ME HERE !!
But I was able to export the basic application configured and autogenerated by Cube MX, and then imported to SW4STM32 Studio and modified for LED Blink
Download CubeMX HERE
| ||||||||
ST Cube L4 | ST CubeL4 sounds like it is another additional package that would co install to Cube MX but it is nothing like it.
Cube L4 is basically a Zip of Lower layer lib, BSP, Middleware, and useful libraries custom tailored to the L4 family. It includes all the main L4 and L4+ dev boards with examples and applications examples (Pre Compiled) It also includes some Utilities as well as Documentation to getting started.
I think St should also include "How to read the documentation" in a Documentation help folder (JUST KIDDING)
All examples are neatly classified and fully documented with extensive comments.
The only complaint I have is that All the A6 STM32 Studio projects are referenced. I.e. id I import an project It doesn't copy all the files to my workspace, It just references it. So , If you screw a *.c file its pretty much permanent and you need to re extract the entire Cube L4 for getting the original one back .That being said, The libraries are really easy to use with their own documentations
Download Cube L4 Here
| ||||||||
Attollic TrueSTUDIO | Well recently bought by ST I think it is in a right approach to get an ST IDE like all other companies have (CCStudio TI, MCUXPresso NXP, SimplicityStudio SiliconLabs, etc You got what I am saying)
Though it has been updated and does support the On Board MCU as highlighted below, but it does not support the actual Discovery Kit. It only supports the similar slightly old kit i.e. the STM32L4R9I-EVAL kit again as shown in the image below.
I still downloaded the IDE and it is like what you would expect a Eclipse based IDE so Keep Going ST hopefully we will have an IDE just for ST ecosystem.
Download Attollic trueStudio Here | ||||||||
ARM MBed | Well It is a shame, as soon as you connect the kit to the computer you get the familiar mBed Mass storage device and device information in there. This got me really excited as the board is supported by mBed Awesome. but Whan Whan Whan . . . .
Nup Only the DISCO-L496AG is officially supported as of now. St might be working on a port but let's hope it turns out to be great.
Now as the device is different in this Discovery kit, You cant use it with mBed in any useful manner. (I am to talking about Bliky apps )
| ||||||||
MDK ARM Keil | ARM actually gives out Keil for ST F0 and L0 family free ::ThinkinG:: I should get couple of those BluePills online (I mean these nasty STM32F0 based cheep dev boards commonly referred as BluePills)
Coming on to the kit on review, as no surprise the STM32 Cube L4 supports Keil but surprisingly, Kiel does not support the STM32L4+ series So you need to rely on the cube examples as a base point. All the linker scripts are also included in the Cube L4 so Yup.
I haven't tried Keil due to it not being FREE but an Evaluation version I tried as part of an online MOOC with Ti TivaC ARM F4 ; Keil is a pretty good IDE none of those Eclipse Crap. Do mind that it is only available for Windows
So if you are into Keil and have a lic file. Go ahead the kit is supported
Download ARM Keil HERE
| ||||||||
IAR Systems EWARM | Just like Keil I haven't used IAR for this kit, but I have had past experiences and this is also a pretty good IDE (Again not based on Eclipse) but IAR has better debugging toolset.
The MCU on the STM32L4R9I-Disco is fully supported by IAR and will come with examples to get started.
Moreover All the Cube L4 examples are also supported by IAR so No worries there. I think IAR is extensively used by ST for their projects
Download ST IAR WEARM HERE | ||||||||
ST A6 SW4STM32 Studio | Well Well, Last but not the least, we have ST A6 SW4STM32 Studio. It is like a community initiative supported by ST and developed by A6. It is the most awesomest IDE as it is based on Eclipse. and has all the tools required including OpenOCD for programming and debugging ST link.
It has GNUARM tools preinstalled and is really easy to work with.
You can either download the middle ware libraries in the form of L4 middleware using the ST A6 SW4STM32 Studio or rely on the Cube L4 downloaded from ST. The ST A6 SW4STM32 Studio automatically downloads the middleware and Lower layers libraries and files from ST (You cannot Download the Cube L4 and replace !!) Though it is worth mentioning that the Download process is not particularly great. It took me couple of attempts and a really reliable Nw connection to finally make it and getting running.
I have done all my testing using this IDE and I can say it is more than enough for what you need.
You can run the same in Linux, MAC as well as the Windows So pretty Cool. And It supports all the ST ARM portfolio as well as all Cube Series.
I highly recommend this IDE if you want to try out any st kit. St Cube L4 has all examples necessary to get started.
The issues I faced was -- that all example in ST Cube L4 is given by "Stm32l4r9i-Discovery" so you can only run one example at a time -- All example are referenced i.e. all the files are soft link and it does not copt the examples into the workspace. So you have to be careful before going further in code
Download ST A6 SW4STM32 Studio Here
|
INITIAL PROBLEMS FACED AND FIX
PROBLEM NO 1 : External Loader Configuration Files Missing [FIXED]
So, I wanted to try out the example pre compiled binaries (As in the Videos above). So I did what ST said. I downloaded the STM32 ST Link Utility (Latest version <ver 4.2.0>) which said it supported the STM32L4R9IIA MCU. To my surprise The demo applications were huge some about ~100+ Mb huge !! So, to program the device we needed to set up an External Loader to load the program on the MX25M51245G external flash.
As expected there was "MX25M51245G_STM32L4R9I-DISCO" file there and I selected that and started the flashing process and It failed . After digging for some more I found out the issue. The Issue was that the device size on the above configuration was 32MB so the file was not fitting into the space. The resolution was this link I found on TouchGFX form from where I download "MX25M51245G_STM32L4R9I-DISCO-OSPI1" which had the device size of 64MB with the start address.
Although It said that ST Link ver 4.2.0 had this file included I did manually had to add it. Since then, No issue programming the kit
PROBLEM NO 2 : Slow Programming Rate
Another thing worth mentioning was the slow programming time, I have spoken about the issue in one of my video, So as the Kit uses SWD protocol to program the device which is serial protocol, it takes a hell lot time to program the device.
For example to program the example demo application it took me about 40-45 Min (including the verification) So have a COFFEE handy One Solution would be to use ARM JTAG to program which would be significantly faster
POWER ANALYSIS OF THE KIT
OK Down to some Power analysis
PLAYING WITH THE KIT & DISPLAY
Now what's the use of an awesome embedded kit if you cant program and play with it .
So I found an example application and was how to get my own image on it
So I started off by some modification, the kit used an RGB888 24 bit format as 8 bit values in an C array and No Alpha plane.
So ..
My first attempt was not quite it
but hey at least the LCD turned on , not that bad ..
Second attempt I tried online tools to get an RGB888 formatted image but I think it added an A layer
So I searched further and downloaded a tool called bmp2c gave it a try ..
I am pretty sure it said RGB888 format but didn't know what went wrong here .. Still Kept my hopes high as At least I got a Greyscale image
So, Finally I got to LCD Image Convertor Software all problems solved
DOWNLOAD LCD Image Convertor HERE
Now the initial results were kinna same as above but after few configuration changes given below, things worked out perfectly
1. Convert image to 390x390 resolution
2. load the image into the software
3. Configure the RGB format as below
4. Change the output bit size to 8 bits as shown below
5. Check the bit sequence is correct
after this Convert the image a <imagename>.c file will be generated. Add that to your project and parse the image array to the LCD function and you get this
Cant just stop at this now can we
And finally , Cant forget the Community that has sent the kit for testing
Clubbing the 2 images and adding delay with fade effect = Nerdy Cool
CONCLUSION
So lets first see the video
Now in future, I would like to explore the PMOD+, micro click, Groove , etc expansion slots and to complete my cycle project .
I was abel to compile basic app skeleton for the kit, as an import to workspace without any references. Will post it on my GitHub soon. That should be basic starting point to develop apps for this kit further (for the System Workbench A6)
Till then Hope you liked the review.
Please comment anything else you would want to know about the kit.
Please visit me at gsgill112.github.io and subscribe to my youtube channel it helps
Thanks and Regards,
GS Gill
P.S> Special thanks to rscasny for giving me an opportunity to Roadtest this kit. Thanks.
Top Comments
Nicely written review Gill. I enjoyed reading it as well.
Cheers
Thank You Rod
Regards,
GS Gill
Very nice roadtest review. It is interesting to follow someones process, even if it includes errors, towards a successful conclusion. It feels more real that way.
Gene