pars: a C++23 distributed framework (Jan 2025 - ongoing)

I started this project to familiarize with the scalability protocols and to see what C++23 brings to the table when it comes to create multi-threading, distributed applications. It currently features a client and a server example that can talks to each other over any libnng transports (ie: inproc, ipc, tcp, web sockets, …).

Repository: https://github.com/grobwrk/pars

License: BSD-3-Clause

Computer Science thesis project (Jul 2022 - Nov 2022)

The scope of the project were to allow STM32duino to fully use the STEVAL-MKBOXPRO board that were to be released some months later. To achieve this, I created four libraries to integrate some sensors (two inertials, a barometer and a digital audio) and I made some changes to the STM32duinoBLE library to supports the BlueNRG-LP BLE 5.2 network coprocessor.

To prove that the libraries were working as expected, I also created a firmware that can be used to sample the audio from the board using a pre-existing desktop application, some dataloggers to show that we’re able to read data from the sensors plus some GitHub actions that integrate the libraries into the STM32duino so that we are confident that they can be compiled and used before publishing them to the arduino-repository for public use.

Repositories: https://github.com/grobwrk?tab=repositories&q=stm32

Licenses: LGPL-2.1, BSD-3-Clause, CC0 1.0

ESPerimentino PID (Mar 2022)

This project, based on Arduino for ESP32 (hence the name ESPerimentino), aims to experiment with heating systems based on PID controller that can operate with or without a fan. The repository contains a description of the various components I used and how to assemble them, a guide that explains how to run an experiment, and a script that can be used to collect the results and generate a report using a Jupyter notebook. This repository contains also some experiment results I’ve made, as well as the documentation of MQTT messages used.

Repository: https://github.com/grobx/unimi-embedded-project

Licenses: GPLv3, CC-BY 4.0