BreathUp week 10!

Кеш жарық!

As expected, I didn’t have time to work a lot on the project due to FH week. As I said it in my previous post, I asked Xavier earlier this week to end with the routing and with Alexis’s help they made the last modifications, so it will soon be over with the PCB and it seems we will receive it by the end of the year !

So the next week will be a new one and I’m going to work again (a lot) on the project, especially on the algorithms !

Stay tuned

Benjamin !

BreathUp : mainly routing and LoRa

Once again, I worked on several topics, and therefore I didn’t take the time to finish the LoRa part. Here is what I’ve done:
  • I tested the connectors I found and they will be good enough.
  • I exchanged some pin connections on the schematic to make it easier to route.
  • I did the routing.
  • I worked on LoRa and on LMIC, but that’s still not finished. At the end of Friday, I discovered with Samuel that LMIC use interrupts in an non-orthodox way… They are making spi calls during them. So I need to implement something based on multi-threads, semaphores and mutex to handle this properly…

For next week, I want to finish the LoRa part and as the PCB will be sent to the printer, we will know when he will be sent back to us. Therefore we will work on a new schedule of the tasks to be ready for the final presentation, and that is going to be quite tight…

See you on Wednesday,

Xavier Chapron

Makahiya – sound, server and PCB

Hi everybody,

I didn’t do a lot of things on the project since last Wednesday.
Nonetheless, I managed to make the sotware audio codec work!!! Now, I’m able to stream whatever mp3 file on the serial link, decode it on the micro-processor, send it to the codec and hear it in my earphones. I don’t really know what were the errors in my previous code, but now it works and it’s the most important. We have our first completely finished driver, and that’s a good thing as it doesn’t remain a lot of time before the final deadline.

I also had a look to the server. I managed to deploy the database on heroku (a PostgreSQL database was required), but it has a very strange behaviour: if you read it several times, you don’t always have the same result, and the result also depends on the device you use to access the website. So it’ll be necessary to have a look to it. I also read some documentation about Pyramid to really know how it works (I hate doing something without knowing what I do). Finally, I spent some time looking for a way to add security to our server (authentication and authorization). I found one library that allow the users to log in with their Google account, but it doesn’t work with Python 3.x (only Python 2.x). So I’ll continue to look for a better solution.

And our PCB will be sent to the factory tomorrow evening. We must receive them 6 working days later, which is a good news as it will allow us to work on it during the Christmas holidays.

During next week, I will focus my efforts on the server, in order to have it finished when we receive the PCB.

Makahiya – final PCB review, sound and server

Hi everybody,

As said in my last post, I finished the routing of the PCB. Alexis made some reviews, and I did the corresponding corrections. It should be ok now, and the PCB will be sent to the printing factory soon.

I also (it occupied most of my time on Monday and Tuesday in fact) worked on the audio codec (again). You’re possibly fed up with it, and I understand you. I’d never thought it would be so difficult to make it work. But everyday, I go one step further, so I can’t abandon it (and I really want it to work, so I won’t abandon). Now, I’m able to play any music stored in flash when it’s presented as a single block to the software codec. And I can play one music (the one I’ve used for my tests until now) even when it’s read by chunks (and on Tuesday morning, I could send it through the serial link and play it, but on Tuesday afternoon, it didn’t work anymore, don’t know why). But it fails when I try with other musics… I will continue to work on it.

Finally, today, I deployed our (basic) server on Heroku. I spent some times trying to understand how to use git subrepo. And it’s still not completely clear in my minds, even if it seems to work. The database doesn’t work for now on heroku (due to an error caused by waitress), a deeper analysis will be required to fix this problem. And I also wrote a template html file to display the content of the database (the leds values).

During the end of the week, I’ll try to work on the audio codec to solve the last problems. And I will work on the server also (to make pauses between 2 work sessions on the audio). If both work well on Sunday evening, I’ll be very happy.

BreathUp week 9!

Tonight, it will only be: Bonjour !

This week, I continued working on the PCB, I quite finished it yet, I did a total new placing and I’m waiting for a new review of Alexis. Indeed, there were some problem with noise in my last work. Indeed the Lora part was too close from the Analog to Digital Converter part so I decided to take its away each other.

Thus concerning algorithms, on Friday, we had quite an important meeting with E-respi about processing signal part because they were supposed to give us all algorithm but they didn’t and I was in charge to do new ones. However, as this is not my job and it was not supposed to be like that, on Friday, we came to an agreement that they have to provide us what we need ! And today, they sent it to us, unfortunately, I spent two hours at least, trying to implement it and make it work. But I was forced to send them back an email to ask them to work on it.

