On Thursday and Friday, I continue to work on the H-bridge code for the test PCB and finally find a way to implement some timers that should stop the current in the coil.
I also have to go to Télécom to cut another box for testing so that we can even work with the closing of our school. However, we do not have the cable and a battery, so even if our code may work, we cannot make our tests. We hope we could take it at school this week.
Now, I will merge my code with Ilan and Zennedine and I will try to implement a watchdog too that will halt the coil even in debug mode.
On Wednesday, I spent some times implementing task notify on the sensor task, until implementing it on the h-bridge task. Then, I realize that it creates many memory errors and was not really useful since the thread should not call the function that change the multiplexer until the I2C communication was finished.
I also find the way to put some values in the esp32 that I used for the test as an I2C slave, and realized that it works with only 7 bits adresses whitout a read/write bit at the beginning, so I changed its adress and it correctely acknowledge to my communication.… Read more
On Tuesday, I realize that I need to make two tasks for the sensors. One that will enable the good sensor on the multiplexer, and another that will enable the sensor once the first one is finished. I would like to implement a semaphore, but the FreeRTOS manual suggest that I use a task notification instead of a semaphore. They use less RAM, but I still do not understand well how it works after a day at looking and testing it. I’ll sleep on it and hope that I will understand better how it works.
I also configure an ESP32 as an I2C slave device in order to have an ACK when I communicate with the STM because I have no other device that can do this job.
On Thursday and Friday, I spend some times coding the threads of the test PCB. I first debug and check if everything was ok for our thread that will read the state of all the box via the hall effect sensor. I used a logic analyser to check if everything was fine. I checked that the four pins that will be used for the multiplexer will not change until the end of the sending of an I2C message. Then I code a thread that initializes all the H-bridge by putting them at the 0 state.
I also realize that I have not seen a mistake in our scheme.… Read more
On Wednesday, I have corrected some more bugs in the PCB. I saw that I have route some nets between the bottom and the top of the PCB, so I route them again.
After a Skype with Alexis, I clean the git repository, and begin to prepare the folders for the tests on the PCB. Alexis asks us to make our tests on the STM of the iot_node before implementing them on the test_PCB. We receive it today, so we just need to wait for some soldering and then we can begin our tests of the H-bridge and other codes.
Now, I will begin to code the test code for the H-bridge and check if the code for the sensor works for the Iot_node.
On Tuesday, I check again the PCB and clean it a little. I found that some capacitors disappear during my cleaning, and I change the scheme a little. Because of the system of copy-paste of mentor and the way we put the decoupling capacitors, they are not linked with the same components. So I need to put again the capacitor near the component to check if I have all the capacitors I need.
Now, we receive the PCB, so we can begin the tests on it and I need to check with some documents Alexis give that all is ok with the HAL
On Monday, I spend some times cleaning the PCB, by removing some resistor blocks and capacitors. We cannot take them out easily, so I have to clear them from the scheme one by one. I also move some multiplexers since they were very close to the route border. Now, we have a clean PCB but I need to clean a little the scheme.
I also continue to cut the oak plank for the final device, but I had some problems because of one of the planks which bends during the cutting. Two times. So we need to ship a new one.… Read more
On Friday, I work on reducing the final PCB from 16×16 to 14×14. I have discovered two new things: to delete some route, you can use the tool “add partially selected nets”. You will gain some time until you realise that you delete all the GND and VCC nets… By chance, after spending one-hour routing again theses nets, thinking that you would have gained more time by going back in your git, you can use the command fanout that will route again these nets easily. So, the PCB is almost finished, I just need to adjust the board outline and we can concentrate on the code and the test PCB that may arrive one day.… Read more
On Thursday, I launched the cutting of three planks with the laser cutter. We finally have to change the size of the box. With the coronavirus, we cannot ask for a 510x510mm PCB, so we choose to make a 450x450mm PCB and a 14×14 box.
I also ask for many estimates for cutting a Plexiglas plank and we should finally cut in the same way this plank since the price will quadruple.
Finally, I change the upper part of our 4×4 box too.
Still waiting for our PCB, I found a lot of little things to do to use my time. Adding some art around our hole, a temporary code for the hall effect sensor, that I cannot know yet if there are bugs or not in it. For this, I take some time at naming the pins in STM32CubeMX because it will be easier then.
I also add a LED for the big PCB, since it will be useful when coding (we forgot to put one in the previous PCB).… Read more