Software Challenges

Hi, I am Rico Hageman, one of the 37 students working at Delft Hyperloop. I’ve almost completed my second year of the bachelor Computer Science and Engineering, but this year I work full-time as a Software engineer. Although in our curriculum there are a lot of projects, most of them are high level. To gain more experience in real-world low-level programming is the reason why I joined this student team.

My main objective for this year is to program the carefully selected development board which is in charge of gathering information of all the sensors, communicating with the computer outside of the Hyperloop tube and controlling the propulsion and brakes. All of this is done on the development board displayed on the picture, a Hercules Launchpad from Texas Instruments.

Programming these features has to be done in C. Which I was not really familiar with due to the fact it is not in the main curriculum and I chose another, but also really awesome, side track. To make my life easier and the project more reliable, I use a real-time operating system, which is taught in Embedded Software, to not reinvent the wheel. This RTOS provides functions and code for handling tasks, timing and interrupts.

A lot of subjects that I've learned about during the past two years has been useful for this project. I’ve implemented a state machine, which can be best compared with a set of states the Pod can be in and a list of transitions which can be made from one state to another. In each state, the Pod has different expected behaviour, like accelerating or performing tests to check the health of the system.

A lot of different data structures are used in the project and also unit tests, small tests for specific parts in the code have been made. But the most important thing I've learned in the last years is thinking like a computer and debug code. Although in the curriculum Java is taught, a lot principles also apply on other languages.

Right now, I'm working on the interface with all the selected sensors and actuators. This is tough because each interface works completely different and there are a lot of parameters, but you learn a lot about communication protocols and when a new interface is functional it really feels good to have a larger network of devices communicating with each other which will help us in our goal to win the SpaceX Pod competition of 2018.