VIA VAB-600 Springboard Software Development Packages

You can download the following Android and Linux Software Development Packages for the VIA VAB-600. Applications that can benefit from the firmware and associated software development tools include:

– Digital signage
– Kiosk
– POS
– Smart home
– Smart I/O controller

  1. Springboard Android Software Development Package

This package features Android version 4.0.3, and includes the kernel and bootloader source codes as well as a Smart ETK. The Smart ETK comprises a number of APIs, including Watchdog Timer (WDT) for safeguarding against system crashes, GPIO access, COM port access, RTC for auto-power on, and a sample app to demonstrate the above function. More information can be found in the VIA VAB-600 User Manual.

Springboard_Android_Software_Development_Package 1.2.0 (released on 2015 Apr 1)

– Evaluation guide (with SMART ETK API)
– Android image
– Kernel source
– U-boot source
– Smart ETK App

  1. Springboard Linux Software Development Package

This package has a pre-built Debian image, including the kernel and bootloader source codes. Other features include a Tool Chain to help make adjustments to the kernel and to leverage the onboard pin-headers, GPIO, I2C, and other hardware features.

Springboard Linux Board Support Package (BSP) 1.1.2 (released on 2014 Nov 20)

– Bootable command-line Debian Linux
– Development guide
– Toolchain
– Kernel source
– U-boot source

Springboard Productization Services

VIA can provide a comprehensive range of services to assist you in taking your prototype to mass production, including customized BSP, OS image, factory test tools, and diagnostic tools. To learn more, please email us at: springboard@via.com.tw.

v

VIA VAB-600

Highlights

– Compact 10cm x 7.2cm Pico-ITX form factor

– 800MHz Cortex-A9 SoC onboard

– 4GB on-board eMMC Flash memory

– Supports integrated graphics processing (GPU) for 2D/3D graphics acceleration

– Flawless HD video performance up to 1080p

– Supports up to three USB 2.0 ports

– Mini HDMI, on-board DVO

– 1GB DDR3 SDRAM on-board

– WiFi connectivity support (optional)

– Wide operating temperature range of 0°C up to 60°C

– Touch screen support

– Android and Linux Software Development Packages

Overview

Based on the ultra-compact Pico-ITX form factor measuring just 10 cm x 7.2 cm, the VIA VAB-600 integrates a low power 800MHz ARM Cortex-A9 SoC and is packed with advanced multimedia features, including a built-in multi-standard decoder for playback support of the most demanding video formats in resolutions of up to 1080p.

The VIA VAB-600 includes a wide array of rear I/O features, including one Mini HDMI port, two Mini-USB 2.0 ports, one 10/100 Ethernet port, and one 12~24V DC-in jack. Other onboard features include 4GB eMMC Flash memory, 1GB DDR3 SDRAM, one DVO connector, two COM ports (one for TX/RX only), SPI, one USB 2.0 connector, one Mini Card slot touch screen support, front pin headers for line-in/out and MIC-in, I2C and GPIO pin header.

Combining a wide operating temperature range of 0°C up to 60°C with extremely low power consumption, the VIA VAB-600 is designed to operate in even the most extreme environments. The board also has a one-year warrantee and longevity support of three years.

Software Development Packages

You can download the following Android and Linux firmware (kernel + bootloader) to configure the VIA VAB-600 as well as associated software development tools.

– Springboard Android Software Development Package

Ÿ- Springboard Linux Software Development Package

– Springboard Linux (Debian) Evaluation Package

– Springboard Linux (Console) Evaluation Package

Technical Documentation

For complete technical and set up information about the VIA VAB-600, you can download the following documents here:

– VIA VAB-600 Datasheet

Ÿ- VIA VAB-600 User’s Manual

VIA VAB-600 Springboard Kits

The VIA VAB-600 can be purchased in the following Springboard kits:

– VIA VAB-600 Springboard Kit: $99

– VIA VAB-600 Springboard WiFi Kit: $129

 

VIA VAB-600 Springboard WiFi Kit

1 / 8

Email to a Friend

Be the first to review this product

Availability: In stock

$129.00

Qty:  add to cart

  • Add to Compare

