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
32 results
Show changes
Commits on Source (319)
Showing
with 563 additions and 138 deletions
image: beagle/sphinx-build-env:latest
# The Docker image that will be used to build your app
image: registry.git.beagleboard.org/docs/sphinx-build-env:latest
pages:
tags:
- docker-amd64
before_script:
- source ./venv-build-env.sh
script:
- sphinx-build -b html . public
- "./gitlab-build.sh"
artifacts:
paths:
- public
\ No newline at end of file
- public
......@@ -6,7 +6,7 @@ Status updates for BeagleBoard.org's Google Summer of Code program.
Primary resources:
* [Forum](https://forum.beagleboard.org/c/gsoc)
* [Forum](https://bbb.io/gsocml)
* [Live chat](https://bbb.io/gsocchat)
* [Project documentation template](https://gsoc.beagleboard.io/project-docs-template)
......
.. _C:
https://docs.beagleboard.cc/docs/latest/intro/beagle101/c.html
.. _Assembly:
https://docs.beagleboard.cc/docs/latest/intro/beagle101/assembly.html
.. _Verilog:
https://docs.beagleboard.cc/docs/latest/intro/beagle101/verilog.html
.. _Zephyr:
https://docs.beagleboard.cc/docs/latest/intro/beagle101/zephyr.html
.. _Linux:
https://docs.beagleboard.cc/latest/intro/beagle101/linux.html
.. _device-tree:
https://docs.beagleboard.cc/docs/latest/intro/beagle101/device-tree.html
.. _FPGA:
https://docs.beagleboard.cc/docs/latest/intro/beagle101/fpga.html
.. _basic wiring:
https://docs.beagleboard.cc/docs/latest/intro/beagle101/basic-wiring.html
.. _motors:
https://docs.beagleboard.cc/docs/latest/intro/beagle101/motors.html
.. _embedded serial interfaces:
https://docs.beagleboard.cc/docs/latest/intro/beagle101/embedded-serial.html
.. _OpenBeagle CI:
https://docs.beagleboard.cc/docs/latest/intro/beagle101/openbeagle-ci.html
.. _verification:
https://docs.beagleboard.cc/docs/latest/intro/beagle101/verification.html
.. _wireless communications:
https://docs.beagleboard.cc/docs/latest/intro/beagle101/wireless-communications.html
.. _Buildroot:
https://docs.beagleboard.cc/docs/latest/intro/beagle101/buildroot.html
.. _RISC-V ISA:
https://docs.beagleboard.cc/docs/latest/intro/beagle101/riscv.html
\ No newline at end of file
_static/images/bash-and-boris-gosc-proposal.webp

480 KiB

_static/images/favicon.ico

550 KiB

_static/images/ideas-below.webp

81.2 KiB | W: 0px | H: 0px

_static/images/ideas-below.webp

82.5 KiB | W: 0px | H: 0px

_static/images/ideas-below.webp
_static/images/ideas-below.webp
_static/images/ideas-below.webp
_static/images/ideas-below.webp
  • 2-up
  • Swipe
  • Onion skin
{% if pagename == "ideas/index" %}
<a role="button" href="https://bbb.io/gsocml">
<i class="fa-brands fa-discourse"></i> More Ideas on Forum
</a>
{% else %}
<a role="button" href="https://forum.beagleboard.org/new-topic?category=gsoc&tags=gsoc">
<i class="fa-brands fa-discourse"></i> Discuss on Forum
</a>
{% endif %}
<div class="card bg-light mt-4 text-center">
<div class="card-body">
<p class="card-text text-dark">
<a href="https://www.beagleboard.org/">BeagleBoard.org</a> is all about being open, please discuss in public on our <a href="https://bbb.io/gsocml">forum</a>!</p>
</div>
</div>
\ No newline at end of file
<div class="card bg-light mt-4 text-center">
<div class="card-header bg-primary text-light">
What is the mission?
</div>
<div class="card-body">
<p class="card-text text-dark">
We don’t want to just make more things. We want to enable individuals to make the things that dominate their lives, rather than leaving it up to someone else. Google Summer of Code with BeagleBoard.org is a great way to learn skills highly in demand while making a difference in the world.
</p>
</div>
</div>
<div class="card bg-light mt-4 text-center">
<div class="card-header bg-success text-light">
How to build an embedded system?
</div>
<div class="card-body">
<p class="card-text text-dark">
An embedded system is built using a computer dedicated to a specific purpose, like a toaster, coffee machine, dish washer, thermostat or anti-lock brakes. You can think of an embedded system as a computer designed to not look like a computer and to automate things in the physical world. The <a href="https://www.beagleboard.org/">BeagleBoard.org</a> community is loaded with experts on building open source embedded systems, join our <a href="https://bbb.io/gsocml">forum</a> to connect.
</p>
</div>
</div>
\ No newline at end of file
{% if pages_slug != "index" %}
{% for proposal_name in proposals %}
{% if pagename == "proposals/"+proposal_name %}
<a role="button" href="{{proposal_name}}.pdf">
<i class="fa-solid fa-download"></i> Download PDF
</a>
{% endif %}
{% endfor %}
{% endif %}
\ No newline at end of file
......@@ -10,22 +10,31 @@ import os
import sys
from pathlib import Path
from typing import Any, Dict
from os import walk
import pydata_sphinx_theme
from sphinx.application import Sphinx
sys.path.append(str(Path(".").resolve()))
project = 'gsoc.beagleboard.io'
copyright = '2024, BeagleBoard.org'
copyright = '2025, BeagleBoard.org'
author = 'BeagleBoard.org'
# Add epilog details to rst_epilog
rst_epilog =""
rst_epilog_path = "_static/epilog/"
for (dirpath, dirnames, filenames) in os.walk(rst_epilog_path):
for filename in filenames:
with open(dirpath + filename) as f:
rst_epilog += f.read()
# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
extensions = [
"sphinx_design",
"sphinxcontrib.youtube",
"sphinxcontrib.images",
"sphinx_copybutton"
]
......@@ -57,12 +66,28 @@ html_css_files = [
# Pages entry without primary (left) sidebar
html_sidebars = {
"ideas/index": [],
"**": ["sidebar-nav-bs", "mission"],
"ideas/index": [],
"index": []
}
html_theme_options = {
"external_links": [
{
"url": "https://summerofcode.withgoogle.com/help",
"name": "Help",
},
{
"url": "https://summerofcode.withgoogle.com/rules",
"name": "Rules",
},
{
"url": "https://summerofcode.withgoogle.com/terms",
"name": "Terms",
},
],
"header_links_before_dropdown": 4,
"show_prev_next": False,
"show_prev_next": True,
"icon_links": [
{
"name": "OpenBeagle",
......@@ -78,13 +103,13 @@ html_theme_options = {
},
{
"name": "Discord",
"url": "https://discord.com/invite/e58xECGWfR",
"url": "https://bbb.io/gsocchat",
"icon": "fa-brands fa-discord",
"attributes": {"target": "_blank"},
},
{
"name": "Forum",
"url": "https://forum.beagleboard.org/c/gsoc",
"url": "https://bbb.io/gsocml",
"icon": "fa-brands fa-discourse",
"attributes": {"target": "_blank"},
},
......@@ -106,8 +131,8 @@ html_theme_options = {
"use_edit_page_button": True,
"show_toc_level": 1,
"navbar_align": "right",
"show_nav_level": 2,
"announcement": "Welcome to new site for BeagleBoard.org GSoC 2024 projects!",
"show_nav_level": 1,
"announcement": "Welcome to the site for BeagleBoard.org GSoC 2025 projects!",
# "show_version_warning_banner": True,
"navbar_center": ["navbar-nav"],
"navbar_start": ["navbar-logo"],
......@@ -116,8 +141,20 @@ html_theme_options = {
"footer_start": ["copyright"],
"footer_end": ["last-updated"],
# "content_footer_items": ["last-updated"],
"secondary_sidebar_items": {
"**": ["page-toc", "edit-this-page", "sourcelink","pdf","forum"]
},
}
proposals = []
proposal_filenames = next(walk("proposals"), (None, None, []))[2]
for proposal_filename in proposal_filenames:
proposal_filename = os.path.splitext(proposal_filename)[0]
if proposal_filename != "index":
proposals.append(proposal_filename)
print(proposals)
html_context = {
"display_gitlab": True,
"gitlab_url": "https://openbeagle.org",
......@@ -133,13 +170,14 @@ html_context = {
"edit_page_url_template": "{{ my_vcs_site }}{{ file_name }}",
"edit_page_provider_name": "OpenBeagle",
"my_vcs_site": "https://openbeagle.org/gsoc/gsoc.beagleboard.io/-/edit/main/",
"proposals":proposals
}
# -- Options for proposal PDF generation --
latex_elements = {
"papersize": "a4paper",
"maketitle": open("_static/latex/title.tex").read(),
"preamble": open("_static/latex/preamble.tex").read(),
"preamble": open("_static/latex/preamble.tex").read() + r"\let\cleardoublepage\clearpage",
"sphinxsetup": ",".join(
(
"verbatimwithframe=false",
......@@ -151,8 +189,10 @@ latex_elements = {
)
),
}
sd_fontawesome_latex = True
latex_engine = "xelatex"
latex_logo = str("_static/images/logo-latex.pdf")
latex_documents = [
("proposals/template", "template.tex", "Project proposal template 2024", "John Doe", "manual"),
]
\ No newline at end of file
latex_documents = []
for proposal in proposals:
latex_documents.append(("proposals/"+proposal, proposal+".tex", "",author, "manual"))
#!/bin/bash -xe
mkdir -p public
echo "**** Updating $PAGES_URL/$VER_DIR ****"
echo "**** env ****"
env
# Clean build directory
make clean BUILDDIR=public
# Render HTML
make html BUILDDIR=public
mv public/html/* public/
# Render PDF
make latexpdf BUILDDIR=public/
mv public/latex/*.pdf public/proposals
# Cleanup
echo "**** cleanup ****"
rm -rf public/doctrees
rm -rf public/latex
echo "**** env ****"
env
\ No newline at end of file
.. _gsoc-contributor-guide:
Contributor Guide
#################
.. youtube:: YN7uGCg5vLg
:width: 100%
:align: center
.. important::
Contributors will be expected to execute a series of prerequisites to demonstrate and
expand familiarity with embedded systems development. Don't worry, the
`live chat <https://bbb.io/gsocchat>`_ channel has over 1,000 active members to
travel with you on your journey.
General requirements
********************
.. note::
Google Summer of Code is open to individuals age 18 and older in most countries who are new or beginner
contributors to open source coding projects. Read more on the GSoC site
`Rules page <https://summerofcode.withgoogle.com/rules>`_ and the
`FAQ page <https://developers.google.com/open-source/gsoc/faq>`_.
All projects have the following basic requirements:
1. Contributors must create accounts on our `OpenBeagle <https://openbeagle.org/>`_, `Discord <https://bbb.io/gsocchat>`_ and `Beagle Forum <http://bbb.io/gsocml>`_ prior to creating their application.
2. All newly generated materials must be released under an `open source license <http://www.opensource.org/licenses>`_. Individual contributors shall retain copyright on their works.
3. Contributors will demonstrate their ability to cross-compile and utilize version control software by creating a “Hello World” application and generating a pull request to `jadonk/gsoc-application <https://github.com/jadonk/gsoc-application/tree/master/ExampleEntryJasonKridner>`_. For assistance, please visit our `Discord <https://bbb.io/gsocchat>`_ or utilize the `Beagle Forum <http://bbb.io/gsocml>`_. The “Hello World” application must print your name and the date out in an ARM Linux environment. Freely available emulators may be used to test your application or you can ask anyone on the chat or mailing list to help you test.
4. All projects will produce reusable software components and will not be “what-I-built-over-my-summer-vacation” projects. Including a hardware component is welcome, but the project deliverable will be software that may be utilized by a wide audience of the `BeagleBoard.org <https://www.beagleboard.org/>`_ community.
5. Contributors will demonstrate their ability to collaborate by creating a project proposal on this site using our :ref:`proposal template <gsoc-proposal-template>` and utilizing our `Discord <https://bbb.io/gsocchat>`_ to collect quotes regarding the usefulness of their proposal to the `BeagleBoard.org <https://www.beagleboard.org/>`_ community. **Use of Google Docs for proposal development is discouraged due to insufficient revision control and extensive use of computing resources having numerous documents open simultaneously**.
6. Source code generated during the project must be released on `OpenBeagle <https://openbeagle.org/>`_ (and we’ll setup a mirror on `Github.com <http://github.com/>`_).
7. Contributors will provide two recorded audio/video presentations uploaded to Youtube or Vimeo (screencasts are appropriate), one near the beginning of the project summarizing their project goals and another in the wrap-up phase to summarize their accomplishments. Examples can be found in :ref:`Past_Projects`. There is no requirement to show your faces or use English.
.. important::
To help you to break your project down into manageable chunks and also to help the project’s mentors to better support
your efforts, weekly project status reports should be e-mailed to the the `Beagle Forum <http://bbb.io/gsocml>`_.
Each status report should be posted by every Monday and must include these outlines:
1. Accomplishments
2. Resolutions to blockers
3. On-going blockers
4. Plans for this week
For example, `Weekly Progress Report Thread:
Cape Compatibility <https://forum.beagleboard.org/t/weekly-progress-report-thread-cape-compatibility/28709/9>`_
Contributor proposals can encompass projects based on the :ref:`ideas page <gsoc-project-ideas>` or can include personal project ideas,
but should be focused on generating a sustainable and reusable open source software component. Previous Google Summer of Code projects show
that the key to success is being passionate about your project, so propose something that is extremely interesting to you, even
if it is not on this list. We will be glad to help contributors develop ideas into projects via our `Discord <https://bbb.io/gsocchat>`_
and `Forum <https://bbb.io/gsocml>`_. There are many potential project ideas and we will match contributors to projects
based on their interests and help scope the proposals to something that can be completed in the Summer of Code timeframe.
.. tip::
There are more than a thousand existing projects listed at `Projects Archive <http://www.beagleboard.org/projects>`_.
If you are interested in any of the projects listed on the `BeagleBoard.org <https://www.beagleboard.org/>`_ projects page,
contact the project members to see if there are any aspects of their projects that can be enhanced to create a GSoC project.
There are also several ideas on the `ECE497 class project idea list <https://elinux.org/ECE497_Project_Ideas>`_.
Note, however, we are looking for projects that provide a service to the developer community and aren’t simply “look what cool
thing I made or you can make”. The projects should provide a useful software component for other people to utilize.
......@@ -3,43 +3,66 @@
Guides
######
This section includes guides for :ref:`students <student-guide>` & :ref:`mentors <mentor-guide>` who want to participate
in GSoC 2024 with `BeagleaBoard.org <www.beagleboard/org>`_. It's highly recommended to check `GSoC Frequently Asked Questions
.. youtube:: 7jD2tChhrWM
:width: 100%
:align: center
.. admonition:: What is Google Summer of Code?
:class: admonition-code
Spend your summer break writing code and learning about open source development while earning money!
Accepted contributors work with a mentor and become a part of the open source community. Many become lifetime
open source developers! The 2025 contributor application window will be open from
`March 24 2025 <https://opensource.googleblog.com/2025/01/google-summer-of-code-2025-is-here.html>`_ to
`April April 8 2025 <https://opensource.googleblog.com/2025/01/google-summer-of-code-2025-is-here.html>`_!
But don't wait for then to engage! Come to our `Discord <https://bbb.io/gsocchat>`_ and
`Forum <https://bbb.io/gsocml>`_ to share ideas today.
This section includes guides for :ref:`contributors <gsoc-contributor-guide>` & :ref:`mentors <gsoc-mentor-guide>` who want to participate
in GSoC 2025 with `BeagleBoard.org <www.beagleboard.org>`_. It's highly recommended to check `GSoC Frequently Asked Questions
<https://developers.google.com/open-source/gsoc/faq>`_. For anyone who just want to contribute to this site we also have
a step by step :ref:`contribution guide <gsoc_contribution_guide>`.
a step by step :ref:`contribution guide <gsoc-site-editing-guide>`.
.. card::
:link: student-guide
:link: gsoc-contributor-guide
:link-type: ref
**GSoC Contributor/Student Guide**
:fas:`graduation-cap` **Contributor Guide**
^^^^
If you want to increase your chances of being accepted into (and succeed during) Google Summer of Code we strongly
If you want to increase your chances of being accepted into (and succeed during) Google Summer of Code, we strongly
encourage you to read this guide! It is particularly helpful for tips on writing a good project proposal and how
potential contributors should interact with the communities they are interested in working with during the program.
.. card::
:link: mentor-guide
:link: gsoc-mentor-guide
:link-type: ref
**Mentor Guide**
:fas:`person-chalkboard` **Mentor Guide**
^^^^
If you want to mentor for GSoC this year, read this short guide made for mentors wondering where to help.
.. card::
:link: mentor-guide
:link: gsoc-proposal-guide
:link-type: ref
**Proposal Guide**
:fas:`file` **Proposal Guide**
^^^^
To create an proposal on ``gsoc.beagleboard.io``, we have provided a reStructuredText template. The tamplate can be used
to create a live HTML version of the proposal as well as generate a PDF version for GSoC submission.
.. card::
:link: mentor-guide
:link: gsoc-site-editing-guide
:link-type: ref
**Contribution Guide**
:fas:`file-signature` **Site Editing Guide**
^^^^
For anyone who is looking to make changes to the ``gsoc.beagleboard.io`` site, you can checkout our site editing guide. We have
provided information on how to use OpenBeagle's integrated ``Web IDE`` for editing, ``CI`` for building and ``pages`` for
serving the rendered content.
......@@ -47,7 +70,7 @@ a step by step :ref:`contribution guide <gsoc_contribution_guide>`.
:hidden:
:maxdepth: 2
students
mentors
contributor
mentor
proposal
contrib
\ No newline at end of file
site-editing
.. _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.
.. _mentor-guide:
Mentor guide
############
\ No newline at end of file
.. _proposal-guide:
.. _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>
Proposal guide
###############
\ No newline at end of file
.. _gsoc_contribution_guide:
.. _gsoc-site-editing-guide:
Contribution 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
......@@ -11,18 +11,24 @@ 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``
.. 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
chmod +x venv-build-env.sh
. ./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.
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
*****************
......@@ -62,7 +68,7 @@ After selecting the file you have to click on ``edit button`` and then choose ei
.. 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 to
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.
......@@ -101,11 +107,11 @@ Now you have to select a file and start editing. Below image shows some,
: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 fils.
click on Source control ( :fa:`code-branch;pst-color-secondary` ) button or press ``CTRL + SHIFT + G`` to see all the edited files.
After swithing to source control you have to,
After switching to source control you have to,
1. Add a commit message in the input feild.
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
......@@ -126,17 +132,17 @@ ee/user/project/protected_branches.html>`_ by default.
.. image:: media/commit-branch.png
:align: center
When all done right, the lower right side of the ``Web IDE`` you'll a prompt showing ``Success! Your changes have been committed`` message with
two button,
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. ``Got to Project``
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 shows on the right side indicates that the CI build was also successful.
green tick shown on the right side indicates that the CI build was also successful.
.. image:: media/commit.png
:align: center
......@@ -150,15 +156,15 @@ 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 feilds you have to update,
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. Provided a good title that reflects your work.
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 shows 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.
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.
......@@ -166,5 +172,5 @@ below shows all the feilds you have to update,
.. image:: media/merge-request.png
:align: center
Now wait for the review and if comments/requests are raised then you can continue working on the project
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.
.. _student-guide:
Student guide
#############
General requirements
********************
All projects have the following basic requirements:
1. Students must create accounts on `OpenBeagle <https://openbeagle.org/>`_, `Discord <http://bbb.io/gsocchat>`_ and `Beagle Forum <http://bbb.io/gsocml>`_ prior to creating their application.
2. All newly generated materials must be released under an `open source license <http://www.opensource.org/licenses>`_. Individual students shall retain copyright on their works.
3. Students will demonstrate their ability to cross-compile and utilize version control software by creating a “Hello World” application and generating a pull request to `jadonk/gsoc-application <https://github.com/jadonk/gsoc-application/tree/master/ExampleEntryJasonKridner>`_. For assistance, please visit `Discord <http://bbb.io/gsocchat>`_ or utilize the `Beagle Forum <http://bbb.io/gsocml>`_. The “Hello World” application must print your name and the date out in an ARM Linux environment. Freely available emulators may be used to test your application or you can ask anyone on the chat or mailing list to help you test.
4. All projects will produce reusable software components and will not be “what–I-built-over-my-summer-vacation” projects. Including a hardware component is welcome, but the project deliverable will be software that may be utilized by a wide audience of the `BeagleBoard.org <http://beagleboard.org/>`_ community.
5. Students will demonstrate their ability to collaborate by creating a project proposal on this site using our :ref:`proposal template <proposal_template>` and utilizing `Discord <http://bbb.io/gsocchat>`_ to collect quotes regarding the usefulness of their proposal to the `BeagleBoard.org <http://beagleboard.org/>`_ community. **Use of Google Docs for proposal development is discouraged due to insufficient revision control and extensive use of computing resources having numerous documents open simultaneously**.
6. Source code generated during the project must be released on OpenBeagle (and we’ll setup a mirror on `Github.com <http://github.com/>`_).
7. Students will provide two recorded audio/video presentations uploaded to Youtube or Vimeo (screencasts are appropriate), one near the beginning of the project summarizing their project goals and another in the wrap-up phase to summarize their accomplishments. Examples can be found on `http://beagleboard.org/gsoc <http://beagleboard.org/gsoc>`_. There is no requirement to show your faces or use English.
.. important::
To help you to break your project down into manageable chunks and also to help the project’s mentors to better support
your efforts, weekly project status reports should be e-mailed to the the `Beagle Forum <http://bbb.io/gsocml>`_.
Each status report should outline:
1. What was accomplished that week,
2. Any issues that prevented that week’s goals from being completed and
3. your goals for the next week.
\ No newline at end of file
:html_theme.sidebar_primary.remove: true
:sd_hide_title: true
.. _gsoc-project-ideas:
Ideas
######
Welcome to the project ideas page for `GSoC 2024 <https://developers.google.com/open-source/gsoc/timeline>`_.
The BeagleBoard.org community is loaded with experts on building open source embedded systems. An embedded
system is built of computers dedicated a specific collections of functions and connected to automate things
in the physical world.
.. image:: ../_static/images/ideas-below.webp
:align: center
:align: center
.. admonition:: Did you know?
.. admonition:: How to participate?
BeagleBoard.org has been accepted to be a mentoring organization in the Google Summer of Code (GSoC) for twelve previous years!
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.
.. admonition:: How to participate?
.. card:: A Conversational AI Assistant for BeagleBoard using RAG and Fine-tuning
Students are expeced to go through the list of ideas below, and check out the corresponding forum link by clicking on
``Discuss on forum`` button for additional discussions around the idea. All ideas have colorful badges for ``Complexity`` and
``Size`` for making the selection process easier for students.
:fas:`brain;pst-color-secondary` Deep Learning :bdg-success:`Medium complexity` :bdg-success-line:`175 hours`
.. table::
^^^^
+------------------------------------+------------------------------------+
| Complexity | Size |
+====================================+====================================+
| :bdg-danger:`High complexity` | :bdg-danger-line:`Large size` |
+------------------------------------+------------------------------------+
| :bdg-success:`Medium complexity` | :bdg-success-line:`Medium size` |
+------------------------------------+------------------------------------+
| :bdg-info:`Low complexity` | :bdg-info-line:`Small size` |
+------------------------------------+------------------------------------+
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.
.. tip::
| **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.
BeagleaBoard.org is a community centric organization and we keep all of our discussion open for our
community on `forum <https://forum.beagleboard.org/>`_. Discussion for all the ideas/projects will
be done via `forum <https://forum.beagleboard.org/>`_ as well and must be open for everyone to access. **No
direct messages should be sent to mentors or community members until unless there is a private matter.**
| **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:
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.
:fab:`discourse;pst-color-light` Discuss on forum
.. card:: ``librobotcontrol`` support for newer boards
.. card::
:fas:`wand-sparkles;pst-color-danger` Automation and industrial I/O :bdg-success:`Medium complexity` :bdg-success-line:`175 hours`
:far:`lightbulb;pst-color-danger` **Upstream wpanusb and bcfserial** :bdg-success:`Medium complexity` :bdg-success-line:`Medium size`
^^^^
^^^^
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.
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/upstream-wpanusb-and-bcfserial/37186
.. button-link:: https://forum.beagleboard.org/t/librobotcontrol-support-for-newer-boards/37187
:color: danger
:expand:
:fab:`gitlab;pst-color-light` Discuss on forum
:fab:`discourse;pst-color-light` Discuss on forum
.. card::
.. card:: Upstream Zephyr Support on BBAI-64 R5
:far:`lightbulb;pst-color-danger` **librobotcontrol support for newer boards** :bdg-success:`Medium complexity` :bdg-success-line:`Medium size`
^^^^
:fas:`timeline;pst-color-secondary` RTOS/microkernel imporvements :bdg-success:`Medium complexity` :bdg-danger-line:`350 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.
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/librobotcontrol-support-for-newer-boards/37187
++++
.. button-link:: https://forum.beagleboard.org/t/upstream-zephyr-support-on-bbai-64-r5/37294/1
:color: danger
:expand:
:fab:`gitlab;pst-color-light` Discuss on forum
:fab:`discourse;pst-color-light` Discuss on forum
.. 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
\ No newline at end of file
......@@ -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
++++
......