What is Google Summer of Code?
Spend your summer break writing code and learning about open source development while earning money! Accepted students work with a mentor and become a part of the open source community. Many become lifetime open source developers! The 2023 student application window will be open from March 20th to April 4th 2023! But don’t wait for then to engage! Come to our Discord chat and forum to share ideas today.
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 and the FAQ.
BeagleBoard.org Background
BeagleBoard.org is a volunteer organization that seeks to advance the state of open-source software on open-source hardware platforms capable of running high-level languages and operating systems (primarily Linux) in embedded environments. Born from taking mobile phone processors and putting them on low-cost boards to build affordable desktop computers, BeagleBoard.org has evolved to focus on the needs of the “maker” community with greater focus on the I/O needed for controlling motors and reading sensors to build things like robots, 3d printers, flying drones, in-car computer systems and much more. Past BeagleBoard.org GSoC projects included creating an interpreter for tiny CPUs, adding SPI and sensor support to Python, an HTML and git based tutorial sharing environment, porting autopilot software to Linux, an open source 100MHz 14-channel logic analyzer, using Android tablets as Linux displays, putting ADC support in Linux under the IIO framework, using Android phones as a network boot source, Running Arduino code on Linux, Robot Operating System support within the Yocto Project build system, Minix I2C support, an RPC framework for heterogeneous processor communication, a transparent USB packet sniffer, ARM optimizations for XBMC, ARM optimizations for FFTs, make-shift pulse-width-modulation and RPC optimizations for OpenCV. BeagleBoard.org has benefited from sponsorship from Texas Instruments, Circuitco, Digi-Key, element14 and others, but avoids any dependence on that sponsorship for sustaining the effort. The project has evolved over the past few years with over 1,000,000 boards in circulation with developers worldwide and strong roots in the Linaro, Yocto Project, Angstrom Distribution, Debian and Linux communities—and support for running most major Linux distributions including Ubuntu, Android, Fedora, ArchLinux, Gentoo, Buildroot and many more.
BeagleBoard was inspiration for Raspberry Pi[1] and PocketBeagle is available for about $25 through over 30 distributors world-wide (and is even available at Micro Center in the USA), but is more than a throw-away computer. It is an instance of true open hardware, exposing users to the broader world of electronics, demystifying computers and fostering an environment of clones that have changed the industry for good.
Students will be expected to demonstrate an understanding of cross-compiling before being accepted, but support for demonstration is available through the IRC channel that typically has approximately 150 online chatters logged on at any time, most with sufficient experience to explain the process.
Every accepted student will be sent a PocketBeagle, TechLab or GamePup, and either a BeaglePlay, BeagleBone AI-64, BeagleBone Black, BeagleBone Blue, BeagleConnect Freedom, or one of several platforms in development before the first week of coding for testing their project.
Additional hardware will be provided depending on need and value.
For more information, check out https://beagleboard.org and Our Mission - BeagleBoard.
Students looking for ideas
Student proposals can encompass projects inspired from the following list of ideas or can include personal project ideas. 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 students develop ideas into projects via Discord or Discourse. There are many potential project ideas and we will match students to projects based on their interests and help scope the proposals to something that can be completed in the Summer of Code timeframe.
There are more than a thousand existing projects listed at BeagleBone Black - Reference Design source data for PADS. If you are interested in any of the projects listed on the 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. You can also check out last year’s idea page. 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.
Mentors wondering where to help
Please start by registering your ideas for student projects below by following the template provided with the existing ideas. Furthermore, scroll down to the bottom and give everyone a bit of information about your expertise and availability by adding yourself to the table. Jason will make final approvals for mentor assignments based on if we first get accepted as a mentoring organization and best matching mentor skill sets with student project ideas deemed valuable to the community.
You will also need be invited by an administrator to register on the GSoC site and request to be a mentor for BeagleBoard.org.
General requirements
All projects have the following basic requirements:
- Students must create accounts on Beagle Gitlab Instance, eLinux, Discord and Beagle Discourse prior to creating their application.
- All newly generated materials must be released under an open source license.
- Individual students shall retain copyright on their works.
- 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 https://github.com/jadonk/gsoc-application/tree/master/ExampleEntryJasonKridner. For assistance, please visit Discord or utilize the Beagle GSoC Discourse. 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.
- 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 community.
- Students will demonstrate their ability to collaborate by creating an eLinux wiki page for their proposal and utilizing Discord to collect quotes regarding the usefulness of their proposal to the BeagleBoard.org community. The wiki timestamp will help mentors recognize the provenance of ideas from prospective students. 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.
- Source code generated during the project must be released on Github (to be cloned to BeagleBoard.org · GitHub or merged with appropriate upstream project upon successful completion).
- 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 beagleboard-gsoc Discourse. Each status report should outline:
- what was accomplished that week,
- any issues that prevented that week’s goals from being completed and
- your goals for the next week.
- 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. There is no requirement to show your faces or use English.
How to write a successful proposal
BeagleBoard.org has received a large number of GSoC student proposals over the years that we have participated in the program. Some of these proposals are quite good, but many are poor proposals that would not be accepted by any organization participating in GSoC. Unsuccessful proposals often do/have the following:
- Try to pass off previous school projects as something to do for GSoC. The work has already done, and the project often has very little to do with BeagleBoard.org hardware.
- Roughly a half page of “proposal” that is submitted shortly before the submission deadline. These proposals are usually little more than a name, contact information, and a statement of “I will work hard.”
- A generic proposal that was sent to every other GSoC org that has very few details on deliverables or schedule.
- A project idea that was never talked about to the BeagleBoard.org mentors in Discord or in the Discourse. The proposal was submitted without ever “meeting” the Beagle community.
In order to be successful, a proposal has to be relevant to BeagleBoard.org, a proposal topic that the mentors recognize (either from being proposed on this page or from the topic being discussed on our Discourse, Discord or on Libera.Chat IRC), and sufficiently detailed that the mentors know exactly what you’ll be creating and when it will be done. Successful proposals are also almost always shown to mentors via Discord or IRC well before the submission deadline so that the mentors can comment on it and offer suggestions that improve the proposal.
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.
Mentors
Guide to prospective mentors
Prospective mentors, sudents will look here to make contact with you, so be sure to provide up-to-date information. Please feel free to add yourself here and we will monitor and police this list. Acceptance as an official mentor with the ability to rate proposals and grade students will come via the Google system. We will only approve official mentors who have a prove track record with Beagle, but welcome all community members to provide guidance to both mentors and students to best service the community as a whole. Don’t be shy and don’t be offended when we edit.
Be sure to use the the template below for providing your project ideas. Remember these 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.
Idea template
Please post ideas in the #gsoc category with the tag gsoc-ideas.
Summarizing project name
Long summary of the project.
Goal: (concise statement that describes completion and expected outcomes)
Hardware Skills:
Software Skills:
Possible Mentors: (Discord nicknames of possible mentors for prospective students to contact)
Expected size of project: (175 or 350 hour)
Rating: (easy, medium or hard)
Upstream Repository: (git repository and/or link to upstreaming process)
References: