The ImageCraft JumpStart Microbox Education Kit is a set of hardware and software tools to teach C and Cortex-M embedded programming.
In essence, it's an Arduino compatible shield, an STMicro Nucleo dev board, a C book, an IDE, a compiler and libraries.
In this blog series I'm trying to find out if it's more then just an existing 3rd party dev board paired with a shield. And if (and how) this kit can turn you into an embedded programmer.
In part 1, I checked the out-of-box experience.
This time I'm going to review one of the example projects, and check if I learn something about embedded development.
I'll use the real time clock example, because the source for the RTC driver is available, and it uses I2C.
I'm going to use 2 methods to check the learning path: Can I step through the example in the debugger to see what's happening, and I'll use the Hardware Guide to step through a tutorial.
The Hardware Guide
The tutorial for the MicroBox Education Kit projects is called the Hardware Overview.
It's a rich document with info on basics of the ARM microcontroller like clocks, memory and GIO. It also has a section for all the hardware available on the educational shield.
I would like to see a better index though. I had a hard time navigating to the chapter for the real time clock, and had to use the scroll wheel to go to the correct chapter.
If you do not know up front where the chapter is in the pdf, you'll have to scroll page by page through a 100 page document untill you are at the desired location. There's no overview at the beginning of the document either that explains what's in the manual or on what page/section to find it.
So I spent time browsing through the full PDF first to find out what's covered and where it is. Search works - but then you have to know up front what you're looking for, and it takes a fair bit of pushing next before you reach the RTC chapter.
The hardware guide asks you to review info in a document called <Examples and Tutorials>. I couldn't find that document so I put this on hold and tried method 2: stepping through an example
Stepping through an Example Project
The second way to learn something is by taking an existing example, and step through it. I'll do this with the RTC example.
I ran into an issue with the newest IDE install that I received earlier this week. When I set a breakpoint, things go wrong.
I get messages like Line Number not found, and removing breakpoints doesn't work. They reappear randomly while debugging or after restarting the IDE.
Line number not found: break-insert C:\iccv8cortex\examples.JumpStartMicroBox\STM32F030\RTC\main.c:14
Cannot open file: C:\Work\V8\examples.JumpStartMicroBox\STM32F030\RTC\main.c
I don't have a c:\work folder on my pc. Needs to be looked at
Debugging works after that, but there's not much to learn. The example uses an abstraction layer, and you can't step into that code.
You see that the program calls a function clock.SystemInit() , but there's nothing more that you can learn than that the proprietary library has a function with that declaration.
You don't see what's happening with the controller. You don't learn something generic about embedded.
It's a difficult call for me. All works out of the box, IDE and compiler are fast. The examples work.
But I haven't found a compelling educational path yet. And the experience with the latest IDE/tool chain download is rough.
I'm in two minds on this kit at the moment. I'll put it to rest for a day and review it with a clear and fresh mind soon...