RoadTest: STMicroelectronics STM32F4DISCOVERY Discovery kit for STM32 F4 series
Author: tayken
Creation date:
Evaluation Type: Evaluation Boards
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?: STM32VLDISCOVERY, PIC32 Ethernet Starter kit (in terms of connectivity and on-board peripherals)
What were the biggest problems encountered?: None
Detailed Review:
Hello everyone!
I had to take my time with this as I tried nearly all demo codes on both Windows and Linux to see the difference between development environments. The reason for not trying all the codes is that I was not able to get my hands on an oscilloscope in order to check out the waveforms. But I was able to compile and flash all firmware on both OS.
One more note is that this review will not contain any pictures as you can find board pictures online easily.
Kit Contents
This kit only contains the eval board. No cables, no CDs, no fancy packaging. Which is good as CDs that come with an eval kit are usually contain outdated software, you have tons of USB cables laying around even if you are not into electronics. And fancy packaging (in my opinion) shadows the product, here the eval board is the centrepiece of attention. The two sided cardboard gives you information for the demo firmware on the board and points you to the product page.
Getting Started
On both operating systems, you'll have to download the firmware package which include all the demo codes and specific files for all 4 IDEs. While you are there just get the user manuals too as you'll want to check them out while you are working with this board. Also get a USB A to mini B, a USB A to micro B and a headphone cable to try out all the demos. You'll need a multimeter for power consumption demos too.
When you check out the board, you'll see that it is packed with peripherals and it was nice to see an audio output on the board. In this criteria, this board outweighs STM32VLDISCOVERY board and is head to head with PIC32 Ethernet Starter kit as PIC board contains an Ethernet IC and a full size USB A connector which would've been better for trying USB memory firmware update examples
On the other hand, this board contains two double row pin headers so breadboarding circuits is not possible. PIC32 Ethernet Starter kit contained a Hirose connector and you have to get a separate board to access all the pins so this is a better option, you are still able to use female-male jumpers for breadboarding. STM32VLDISCOVERY had three single row pin headers and you were able to use two long ones on two different breadboards for developing projects so it lacks the connectivity but if you consider the board size and pin count they still did a good job!
Windows Test
For this, used IAR Embedded Workbench, but you can use other IDEs too. It is really easy, just download the IDE, install the STLINK v2 driver and you are all set. Accelerometer mouse example does not work that well but this is because of the accelerometer I guess, they are noisy components.
Linux Test
I used one of my Ubuntu systems for this. There are many tutorials out there to how to use Linux for programming so I'll not go into setup and firmware uploading procedures, Google is your friend. I had the toolchains already but I had the old version of gdb server which was for STLINK v1 only. I downloaded the new one and compiled and got it working in no time. I don't know why but for most programming applications, I prefer Linux and Makefiles. It takes a little more effort than using a Windows only IDE but once you are set and have all the necessary compilers and Makefile, it just flows. For getting some of the examples working, you have to spend a little more time but other than that it is really easy.
Example Codes
They are commented well. Not perfect, you might have to spend a little with the datasheet in hand to figure out what is happening but once you grasp the coding style used and all the structs and functions used for settings you'll find it easier to understand what is happening.
Conclusion
This is by no means an Arduino, not suitable for beginners. I'll grade this board to advanced hobbyist to medium level embedded systems designer. The reason for that is you'll need experience to figure out what is happening with the ARM core and peripherals. Also medium level embedded systems designer level as for more advanced things, I guess using an embedded Linux distribution is the way to go. This board might be able to use an RTOS (possibleI guess, never checked out the possiblity). If you want to start with 32 bit microcontrollers, I'll say this is a good board.