Federico Bolelli

Projects

Here are some of the projects I've developed and contributed to.

Brew Matic

Transform your brewing setup from thermometers and timers into a fully automated brewing powerhouse! BrewMatic is an Arduino-powered brewing controller that brings professional-grade automation to home brewers, managing every critical phase from mash to sparge with precision and reliability. Built around the Arduino Mega 2560 with an 800x480 touchscreen, BrewMatic orchestrates your entire brew day. Multiple DS18B20 sensors provide redundant temperature monitoring while algorithms prevent scorching by detecting temperature stratification. The intuitive touch interface guides you through multi-step mash schedules with visual progress indicators and audible alerts. This isn't just about convenience, it's about consistency and repeatability. Professional breweries rely on precise temperature control to produce exceptional beer batch after batch. BrewMatic brings that same level of control to the home brewer, letting you focus on recipe development and creativity rather than babysitting thermometers. Your best brew day becomes your standard brew day. From CNC-cut enclosure designs to custom PCB layouts, every aspect has been thoughtfully engineered for reliability and "ease" of assembly. Because great beer deserves great tools!

  

CO2 Hop Cannon

The CO2-HopCannon is a DIY system designed to enhance the dry-hopping process in home-brew beer production by automating hop movement inside a fermenter using controlled CO₂ pulses. Built around an Arduino Nano and custom PCB, the system allows brewers to program the timing and duration of each “shot” of CO₂, thereby breaking up hop sediment and increasing the extraction of hop aromatics and flavour compounds. The project includes detailed build instructions—case drilling guides, PCB design files, firmware source code and assembly steps—so you can reproducibly upgrade your setup and achieve more consistent, bold hop character.

  

ECVL - European Computer Vision Library

The European Computer Vision Library (ECVL in short) is an open-source library for Computer Vision and Image Processing that is under development in the framework of the DeepHealth H2020 European Project. Together with the European Deep Learning Library (EDDL), they represent the core elements of the DeepHealth toolkit, a unified framework completely adapted to exploit underlying heterogeneous High-Performance Computing (HPC) and Big Data architectures, to boost biomedical applications using state-of-the-art Deep Learning (DL) and Computer Vision (CV) algorithms.

        

Gestione Richieste DIEF

"Gestione Richieste DIEF" is a (hopefully secure), web-based workflow platform designed to automate document approval processes and digital signing for organizations requiring robust authentication and streamlined workflows. The system enables users to create requests, generate PDF documents from customizable templates, manage multi-level approval workflows, and execute legally-valid digital signatures: all within a single, integrated platform. Wow! The platform provides complete request lifecycle management from creation to approval with draft support, dynamic document generation through template-based PDF creation with rich text editing, and multi-level approval workflows supporting both individual and group approvers. Users benefit from remote digital signatures integrated with Aruba Sign Service for legally-valid signing, real-time email notifications with daily digest options, and batch operations for bulk approval and signing. The technology stack features Django as the core framework, MySQL for data persistence, Celery and Redis for asynchronous task processing. Security is handled through Shibboleth SP for federated identity management, LDAP integration, and SSL/TLS encryption via Let's Encrypt. The infrastructure entirely runs on Docker containers.

  

GRAPHGEN

GRAPHGEN is an open-source framework for optimizing algorithms that can be modeled with decision tables, such as Connected Components Labeling, Thinning (Skeletonization), Chain-Code (Contour Tracing), and Morphological Operators. The framework allows to automatically apply many different optimization strategies to a given problem, taking as input its definition in terms of conditions to be checked and actions to be performed, and directly producing the C++ code including those optimizations as output.

     

Missioni

Tired of manually filling out dozens of identical forms for travel reimbursement, Michele Cancilla and I developed Missioni: a Django based web application available at https://missioni.ing.unimore.it. Missioni is accessible only through a Shibbolet account and it is mainly addressed to the {{ site.dief }} staff. Nevertheless, the source code is available on GitHub and the application can be easily extended to many other forms types.

     

OLJ - OnLine Judge

OLJ is a Django based online automated judge for programming problems, mainly designed for C and C++ languages. Hosted at https://olj.ing.unimore.it, it is only accessible via Shibboleth accounts. The web application, developed during the global pandemic of COVID-19, was originally designed for the basic subjects of the {{ site.inginf }} at the {{ site.unimore }}. Along with the automated judge, OLJ provides a chat mechanism to easily communicate with students and a virtual proctor to monitor and record user desktop, thus becoming a suitable and useful tool for remote examinations. Quiz exams are also supported.

  

Smart Dust Collector System

Every woodworker knows the reality: if you have to walk across the shop to turn on dust collection, you won't do it. Remote controls get lost under sawdust within a week. The solution? Voice control! This Arduino-based system lets you activate dust collection with "Alexa, turn on the workbench" without interrupting your workflow. My setup manages five workstations (Lower Saw, Upper Saw, Floor, Workbench, Left Wall) through eight motorized valves controlled by Arduino and relay modules. However, the project is designed to be scalable and can be easily extended to support up to nine workstations. Each station features physical buttons with LED indicators for backup control, while Arduino IoT Cloud enables voice commands via Alexa and web dashboard access. The Arduino intelligently coordinates valve states to ensure proper airflow when multiple stations share common pathways.

  

Sump Controller

Because nobody wants to discover their basement has turned into an indoor swimming pool! This IoT monitoring system keeps watch over the collecting sump in my house (inherited/bought from my grandparents, along with all its quirky plumbing adventures). Unlike fancy decorative fountains, this sump has the unglamorous job of collecting water from two sinks and draining groundwater from the surrounding soil. If the water level rises unchecked, the soil gets treated to an unwanted flood of sink water and washing machine runoff: a disaster you won't notice until it's too late! The ESP8266 NodeMCU guardian uses dual float switches to monitor water levels 24/7, sends panicked email alerts when things go south, flashes RGB LEDs like a tiny disco, and screams through a buzzer when water levels get critical. It's basically a very judgmental roommate that never sleeps and has strong opinions about water management. The system has saved my home from several potential flooding incidents, proving that sometimes the best smart home devices are the simplest ones.

  

THeBE - THinning evaluation BEnchmark

THeBE is an open source C++ project developed using YACCLAB v2.0 as a starting point. It allows to compare thinning algorithms, highlighting strengths and weaknesses of different strategies available in literature. The source code is available on GitHub. A description of the benchmark can be found in the research paper Improving the Performance of Thinning Algorithms with Directed Rooted Acyclic Graphs.

  

YACCLAB - Yet Another Connected Components Labeling Benchmark

YACCLAB is an open source C++ benchmarking framework that allows to test Connected Components Labeling (CCL) algorithms under extremely variable points of view, running and testing different implementations on a collection of datasets covering most of the fields where CCL is commonly employed. The benchmark provides different kind of tests, supporting both 2D and 3D algorithms. The latest releases of YACCLAB also support GPU paradigms.

YACCLAB source code is available on GitHub. A detailed description of the benchmark can be found in three different research papers: Optimized Block-Based Algorithms to Label Connected Components on GPUs, Towards Reliable Experiments on the Performance of Connected Components Labeling Algorithms, and YACCLAB - Yet Another Connected Components Labeling Benchmark.