Forum | Documentation | Website | Blog

Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • gsoc/gsoc.beagleboard.io
  • Krishna_13/gsoc.beagleboard.io
  • krvprashanth/gsoc.beagleboard.io
  • lorforlinux/gsoc.beagleboard.io
  • jkridner/gsoc
  • anujdeshpande/gsoc.beagleboard.io
  • ayush1325/gsoc.beagleboard.io
  • samdai/gsoc.beagleboard.io
  • abdelrahman/gsoc.beagleboard.io
  • aryan_nanda/gsoc.beagleboard.io
  • fuadzade/gsoc.beagleboard.io
  • vvaishak/gsoc.beagleboard.io
  • Roger18/gsoc.beagleboard.io
  • mclem/gsoc.beagleboard.io
  • NachtSpyder04/gsoc.beagleboard.io
  • melta101/melta101-gsoc
  • saiprasad-patil/gsoc.beagleboard.io
  • mattd/gsoc.beagleboard.io
  • SurajS0215/gsoc.beagleboard.io
  • jarm/gsoc.beagleboard.io
  • ijc/gsoc.beagleboard.io
  • himanshuk/gsoc.beagleboard.io
  • mahelaekanayake10/gsoc.beagleboard.io
  • alecdenny/gsoc.beagleboard.io
  • darshan15/gsoc.beagleboard.io
  • san.s.kar03/gsoc.beagleboard.io
  • jjateen/gsoc.beagleboard.io
  • vidhusarwal/gsoc.beagleboard.io
  • giuliomoro/gsoc.beagleboard.io
  • ketanthorat/gsoc.beagleboard.io
  • Sahil7741/gsoc.beagleboard.io
  • Whiz-Manas/mana-gsoc-beagleboard-io
  • fayezzouari/gsoc.beagleboard.io
33 results
Show changes
Showing
with 552 additions and 45 deletions
guides/media/commit-changes.png

174 KiB

guides/media/commit-success.png

45.9 KiB

guides/media/commit.png

184 KiB

guides/media/create-merge-request.png

131 KiB

guides/media/edit-button.png

180 KiB

guides/media/fork-button.png

194 KiB

guides/media/fork-project.png

282 KiB

guides/media/ide.png

738 KiB

guides/media/make-edits.png

650 KiB

guides/media/merge-request.png

185 KiB

guides/media/repo-file-folders.png

322 KiB

