BeagleBoard/GSoC/2020 Projects

Jump to: navigation, search


Weekly reports

  1. All weekly reports will be sent to the mailing list (as that is our primary support venue outside of live chat) on a single thread (to avoid e-mail thrash).
  2. They must be sent on Monday to allow for mentors to respond ahead of Wednesdays IRC meeting where all blockers will be discussed live.
  3. They must include the following sections:
    • Accomplishments
    • Resolutions to blockers
    • On-going blockers
    • Plans for the next week


Project Student Mentors Videos Reports Code Documentation
Cape Compatibility Deepak Khatri (lorforlinux) Jason Kridner (jkridner), Kumar Abishek, Hunyue Yau, Drew Fustini intro final weekly TBD blog warm up task more
PRU Bi-dir bus Deepankar Maithani (deepankarmaithani) Saketh, rma, Hunyue Yau, Drew Fustini, Jason Kridner intro final weekly code blog more
PRU Improvements Vedant Paranjape (vedant16) Kumar Abhishek, Pratim Ugale, Andrew Henderson intro final weekly Code blog more
Media IP Streaming Niklas Wantrupp (nwan) Robert Manzke, Henrik Langer, Drew Fustini, Indumathi Duraipandian intro final weekly code documentation more

Cape Compatibility

The idea of this project is to make

  1. The same userspace code work with both BeagleBone Black and BeagleBone AI, using the same references to drivers for peripherals assigned to the same header pins between BBB and BBAI.
  2. The same DT overlay work for both BBB and BBAI. For capes, uBoot Cape manager will also be updated to support BBAI so that DT overlays will be automatically loaded during boot.


  1. Introductory YouTube video. ✅
  2. Capes are working on BBB (Comms, Servo, Load, Realy, Motor, and LCD4). ✅
  3. Cleaning up code in beagle-tester and creating new examples.
  4. Created new userspace examples for BBB.
  5. Testing new beagle-tester code on BBB.
  6. Created Compatibility layer PR with compatible overlays.
  7. BBAI pin control working using libgpiod.
  8. Testing user space examples with BeagleBone AI.
  9. comms cape working on BBAI. ✅
  10. Servo cape working on BBAI. ✅
  11. Motor cape working on BBAI. ✅
  12. Load cape working on BBAI . ✅
  13. Relay cape working on BBAI . ✅
  14. LCD4 cape working on BBAI . ✅
  15. Creating bone buses Pinmux nodes and DT overlay for BBAI (UART, I2C, SPI, CAN, ADC, PWM, TIMER_PWM, PRU, ADC, eQEP,eCAP and LCD).
  16. BBAI u-boot SPL automatic cape overlay loading compatibility working.
  17. Finalizing cape interface spec page.
  18. Setting up config-pin for BBAI.
  19. Final YouTube video.

PRU Bi-dir bus



1. Introductory Video
2. Setting up BeagleLogic to analyse communication between PRU and Shift Register
3. Configuring the system to use remoteproc and run sample codes on PRU
4. Understanding Writing a character driver
5. Understanding and writing GPIO chip driver
6. Writing code to send simple data to 74hc595.
7 Integrating GPIO chip driver with the code
8. Writing a simple code for 74hc299
9. Integrating GPIO chip driver with the code
10. Supporting SIP0 and PISO configurations on 74hc299.
10. Device tree configurations or systemd unit file and shell script configuration for pins
11. Final enhancements and documentation
12. Final Video

PRU Improvements

Idea of this project is to implement a compiled language which will compile down to PRU assembly. PRU programming is a uphill task and quite tough for beginners, this language intends to simplify this, by providing a high level language with simple syntax. This will make it easy to get beginners onboard with PRU


  1. Introductory YouTube video
  2. Setting up BeagleBone Black Wireless i.e flashing up to date Linux image and Testing user-led blink code :D
  3. Running existing example codes from this repository
  4. Implementing int, bool data types
  5. Implementing Arithmetic operators
  6. Implementing Relational operators
  7. Implementing Bitwise operators
  8. Implementing Logical operators
  9. Implementing Arithmetic operations
  10. Implementing Variable assignment
  11. Implementing if else elif
  12. Implementing for loop
  13. Implementing functions
  14. Implementing Register access
  15. Writing documentation for same
  16. Implementing Language backend
  17. Implementing Utility functions
  18. Testing the language, and implementing example codes.
  19. Finalizing and documenting everything done till now, submitting second report for evaluation
  20. Solving github issues
  21. getting PRUSpeaks to work on the new kernel
  22. Writing documentation
  23. Packaging the compiler for distribution, like packaging into debian package.

Media IP Streaming

This project aims in porting the existing drivers for the CTAG Face audiocard to the 4.19-rt kernel for Beaglebone AI. Furthermore, the AVB protocol, implementented during a former GSoC Project, should also be ported and optimised to 4.19-rt kernel. More information about the project can be found here.


June 8 Introductory YouTube video, review of existing drivers for ctag face audio interface, identifying challenges for porting drivers to Beagle AI and selection of appropriate kernel
June 15 Implementation / porting of ALSA audio drivers for ctag face to Beagle AI --> toolchain setup, driver adoptions, coding
June 22 Port of sound card drivers, testing, performance check
July 3 Finalzing port of ctag face audio card driver to Beagle AI and getting pull request to Beagleboard Mainline
July 10 Review of existing AVB network driver architecture for real-time audio streaming, basis is , identifying challenges for porting to Beagle AI
July 17 Implementation / porting of ALSA AVB network drivers to Beagle AI --> toolchain setup, driver adoptions
July 24 AVB ALSA drivers implementation for Beagle AI
July 31 Getting ALSA AVB network drivers finished and document everything till now
August 3 Joining AVB ALSA drivers with ctag face audio card drivers
August 10 Performance and integration testing of driver ports
August 17 Completion YouTube video, pull request of driver architecture for mainline