Google Summer Of Code + Zephyr RTOS

The Google Code Summer (GSoC) is an annual international program in which Google awards stipends to contributors who successfully complete a free and open source software coding project during the summer. Launched in 2005, GSoC runs from May to August. Project ideas are submitted by host organizations involved in open source software development, although students can also submit their own project ideas.

This year, the program was open to anyone 18 or older, not just students and recent graduates. Participants are paid to write software, with the amount of their salary based on the purchasing power parity of the country where they are located.

It is also the first time that the Zephyr project has participated in the GSoC under the aegis of the Linux Foundation. Please join us in welcoming these contributors and their projects:

Advertising

Project #1: Arduino module based on Zephyr

1 full size contributor (350 hours).

Arduino’s popularity is recognized as a popular framework for providing a simplified interface for programming embedded devices. Recently, Arduino adopted mbed OS as the base RTOS for some of its new devices. With this work, they separated Arduino Core as an independent abstraction layer from Arduino Core for mbed. This opens the possibility of exploiting Arduino Core on other operating systems. The idea of ​​the project is to create a Zephyr module that leverages the Arduino core so that a developer can use Zephyr as the underlying operating system when using the Arduino framework on Arduino compatible devices. User benefits include:

Access to Arduino APIs as well as advanced Zephyr features
Larger set of devices than the standard Arduino ecosystem thanks to support for Zephyrs devices
Possibility to reuse Arduino tools like the Arduino IDE and the wealth of libraries

Arduino Core is licensed under the GNU Lesser General Public License and Zephyr is licensed under the Apache 2 License. This means that this project will most likely need to be developed from a tree and in a separate repository to keep code and license separate. See #22247 for historical discussion & soburi/arduino-on-zephyr for an earlier attempt at the Arduino Core architecture.

The task of the contributor is therefore:

Implement a bare-bones module based on Arduino Core that can compile for any target (no functionality, possibly in QEMU)
Implement a common device from the Zephyr-based Arduino API such as Serial
Target a physical board, such as the Arduino Zero

mentors:

Jonathan Béri – CEO of Golioth and Zephyr TSC
Alvaro Viebrantz – Founding engineer of Golioth and Google GDE

Code license: LGPL

Contributor contact details:

Name: Dhruva Gole
Project blog: https://dhruvag2000.github.io/Blog-GSoC22/
Project poster:

About the contributor: Dhruva is an undergraduate student majoring in electrical engineering. He has a wide range of interests from embedded software development to hardware design and has experience working on SBCs, microcontrollers and embedded Linux platforms.

Project #2: Apache Thrift Module for Zephyr

1 full size contributor (350 hours).

Apache Thrift is an IDL specification, RPC framework, and code generator that abstracts transport and protocol details to allow developers to focus on application logic. It works on all major operating systems, supports over 27 programming languages, 7 protocols and 6 low-level transports. Originally developed at Facebook in 2007, it was later shared with the Apache Software Foundation.

Supporting Thrift in the Zephyr RTOS would greatly benefit the community. This would lead to new software and hardware technologies, new products, and additional means of cloud integration. Thrift can also be used on virtually any means of transport and for this reason is a natural fit for the many different physical communication layers supported by Zephyr. The idea of ​​the project is to get the Thrift proof of concept for the Zephyr module in shape for the upstream. To achieve this, the contributor must:

Perform additional integration for Thrift features (protocols, transports)
Create additional sample applications using supported boards or Qemu
Create additional tests and generate coverage reports using Zephyr Test Framework
Make sure the module follows coding guidelines and meets module requirements
Make any necessary improvements to the Apache Thrift project.
Make all necessary improvements to Project Zephyr.

mentors:

Christophe Friedt – SWE / ASIC FW at Meta and Zephyr TSC member
Stephanos Ioannidis – Zephyr CXX Subsystem Maintainer

Code license: Apache 2.0.

Contributor contact details:

Last name: Young

About the contributor: Young is a communications engineering student and will be pursuing his master’s degree in computer engineering. He has a wide range of interests from front-end development to hardware design, and has experience working on web, IoT and embedded platforms. A low-cost single-board computer with a RISC-V 64 processor designed by him in 2021 has been reported by several geek media.

Leave a Comment