BeagleBoard/GSoC/2018 Projects

< BeagleBoard‎ | GSoC
Revision as of 05:46, 10 May 2018 by Vaishnav98 (talk | contribs) (Added Fix Bugs in BoneScript Project)
Jump to: navigation, search


Project: Template Project, please copy first and then edit

{{#ev:youtube|fL_XMieanSc||right|Video Title}} “Project Name”. add your project description here.

Project: BeagleBoot

{{#ev:youtube|rlj-k4zyPN0||right|Intro Video: GSoC 2018 - BeagleBoot}}


Integrate node-beagle-boot to Etcher and add features like U-boot console on boot up, TCT/IP proxy server, grab latest images from to BeagleBoot (electron app), developed last year during GSoC.

The BeagleBoot (electron app) developed last year, needs some improvements and feature additions.

Features to be added:

1. Grab latest images from for flashing.
2. Provide U-boot console in the app after booting. The U-boot console will be accessed via USB connection with Net console through node-beagle-boot server. Illustrated by Jason Kridner here.
3. For U-boot console UI, I'll be using this React Component in the app. As, I don't want to re-invent the wheel, this component seems a good fit for our requirement.

Proxy Server in node-beagle-boot

  • A proxy server that gets all requests (targeted at addresses other than app's virtual IP) from BeagleBone and routes them to the host IP stack using Node sockets, so that it reaches the internet and also feeds the response (received on app's port) back to the BeagleBone.
  • All requests will be received and served to-from BeagleBone over node-usb (RNDIS).
  • This would help to circumvent all the host specific configs to enable networking in BeagleBone.
  • This way the cloud9 server hosted on BeagleBone can also be exposed only to the BeagleBoot app, not the entire host network.

Improvements in node-beagle-boot:

Integration of node-beagle-boot in etcher

Project: Update to PyPRUSS

{{#ev:youtube|vHxpa6JwqqI||right|Update to PyPRUSS}} The PyPRUSS is a python binding/API for controlling the PRUs. It provides an easy to use python-based interface for loading firmware, controlling execution and interrupts/memory management for the PRUs, therefore shortening the learning curve for users new to PRU programming and also allowing seamless integration of PRU functionality to a larger python projects. Currently, the PyPRUSS uses PASM for its examples and communicates using the older Userspace IO (UIO) Driver. The goal of this project is to update the API to use the remoteproc/rpsmg interfaces for interacting with the PRUs, port the existing examples to gnupru(since PASM is no longer supported by TI) and also add DMA Support to the API, since it will enable the users to program both the PRUs for their application, instead of reserving one for ARM-PRU communication(as needed in case of rpmsg). I also plan to extend PyPRUSS-like bindings to other languages like C, C++ and nodejs as well.

Project: Fix Bugs in BoneScript, Improve Beaglebone UI

{{#ev:youtube| Video: GSoC 2018 - Fix Bugs in BoneScript}}


BoneScript is an existing Node.js library specifically optimized for the Beagle family and featuring familiar Arduino function calls, exported to the browser.The BoneScript library provides several functions for easy interaction with hardware which otherwise would have required the users to manipulate the SysFs files directly(assuming use of no other libraries),which is obviously confusing for a beginner-level user.

BoneScript library even though being widely used by BeagleBone users has compatibility issues across boards,some bugs and unfinished features.The primary aim of this project is to solve most of the open issues reported and add some more features which will be of benefit to the users.

A secondary objective of this project is to add Improvements to the BeagleBone User Interface to provide a similar interface for PocketBeagle that can also support the BaconBits cape examples, so as to provide PocketBeagle beginners a Graphical User Interface from which they can try out the example codes easily(similar to BBUI).