Quick Overview

The VIA VAB-600 Springboard WiFi Kit combines an ultra-compact VIA VAB-600 Pico-ITX board with a USB WiFi module, I/O extender card, A/C adaptor, and COM and USB cables, to provide a comprehensive package for developing and building the next generation of wireless connected hardware devices.

The VIA VAB-600 Springboard WiFi Kit comes with the following items:
– VIA VAB-600 board
– VIA VNT9271 Springboard USB WiFi module
– VIA VAB-600-A I/O extender card
– A/C adaptor
– 1 x COM cable
– 1 x USB 2.0 cable
– 3 year longevity
– 6 month warrantee

 

*Note:

The VIA VAB-600 board contains only one on-board USB port which can be used to enable the two USB ports on the I/O extender card or the VIA VNT9271 USB WiFi module but not both simultaneously.

1

VIA VAB-600 Springboard Kit

Fatal error: Theme CSS could not load

Email to a Friend

Be the first to review this product

Availability: In stock

$99.00

Qty:  add to cart

  • Add to Compare

Quick Overview

The VIA VAB-600 Springboard Kit combines an ultra-compact VIA VAB-600 Pico-ITX board with an I/O extender card, A/C adaptor, and COM and USB cables, to provide a comprehensive package for developing and building the next generation of innovative connected hardware devices.

The VIA VAB-600 Springboard Kit comes with the following items:
– VIA VAB-600 board
– VIA VAB-600-A I/O extender card
– A/C adaptor
– 1 x COM cable
– 1 x USB 2.0 cable
– 3 year longevity
– 6 month warrantee

 

Products

View as: List  Grid

Show                                                                                                                                                                            per page

Sort By

VIA VAB-600 Springboard Kit

$99.00

add to cart

The VIA VAB-600 Springboard Kit combines an ultra-compact VIA VAB-600 Pico-ITX board with an I/O extender card, A/C adaptor, and COM and USB cables, to provide a comprehensive package for developing and building the next generation of innovative connected hardware devices.

The VIA VAB-600 Springboard Kit comes with the following items:
– VIA VAB-600 board
– VIA VAB-600-A I/O extender card
– A/C adaptor
– 1 x COM cable
– 1 x USB 2.0 cable
– 3 year longevity
– 6 month warrantee

Learn More

  • | Add to Compare

VIA VAB-600 Springboard WiFi Kit

$129.00

add to cart

The VIA VAB-600 Springboard WiFi Kit combines an ultra-compact VIA VAB-600 Pico-ITX board with a USB WiFi module, I/O extender card, A/C adaptor, and COM and USB cables, to provide a comprehensive package for developing and building the next generation of wireless connected hardware devices.

The VIA VAB-600 Springboard WiFi Kit comes with the following items:
– VIA VAB-600 board
– VIA VNT9271 Springboard USB WiFi module
– VIA VAB-600-A I/O extender card
– A/C adaptor
– 1 x COM cable
– 1 x USB 2.0 cable
– 3 year longevity
– 6 month warrantee

*Note:
The VIA VAB-600 board contains only one on-board USB port which can be used to enable the two USB ports on the I/O extender card or the VIA VNT9271 USB WiFi module but not both simultaneously.

 

VIA Launches Springboard Platform

Provides fastest and most stable path to take innovative ideas for Android and Linux smart connected devices from prototype to production  

Taipei, Taiwan, 31st October, 2013 – VIA Technologies, Inc, a leading innovator of power efficient computing platforms, today announced the launch of VIA Springboard, a unique platform developed to provide embedded developers, start-ups, and DIY enthusiasts with the fastest and most stable path for prototyping next-generation ARM-based smart connected devices and taking them to mass-production.

“The growing availability of affordable open hardware platforms is leading to an explosion of exciting new concepts for innovative new connected devices, but taking a great idea from a prototype to mass production remains a major challenge with many such projects,” commented Epan Wu, Head of the VIA Embedded Platform Division, VIA Technologies, Inc. “Our goal with VIA Springboard is to provide  highly stable and scalable development platforms backed up by a comprehensive range of hardware and software support services that will enable them to reduce new system development costs and speed up their time to market.”

