Piattaforme supportate
Microcontrollori e schede dei principali produttori, con i rispettivi ambienti di sviluppo ufficiali.
Approccio
Referente tecnico unico
Rapporto diretto con il progettista che sviluppa il firmware, senza passaggi intermedi tra specifiche e implementazione.
Co-design hardware, firmware e software
Co-progettazione con chi disegna la scheda fin dall'inizio, e consegna del firmware completo insieme agli strumenti per configurarlo e collaudarlo: meno tempo per arrivare sul mercato.
Italia ed estero
Collaborazioni anche da remoto, in italiano e in inglese, con aggiornamenti regolari sullo stato di avanzamento.
Supporto sull'intero ciclo di vita
Il firmware evolve con il prodotto: aggiornamenti, nuove funzioni e porting quando un componente esce di produzione.
Ambiti di lavoro
Firmware su microcontrollori multi-vendor
Sviluppo bare-metal o con sistema operativo real-time, con i tool ufficiali dei principali produttori: gestione periferiche, bootloader e aggiornamento firmware.
Protocolli di comunicazione industriale
Progettazione e implementazione di protocolli per reti di dispositivi: RS-485 custom, CAN/CANopen, Modbus RTU.
Connettività, RF e IoT
Firmware embedded per moduli RF e dispositivi connessi, anche per l'agricoltura: LoRaWAN, Wireless M-Bus, sub-GHz, Bluetooth, Wi-Fi, GPS e RFID, con gateway su Linux embedded.
Sistemi di controllo e automazione
Firmware per l'elettronica di controllo di attuatori, motori e sensori in dispositivi di automazione, con attenzione ad affidabilità e sicurezza.
Porting e obsolescenza
Migrazione del firmware su un nuovo microcontrollore quando un componente esce di produzione o serve ridurre i costi, mantenendo il comportamento del prodotto.
Configurazione e collaudo di fine linea
Strumenti software CLI e GUI per programmare, configurare e collaudare le schede in produzione e in assistenza, in comunicazione diretta con il firmware.
Qualità del codice
Il firmware viene scritto per essere letto, verificato e mantenuto nel tempo, anche da altri sviluppatori.
- C / C++ strutturato, con moduli separati per periferiche, protocolli e logica applicativa
- Commenti e documentazione tecnica sulle scelte non ovvie
- Verifiche incrementali su hardware reale ed evaluation board
- Versioni tracciate e backup di ogni fase di sviluppo
/** * Calcola il CRC-16 Modbus (polinomio 0xA001, riflesso) * di un frame RTU. Il risultato va trasmesso LSB first. */ uint16_t modbus_crc16(const uint8_t *buf, size_t len) { uint16_t crc = 0xFFFF; for (size_t i = 0; i < len; i++) { crc ^= buf[i]; for (uint8_t b = 0; b < 8; b++) { crc = (crc & 1u) ? (crc >> 1) ^ 0xA001 : (crc >> 1); } } return crc; }
Un nuovo progetto embedded?
A partire dai requisiti del dispositivo viene fornita una prima valutazione di fattibilità, tempi e approccio tecnico.
Richiedi una valutazione