François Gervais

Logo

I'm an embedded firmware developer with interest in communication protocols, computer security, machine learning and basic hardware development.

View My GitHub Profile

Open Source

As part of my professional and personal time I use and produce different open source projects which can be found here:

I think open source software is a win for everybody and so I’m trying to contribute whenever I can.

Personal Projects

Date Project Description
Mar 2024 E-Paper Message Toggle Display
Aug 2023 Air Quality Station for Home Assistant
May 2023 Air Conditioning Adapter for Home Assistant
Apr 2023 Wireless button for Home Assistant - Rev2
Mar 2023 Leak Detector - Rev3
Dec 2022 Mute Yourself
Dec 2022 ISM330DHCX STEMMA QT
Oct 2022 MS88SF3 (nRF52840) Feather
8 May 2022 Spectral color sensor STEMMA QT
24 Apr 2022 Wireless button for Home Assistant
28 Dec 2021 Cold beer through hacking
4 Oct 2021 I²C to 1-Wire® STEMMA QT Adapter
3 Jul 2021 Stemma QT EEPROM Adapter

Featured at:
Adafruit
OSH Park
18 May 2021 RGB LED Controller
15 Mar 2021 Adafruit 3309 JST SH Adapter
31 Jan 2021 Adafruit 3309 JST ZH Adapter
6 Apr 2021 My take on an ESP32 module
30 Jan 2021 Dispense the perfect amount of detergent
10 Nov 2020 Detect leaks and report through an alarm and a phone notification

Professional experience

Distech Controls Inc.

Distech is a company that specialises in making HVAC products.

As part of my daily work, I got to work on a couple Linux and Android based products, Apex, Eclypse and Horyzon-C.

On these products, I’ve been involved in quite a few things including:

FIPS 140-2

On the Eclypse product, we had to get the FIPS 140-2 certification which I participated in getting: 3106, 3046

Noteworthy Bugs

As part of my work I got to debug some pretty interresting problems.

Errata

Along with a co-worker, we got to the bottom of two ASIC issues.

First with the Microchip USB2412 USB hub: Detach detection failure

Then with the Microchip/Micrel KSZ8863 Ethernet switch: Receiver error in 100BASE-TX mode following Soft Power Down

Those were quite interesting ones. You can imagine what a company tells you when you are trying to tell them there is a bug with a long running chip sold by the millions. Lets just say it took a while.

Patents

As part of my work at Distech, I got involved in the following patents:

Granted

US20190354877A1 - Method and environment controller for validating a predictive model of a neural network through interactions with the environment controller [filed: 2021-11-30]

US20200200423A1 - Computing device and method for inferring via a neural network a two-dimensional temperature mapping of an area [2021-08-03]

US20190353366A1 - Method and environment controller using a neural network for bypassing a legacy environment control software module [2021-06-22]

US20190156195A1 - Computing device and method for inferring a predicted number of data chunks writable on a flash memory before wear out [2021-06-15]

US20190155520A1 - Computing device and method for inferring a predicted number of physical blocks erased from a flash memory [2021-03-23]

US20190182069A1 - Environment controller and method for inferring one or more commands for controlling an appliance taking into account room characteristics [2021-02-02]

US20190179270A1 - Inference server and environment controller for inferring one or more commands for controlling an appliance taking into account room characteristics [2021-01-19]

US20190179269A1 - Environment controller and method for inferring via a neural network one or more commands for controlling an appliance [2020-11-24]

US20190179268A1 - Inference server and environment controller for inferring via a neural network one or more commands for controlling an appliance [2020-11-17]

US20190115082A1 - Memory device comprising flash memory and method for controlling a write speed of a bus transmitting data for storage on the flash memory [2020-03-17]

US20170071015A1 - Environment control device providing a wi-fi hotspot for accessing the internet [2019-04-03]

CA2919102C - Environment control device (ecd) and method for configuring the ecd to operate a wi-fi communication interface [2018-10-02]

Pending

US20190278242A1 - Training server and method for generating a predictive model for controlling an appliance [filed: 2018-03-07]

US20190310589A1 - Neural network combining visible and thermal images for inferring environmental data of an area of a building [filed: 2018-04-06]

CA3022061A1 - Environment control device and method for inferring an optimal wireless data transfer rate using a neural network [filed: 2018-10-25]

CA3022063A1 - Inference server and environment control device for inferring an optimal wireless data transfer date [filed: 2018-10-25]

US20200158369A1 - Computing device and method for inferring an airflow of a vav appliance operating in an area of a building [filed: 2018-11-20]

US20200184329A1 - Environment controller and method for improving predictive models used for controlling a temperature in an area [pending: filed: 2018-12-11]

US20200356302A1 - Method providing resilient execution of a service on a computing device [filed: 2019-05-08]

US20200356385A1 - Computing device providing fail-safe execution of a service [filed: 2019-05-08]

US20200400333A1 - Environment controller and method for predicting temperature variations based on sound level measurements [filed: 2019-06-19]

US20200401092A1 - Environment controller and method for predicting co2 level variations based on sound level measurements [filed: 2019-06-19]

US20210116142A1 - Thermostat and method using a neural network to adjust temperature measurements [filed: 2019-10-22]

US20210034967A1 - Environment controller and methods for validating an estimated number of persons present in an area [filed: 2019-11-27]

US20210064968A1 - Training server and method for generating a predictive model of a neural network through distributed reinforcement learning [filed: 2019-11-27]

Abandoned

US20190379470A1 - Computing device and method using a neural network to infer a predicted state of a communication channel [filed: 2018-06-08]

Brioconcept Consulting Inc.

As a consulting company, Brioconcept is doing a lot of different things.

During the 5 years I got to work there I worked mostly on 4 different projects.

Personal locator

This project is a watch that can be used to know the location of the person wearing it.

It can be used by older or younger people that have a tendency to get lost.

All these watches connect to a server where the whole pool is managed through a web interface. On that interface you can see the location of the watch but also get access to fancy features like get an alert if the watch get in or out of a defined perimeter or if the watch get beyond a configured velocity.

On this project I was in charge on the back-end where the watches would connect and the front-end where the administrator would manage a pool of watches or the user would control his watch.

Patents

As part of my work at Brioconcept, I got involved in the following patent:

CA2848937C - Apparatus and methods for geolocating an individual with respect to a perimeter

Kontron Canada Inc.

At Brioconcept we did mostly in-house projects for others but sometimes we also sent engineers for help in other companies.

That’s what happened to me when I got to go work at Kontron.

Basically they made a server motherboard for storage server company which was running what we refered to as the legacy BIOS i.e. the old style, assembly written one.

Motherboard

At that time the market was slowly moving to the new UEFI BIOS and so they needed help for the port.

This project got big really quickly and I ended up working on that project for about 1 year and a half.

I got to do:

I also did on site support for this product at the end customer site at IBM XIV Storage System in Israel.

Animal feeding device

This project was an inteligent feeding device for animal. The client wanted it to run Android as the base firmware so he could just hire “of the shelf” app developper as the device application.

On this project I ported Android to the embedded platform.

Distech Controls Inc.

Before working at Distech as an employe, I worked there as a consultant.

I first got involved because they wanted to run Android on their new project and I had experience doing so.

I ended up working there for about 2 years as a consultant before moving as a full time employe.