Team:Ionis Paris/Software

Software

What did we plan to do?

In order to develop an easy way to record continuously the electric activity of Shewanella oneidensis (S. oneidensis), we start working with an Arduino card. We first start to handle the card by using a simple code, AnalogReadVoltage (Arduino website), that can measure the voltage. By connecting the card to a computer, it is possible to run the code and save the data recorded on an Excel table. As we can see in the “code 1 – Arduino” below, we could read a value from 0 to 5 volt but with only a 210 bits encoding. Our B12 reaction largely less than 1V, so the voltage per step is too large. Our measure would be too unprecise that way and furthermore, there is no point to be able to read from 0V to 5V if we only read around 1V.

We needed to find another way to achieve this measure, Epita provided us with two other boards; the STM32WB55RGV6 (the nucleo board) and the STM32WB55CGU6 (the usb dongle associated in the STM32WB55 in the Nucleo pack, see picture 1). From this point, we had another MCU (Arduino microcontroller) with up to 16 bit for the UART sampling from 0 to 3.3 volt, so we would have been about twice more precise than before. But the STM32WB55 board family is a part of a proprietary system with everything that implies. Which means, few support, few online guide from the community (because of its size), few free online guides from ST.

Even with that, we setup a infrastructure for the STM32WB, which was connected via BLE (Bluetooth Low Energy) between the STM32WB55RGv6 and a computer to retrieve data under a flow, which was send on a docker (It does run on windows !) with a gateway in order to be interpreted by “Influxdb” everything can be find at this url : Gitlab or see all github repository filled in the judging form), but we couldn’t read a voltage with the stm32 (it is possible, we just didn’t succeed in time).

To respond to the upcoming deadline, we got a pybstick from Epita, and combine with a simple code like the one from the Arduino (which can be found at the previous url or at the following link : Github), with that we can read value between 0V and 3.3V with a decent step (the value is still encoded on 16bits) but we couldn’t transfer the data under a flow form because of the link between the computer and the pybstick, so we decided to write data in a simple csv file and to store it on a 16go sd card. But it offers us the possibility to replace the computer by an external battery for the data’s acquisition which is good for the surrounding perturbations and the portability.

Big thanks to our sponsors :