VIA Springboard provides a tightly-integrated platform of hardware kits, Android and Linux software development packages, and support services that covers all stages of the development process, including rapid system prototyping, application development, hardware and software customization, and pre-production testing and diagnostics. With a three-year longevity guarantee, customers can also be assured that VIA Springboard platforms will be available throughout the entire product life cycle.

VIA Springboard Kits

VIA Springboard Kits are available for global purchase in two configurations at www.viaspringboard.com. The VIA VAB-600 Springboard Kit features an ultra-compact VIA VAB-600 Pico-ITX board with an I/O extender card, A/C adaptor, and COM and USB cables, and is priced at US$99 plus shipping. The VIA VAB-600 Springboard WiFi Kit also includes a USB WiFi module and is priced at $129 plus shipping.

VIA Springboard Software Development Packages

The VAB-600 board can be configured with a choice of Android and Linux Software Development Packages that are available for download from the VIA Springboard website. The Springboard Android Software Development Package features Android version 4.0.3, and includes the kernel and bootloader source codes as well as a Smart ETK comprising a number of APIs, including Watchdog Timer (WDT) for safeguarding against system crashes, GPIO access, COM port access, RTC for auto-power on, and a sample app. The Springboard Linux Software Development Package has a pre-built Debian image, including the kernel and bootloader source codes, and also comes with a Tool Chain to help make adjustments to the kernel and to leverage the onboard pin-headers, GPIO, I2C, and other hardware features.

VIA VAB-600

Based on the ultra-compact Pico-ITX form factor measuring just 10 cm x 7.2 cm, the VIA VAB-600 integrates a low power 800MHz ARM Cortex-A9 SoC and is packed with advanced multimedia features, including a built-in multi-standard decoder for playback support of the most demanding video formats in resolutions of up to 1080p.

The VIA VAB-600 includes a wide array of rear I/O features, including one Mini HDMI port, two Mini-USB 2.0 ports, one 10/100 Ethernet port, and one 12~24V DC-in jack. Other onboard features include 4GB eMMC Flash memory, 1GB DDR3 SDRAM, one DVO connector, two COM ports (one for TX/RX only), SPI, one USB 2.0 connector, one Mini Card slot, touch screen support, front pin headers for line-in/out and MIC-in, I¬2C and GPIO pin headers. Combining a wide operating temperature range of 0°C up to 60°C with extremely low power consumption, the VIA VAB-600 is designed to operate in even the most extreme environments.

VIA VAB-600-A I/O Extender Card

The VIA VAB-600-A I/O extender card adds multiple I/O interfaces, including Line-Out and Mic-In audio jacks and two USB ports. Measuring 100mm x 20mm x 1.6mm (L x W x H), the card also features one suspend LED power indicator and a power on/off button as well as three board-to-board connectors and one USB board-to-board connector.

VIA VNT9271 Springboard USB WiFi Module

The VIA VNT9271 Springboard USB WiFi Module enables the fast and convenient integration of high-speed wireless capabilities into the VIA VAB-600 board. Featuring the Atheros AR9271 controller chip, the module is fully compliant with IEEE 802.11b/g/n standards working from 2.4GHz to 2.5GHz. In addition, the module can provide up to 11Mbps for IEEE 802.11b, 54Mbps for IEEE 802.11g or 150Mbps for IEEE 802.11n to connect the Wi-Fi client to a Local Area Network or the Internet.

For images related to this release, please visit: http://www.viagallery.com/Products/via-vab-600-springboard-kits.aspx

Availability

The VIA VAB-600 Springboard Kit and the VIA VAB-600 Springboard WiFi Kit are available for global purchase at www.viaspringboard.com. The kits are priced at $99 and $129 respectively, plus shipping.

About VIA Technologies, Inc.

VIA Technologies, Inc is the foremost fabless supplier of power efficient x86 processor platforms that are driving system innovation in the PC, client, ultra mobile and embedded markets. Combining energy-saving processors with digital media chipsets and advanced connectivity, multimedia and networking silicon enables a broad spectrum of computing and communication platforms, including its widely acclaimed ultra compact mainboards. Headquartered in Taipei, Taiwan, VIA’s global network links the high tech centers of the US, Europe and Asia, and its customer base includes the world’s top OEMs and system integrators

 

