GSoC Application

From sigrok
Jump to navigation Jump to search

Work in progress, to be validated once the application questions for 2016 are known. Content based on the phpMyAdmin GSoC application page.

This is a draft of the application that the sigrok project will send to Google to apply as a mentoring organization. Students probably want to look at our GSoC overview.

Tagline

Test & Measurement for the masses

Organization description

The sigrok project aims at creating a portable, cross-platform, Free/Libre/Open-Source signal analysis software suite that supports various device types (e.g. logic analyzers, oscilloscopes, and many more).

Organization home page url

http://www.sigrok.org/

Main organization license

GNU GPL v3 or later

Org category

End User Applications

Technology tags

C/C++, Python, Qt, Cypress FX2, Android

Topic tags

Test & Measurement, Electrical Engineering, Debugging, Protocol Decoding, Signal Analysis

Short description

sigrok is to the embedded engineer what gdb is to the coder: a tool to see what is otherwise hidden. We want it to be the best it can be, so we need your help!

Long description

sigrok is to the embedded engineer what gdb is to the coder: a tool to see what is otherwise hidden. While gdb works in the realm of program code and data, sigrok works in the realm of signals passed over physical wires. Typically, this is where oscilloscopes and logic analyzers are used in the lab - but for the hobbyist, those are not always affordable. With the advent of low-cost logic analyzers based on the Cypress FX2, this has changed. While sigrok supports a lot more devices than those based on the FX2, they are by far the most economical and can cost as little as $10. They do however come without legally licensed software, making sigrok the ideal software suite for these.

Our project hosts several sub-projects that together make up sigrok: - libserialport - libsigrok - libsigrokdecode - fx2lafw (FX2 logic analyzer firmware) - sigrok-cli - sigrok-meter - PulseView

The backend is designed to be flexible, which shows in the variety of devices supported by libsigrok. For example, a lot of people use the console frontend sigrok-cli to log values obtained from their multimeters or remote-control their power supplies. However, PulseView is what most people know sigrok for. It's our Qt-based cross-platform logic analyzer/oscilloscope GUI. It allows users to visually inspect the signals they capture and perform protocol decoding on them. We currently have over 75 decoders, ranging from simple line decoding like UART, I2C, SPI and CAN to higher-level decoding such as 24xx EEPROM, SD card, USB packet and ARM ETM instruction trace.

Turning PulseView into a full-fledged test & measurement application is one of our long-term goals but it depends on the underlying libraries. We have a whole lot of features that users request and not enough developers to fulfill them. So, whether you enjoy working on embedded stuff (e.g. fx2lafw), backend libraries (libsigrok), user interfaces (PulseView) or documentation, we have something where your help would be greatly appreciated!

Proposals

You want to help us make sigrok even better? Great! This is what we recommend:

  • Check the GSoC ideas page on our wiki
  • Think of/choose a project that ideally benefits you and us alike
  • Hang out on IRC with us and say hi (#sigrok@libera.chat)
  • Familiarize yourself with the code base and ask questions about it
  • Apply to GSoC! :)

We'll gladly help you with refining your proposal or application, so communication is key. If we don't know you, we can't assist you.

For us, a strong application contains the following information:

  • Who are you? Where are you? What are you studying?
  • Have you used sigrok before?
  • What do you intend to work on / NOT intend to work on?
  • What motivates you to work on sigrok?
  • How familiar are you with the language you will have to write code in? Is there proof?
  • Did you have a look at the code you'll need to modify? What was your impression?
  • How many hours per week are you going to dedicate to the GSoC project?
  • Are you aware that mentors will be several time zones away and won't be able to answer all your questions as soon as they arise?

Before you apply, we'd like you to know that we will give feedback on your progress once a week. Also, we assume that you're self-sufficient most of the time but that you're not shy asking questions when you're stuck or need to make a decision you're unsure about. Our IRC channel is full of people who like to help, so hanging out there is beneficial to you as much as it's beneficial to us.

Let's work together successfully! =)

