Getting started with startKITFollow article
A first look at the new startKIT development board from XMOS.
In October of last year XMOS announced a new low cost development board called startKIT, and then quickly followed up with an announcement that they would be giving 2,500 of these away.
Before running through what the board provides and the process of building software for it, first a quick recap on the XMOS technology.
An incredibly flexible microcontroller
For those not familiar with the XMOS platform, it's based around a microcontroller architecture called xCORE, with devices providing 4-16 “logical cores“ with timing determinism. This novel feature allows a diverse range of peripherals to be implemented in software, with scheduling and communication between “tasks” (threads/processes) being taken care of by the hardware.
Software is developed using an Eclipse-based IDE and XMOS provide a library of software blocks to accompany this — “xSOFTip” — which enable support for common interfaces such as USB and Ethernet, along with more advanced ones such as Ethernet Audio/Video Bridging (AVB).
startKIT key features
The development board includes:
xCORE microcontroller with analogue inputs
integrated USB JTAG programmer/debug
PCIe slot / 24-pin SIL GPIO expansion
2 x13 Raspberry Pi-compatible GPIO expansion
3 x 2 analogue input
header with 2x XMOS links
2x 4-zone capacitive sensors
3 x 3 LED array
The PCIe connector allows expansion via XMOS “slice” cards, which add things such as USB and Ethernet, SDRAM and WiFi. Alternatively, a 0.1” header can be fitted for simple breakout.
Raspberry Pi-compatible expansion is also provided, along with headers for the ADC inputs, capacitive sensors, and the obligatory LEDs and push button.
Should you wish to connect two or more development boards, this can be done via the XMOS links which allow xCORE devices to be linked together.
The IDE is made available free of charge and, as you would expect, installing it is pretty straightforward. However, it does need to be registered the first time it starts and this requires an XMOS account, which doesn't take long to create.
While you can use xTIMEcomposer offline, the experience isn't as good as when using it online, as the IDE makes use of online support materials and software repositories. It's also worth nothing that if you try using it while you don't have an Internet connection and it switches into offline mode, you will later need to toggle it back to online mode in order to get the full functionality back.
Finally, unless you are logged in as root or run the IDE via sudo (both not great ideas), you will have to follow a few steps to set up access for the USB device.
Running an example
The Developer Column (top-right in the IDE) provides access to online documentation for developing xCORE applications, which includes as part of this a startKIT tutorial that takes you through the steps required to download, build and run a simple “spinning bar” application.
First, the project is loaded from the xCORE GitHub, by browsing the startKIT examples in the IDE's Community window (bottom-left) and double-clicking.
In addition to detailing each individual step, the tutorial also provides IDE shortcuts that automate them. By selecting one of these I was able to directly load the application main.xc file into the IDE.
No changes were made to this and the application was built by first ensuring that it was selected in the Project Explorer window (top-left), before pressing the build icon (a hammer).
The build produces output in the Console window and if we then navigate to the bin sub-directory in Project Explorer, we see that a binary with a .xe extension has been created.
To execute this we select Run → Run Configurations... and then follow the instructions to select the application.
The startKIT is a smart little board, the IDE provides a slick experience and I must admit to being something of a fan of the XMOS approach. Putting software components and examples on GitHub and integrating these with the IDE is a nice touch, and I'm not sure if it's the case with startKIT, but previous designs such as the initial dev boards and the sliceKIT system are open source hardware.
This is probably the first time in two or three years since I've done anything with an XMOS development kit, but just running through the simplest of the startKIT examples has whetted my appetite again, and now I just need to think of a fun and/or useful project. I think I'll start by having a proper look through the available software components on GitHub...