Makahiya – sound, servomotors & presentation

Hi everybody,

Since last Sunday, I mainly focused my work on 2 elements: the schematic and the audio decoding.

Let’s start by the schematic: on Sunday evening, I changed the voltage regulator in our schematic because the previous one was too weak: in case of current peaks (expectable because the supply block is not perfect), it would have burnt: not a good idea. The new one is much stronger. And I also added the powerful LED. Then Alexis reviewed this schematic, and I made some corrections. After the last corrections made by Tanguy on Tuesday, our schematic seems to be good enough so that we can start the placement/routing phase.

Alexis proposed us to use a small motor instead of a servomotor to make the leaves move. A quick test showed us that it wasn’t a good idea: the motor he gave us to test rotates far too quickly. He also showed us another servomotor, the HD1370A. I tested it and it seems to meet our needs: it’s small, rather powerful and cheap. We will thus use it for our project.

Since Monday, I work on the software audio codec. Samuel helped me on Monday and showed me that the first one I’d found couldn’t work for our project because it requires a Linux system. He found another one, which can work on a bare-metal system. It’s called Helix and the API is quite clear, but it lacks a good documentation. By chance, I found several projects for STM32F4 that use it, so I can see what functions they call, when and in what order. After several hours of work, I finally managed to decode a mp3 file stored in flash and to play it on my development board. There are still some imperfections in the sound produced and I have to investigate a bit to find where it comes from.

For the second part of the week, we have to work on the PCB. Tanguy will probably do the main part of this job. I will continue to work on the software codec, in order to find the remaining errors and I will have a look to the server (that will be written in Python using the framework Pyramid).

Makahiya – components choice & server

Hi everybody,

During this second part of the week, I’ve  tested several servomotors to help me choose which one was the best for our need. And I still don’t have a don’t have a final answer. The HS81 seems good but it’s quite expensive. As this choice doesn’t have impact on our schematic and PCB design (we just need a 3-pins connector, whatever servo we choose), we still have some time to take this decision.

As I said last wednesday, I tried to improve the communication with the CS4344. I improved it because now, I’m able to send the data to the codec using the DMA, which is good as it doesn’t use the microprocessor. But I still have a problem: the music is played too quickly by the codec. I analyzed every signal coming into the codec in order to find a difference between Samuel’s code and mine, but I couldn’t find any difference. I’ve missed something for sure, because there is an explanation (I’ve always been told that a computer does exactly what you ask it to do, not more not less, so the error comes from me).

I didn’t have time to test the software codec on the development board this week (in fact, I preferred starting to work on the server).

I’ve also added one powerful LED to the schematic and modified a little the pin allocation on the microprocessor. We just need to change the voltage regulator and add the last resistors and our schematic will be finished (except if Alexis finds mistakes in it).

Finally, I spent some times learning how a server works, what is an API on this context, how to build it and so on and so forth. We will use Heroku to deploy our (small) server as it provides a simplified interface and environment. For the programming language to use, I hope to manage to take a decision today or tomorrow between Python and Javascript, in order to be able to start coding.

Next week, I will focus on the server code and if possible, I’ll test the software codec on the development board.