Eventually, I’m also supposed to implement our matlab algorithms in C. I decided to use the CMSIS/DSP library and more precisely some IIR filters (biquad direct form 2), so I began to calculate the different coefficients of our filters. I chose some Butterworth filters because its are able to have a constant gain in the bandpass and that’s pretty necessary for our signals.


For the next week, I will continue on the same topic !


Benjamin for BreathUp

BreathUp : schematics, LoRa and webapp


During the end of the week I worked on many topics:

  • We spent some time with E-respi to show them our progress, and I hope that they are happy with it.
  • I worked on the PCB:
    • I switched the pins connection of the LoRa and the ADC on the MCU. That looks like nothing, but it was important for Benjamin to create a better placement of our PCB. And that wasn’t so easy because both the ADC and the LoRa need a lot of pins with requirements : SPI, IRQ…
    • I double checked the routing table of the MCU because we can’t afford any error in it.
  • I also spent some time on the webapp :
    • Improving the tests.
    • Refactoring some views.
    • Reading some documentation on Ajax and Jinja2, because I will probably need them in order to use the wep API from a web browser.
  • I’ve spent hours on porting LMIC for ChibiOs on STM32. That’s more difficult than I thought… This is still on progress but I think that I’m getting closer!

Eventually, I will still work on the webapp and on LoRa this week, and I hope to obtain some results!

Have a nice week,

Xavier Chapron

Makahiya – placement, routing and sound

Hi everybody,

As said in my last post, we worked on the PCB, on the sound and on the server. But contrary to what was said, it’s Tanguy who worked on the server and I worked on the PCB. On Friday, I made some minor changes on the placement and then I asked for a review from Alexis. He helped us to improve the placement and validated most of the choices we’ve made. After having applied his suggestions, I started to route the PCB. It should have taken no more than 30 minutes but I spent more than 3 hours and it’s still not finished… I hope that it doesn’t hide a bigger problem in our PCB.

I also talked with Samuel about my problems with the sound and he suggested me to use mailboxes. On Friday evening, I implemented this idea and now I have another problem: I can hear the music but also many other things… I have to investigate to see where this problem comes from (it’s related with what I send to the codec I think, so I’ll have a look on this aspect first).

For next week, I will continue to work on the audio and on the PCB. And maybe on the server also. My objective is that the PCB is ready before Wednesday and that the sound and the server work fine before the end of the week.

BreathUp half-week 9!

Sin chow !

A good beginning of the week ! So, on Monday, we had an oral presentation of our working progress of the last two months. It was quite important because it allows us to take stuck of the situation.

After that with Alexandre, we ended with acquiring a lot of curves to test my new algorithm in many different situations with different parameters. The filtering was strong enough to present our results to the firm and at this moment, their feedbacks were positive.


On the other hand, Alexis gave me a PCB review with some things to change: the battery connector wasn’t well placed and the analog supply power of our Analog-to-Digital Converter (ADC) was too close of the numeric supply power… I had to replace a lot of things to take away the numeric supply power. I ended it earlier this afternoon and I’m waiting a new review from Alexis.


Thus, this week, I will focus on our PCB and do the routing as soon as Alexis allows me. At the same time, I have an optimisation job to achieve on algorithms and to implement it in C.


Stay tuned, I will give you some news from now until Sunday.

Benjamin for BreathUp!

BreathUp week 8 !

Sabaïdi !

This end of week, I was pretty sick, it wasn’t the best thing for the job but I tried to rest a lot and today, I began to work again on the project!

We are already at the end of november and we still do not have our PCB up, but I ended with my placing and Alexis will tell me what to change tomorrow afternoon so it will be over soon, I hope so !


Concerning the algorithm, I spent my morning redefining all the filtering part, starting from scratch ! But this time, I think I have a solution strong enough to be showed to Laurent. Indeed, I tested it on some acquisitions that weren’t giving any results but with the new algorithm, I can see the breathing EMG even if the patient is touching some 50Hz! I want to test it more and after I will keep implementing it in C


Stay tuned and good evening again !

Benjamin for BreathUp

Makahiya, Week 7.5


During the beginning of this week, we made some changes regarding the components used in our project : the audio codec (the hardware one) changed and we decided to replace Flexinol by servomotors. I did the according modifications in the PCB schematic.

Furthermore, we intend to add a high power LED, but to add it in the schematic, I need to wait for new resistors in ExpeditionPCB’s library that I requested today.

For the end of this week, the goal is still to du as much as possible on the PCB.