After chatting on IRC with some other students I was able to better understand the Serial Terminal Server project, its goals, requirements and complexity. I think that I’m definitively going to apply for that project, so I ordered a BeagleBone Black now. Since I have no experience with BeagleBone, RaspberryPi and similar boards I think that exploring the BeagleBone Black before starting to code is a good idea. I already thought of some solutions, one of them is shown in the sketch below which involves the PRUs for buffering I/O data. I checked out the BegleScope project from ZeekHuge which also uses the PRUs for buffering, so that might help me in getting some ideas. A slightly different solution I came up with was to use DMA to transfer data from the PRUs (or maybe directly from the UART pins) into the I/O buffer. Yet, this attempt seems to cause people some headaches, as some have already tried it and did not succeed. I will focus for now on using the PRUs along with RPMsg for communication with the A8 and let the PRUs write the buffers.
Open questions on which I will focus on now are:
How will communication between the two PRUs happen?
Is there a better solution than passing commands through all instances or can we make calls directly to the UART device?
How can multiple UART devices be monitored without loosing inputs?
Is the driver really the right instance to copy the PRUs buffer to the sd card or should this task be done by another instance?
Is there another solution which does not rely on the PRUs?
When talking to ZeekHuge it turned out that it should be possible to reuse and modify some of his code in order to buffer UART I/O. In the days to come I will check out more of his code and explore how to write drivers, how to write code for the PRUs and how to deploy everything so that it’s easy to set up.
As I intend to apply for the PRU or Terminal Server projects mentored by BeagleBoard I now set up my development environment. This involved (finally) installing Linux as dual boot on my Laptop (until now I had it running in VirtualBox) and installing all the required packages and libraries on my fresh installation. I chose to use gcc-arm-linux-gnueabi after some research (alternatives were angstrom and linaro) and qemu as emulator.
After installing everything I just forked the gsoc-application project from GitHub which is a task all applying students have to perform. Here is my repo in case you want to see it: https://github.com/ordsen/gsoc-application
Now I’m going to make a pull request and will eventually get in touch with the community in the days to come.
Alright, I spent some time examining all the projects listed below and found my favorite projects. I decided to pay more attention to what I am interested in. Working on things I like makes it always easier for me to learn new skills. Also, I want the project to teach me some new skills instead of just asking me to reproduce stuff I already can do, but also have some parts in it I am familiar with in order to find a starting point. And after all, I checked if the project is mentored by a community I would like to engage with even after GSoC. So here we go:
As many of my exams take place right after Google officially announces all selected organizations I need to do some research in advance. That way I can not only find enough time to learn but also get some information about projects I might be interested in.
I started my research mid January. After attending the Operating Systems lecture during the winter term I discovered my love for hardware controlling code right next to my empathy for Apps and UI design. But I think my Java skills are still greater than my C skills, so it probably makes more sense to watch out for a Java project.
During my research I payed attention to the skill set required to accomplish the project, the license applied to the product, the documentation and sources for help, how active the community is and to my level of interest in the organization as a whole and in the project in particular.
So, here are the organizations and communities I want to give a closer look to: