Software Engineer Position: Riot for intermittent energy-harvesting systems

A sofware engineer position is available at CITI-lab (INSA Lyon) on porting Riot to intermittent energy-harvesting platforms More details below or at this link: http://www.citi-lab.fr/2018/09/24/citi-is-hiring-a-software-engineer/

Best regards, -Guillaume Salagnac

Software Engineer Position – Embedded Operating System Development Title Integrating Sytare persistence support in the RIOT operating system Keywords Embedded Software, Microcontroller, Energy Harvesting, Checkpointing Location CITI laboratory, INSA Lyon, France Funding 2-year INRIA contract (starting ASAP) with a gross salary of ∼2500€ per month. Contact please write to both <Tanguy.Risset@Insa-Lyon.fr> and <Guillaume.Salagnac@Insa-Lyon.fr>

Summary The context of this work is the design and study of operating systems for the Internet of Things (IoT). We are interested in an emerging class of IoT platforms which rely on harvesting energy from their environment (solar, heat, radio). Such systems have to deal with vastly different constraints compared to more traditional networked embedded systems powered by a battery. In addition to minimizing energy consumption in general, the system must also be able to survive power failures due to unfavourable conditions. These hypotheses have a significant impact on many aspects of system design, including software development. Since 2015, the CITI lab develops Sytare, a proof-of-concept operating system layer targetted at such intermittent platforms. The goal of this project is to integrate the persistence features from Sytare in the RIOT operating system.

Project Description The RIOT operating system (https://www.riot-os.org) is developed since 2013 by an international community of open-source developers, co-founded by INRIA, Hamburg University of Applied Sciences, and Freie Universitaet Berlin. Its main objective is to become the go-to software platform for IoT projects. RIOT enables any programmer to develop applications on typical IoT devices, with no learning curve, assuming prior experience with POSIX and Linux. In this project, we aim at extenting RIOT with support for more “exotic” embedded platforms based on Non-Volatile RAM (NVRAM). The idea is to allow the platform to shutdown and turn back on when power becomes available again, while not requiring a software reboot. The Sytare project (https://gitlab.inria.fr/citi-lab/sytare) is an attempt at designing a minimalist OS for small embedded systems with intermittent power. The system is based on the idea of state checkpointing: power failures are detected in advance, and all system state (hardware peripherals, application software) is saved to NVRAM. When power comes back on, system state is restored and execution resumes transparently.

The main goal of this work is to integrate these persistence mechanisms into RIOT. This includes tasks such as: • Port RIOT to NVRAM-based microcontrollers e.g. the Texas Instruments MSP430FR5969. This will require extending the build system of RIOT to use the msp430-elf toolchain which supports NVRAM-based platforms. • Implement sytare-like checkpointing mechanisms in RIOT. We are interested in both a Normally-Off paradigm (in which the OS decides to shut down in order to save energy) and in a Transient-Power paradigm (in which power failures are frequent and unexpected because of energy harvesting). • Carry out performance tests to validate and evaluate the implementation. We have a hardware testbench which is able to simulate energy harvesting conditions in a controlled way, enabling for reproducible experiments. All the source code produced during the project will be published as open source. In particular, we aim for the contributions listed above to be merged and maintained within the master branch of RIOT.

Requirements Qualification Graduate degree in Computer Science, Electrical Engineering, or related area

Skills • Strong background in computer architecture and/or operating systems – Embedded software development: bare-metal C, assembly, cross-development – General software engineering: Linux scripting, make, git • Some background in electrical engineering: read electronics schematics, use an oscilloscope • Ability to work in a research environment: read and understand academic papers, balance between autonomy and teamwork, good communication skills • Working fluency in English. French is also helpful but not required

Context The CITI laboratory is is an academic research laboratory associated with INSA-Lyon and INRIA. Our research activities bring together networking, digital radio, middleware, security and embedded systems, while trying to fill in the gap between purely technology-driven research and fundamental studies. The full cross-layer expertise on wireless systems the CITI acquired during the past decade makes it a very original, challenging and almost unique place in France. Innovative results have been obtained in crossing points between these research areas, like multi-hop routing, wireless planning, ambient services management, communication board modeling, or wireless sensor networks.

INRIA, the French National Institute for computer science and applied mathematics, promotes “scientific excellence for technology transfer and society”. The Grenoble Rhône-Alpes Research Center groups together about 800 people in 35 research teams and 9 research support departments. Staff is localized on 5 campuses in Grenoble and Lyon, in close collaboration with labs, research and higher education institutions in Grenoble and Lyon, but also with the economic players in these areas. Present in the fields of software, high-performance computing, Internet of things, image and data, but also simulation in oceanography and biology, it participates at the best level of international scientific achievements and collaborations in both Europe and the rest of the world

How to apply See https://jobs.inria.fr/public/classic/fr/offres/2018-00992