GSoC/GCI Archive
Google Summer of Code 2015

License: GNU General Public License version 2.0 (GPLv2)

Web Page:

Mailing List: is a volunteer organization that seeks to advance the state of open-source software on open-source hardware platforms capable of running high-level languages and operating systems (primarily Linux) in embedded environments. Born from taking mobile phone processors and putting them on low-cost boards to build affordable desktop computers, has evolved to focus on the needs of the "maker" community with greater focus on the I/O needed for controlling motors and reading sensors to build things like robots, 3d printers, flying drones, in-car computer systems and much more. Past GSoC projects included creating an interpreter for tiny CPUs, adding SPI and sensor support to Python, an HTML and git based tutorial sharing environment, porting autopilot software to Linux, an open source 100MHz 14-channel logic analyzer, using Android tablets as Linux displays,putting ADC support in Linux under the IIO framework, using Android phones as a network boot source, Running Arduino code on Linux, Robot Operating System support within the Yocto Project build system, Minix I2C support, an RPC framework for heterogeneous processor communication, a transparent USB packet sniffer, ARM optimizations for XBMC, ARM optimizations for FFTs, make-shift pulse-width-modulation and RPC optimizations for OpenCV. has benefited from sponsorship from Texas Instruments, CircuitCo, Digi-Key, element14 and others, but avoids any dependence on that sponsorship for sustaining the effort. The project has evolved over the past few years with over 500,000 boards in circulation with developers worldwide and strong roots in the Linaro, Yocto Project, Angstrom Distribution, Debian and Linux communities---and support for running most major Linux distributions including Ubuntu, Android, Fedora, ArchLinux, Gentoo, Buildroot and many more.



  • Android-based Remote Display My project goal is to implement a kernel device driver for USB Playback device, USB mouse and keyboard using Android AOA protocol. Successful completion of this project will give support of multiple cape and peripherals in a single gadget. I'll also focus on improving the USB framebuffer driver and develop corresponding android application for end user.
  • BoneScript Web Pages With Live-Running Examples And Documentation The idea here is to make the most use of BoneScript and let Bone101 more user friendly especially for newbies to make uploading/downloading or sharing tutorials as easy as possible.
  • Demo Android app using BBBAndroid BBBAndroid is mainly designed to enable users to run Android on our favorite embedded linux board (i.e. Beaglebone Black). "Demo Android app using BBBAndroid" project focuses on the demonstration of apps that can run on Android which makes use of some awesome peripherals support of the BeagleBone Black like ADC, GPIO, I2C, SPI, USB, CAN , PWM, UART etc. Future task could be to make simple APIs for interfacing BBB peripherals using NDK.
  • Enabling accurate magnetic field measurements on Cubesats Magnetic field measurements play an important role in Earth-orbiting satellites, such as attitude determination and scientific instrument pointing. Unless built specifically for high accuracy measurements, satellites usually come with significant magnetic sources of errors that severely degrade measurement accuracy. This GSoC project aims to implement algorithms that enable low-cost high quality magnetic field measurements on smaller spacecraft without booms using the BeagleBone platform.
  • NW.js (a.k.a node-webkit) based cross-platform getting-started app The cross-platform getting-started app will provide a tool for new users, that allows an easy and fast configuration of Beagle boards. Inexperienced users get the chance to start using Beagle quickly and most importantly hassle-free, allowing them to experience Linux and embedded systems.
  • PRU Bridge The aim of this project is to create a generic, multi channel bridge between userspace Linux and PRU, allowing developers to send and receive data seamlessly between ARM <--- > PRU via creation of plugin driver.
  • PRUSS Support for newer kernels The aim is to build a framework for easy communication between the ARM and PRUSS. Currently these features are provided by libprussdrv and linux kernel’s remoteproc infrastructure. However both have their limitation and require developers to hack kernel drivers to optimize them for their application. This project would develop a lightweight, robust easy-to-use, yet powerful communication framework for ARM-PRU, which would make life for beaglebone users a lot easier.