.. _gsoc-mentor-guide:
Mentor Guide
############
.. youtube:: 3J_eBuYxcyg
:width: 100%
:align: center
.. important::
As a mentor you have to guide contributors through the entire process of GSoC, from learning
about `BeagleBoard.org <https://www.beagleboard.org/>`_ community, to helping GSoC Contributors
become familiar with the code base and testing practices, to finally releasing their code on
`OpenBeagle <https://openbeagle.org/>`_ for the world to use!
You will also need to be invited by an administrator to register on the GSoC site and request
to be a mentor for `BeagleBoard.org <https://www.beagleboard.org/>`_.
Who Are Mentors?
****************
`Mentors <https://google.github.io/gsocguides/mentor/>`_ are people from the community who volunteer to work
with a GSoC contributor. Mentors provide guidance such as pointers to useful documentation, code reviews, etc.
In addition to providing GSoC contributors with feedback and pointers, a mentor acts as an ambassador to help
GSoC contributors integrate into their project’s community. `BeagleBoard.org <https://www.beagleboard.org/>`_
always assigns more than one mentor to each of GSoC contributor. Many members of `BeagleBoard.org <https://www.
beagleboard.org/>`_ community also provides guidance to GSoC contributors without mentoring in an “official”
capacity, as much as they would answer anyone’s questions on our `Discord <https://bbb.io/gsocchat>`_ and our
`Forum <https://bbb.io/gsocml>`_.
Idea Submission Process
***********************
Mentors should:
1. Submit project ideas to our `Forum <https://bbb.io/gsocml>`_ and then
2. Contribute an update to our :ref:`gsoc-project-ideas` page using our :ref:`gsoc-site-editing-guide` to promote their idea to contributors.
Only ideas deemed by administrators as being sufficiently supported by qualified mentors will be merged.
.. admonition:: Remember
BeagleBoard.org mentored GSoC projects are supposed to be for software projects that service the Beagle and general open source
embedded systems community, not theses, how-to guides or what I did over my summer vacation ideas.
Prospective mentors, students will use our `Discord <https://bbb.io/gsocchat>`_ and `Forum <https://bbb.io/gsocml>`_
to make contact with you, so be sure to provide up-to-date information. Please feel free to add yourself on mentors page and we will monitor
and police that list. Acceptance as an official mentor with the ability to rate proposals and grade contributors will come via the Google system.
We will only approve official mentors who have a proven track record with Beagle, but welcome all community members to provide guidance to both
mentors and contributors to best serve the community as a whole. Don’t be shy, and don’t be offended when we edit. We are thrilled to have you on board!
.. tip::
Check out the `official GSoC mentor guide <https://google.github.io/gsocguides/mentor/>`_ from Google.
.. _gsoc-proposal-guide:
Proposal Guide
###############
.. admonition:: Did you know?
Each year Google turns down many more applicants than it funds. While pre-proposal activities are key to
improving your chances of success, a poorly-written proposal is an easy way to fail. There is much you can
do to ensure that your project proposal catches the attention of organization reviewers in a positive way.
How to write a successful proposal
***********************************
`BeagleBoard.org <https://www.beagleboard.org/>`_ has received a large number of GSoC contributor proposals over the years
that we have participated. Some of these proposals are quite good, but many are poor proposals that would
not be accepted by any organization participating in GSoC.
How to write an *unsuccessful* proposal
========================================
Unsuccessful proposals often:
1. Try to pass off previous school projects as something to do for GSoC. The work is already done, and the project often has very little to do with `BeagleBoard.org hardware <https://www.beagleboard.org/boards>`_,
2. Show up shortly before the submission deadline with only a half page of “proposal”, being little more than a name, contact information, and a statement of “I will work hard”,
3. Are generic and sent to every other GSoC org with very few details on deliverables or schedule, or
4. Introduce an idea that was never talked about to the `BeagleBoard.org <https://www.beagleboard.org/>`_ mentors in our `Forum <https://bbb.io/gsocml>`_ and submitted without ever engaging the Beagle community.
Please be considerate of the time it takes for us to weed out these bad proposals.
Elements of a successful proposal
==================================
In order to be successful, a proposal has to be:
1. Relevant to `BeagleBoard.org <https://www.beagleboard.org/>`_,
2. Around a topic that the mentors recognize from being discussed on our `Forum <https://bbb.io/gsocml>`_, possibly on our :ref:`gsoc-project-ideas` page, and sufficiently detailed that the mentors know exactly what you’ll be creating and when it will be done,
3. Shown to mentors via our `Forum <https://bbb.io/gsocml>`_ well before the submission deadline, so that the mentors can comment on it and offer suggestions that improve the proposal.
.. tip::
Start your proposal early, speak with the mentors often, and dedicate an appropriate amount of time to both thinking
about the deliverables for your project and how you can describe those deliverables in writing.
Using proposal template
************************
To make the project proposal writing process easier for all the GSoC contributors we have created a :ref:`gsoc-proposal-template`.
.. tip::
Start with :ref:`gsoc-site-editing-guide` to simplify the proposal writing process using OpenBeagle CI. It's always recommended to create a fork
of `gsoc.beagleboard.io repo on OpenBeagle <https://openbeagle.org/gsoc/gsoc.beagleboard.io>`_ and clone on your local machine. Instructions for
setting up Sphinx on local machine are also provided on :ref:`gsoc-site-editing-guide`. For any query, you can reach out on
our `Discord <https://bbb.io/gsocchat>`_ or `Forum <https://bbb.io/gsocml>`_.
You can either open your cloned `gsoc.beagleboard.io repo <https://openbeagle.org/gsoc/gsoc.beagleboard.io>`_ using Visual Studio Code on your local machine or use OpenBeagle Web IDE. Now, follow steps below to write your proposal,
1. Create a copy of ``gsoc.beagleboard.io/proposals/template.rst`` in ``gsoc.beagleboard.io/proposals`` folder. Rename the file to reflect your project (``project-name.rst``) or your initials (``<myname>.rst``). It's recommended to follow the structure and use a filename with all smallcase letters and without any space.
2. Start editing your proposal, it should be straightforward if you already know reStructuredText. Don't worry if you are new to reStructuredText, checkout our `ReStructuredText Cheat Sheet <https://docs.beagleboard.org/latest/intro/contribution/rst-cheat-sheet.html>`_ which should guide you through writing your proposal using reStructuredText.
3. Commit your changes and push to your fork often. Share the commit links with mentors so that they can review your proposal drafts and provide their valuable feedback.
4. Check rendered version of your proposal on OpenBeagle pages, to view a rendered version of your updates you can go to ``<username>.beagleboard.org/<repo name>`` where ``username`` is your OpenBeagle username and ``<repo name>`` is the repository name you have selected while forking the project. For example, if username is ``lorforlinux`` and project name is ``gsoc.beagleboard.io`` the rendered site can be accessed live via `lorforlinux.beagleboard.io/gsoc.beagleboard.io <http://lorforlinux.beagleboard.io/gsoc.beagleboard.io>`_.
.. tip::
1. For quick review, you can share OpenBeagle pages link with mentors and community members on our `Discord <https://bbb.io/gsocchat>`_ or `Forum <https://bbb.io/gsocml>`_.
2. On secondry (right) side bar you will see a **PDF download button** like shown below. Click that button on your proposal page to download PDF version of your proposal which you can submit directly on GSoC porposal submission portal.
.. raw:: html
<a role="button" href="">
<i class="fa-solid fa-download"></i> Download PDF
</a>
.. _gsoc-site-editing-guide:
Site Editing Guide
##################
`GSoC <https://gsoc.beagleboard.io/>`_ site uses `OpenBeagle Continous Integration (CI) / Continous Development
(CD) <https://docs.gitlab.com/ee/ci/>`_ which is a continuous method of software development, where
you continuously build, test, deploy, and monitor iterative code changes. which means you don't have to setup
anything on your local machine to update anything on the site. To contribute to this site, you can follow the
simple steps provided below.
.. note:: `OpenBeagle <https://openbeagle.org/>`_ is a self hosted instance of open source program called `GitLab <https://about.gitlab.com/>`_.
.. tip::
If you want to build on your local machine we have added ``venv-build-env.sh`` and ``requirements.txt``
to help you setup sphinx and all the other dependencies. Execute these commands in your terminal,
Install python modules and setup virtual environment,
.. code:: shell
. ./venv-build-env.sh
Build and serve it live using ``sphinx-autobuild``,
.. code:: shell
make livehtml
Now, you can open `http://127.0.0.1:8000 <http://127.0.0.1:8000>`_ on any browser to see the rendered HTML with live updates.
Clear cookies and site data in your browser window to view up to date site.
Fork the project
*****************
Go to `gsoc.beagleboard.io repo on OpenBeagle <https://openbeagle.org/gsoc/gsoc.beagleboard.io>`_
and click on fork button create a fork on your personal OpenBeagle profile.
.. image:: media/fork-button.png
:align: center
After clicking on the fork button, you'll be taken to a page like shown below where you have to,
1. Select your profile from the dropdown.
2. Click on fork project button to initiate the forking process.
.. image:: media/fork-project.png
:align: center
Select file to edit
*******************
After successfully forking the project you have to,
1. Make sure you are on the forked repo on your profile, it should be ``https://openbeagle.org/<user-name>/gsoc.beagleboard.io`` where <user-name> should be replaced with your OpenBeagle username.
2. Select any file you want to edit from the files & folders view of the repo page.
.. image:: media/repo-file-folders.png
:align: center
After selecting the file you have to click on ``edit button`` and then choose either of the options from drop-down,
1. ``Open in Web IDE``, choose this if you want to work on multiple files.
2. ``Edit single file``, choose this if you want to make some small edits in a single file.
.. image:: media/edit-button.png
:align: center
.. note::
Choosing ``Web IDE`` will load a `Visual Studio Code Server <https://code.visualstudio.com/docs/remote/vscode-server>`_
instance which is a feature rich source code editor. Depending on the internent connection, your machine will take some time to
load the editor and it can be a bit heavy for some machines to handle. Once fully loaded it should run smoothly but, if that is
not the case then please consider using single file editor option. Considering majority of the users will be using ``Web IDE`` option,
we are using the ``Web IDE`` for the rest of this guide.
Start editing
*************
If you select to open your file in ``Web IDE`` you'll see a familar interface. The GitLab Web IDE is actually a rich
`Visual Studio Code Server <https://code.visualstudio.com/docs/remote/vscode-server>`_ hosted on OpenBeagle.
.. image:: media/ide.png
:align: center
.. tip:: We use `reStructuredText (RST) <https://en.wikipedia.org/wiki/ReStructuredText>`_ for all of our documentation projects
including `this GSoC site <https://gsoc.beagleboard.io/>`_ and `main docs site <https://docs.beagleboard.org/latest/>`_.
If you are new to reStructuredText you can checkout our `reStructuredText cheatsheet <https://docs.beagleboard.org/latest/
intro/contribution/rst-cheat-sheet.html>`_ to get yourself familiar with reStructuredText.
.. admonition:: Why not use Markdown for documentation?
Because reStructuredText stands out against Markdown as,
1. It’s more fully-featured.
2. It’s much more standardized and uniform.
3. It has built-in support for extensions.
For more detailed comparison you can checkout `this article on reStructuredText vs. Markdown for technical
documentation <https://eli.thegreenplace.net/2017/restructuredtext-vs-markdown-for-technical-documentation/>`_
Now you have to select a file and start editing. Below image shows some,
1. Edits made to the `ideas/index.rst` highlighted with green bar on left side of code editor window near line numbers.
2. Source control button indicating (1) file updated in the repo.
.. image:: media/make-edits.png
:align: center
.. tip:: Just like you do on your normal Visual Studio Code desktop application, to commit your changes you can either
click on Source control ( :fa:`code-branch;pst-color-secondary` ) button or press ``CTRL + SHIFT + G`` to see all the edited files.
After switching to source control you have to,
1. Add a commit message in the input field.
2. Click on ``Commit to main`` button or click on drop down button to choose ``Commit to new branch``.
.. image:: media/commit-changes.png
:align: center
After clicking ``Commit to 'main'`` button you'll be prompted with a window (shown below) with three options,
1. ``Create new branch``
2. ``Cancel``
3. ``Continue``
Click on ``Continue`` button if you want to commit to main (default branch) if it's a single edit or commit.
Click on ``Create new branch`` if you want to create a new branch and want to keep your main branch clean. Advantage
of creating a new branch is that assigned reviewer for a pull request / merge request can also add commits to your
newly created branch which is not possible for your main branch because it's a `protected branch <https://docs.gitlab.com/
ee/user/project/protected_branches.html>`_ by default.
.. image:: media/commit-branch.png
:align: center
When all done right, at the lower right side of the ``Web IDE`` you'll see a prompt showing ``Success! Your changes have been committed`` message with
two buttons,
1. ``Go to Project``
2. ``Continue working``
.. image:: media/commit-success.png
:align: center
If you click on ``Go to Project`` button, you'll see the commit successfully applied as shown in the red box in the image below and the
green tick shown on the right side indicates that the CI build was also successful.
.. image:: media/commit.png
:align: center
.. admonition:: Congratulations!!
You have made a valuable contribution to an OpenBeagle project!
Create a pull request
**********************
After making your changes and commiting them to your forked repo, you are set to create a new `pull request / merge request
<https://en.wikipedia.org/wiki/Distributed_version_control#Pull_requests>`_ so that those changes can be merged to upstream
repo. To start your new PR, click on the dedicated button to create a new merge request and fill out all the details. The image
below shows all the fields you have to update,
1. Provide a good title that reflects your work.
2. Add a detailed description of the work you have done. Add pictures whenever seems useful.
3. (Optional) you can assign it to yourself if you'll be working on further updates or assign it to someone else who might want to work on the comments we may provide on your work.
4. Add ``lorforlinux`` or ``jkridner`` as reviewer for PRs with site content update or add your mentor as reviewer if it's related to project work / proposal.
5. If you want your commits to be shown as a single commit, then you can choose the ``sqash commits ...`` check box.
6. Check if all your commits are shown in the bottom of the screen and if everything looks okay, then click on ``Create merge request`` button.
.. tip:: If you are still working on some updates, you may also choose ``Mark as draft`` checkbox (below title)
which indicates that you are seeking feedback before making your commits suitable to merge.
.. image:: media/merge-request.png
:align: center
Now wait for a review and, if comments are raised, then you can continue working on the project
until everything looks perfect and your changes are merged in upstream.
:html_theme.sidebar_primary.remove: true
:sd_hide_title: true
.. _gsoc-project-ideas:
Project Ideas
#############
Ideas
######
.. image:: ../_static/images/ideas-below.webp
:align: center
.. admonition:: How to participate?
Contributors are expected to go through the list of ideas dropdown below and join the discussion by clicking on the
``Discuss on forum`` button. All ideas have colorful badges for ``Complexity`` and
``Size`` for making the selection process easier for contributors. Anyone is welcome to
introduce new ideas via the `forum gsoc-ideas tag <https://forum.beagleboard.org/tag/gsoc-ideas>`_.
Only ideas with sufficiently experienced mentor backing as deemed by the administrators will
be added here.
+------------------------------------+-------------------------------+
| Complexity | Size |
+====================================+===============================+
| :bdg-danger:`High complexity` | :bdg-danger-line:`350 hours` |
+------------------------------------+-------------------------------+
| :bdg-success:`Medium complexity` | :bdg-success-line:`175 hours` |
+------------------------------------+-------------------------------+
| :bdg-info:`Low complexity` | :bdg-info-line:`90 hours` |
+------------------------------------+-------------------------------+
.. tip::
Below are the latest project ideas, you can also check our our :ref:`gsoc-old-ideas` and :ref:`Past_Projects` for inspiration.
.. card:: Upstream Greybus module for Zephyr
:fas:`timeline;pst-color-secondary` RTOS/microkernel imporvements :bdg-success:`Medium complexity` :bdg-danger-line:`350 hours`
^^^^
Greybus support for Zephyr is currently an out of tree module. This makes it hard to maintain, and makes it almost impossible for other people to test and contribute.
The goal of the project is to get greybus and BeagleConnect Technology ecosystem to a point that is easier to test and maintain. It can be considered a continuation of Replace GBridge Project from 2023
| **Goal:** Add testing, cleanup mikroBUS support, submit upstream and respond to feedback.
| **Hardware Skills:** basic wiring
| **Software Skills:** device-tree, C, ZephyrRTOS, Linux, TCP.
| **Possible Mentors:** `Ayush Singh <https://forum.beagleboard.org/u/ayush1325>`_, `Jason Kridner <https://forum.beagleboard.org/u/jkridner>`_
++++
.. button-link:: https://forum.beagleboard.org/t/upstream-greybus-module-for-zephyr/41170
:color: danger
:expand:
:fab:`discourse;pst-color-light` Discuss on forum
.. card:: A Conversational AI Assistant for BeagleBoard using RAG and Fine-tuning
:fas:`brain;pst-color-secondary` Deep Learning :bdg-success:`Medium complexity` :bdg-success-line:`175 hours`
^^^^
BeagleBoard currently lacks an AI-powered assistant to help users troubleshoot errors. This project aims to address that need while also streamlining the onboarding process for new contributors, enabling them to get started more quickly.
| **Goal:** Develop a domain-specific chatbot for BeagleBoard using a combination of RAG and fine-tuning of an open-source LLM (like Llama 3, Mixtral, or Gemma). This chatbot will assist users with troubleshooting, provide information about BeagleBoard products, and streamline the onboarding process for new contributors.
| **Hardware Skills:** Ability to test applications on BeagleBone AI-64/BeagleY-AI and optimize for performance using quantization techniques.
| **Software Skills:** Python, RAG, Scraping techniques, Fine tuning LLMs, Gradio, Hugging Face Inference Endpoints, NLTK/spaCy, Git
| **Possible Mentors:** `Aryan Nanda <https://forum.beagleboard.org/u/aryan_nanda/>`_
++++
.. button-link:: https://forum.beagleboard.org/t/beaglemind/40806
:color: danger
:expand:
:fab:`discourse;pst-color-light` Discuss on forum
.. card:: Update beagle-tester for mainline testing
:fab:`linux;pst-color-primary` Linux kernel improvements :bdg-success:`Medium complexity` :bdg-danger-line:`350 hours`
^^^^
Utilize the ``beagle-tester`` application and ``Buildroot`` along with device-tree and udev symlink concepts within
the OpenBeagle continuous integration server context to create a regression test suite for the Linux kernel
and device-tree overlays on various Beagle computers.
| **Goal:** Execution on Beagle test farm with over 30 mikroBUS boards testing all mikroBUS enabled cape interfaces (PWM, ADC, UART, I2C, SPI, GPIO and interrupt) performing weekly mainline Linux regression verification
| **Hardware Skills:** `basic wiring`_, `embedded serial interfaces`_
| **Software Skills:** `device-tree`_, `Linux`_, `C`_, `OpenBeagle CI`_, `Buildroot`_
| **Possible Mentors:** `Deepak Khatri <https://forum.beagleboard.org/u/lorforlinux>`_, `Anuj Deshpande <https://forum.beagleboard.org/u/Anuj_Deshpande>`_, `Dhruva Gole <https://forum.beagleboard.org/u/dhruvag2000>`_
++++
.. button-link:: https://forum.beagleboard.org/t/update-beagle-tester-for-cape-mikrobus-new-board-and-upstream-testing/37279
:color: danger
:expand:
:fab:`discourse;pst-color-light` Discuss on forum
.. card:: Upstream wpanusb and bcfserial
:fab:`linux;pst-color-primary` Linux kernel improvements :bdg-success:`Medium complexity` :bdg-success-line:`175 hours`
^^^^
These are the drivers that are used to enable Linux to use a BeagleConnect Freedom as a SubGHz IEEE802.15.4 radio (gateway).
They need to be part of upstream Linux to simplify on-going support. There are several gaps that are known before they are
acceptable upstream.
| **Goal:** Add functional gaps, submit upstream patches for these drivers and respond to feedback
| **Hardware Skills:** `wireless communications`_
| **Software Skills:** `C`_, `Linux`_
| **Possible Mentors:** `Ayush Singh <https://forum.beagleboard.org/u/ayush1325>`_, `Jason Kridner <https://forum.beagleboard.org/u/jkridner>`_
++++
.. button-link:: https://forum.beagleboard.org/t/upstream-wpanusb-and-bcfserial/37186
:color: danger
:expand:
:fab:`discourse;pst-color-light` Discuss on forum
.. card:: ``librobotcontrol`` support for newer boards
:fas:`wand-sparkles;pst-color-danger` Automation and industrial I/O :bdg-success:`Medium complexity` :bdg-success-line:`175 hours`
^^^^
Preliminary librobotcontrol support for BeagleBone AI, BeagleBone AI-64 and BeagleV-Fire has been drafted, but it
needs to be cleaned up. We can also work on support for Raspberry Pi if UCSD releases their Hat for it.
| **Goal:** Update librobotcontrol for Robotics Cape on BeagleBone AI, BeagleBone AI-64 and BeagleV-Fire
| **Hardware Skills:** `basic wiring`_, `motors`_
| **Software Skills:** `C`_, `Linux`_
| **Possible Mentors:** `Deepak Khatri <https://forum.beagleboard.org/u/lorforlinux>`_, `Jason Kridner <https://forum.beagleboard.org/u/jkridner>`_
++++
.. button-link:: https://forum.beagleboard.org/t/librobotcontrol-support-for-newer-boards/37187
:color: danger
:expand:
:fab:`discourse;pst-color-light` Discuss on forum
.. card:: Upstream Zephyr Support on BBAI-64 R5
:fas:`timeline;pst-color-secondary` RTOS/microkernel imporvements :bdg-success:`Medium complexity` :bdg-danger-line:`350 hours`
^^^^
Incorporating Zephyr RTOS support onto the Cortex-R5 cores of the TDA4VM SoC along with Linux operation on the A72 core. The objective is to harness the combined capabilities of both systems
to support BeagleBone AI-64.
| **Goal:** submit upstream patches to support BeagleBone AI-64 and respond to feedback
| **Hardware Skills:** Familiarity with ARM Cortex R5
| **Software Skills:** `C`_, `RTOS <https://docs.zephyrproject.org/latest/develop/getting_started/index.html>`_
| **Possible Mentors:** `Dhruva Gole <https://forum.beagleboard.org/u/dhruvag2000>`_, `Nishanth Menon <https://forum.beagleboard.org/u/nishanth_menon>`_
| **Upstream Repository:** `The primary repository for Zephyr Project <https://github.com/zephyrproject-rtos/zephyr>`_
++++
.. button-link:: https://forum.beagleboard.org/t/upstream-zephyr-support-on-bbai-64-r5/37294/1
:color: danger
:expand:
:fab:`discourse;pst-color-light` Discuss on forum
.. card:: ALSA linux driver for Bela cape
:fas:`wand-sparkles;pst-color-danger` Linux kernel audio :bdg-success:`Medium complexity` :bdg-success-line:`175 hours or longer`
^^^^
Below are the project ideas for the GSoC 2024 sorted for better navigation. The BeagleBoard.org community is loaded
with experts on building open source embedded systems. An embedded system is build of computers
dedicated a specific collections of functions and connected to automate things in the physical world.
The Bela cape rev C comes with a ES9080Q 8-channel DAC and a TLV320AIC3104 stereo codec. The former has no support on Linux, while the latter is well supported. This project involves:
- writing a driver for the ES9080Q, which interacts with existing McASP and DMA drivers
- have the ES9080Q and TLV320AIC3104 show up as a single ALSA device with 2
inputs and 10 outputs. Explore whether this can happen via a simple wrapper
in the device tree or requires a dedicated driver.
All the projects have colorful badges for making your choice easier,
| **Goal:** Upstream support of ES9080Q; simultaneous access to ES9080Q and TLV320AIC3104 via ALSA
| **Hardware Skills:** basic wiring, logic analyzer
| **Software Skills:** `C`_ or `Rust`_, `Linux`_
| **Possible Mentors:** `Giulio Moro <https://forum.beagleboard.org/u/giuliomoro>`_
| **Upstream Repository:** `Design files for the Bela cape Rev C <https://github.com/BelaPlatform/bela-hardware/tree/master/cape/bela_cape_rev_C3>`_
| **References:** `The Bela repo shows how to access these devices with a custom driver and DMA running on the PRU. <https://github.com/BelaPlatform/Bela/blob/master/pru/pru_rtaudio_irq.p>`_
.. table::
++++
+------------------------------------+------------------------------------+------------------------------------+
| Priority | Complexity | Size |
+====================================+====================================+====================================+
| :bdg-danger:`High priority` | :bdg-danger:`High complexity` | :bdg-danger-line:`Large size` |
+------------------------------------+------------------------------------+------------------------------------+
| :bdg-success:`Medium priority` | :bdg-success:`Medium complexity` | :bdg-success-line:`Medium size` |
+------------------------------------+------------------------------------+------------------------------------+
| :bdg-info:`Low priority` | :bdg-info:`Low complexity` | :bdg-info-line:`Small size` |
+------------------------------------+------------------------------------+------------------------------------+
.. button-link:: https://forum.beagleboard.org/t/alsa-drivers-for-es9080q-and-tlv320aic3104/41532
:color: danger
:expand:
.. admonition:: Did you know?
:fab:`discourse;pst-color-light` Discuss on forum
BeagleBoard.org has been accepted to be a mentoring organization in the Google Summer of Code (GSoC) for twelve previous years!
.. note::
We don't want to just make more things, we want to enabled individuals to make the things that dominate their lives,
rather than leaving it up to someone else. Google Summer of a Code with BeagleBoard.org is a great way to learn
skills highly in demand while making a difference in the world.
.. toctree::
:maxdepth: 2
:hidden:
:caption: Project Ideas
linux-kernel-improvements
rtos-microkernel-improvements
deep-learning
beagleconnect-technology
automation-and-industrial-io
soft-peripherals-using-co-processors
security-and-privacy
beaglebone-audio-applications
bela-applications
fpga-projects
other-projects
.. button-link:: https://forum.beagleboard.org/tag/gsoc-ideas
:color: danger
:expand:
:outline:
:fab:`discourse;pst-color-light` Visit our forum to see newer ideas being discussed!
.. toctree::
:hidden:
old/index
......@@ -17,13 +17,15 @@ into professional automation tasks, is strongly desired.
^^^^
- **Goal:** Complete implementation of librobotcontrol on BeagleBone AI/AI-64.
- **Hardware Skills:** Basic wiring
- **Software Skills:** C, Linux
- **Possible Mentors:** jkridner, lorforlinux
- **Expected Size of Project:** 350 hrs
- **Hardware Skills:** `basic wiring`_, `motors`_
- **Software Skills:** `C`_, `Linux`_
- **Possible Mentors:** `Jason Kridner <https://forum.beagleboard.org/u/jkridner>`_, `Deepak Khatri <https://forum.beagleboard.org/u/lorforlinux>`_
- **Expected Size of Project:** 175 hrs
- **Rating:** Medium
- **Upstream Repository:** https://github.com/jadonk/librobotcontrol/tree/bbai
- **References:**
- **Upstream Repository:** `BeagleBoard.org / librobotcontrol · GitLab <https://openbeagle.org/beagleboard/librobotcontrol>`_
- **References:**
- `Robotics Control Library — BeagleBoard Documentation <https://docs.beagle.cc/projects/librobotcontrol/docs/index.html>`_
- `Robot Control Library: Main Page <https://old.beagleboard.org/static/librobotcontrol/>`_
- http://www.strawsondesign.com/docs/librobotcontrol/index.html
++++
......
......@@ -93,7 +93,7 @@ Beagle Bone Audio Applications
patch on the host computer and then copying it over to Bela where it gets executed.
One of the limitations of this two-step workflow is that the immediateness of the live-patching behaviour of Pd is lost. In this project,
the student will leverage the fact that Pd communicates with its GUI via a socket to run the GUI on the host computer while running the
the contributor will leverage the fact that Pd communicates with its GUI via a socket to run the GUI on the host computer while running the
audio backend on Bela. This requires a number of adaptations to Pd, including:
- managing the GUI startup process to allow GUI and audio backend to be started separately and connect to each other
......
......@@ -14,6 +14,48 @@ For some background, be sure to check out `simplify embedded edge AI development
<https://e2e.ti.com/blogs_/b/process/posts/simplify-embedded-edge-ai-development>`_
post from TI.
.. card:: Enhanced Media Experience with AI-Powered Commercial Detection and Replacement
:fas:`brain;pst-color-secondary` Deep Learning :bdg-success:`Medium complexity` :bdg-danger-line:`350 hours`
^^^^
Leveraging the capabilities of BeagleBoard’s powerful processing units, the project will focus on creating a real-time, efficient solution that enhances media consumption experiences by seamlessly integrating custom audio streams during commercial breaks.
| **Goal:** Build a deep learning model, training data set, training scripts, and a runtime for detection and modification of the video stream.
| **Hardware Skills:** Ability to capture and display video streams using `BeagleBone AI-64 <https://www.beagleboard.org/boards/beaglebone-ai-64>`_
| **Software Skills:** `Python <https://www.python.org/>`_, `TensorFlow <https://www.tensorflow.org/>`_, `TFlite <https://www.tensorflow.org/lite>`_, `Keras <https://www.tensorflow.org/guide/keras>`_, `GStreamer <https://gstreamer.freedesktop.org/>`_, `OpenCV <https://opencv.org/>`_
| **Possible Mentors:** `Jason Kridner <https://forum.beagleboard.org/u/jkridner>`_, `Deepak Khatri <https://forum.beagleboard.org/u/lorforlinux>`_
++++
.. button-link:: https://forum.beagleboard.org/t/enhanced-media-experience-with-ai-powered-commercial-detection-and-replacement/37358
:color: danger
:expand:
:fab:`discourse;pst-color-light` Discuss on forum
.. card:: Embedded differentiable logic gate networks for real-time interactive and creative applications
:fas:`brain;pst-color-secondary` Creative AI :bdg-success:`Medium complexity` :bdg-danger-line:`350 hours`
^^^^
This project seeks to explore the potential of creative embedded AI, specifically using `Differentiable Logic (DiffLogic) <https://github.com/Felix-Petersen/difflogic>`_, by creating a system that can perform tasks like machine listening, sensor processing, sound and gesture classification, and generative AI.
| **Goal:** Develop an embedded machine learning system on BeagleBone that leverages `Differentiable Logic (DiffLogic) <https://github.com/Felix-Petersen/difflogic>`_ for real-time interactive music creation and environment sensing.
| **Hardware Skills:** Audio and sensor IO with `Bela.io <http://bela.io>`_
| **Software Skills:** Machine learning, deep learning, BeagleBone Programmable Real Time Unit (PRU) programming (see `PRU Cookbook <https://docs.beagleboard.org/latest/books/pru-cookbook/index.html>`_).
| **Possible Mentors:** `Jack Armitage <https://forum.beagleboard.org/u/jarm>`_, `Chris Kiefer <https://forum.beagleboard.org/u/luuma>`_
++++
.. button-link:: https://forum.beagleboard.org/t/embedded-differentiable-logic-gate-networks-for-real-time-interactive-and-creative-applications/37768
:color: danger
:expand:
:fab:`discourse;pst-color-light` Discuss on forum
.. card::
:fas:`brain;pst-color-secondary` **YOLO models on the X15/AI-64**
......