Difference between revisions of "BeagleBoard/GSoC/2018 Projects"

From eLinux.org
Jump to: navigation, search
(Add BeagleBoot)
Line 46: Line 46:
 
* Wiki: TBD
 
* Wiki: TBD
 
* GSoC site: https://summerofcode.withgoogle.com/projects/#5934527680086016
 
* GSoC site: https://summerofcode.withgoogle.com/projects/#5934527680086016
 +
<div style="clear:both;"></div>
 +
 +
 +
==Project: [[Update to PyPRUSS]] ==
 +
{{#ev:youtube|vHxpa6JwqqI||right|Update to PyPRUSS}}
 +
The PyPRUSS is a python binding/API for controlling the [http://beagleboard.org/pru 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 [https://github.com/dinuxbg/gnupru gnupru](since PASM is [http://processors.wiki.ti.com/index.php/PRU_Assembly_Instructions#pasm_vs._clpru 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.
 +
 +
* Student: Mohammed Muneeb (muneeb17)
 +
* Mentors: Kumar Abhishek (abhishek_), Zubeen Tolani (zeekhuge), Patryk Mezydlo (pmezydlo), S. Lockwood-Childs (Wormo)
 +
* Code: https://github.com/MuneebMohammed/pypruss
 +
* Wiki: TBD
 +
* GSoC site: https://summerofcode.withgoogle.com/projects/#6673723025784832
 
<div style="clear:both;"></div>
 
<div style="clear:both;"></div>

Revision as of 11:17, 9 May 2018

Links

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}}

Description

Integrate node-beagle-boot to Etcher and add features like U-boot console on boot up, TCT/IP proxy server, grab latest images from beagleboard.org 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 beagleboard.org 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.