Tag Archives: ProtoSpring

  • ProtoSpring, part 3: manufacturing and demo

After coming up with the idea in part 1 for ProtoSpring, the prototyping board for Springboard,  and creating the PCB in part 2, this final segment shows the end-result and a demo application – using GPIO to control a 7-segment display from an Android app!

Finished Prototyping Board

After finishing the v1 of the PCB, I’ve exported the Gerber files from KiCad and sent them to Seeed Studio. Looking at their specifications, some of the filenames they require were different from the ones KiCad creates by default (the board outline and the drill files need different extensions). It’s a bit weird,  but it’s easy enough to adjust before submission.

The board fits on a 5 cm x 10 cm base, has 2 layers, standard 1.6mm thickness, and didn’t bother changing the PCB colour to save some money on the manufacturing (though I bet the others looks very good too). The printing took less than a week together with shipping from Shenzhen to Taipei, and got 5 boards for about US$20:

ProtoSpring board straight from manufacturing

The board feels really nice and solid, and I’m almost surprised that it worked out so well on the first try (this is my first ever PCB!) After reviewing it, I’ve added a few changes for future print runs: Continue reading 

This entry was posted in Springboard Blog and tagged ProtoSpringprototypingelectronicsAndroid on November 7, 2014 by Gergely Imreh.

  • ProtoSpring, part 2: schematic revision and PCB

In the first part of this series I’ve outlined the idea of making a prototyping extension board for the Springboard, and finished with a rough schematic. Since then I’ve revised the schematic based on experience, and laid out the prototyping board PCB.  By the end of this write-up we’ll have a complete design, ready to send to manufacturing.

Before I dive in, probably the single most important lesson learned is to keep in mind all different stages of a board design. There’s a lot of back and forth between schematic, components, footprint, layout, manufacturing specs. The tools help making the right decisions, and often when something feels difficult it is because I’m doing it wrong…

Finding crucial parts

After making the basic schematic I realized that there’s one type of component on the board that can make or break the entire project: the board-to-board connectors. To interface with the Springboard needed to find 2mm pitch, dual row, through hole, perpendicular mounting female receptacles. I couldn’t find anything like that in the local electronic stores. After an hour of search online they did turn up, fortunately both Digikey and Mouser had the required 3×24×2, and 7×2 connectors by 3M.

Finally found the correct 2mm, double row, perpendicular, through-hole connectors I needed

I got a bit lucky too, because these ones can be ordered piecemeal, while other pin count versions (e.g. the 10×2) require minimum order of 300 pieces. This is one of the first example of the importance of choosing components. Of course, if these were 0.1″ (2.54mm) connectors then there wasn’t any problem finding them in the first place, but then they would probably not fit on the Springboard itself… Continue reading 

This entry was posted in Springboard Blog and tagged ProtoSpringPCBschematicKiCaddesignelectronics on October 28, 2014by Gergely Imreh.

  • ProtoSpring, part 1: Idea and Schematic

I was looking for a project to showcase how easy it is to extend the functionality of the Springboard platform, drawing inspiration from the expansion board that is bundled in the kit.

Springboard and expansion board (top), from klinger.net

The expansion board connects to the main board with a couple of pin headers (power, GPIO, sound) and cables (USB) to break out some of the functionality to easy to access connectors, such as the regular speaker and mic plugs, two USB, on-off button. It should be easy to replace that board with another to provide different functionality, so I’ve come up with an example. Continue reading 

 

Running Go on VIA ARM devices

Go is a modern and quite popular systems programming language developed at Google. I’ve recently came across a wiki page describing its ARM support, I thought it would be interesting to check how VIA devices can make use of Go. I’ve checked out the VAB-820, VAB-600, and the APC 8750 boards, all a bit different from each other.

VAB-820 with a Gopher

I found that the general documentation does not cover all the things that can (and generally do) go wrong, though a few online searches usually pointed me in the right direction. Installing Go needs two separate steps: bootstrapping first, then compiling from source.

Bootstrap

Bootstrap is needed because Go’s now written in Go, so you need to already have Go to get Go. That makes sense, right? There are two ways go about this (pun intended). Either use another system (e.g. an x86 computer) that can create a bootstrap package for ARM, or use the Go package from the ARM board’s distro. My VIA boards are running Debian, and there the available Go version is pretty old. So instead I opted to an x86 bootstrap. These next steps are based on information at the Install Go from Source page.

First downloaded Go 1.4 from their binary distribution page, and put it into the ~/go1.4/ directory as that’s where Go looks for the binaries by default.

Next cloned the latest Go source from Github, and used it to create a bootstrap package

$ git clone https://github.com/golang/go.git

$ cd go/src/

$ GOOS=linux GOARCH=arm GOARM=7 ./bootstrap.bash

[lots of stuff]

Bootstrap toolchain for linux/arm installed in /home/user/go-linux-arm-bootstrap.

Building tbz.

-rw-r–r– 1 user user 48983241 Nov 18 16:55 /home/user/go-linux-arm-bootstrap.tbz

In the settings above the GOOS environmental variable selects Linux, GOARCH selects ARM support in general, and GOARM selects ARMv7 support. Working with these settings, since both VAB-820 and VAB-600 are ARMv7 devices, Other values are listed in the installation guide.

To make it easy, I’ve made our current precompiled bootstrap files available for download for ARMv7ARMv6, and ARMv5.

Compilation

The rest of the steps take place on the board itself. Boot up, and set up networking. Copy the “go-linux-arm-bootstrap-X.tgz onto the board and extract it, for example into the user directory. Clone the Go source as well, and then things are almost ready.

Almost, because ARM devices are generally underpowered compared to x86, or at least their CPU/memory/stack balance is very different than an x86 machine. Because of this, some of the settings need to be modified to successfully build Go. Based on a blogpost, the stack size needs to be  reduced (e.g. from 8MB to 1MB) with “ulimit -s 1024”, and the Go tests scaling factors need to be modified through an environmental variable.

And one more trick before starting: the compilation makes heavy use of “/tmp” and it is better to make sure it’s in the memory, not trashing the SD Card or eMMC storage. The wiki recommends these settings in “/etc/fstrab”

tmpfs /tmp tmpfs nodev,nosuid,mode=1777 0 0

The final process is something like this:

$ tar xjvf go-linux-arm-bootstrap-armv7-.tbz

$ git clone https://github.com/golang/go.git

$ cd go/src

$ ulimit -s 1024

$ GO_TEST_TIMEOUT_SCALE=10 GOOS=linux GOARCH=arm GOARM=7 GOROOT_BOOTSTRAP=~/go-linux-arm-bootstrap ./all.bash

[now wait for a long time]

ALL TESTS PASSED

 

Installed Go for linux/arm in /home/user/go

Installed commands in /home/user/go/bin

*** You need to add /home/user/go/bin to your PATH.

In the process first Go is compiled, then all the tests are run that are included in the source repository. That’s the part that takes the longest time. If all the tests passed, then the new go binary will be installed in the “bin” directory of the git repository – and now ready to use!

VAB-820

On VAB-820 I’ve managed to successfully install Go through these steps, and using the ARMv7 bootstrap kit. Its quad core performance is pretty good, and can’t wait to try it for some practical projects! (Might need to permanently set the stack size to 1MB like above.)

There’s also a simpler way to possibly get to use Go: turns out that Resin.io, which has (alpha) support for VAB-820, has some Go base Docker images, so deploying an application onto the board can be as easy as a “git push”. This is still very experimental at the moment, so things will likely to change.

VAB-600

The process is quite similar on VAB-600 as well, though it takes longer time, because it’s a single core ARMv7 device. Nevertheless it works, and provides some interesting options for projects! (Might need to permanently set the stack size to 1MB like above.)

APC 8750

The APC 8750 is an ARMv6 device, and should be okay to bootstrap with a ARMv6 kit, but it turns out that it also depends on the OS version run. The board I had at hand was running soft-float Raspbian, and there the compilation failed with some floating point errors. Looks like that in this case, using a ARMv5 (“GOARM=5”) bootstrap kit might do the trick. The compilation takes quite a long time, though, naturally.

Future

As the next step, you can look around at the tutorial section, and at Awesome Go for great project examples and recommended libraries.

Have you tried Go with any VIA boards, or any other ARM devices? Have any interesting Go project that you want to show off? Would love to hear your experience in the comments!

 

Mini-PCIe microcontroller and make your board too

All VIA’s current ARM boards (VAB-600, 820, 1000) have an online mini-PCIe connector, and I’ve been planning to do something interesting with that for a long time (see this intro post from more than a year ago). Thus I’m very happy to introduce the PCIeDuino – mini-PCIe form-factor Arduino-compatible microcontroller, which can add a whole new set of I/O capabilities to these ARM “carrier boards”.

PCIeDuino under the magnifying glass

I have just recently finished this board, and been able to test it briefly with Springboard and also with the VAB-820. The picture just below shows the shining blue LED, that is tied to D13 – the 13th digital pin, as most Arduinos do.

Sign of life, working with Springboard

Blinking LEDs are good to ascertain life, but electronics like this should do something more useful too!

Hardware

I have written about the PCIeDuino hardware in a lot more detail elsewhere; in a nutshell it is a remixed version of the Sparkfun Arduino Pro Micro 3.3V. It is built around an Atmel ATmega32U4 microcontroller, and breaks out all 13 digital I/O pins, 6 analog input pins, as well as PWM, Serial, I2C, SPI functionality.

PCIeDuino functional diagram

While Arduino boards can already be connected to any system that uses USB, this card has the advantage of being screwed onto the base board, so accidental disconnection is not possible. That should make PCIeDuino more reliable companion for embedded systems, where reliability trumps pretty much any other criteria.

Experience

So far I feel the PCIeDuino is a mixed success. The hardware works quite well, the software needs (a lot) more work, though. Originally I wanted to create an Arduino-compatible board, so the standard Arduino IDE could be used to interface with it. Unfortunately, the IDE is lacking some support on ARM boards, so even if this board is ready, the upstream functionality is not quite there yet. The whole system is usable, but definitely a “developer” setup, requiring manual care – and some patience. 🙂

Now the likely next step is creating some demo use cases with the board; I’m just brewing up some interesting automation and industrial projects. If you have any suggestion what would you use an ARM board with an onboard Arduino, would love to hear!

PCIeDuino is available on Tindie, the indie hardware marketplace. It’s open source hardware, released under the Creative Commons Attribution (CC-BY 3.0) license, just as the original Pro Micro was. The whole design was made with KiCad, and the design files are available on Github.

Make your own mini-PCIe board!

Still, I wanted to take this one step further. My first aim with the whole PCIeDuino project was to show how easy it is to make your own mini-PCIe hardware to extend the functionality of these VIA boards! Now that I see what did it really take to do just that, I have put together a small “base board” kit for mini-PCIe, so everyone could do their own compatible accessory as easily as possible.

miniPCIe baseboard design in KiCad

The base board kit is available on Github as a KiCad project (library, schematic, and PCB outline). I used KiCad because it’s also free and open source, to keep in the spirit of openness – and it’s a pretty good design tool as well in my experience.

If you create any new boards, would be great to hear! If you have any questions, can leave it in the comment section below.

And in the meantime, it’s another weekend coming up, another chance to hack on interesting hardware projects! Have fun, everyone!

 

Going Real-Time with Xenomai on VAB-820

It has been quite a few years since I’ve last used Xenomai, the real-time application framework for Linux, during the work on my thesis back at the university physics lab. When I’ve found that the VIA VAB-820 board is listed on Xenomai’s compatible hardware page, it brought back a lot of interesting memories and I got excited trying it out again. Now that the new (testing) kernel for the VAB-820 is released recently, I thought it’s a good chance to revisit real-time operating systems.

Setting up

Buildroot is a very handy tool to build a kernel and simple file system for embedded devices, and just recently accepted our submitted patch adding support for VAB-820. Buildroot already has support for Xenomai, so everything’s set up to create a system complete with the required patches & tools.

Running xeno-test on the VAB-820

One outstanding issue was a bit of adaptation. Xenomai (at least the stable 2.6.4 version I targeted) needs a suitable Adeos I-pipe patch applied to the Linux kernel, which enables secondary real-time kernel on the same hardware (see the Xenomai FAQ). The closest kernel version that had an available patch was 3.10.18, and I’ve backported that to the 3.10.17 kernel used in our latest release (can download the patch from Github).

After this comes setting up Buildroot. Besides the base configuration for the VAB-820, I had to add the following changes:

  • Kernel -> Linux Kernel Extensions -> Adeos/Xenomai Real-time patch(and add path for the downloaded patch file linked above
    • Target packages -> Real-Time -> (add your required Xenomai userspace skins; add test suite optionally)
    • Enable netcat in the busybox configuration (“make busybox-menuconfig”) if want to use network load in testing (optional)
    • Enable Target packages -> Debugging, profiling and benchmark -> ltp-testsuite for load testing  (optional, just need hackbench provided by that package)

This is not an exhaustive list, there are some dependencies (including the toolchain, I used the latest eglibc), but the required choices are quite obvious during the Buildroot setup using “make menuconfig”.

Now I can run make, wait for the compilation to finish (~30 minutes on my laptop), prepare an SD card with the new system, and boot up your VAB-820 or AMOS-820.

Running benchmarks

Of course I want some proof that the system is really running in real-time mode. The Xenomai knowledgebase has a pretty straightforward article on benchmarking with xeno-test, used that as a base to set up my testing environment.

I’ve connected the VAB-820 to the network, and the testing was run xeno-test like this, explained below:

xeno-test -l “dohell -s SERVERIP -p PORT -b PATH-TO-HACKBENCH 7200” -g results

dohell is a script that generates load for the latency benchmarks. If there’s no load, it’s very easy for a computer to do things reliably on time, the whole point of real time systems is delivering regardless of the load.

The dohell script can use a couple of different sources of load. For example, if provided with the “-s SERVERIP -p PORT” parameters (fill in the blank for them), then it generates network load. It needs netcat (nc) to work, and the easiest way I found on the other end to set up a server receiving the load is to run a simple network sink on the server on the port given to the script above:

nc -v -v -n -l -p PORT >/dev/null

Other load include is loading the CPU: that’s what hackbench is used for, “-b PATH-TO-HACKBENCH” tells the script where to find that tool.

Also have to tell the script how long to run, in seconds: “7200” = 2h, it does generate very nice plots, though I think you can have pretty good results in “900”  = 15mins.

Other flags are added to the latency tool running the actual measurements. Here’s “-g result” is telling it to save binned latency measurements ready to be plotted in a file called “result”. Other flags that can be useful is “-t 0|1|2”, which sets the test mode: put 0 there for user mode task timing (this is the default), 1 for kernel mode tasks, or 2 for IRQ timing. For most use cases user mode tasks are the most relevant information.

I’ve run 3 benchmarks: one run, 2h for each test mode (that’s a nice little 6h window to do other things). Below is the result of the benchmarks:

VAB-820 Xenomai results (click to enlarge)

The results are 16.5us mean / 57us max latency for user tasks, 11.6us mean / 43us max latency for kernel tasks, 4.9us mean / 24us max latency for timer IRQ, while being under full load. These are pretty close to the results I could find for other ARM systems out there, so looking good!

Future work

The upcoming Xenomai 3 is a rewritten version of Xenomai that can provide different ways of creating a real-time system, possibly allowing even stricter response time limits. It’s still in it’s 3rd release candidate form and Buildroot has no support for it, so trying it out would mean once again rolling up the sleeves and do the hard work.

Before that, it should be more interesting to find some real use cases for our brand new real-time system that’s running on the board, let it be for example drone control, industrial automation, or scientific research (and gather some inspiration from out there, eg. these slides: Real-Time Linux in Industrial Appliances).

If you have real-time OS requirements, would love to hear your experience too! What’s your use case, what are your tools, and experience with them? Leave us a note in the comments!