Part 2: Real-time on Raspberry pi

raspberry-pi-logo

As promised, here’s my Part Two blog posting regarding the raspberrry pi.

The default kernel in Raspbian Jesse, the latest release of the raspberry pi’s official OS, could use a tune-up before being fit for duty running time-sensitive machine controls. On a vanilla Linux kernel program, latencies depend on everything running on the system making consistent and punctual tasks difficult to guarantee. The RT PREEMPT patch is a popular fix for this problem. The patch converts Linux into a fully preempt-able RTOS. If you want to control physical processes with your pi, as I intend to in DISTek’s training curriculum update, this is the way to go. But how big of a difference does it make on a pi?

Part 1: Cross-compiling for Raspberry pi

Raspberry pi

Recently, I’ve been launching a little office project to develop a new training curriculum for DISTek engineers. Because it is hands-on training, it will require a toolchain. Since our customers use everything from off-the-shelf professional solutions to home-brewed ones, it’s important to prevent the nuances of a new toolchain from being a distraction in the training’s purpose of conveying good software practices and controls concepts.

Despised by Engineers: Software Documentation

I recently graduated from Iowa State University and began my career at DISTek, and during that time there is one thing that I notice engineers hate doing: documentation. Despite being loathed, it’s widely believed documentation is one of the most important things in software development. I always strive to see that code my teams and I have worked on will be well documented in some form or another. I, especially, run into problems with code that is developed as a library (a set of functions and data structures).

Integrated Projects Engineering Overview

IPE Team

If you’re a regular reader of this blog, then you probably know a lot of about the areas that DISTek works within. Our expertise ranges across the off-highway vehicle industry (including agriculture, construction, and forestry) with engineers that specialize in a variety of disciplines. Out of convenience, we typically group these disciplines into three big areas (“embedded software”, “automation and test”, and “modeling and simulation”), but the reality is that we do all kinds of projects that cross-over between these disciplines.

The DISTek Year in Review – 2015

DSM

Another year has come and gone and many eventful happenings took place in the history of DISTek. We may look back at 2015 as a turning point due to the substantial changes we made in all aspects of our business. Those end-of-the-year cards you get in the mail always seem to be bragging a little too much, but that is just what I am going to do because I think the year DISTek had is worth bragging about.

Book Report: Getting Things Done by David Allen

David Allen

While reading David Allen’s Getting Things Done, I connected the ideas that Allen suggests for time allocation to that of a real-time operating system with which I am familiar. Upon further thought, I wondered if there is a way to act more deterministic and accomplish tasks at higher efficiency, similar to how a microprocessor performs within a real-time operating system.

ISOBUS Task Controller: Part 3

VIRTEC display.

I discussed in Part 2 of the Task Controller (TC) series a type of TC that uses geo-referencing for data-logging. This form of TC has an AEF Functionality called TC-GEO, but there is another type of TC-GEO that is very enticing to farmers. Using prescription mapping and TC-GEO, a farmer can do variable-rate application to control the amount of fertilizer, herbicide, or other inputs by position in the field. Some of the obvious benefits of this approach include reduced input costs, but there are also environmental benefits.

ISOBUS Task Controller: Part 2

VIRTEC display.

In the last Task Controller (TC) post, I gave a broad outline of how a TC session works in the general case. In this post, I will start describing some of the different types of TCs and Tasks. These can range from very simple to very complex.

The simplest form a TC can take actually has an associated AEF Functionality associated with it: TC-BAS, which stands for Task Controller – Basic. With this type of TC, only totals are logged for a particular task.

Seeing The Bits In The Bytes

In a world of complex systems, it may be easy to forget some of the basic concepts that build these systems. Software applications can consist of hundreds of individual files as part of one very large project. Those files all work together to achieve amazing functionality within an embedded system. There are instances where a project may include files written by teams located in different countries. We like to think that when this software is put into production all the bugs have been discovered and the software will work perfectly. Unfortunately, there always seems to be unintended use or a sequence of events that result in undesired functionality. Other times, there is just a plain old bug that managed to find its way into production software.