Fosscomm 2022

Smartcar: An OSS and OSH vehicle platform for learning, research and fun
2022-11-19, 17:00–17:30 (Europe/Athens), Room II

The Smartcar platform (https://github.com/platisd/smartcar_shield) is a vehicular educational platform, which enables the user to develop various robotic applications in an affordable, pedagogic and easy way. It is intended for persons with basic programming knowledge and little to no experience of electronics, mechanics or robotics. More experienced users should also find this approach convenient, due to its open source nature, high level API and object-oriented design.


The Smartcar platform has been used for the last 7 years in the University of Gothenburg to teach System Development, i.e. how to create a product with both software and hardware parts, abiding by modern software engineering best practices, such as requirements engineering, Continuous Integration, automated testing, code reviews, iterative development, etc.
The platform has evolved from a simple printed circuit board mounted on top of an Arduino and low-grade motors, to having fully customized chassis and a powerful 32-bit microcontroller with WiFi and Bluetooth capabilities. During the pandemic, an emulator was added to the Smartcar suite, allowing its users to develop with minimal dependencies to physical hardware.

In this talk we are going to present the different open source components of the Smartcar platform:
- Firmware: A library compatible with multiple, easy to source, microcontrollers, controlling a variety of motors and sensors typically found on hobby-grade miniature vehicles
- Hardware: Schematics for all the non-off-the-shelf components are publicly available along with ways to procure them in small quantities from overseas suppliers
- Emulator: A cross-platform environment with a customizable 3D world that natively executes the microcontroller code and allows interaction with the virtual surroundings

I call myself a Software Engineer and a Maker. During the days I hack on embedded systems of all shapes and sizes. Having worked on systems running Yocto Linux and the Android Open Source Project (AOSP) I am very passionate about software architecture and clean code being the enablers for high quality, reusability, and maintainability. Consequently, I incorporate this mindset and principles into my way of working as I believe they are fundamental for agility and effectiveness.
Currently, I am employed by Neat, a Norwegian startup, helping to build the best video-conferencing devices on the market.

Usually, I spend my evenings on open source projects which I blog about. My favorite ones revolve around IoT, robotics and handheld gadgets where I love to develop the entire product stack. Hardware-wise, this includes everything from the PCB to the physical case around the electronics and software, from the embedded firmware to the cloud. Lately, I have also gotten into creating YouTube tutorials about software craftsmanship with C++ and embedded systems.

Last but not least, I am involved with education. I train professionals in C++ enabling companies to upskill their employees in a highly-demanded language. Additionally, for a number of years, I have been teaching the undergraduate DIT113 course on Systems Development as well as the DIT598 graduate course on Software Evolution at the University of Gothenburg.