Proposal tags

architecture, new feature, feature completion, documentation, firmware, decoders, drivers, threads, pulseview, fx2

Veteran/New

New

If you chose "veteran" in the dropdown above, please summarize your involvement and the successes and challenges of your participation. Please also list your pass/fail rate for each year.

If you chose "new" in the dropdown above, have you applied in the past? If so, for what year(s)?

We haven't applied before.

Why is your organization applying to participate in Google Summer of Code 2016?

With the advent of low-cost logic analyzer hardware and the general availability of USB interfaces in test & measurement equipment, the sigrok project has gained a big following in the hobbyist and even professional crowd. While this makes us happy, it also means that user expectations rise rapidly - especially regarding device compatibility, features and performance. This is very demanding on our rather small team. We'd like to use the GSoC as an opportunity to not only improve the code base but also try and establish long-term relationships with developers-to-be. That way, everyone benefits.

What is the URL for your Ideas list?

http://sigrok.org/wiki/GSoC

What is the main development mailing list for your organization?

https://lists.sourceforge.net/lists/listinfo/sigrok-devel

What is the main IRC channel for your organization?

#sigrok on FreeNode

How many potential mentors have agreed to mentor this year?

1-5

What is your plan for dealing with disappearing students?

We want to see any applying student hang out with us on #sigrok and engange in discussion before choosing. That way, we hope to select someone who shows the dedication that we wish to see. If, for whatever reason, a student should disappear then we believe he/she has good reasons to do so. We will however still try to reach out and see if we can help.

How will you keep mentors engaged with their students?

Our mentors are highly motivated and want to make sigrok the most useful and versatile open-source signal analysis toolbox available. They're fully aware that this goal can only be reached by motivating others to contribute. We're actually more concerned about finding students who share the same kind of passion for our project and its goals :)

What is your plan for dealing with disappearing mentors?

The mentor is a long time developer of the project and thus has a high motivation not to disappear. In case this cannot be avoided, several other project developers are prepared to take over.

How will you help your students stay on schedule to complete their projects?

It is assumed that students stay on IRC during their entire time they're participating in the GSoC. That way, we can check back with the students on a regular basis. We also expect their code changes to be pushed to a public repository (e.g. on github) so we can give feedback and/or check that the work is progressing in the right direction. If the student is unable to be on IRC, we of course will accomodate accordingly and perform regular feedback rounds via email.

How will you get your students involved in your community during GSoC?

The same way we will make sure they stay on schedule: keeping them on IRC to promote discussion and sharing of knowledge. In case staying on IRC is an issue, we will establish regular online meetings on IRC so that the GSoC student still is visible to the community and stays in touch.

What steps will you take to encourage students to interact with your project's community before and during the program?

We require students to be active before the program starts. Ideally, they submit a patch solving a bug or implementing a small new feature, as part of their application. That way, they'll become familiar with parts of the code and interact with the community. The current developers review the submitted patches and comment on them, providing constructive feedback.

It is expected that students stay on IRC during their entire time they're participating in the GSoC. That way, we can check back with the students on a regular basis. We also expect their code changes to be pushed to a public repository (e.g. on github) at least once a week so we can give timely feedback and/or check that the work is progressing in the right direction.

What will you do to encourage that your accepted students stick with the project after Google Summer of Code concludes?

First off we will try to accept only students that have an intrinsic motivation to stay with us. This is particularly true for EE/CompEng/EmbSystems students. They will find that sigrok has a lot to offer, especially due to the availability of low-cost logic analyzer hardware. Then, we will gift them a sigrok shirt and one such logic analyzer when the GSoC begins. Along with learning about our open and friendly community during the GSoC, we hope that this makes them use sigrok for their study and hobby projects, encouraging them to stick around and contribute.

Are you a new organization who has a Googler or other organization to vouch for you? If so, please list their name(s) here.

None

Are you an established or larger organization who would like to vouch for a new organization applying this year? If so, please list their name(s) here.

None

What year was your project started?

2009