Interview with last year's YH4F winner, Davide Rorato
After six months of programming there are only a few days left until the end of Youth Hacking 4 Freedom 2024. We are very excited to see this year's projects and to learn more about the participants and their work during the past months. Before we dive into the new projects, let us take a deeper look at last year's winner, Davide Rorato.
Davide programmed the tool "ArduPlot", a real-time serial plotter that automatically adjusts itself to your use case. ArduPlot provides a nice graphical overview of the sensor data from any Arduino board. But let us hear all about ArduPlot from its developer.
FSFE: Hi Davide, thank you very much for your time. Before we learn more about "ArduPlot" we want to learn more about you and your skills. What was your first experience with programming, and how did you start learning to write code?
Davide: My first ever experience with programming was creating Automator scripts. Automator is an application that lets you create a sequence of actions such as keyboard presses and mouse movements that can be recorded and then played back without the need to write any code (it’s actually a lot more powerful but I used it in a very basic way).
The next thing I started to experiment with was coding on an Arduino UNO that I borrowed from my older brother. When it wasn't in use I would write simple programs by copying them from a book of ready-made projects and adapting them to suit my needs. This gradually evolved into me wanting to know more about programming and electronics, and a couple of years later, during summer vacation, I thought it would be fun to actually learn how to code, so I opened up YouTube and followed the first C++ tutorial I could find.
After getting accustomed to the basics, when I got an idea for a project, I would start coding until I found a problem I didn't know how to tackle. I then googled and tried every way possible to make the program work until it did.
FSFE: Can you remember when you first used Free Software?
Davide: I think my first contact with Free Software was with the OpenOffice suite, followed by the Arduino IDE. Of course at first I didn't realise what Free Software meant, and I was simply glad I could use the software for free, but as years passed I came to really appreciate the ethical principles of Free Software.
FSFE: How did you find out about this contest?
Davide: It was thanks to my IT teacher, who told my class about this contest when the first edition of YH4F started. I actually participated in the first edition of YH4F as well, but I didn’t manage to win, and seeing the quality of the projects that did it was clear why, they were amazing!
FSFE: Why did you decide to join YH4F?
Davide: The first year I decided to join because I thought it would be an excellent opportunity to do a bigger project, and in turn learn a lot of new things that I didn't have an opportunity to before. Had I not participated in the first edition, I wouldn’t have been able to create ArduPlot the following year.
For the second edition of the contest, I actually didn't have any plans to submit a project, but incidentally I had been working on ArduPlot to help with the debugging of a robot for a school project, so the day of the submission deadline I thought: “Well, I got nothing to lose so I might as well submit this!”. I can safely say I did not regret that decision!
FSFE: And before we talk a bit more about ArduPlot, what did you enjoy the most about this contest?
Davide: The thing I enjoyed the most was the open-ended nature of the contest. Any type of Free Software can be created and submitted, with no restriction to a specific type or theme, letting everyone work on something they are passionate about at the moment.
FSFE:This is nice to hear, however we also know that this can be quite a challenge for some to find "their perfect project". Here as you said it is very important to find something you are passionate about, or a problem you want to fix. And of course, the YH4F team is there to help you to come up with an idea. Now for some more detailed questions about ArduPlot. Can you explain how ArduPlot works and how you came up with the idea?
Davide: I created ArduPlot from a need to analyse different types of data coming from a microcontroller for an autonomous robotics project one of my classmates and I were developing. The robot had all kinds of sensors on it, and we needed to split fast paced data from the sensors, that required a specific visualisation (line graph, heatmap), from the less frequent text logs. If these two things are mixed together in a single text console, it’s much harder to see what’s happening at a glance.
What ArduPlot does is split this data in two: when it recognises a data packet, it gets analysed and displayed as a visualisation. For any other case the data gets redirected to a text console.
FSFE: What was the biggest challenge or problem you faced when developing your idea?
Davide: The main challenge I faced was reading data from the microcontroller reliably, which meant reading, parsing and displaying it faster than the data coming in, which isn’t a problem with low data rates, but as they get higher issues start to appear if everything isn’t properly implemented.
FSFE:It sounds like you were already somehow familiar with microcontrollers before you started ArduPlot. Have you worked with the data from microcontrollers before?
Davide: Yes, but in past projects I didn’t need this type of detailed visual feedback. The Serial Plotter in the Arduino IDE sufficed most of the time, because I had a couple of sensors at most attached to the microcontroller.
FSFE: Are there any problems that ArduPlot has solved for you when working with this kind of data?
Davide: ArduPlot made it possible to see through the 'eyes' of the robot in real time and discover and fix bugs faster. For example, if a sensor got slightly moved and suddenly the robot started to work badly, we instantly knew what went wrong at a glance by looking at the data.
FSFE: What motivated you to keep working on ArduPlot during the programming period?
Davide: The main motivation was the fact that I actually needed the program I was developing, and without ArduPlot, debugging the code of the robot would have been much more time-consuming.
FSFE: Have you continued to work on your project in recent months?
Davide: Yes, but not as much as I wanted to. I have lots of ideas for features I want to implement (and bugs that need to be fixed) but during the past months I have been busy with other projects, and most importantly university, which I have prioritised.
Nevertheless, since the contest ended I’ve added Windows support, I fixed a couple of critical bugs, optimised heatmap rendering, added friendly USB device names alongside the serial device’s location on Linux and added serial output, which was the last thing keeping ArduPlot from reaching feature parity with the Arduino integrated serial terminal/plotter, but with the addition of other quality of life improvements, such as auto reconnect and, of course, the ability to plot graphs on demand!
FSFE: And last but not least, is there anything you would tell new participants to do or not to do?
Davide: Build something you are passionate about and that other people would find useful or cool, but most importantly have fun doing it!
FSFE:Thank you Davide for your time, it was a pleasure to meet you in the Youth Hacking 4 Freedom contest.
The 2024 edition of Youth Hacking 4 Freedom is still going on now! The coding period ends on 30 June. The next edition will start on 01.01.2025. You can already register now. Check out the YH4F website to find out all the details of this competition or feel free to reach out to the organisers via mail!