TASTE logo

A tool-chain targeting heterogeneous embedded systems, using a model-based development approach

Get Started

What is TASTE?

So many things!... But mostly:
A tool-chain targeting heterogeneous
systems, using model-based development
A process supporting the creation of systems,
using formal models and automatic code generation
A laboratory platform experimenting with safety-critical SW
technologies, based on open-source, freely accessible solutions
The best way to know what TASTE is, is to go through this presentation.
And this smaller presentation shows a key technology at the heart of TASTE:
how we use ASN.1 to automatically generate many tedious, error-prone SW parts.
Finally, those of you that prefer hands-on sessions, should watch the two videos below.

Who made it? Where did it come from?

TASTE's lineage can be traced back to the EU/FP6 ASSERT project;
an effort led by the European Space Agency back in 2005, whose purpose was
to bring true, formal models-based Engineering into the way we develop space SW.
Over the last 15 years. a large number of companies have contributed
to TASTE's development, with more than 20000 commits across 18 repositories.

Hands-on videos: FPGAs

This video showcases how TASTE automatically creates device drivers and VHDL skeletons for the HW parts of a system.
Bonus footage at the end with actual deployment on an FPGA board.

Installing via Virtual Machine

By far, the easiest way to install TASTE is to download the Debian-Buster based TASTE-10 Virtual Machine for VirtualBox.
For those of you looking for the old stable TASTE-9 VM (based on Debian Stretch) it is here.
After selecting "File/Import Appliance..." you will be able to import the TASTE image in your local installation of VirtualBox, and boot it up.
Then login with user taste and password tastevm.
The TASTE Virtual Machines are based on Debian Linux.

After booting up, the machine must be updated to get the latest versions of all TASTE tools - by executing...

cd ~/tool-src ; ./Update-TASTE.sh

...from any terminal emulator.


Installing via Docker

You can build a complete Docker image (which is very similar to the Virtual Machine) by using this Dockerfile as follows:

$ mkdir TASTE 
$ cd TASTE
$ wget https://gitrepos.estec.esa.int/taste/taste-setup/raw/feature_buster/Dockerfile
$ docker build -t taste .  # don't forget the dot at the end

...and then run a fresh TASTE container with proper X11 redirection, with...

$ wget https://gitrepos.estec.esa.int/taste/taste-setup/raw/master/Docker-run.sh
$ ./Docker-run.sh

This will launch a Docker container able to run all TASTE applications, including the X11-based ones (e.g. the Ellidiss GUI). Note that your $HOME folder is mapped under /root/work inside the container - so save your work ONLY in there, because everything else will be deleted when the container dies. You can of course still commit the container and thus obtain your own custom TASTE images.


Native installation

In Debian-based distributions, you can install TASTE natively. Start by creating a new 'taste' user, and...

$ git clone https://gitrepos.estec.esa.int/taste/taste-setup.git tool-src
$ cd tool-src
$ git checkout feature_buster
$ ./Update-TASTE.sh

You'll then have to follow the prompts to fix whatever issues are detected in your configuration.


Installation in a chroot

You can also install TASTE in a chroot - which allows you to have a native TASTE installation under non-Debian Linux distributions (e.g. SuSE, Fedora, etc). The process depends on the availability of the debootstrap tool in your distribution - after installing it, you will be able to...

# mkdir /opt/buster-chroot
# debootstrap buster /opt/buster-chroot
# mount -t proc none /opt/buster-chroot/proc/
# mount -t sysfs none /opt/buster-chroot/sys/
# mount -o bind /dev /opt/buster-chroot/dev/
# mount -o bind /dev/pts /opt/buster-chroot/dev/pts/
# chroot /opt/buster-chroot

...and at this point, you can continue with the normal process described above for Debian-based distributions. For (almost) all intents and purposes, this chroot will behave just like a native Debian install; and thus allows you to have a "sandboxed" TASTE install that will not interfere with your main distribution.

In fact, this is reason enough to employ this process even if you do have a Debian-based distribution; the chroot will contain all TASTE-related work, and will therefore leave your main distribution undisturbed.

Focus on open-source

TASTE is developed in the open; with tools available under Open-Source Licenses.
The toolchain itself is maintained here, with all the tools' source code checked out under it via 18 Git submodules.



Controlling a rover

PERASPERA used TASTE under the hood to implement the "soul" of this rover.

Flying TASTE-y quadcopters

Quadcopters flying in formation under the control of TASTE-generated SW.
One of the major attractions in ESTEC's Open Days of the last two years.

Controlling the brain of a CubeSat

Using TASTE, to apply the power of Model-based SW Engineering (MBSE) on a tiny MSP430 microcontroller that flies in CubeSats. Total memory: 64KiB!

CHEOPS, an ESA mission that launched in December 2019, used TASTE's ASN1SCC to generate the message marshallers for the application software.
FBK used TASTE in "Contest" (solar/stirling cogeneration; modeling, deployment); "GreenerSys" (single-unit Organic Flow-Batteries; model, deployment); "GreenerNet" (grid of OFBs; modeling)
PROBA-3 uses TASTE in many ways: the payload onboard and the ground segment make extensive use of the Data Modelling Tools from TASTE, for both code and documentation purposes.
Many organizations (in Telecom and elsewhere) are using ASN1SCC; the "heart" of the message marshalling in TASTE, creating bulletproof message marshallers (automatic test cases; 100% coverage by construction; SPARK contracts; automated interface control documents; and more).
Finally, experiments are taking place using TASTE. TASEC-Lab, for example. was a balloon project developed by the "Ignacio Da Riva" Institute (IDR) in collaboration with the STRAST research group from the Technical University of Madrid (UPM). They launched a balloon with a TASTE-programmed Raspberry 3B+, implementing a data acquisition system composed of sensors and actuators - such as thermometers, pressure sensors, heaters, etc.