Part 1: Initial Unpacking, Overview and Software Installation
The UPS man has just knocked the door and handed me an intriguing box marked up as coming from Randall Scasny at Newark....it was the ST32L4R9I-Discovery Board that I was kindly selected to roadtest by Element14 and StMicroelectronics. This is the first part of a series of blog posts detailing the roadtesting. I will use these blog posts to formulate the final roadtest report submission along with my marks for the product.
My Background on This Roadtest
In the past I was also kindly selected to roadtest the NXP iMXRT1050 crossover processor board and touch LCD panel (NXP I.MX RT1050 EV KIT and Display - Review ). To be honest I really struggled with that board. It was my first ARM processor and I was not familiar with any of the available toolsets, slightly taken aback by the wide choice and I missed the detailed guidance through the first steps that comes with many other Single Board Computers (SBC) and other kits. I may have compounded issues with damaging the USB programming connector and perhaps messing up the bootloader. I didn't want to end my venture into the ARM world with my experience of that single board and so when this roadtest came along I wanted another fresh start. I recall that Randall had some difficulties with applications on this roadtest; if it helps my application was just over 1000 words and ranged from a section on me, a section on how I planned to test the board and a section on limitations and availability. I hope to learn enough about ARM with this STM32 board to be able to return to the NXP board and utilise that effectively as well.
Pre-Delivery: Software Choices
About a week ago I received the email from Randall stating I was to be selected, that evening I revisited the folder where I had collated my reading material on this board and had a refresh. Two main points here for complete beginners:
- There are a few different ARM compilers (the program that will take the C source and header files and produce the machine code that the device can use.
- There are many support Integrated Design Environments (IDE) for manipulating those source and header files. Moreover, these often include addins that enable fast building of code for the target devices.
Some of these IDE are limited in performance after a set period of time. Whilst that is understandable, as that company has expended many hours of work developing that product, such an approach constrains me as a home developer. I do not want to pay extra at this stage and having the constraint that after a set date my code may no longer compile, if it is too large, could have a big impact on my roadtest (and subsequent use of the board). This was my main driver in selecting my IDE of choice. I opted for the System Workbench based on it being free, unrestricted and open source. It runs under Eclipse. I hope to find the other roadtesters have selected different IDE, compilers and GUI build tools as it will be interesting to see how we all get on.
To make code development easier, STMicroelectronics has produced a software bundle called STM32CubeL4 that includes drivers, graphical tools, RTOS, USB drivers, example code and projects etc. Selected components from the STM32CubeL4 package can be 'pulled' into SystemWorkbench when making a new project. There is also a tool that is part of the STM32CubeL4 called STM32CubeMX and is a graphical tool for creating the initial software based on simple GUI selection of peripherals and pins. Currently I am unsure how these packages interact to create the quickest and most flexible development route....so that will hopefully come out as I work through examples and gain some knowledge.
Also included in the STM32CubeL4 package is the STemWin software library - a professional graphical stack library for creating the GUI. In my previous attempts at an embedded ARM board I looked at the Embedded Wizard GUI creation software and was made aware of the similar TouchGFX. Again, for reasons of licensing, I stayed away from looking at these for this roadtest. At the end of the roadtest when many of these products evaluation period ends I want to be able to build on what I have learnt to make my own bespoke projects. That would not be true for a business where the capital investment for such a license will prove valuable in future customer projects. I will discuss the GUI part also in later blogs. I noticed that the demo software advertises examples in TouchGFX, Embedded Wizard and STemWIN....some of these packages have constraints over which IDE they can operate with.
I did not have any issues installing my choice of software apart from the software bundles are quite large so download time and installation takes a while (just have a cup of tea ). I installed to a 64-bit Windows 10 OS PC. I installed all the software over the weekend and played around with it trying to understand what interacted with what. I even got some of the examples to compile so am hopeful that I will be able to show this board's capabilities well in my roadtest.
The Newark package arrived a bit dented after its week of travelling between Newark USA and UK but the contents proved to be intact; the STM32L4R9I-DISCO board is inside a hard bubble pack. I actually found it quite awkward to get the two boards out as I didn't want to press too hard and break them. There is a main board with the 1.2" OLED display and a smaller breakout board that includes the MikroBUS sockets.
Initial Power Up
I was hopeful that there would be a visually stimulating demo application installed on the board as I was fairly sure I read that somewhere along the way. There are some simple checks listed on the provided card for powering the board up; these are mainly to ensure the jumpers are correct....they were all as stated for my board.
I plugged the STM board into my PC's USB socket via a micro-USB cable and the demo software started.
The display is awesome and I'm going to grab some of the example screens in my next blog, but just in case you cannot wait, here is a shot from the demo 'game':
The edge of the OLED display seems a bit sharp - so watch out fellow roadtesters! The ultra thin display is also stuck to the PCB below with sticky pads and I see the right hand side of mine has lifted away. I pressed it back on and within 10 minutes it had come away again. Not a huge issue (yet).
I plan to test out some of the examples in STM32CubeL4 - I'm hoping to see interesting things whilst being able to explore the code and understand how the Hardware Abstraction Layer (HAL) and peripheral libraries are integrated and utilised.
When I start to feel more confident I want to make my own project with this board. In my application I thought this STM32L4R9I-DISCO board would make a neat little music player and that is something I still am keen to pursue in the coming weeks - although the demo already contains various versions.
>>>Next Blog: ST32L4R9I-DISCO: Part 2 (About the board)