Skip to main content

Anti-optimization, hardware crumbling apart, GitHub

Today, short post about deceiving software.

Remember when last time, I said I had to do optmizations on my code ?
Well I tried.
And it went worse than I expected !

First, I tried to gather similar codes in some tasks, but it came out they were too heavy for FreeRTOS to handle them correctly, resulting in heap panic... So trying to enhance my code, I worsen it ! So I hard to roll it back.

Then, I tried to implement real mutexes for some resources that are shared among the tasks, in particular the screen (and maybe the UART one day, but I can manage to use it only in one task, if I split it in several functions). When I though I understood it and implemented it correctly, it turned out to make the STM32 crash at bootup, and being non recognizable by my PC anymore ! So again, I had to rollback to the previous version.

I'm still trying to figure out how to re-design my code, while keeping it runnable on that picky Blue Pill. You can FINALLY find my code on Github ! I suggest not to run it before knowing what you're doing, though.

https://github.com/j-levy/karadio_alarmclock_stm32/

I decided to use the Githib issues as a way to track the next works I need to do. There are some hardware improvements and re-designs, and also case manufacturing steps that I need to do, too. But now, we all have a clear way of where we're going !

Talking about hardware and case building, my audio transformers died, and I had to re-solder a new audio linking card. This time, I found a female jack, this should make it sturdier and more modulable (male-male jack are easy to find). Take a look !

For an unknown reason, when I plug my audio amplifier, the PAM8403, on the regular 5V shared by all components, I heard some crackling. But, when I plug it on the 3.3V outputed by the STM32, the crackling sound is gone, and the sound is just as loud. So I'll keep it that way, best for me I guess !


For the moment, I will continue developing on this hardware, but when I'm done, I will buy brand new parts with holes in them. I will definitely need something to attach them inside the box, and holes and screws seem like a simple, sturdy and reliable option.

How about a little video ? I know it didn't progress compared to before, but I can't help but showing how it looks like !


Now, I'll stick to Github to have a clear list of stuff to improve, fix, and build, instead of trying to remember what I need to do.
Like a documentation. I need some. At some point. To remember what my code is doing, and which wire is plugged where.

Next stop : solve the bugs and bring the software to a better shape and state !
See you !

Comments

Popular posts from this blog

Adding some speakers, part 2

I added the audio transistors.

Before diving into this modification, I wanted to see how deteriorated the sound is when you try to link everything on the same power supply WITHOUT transistors. So I made this little video. You can hear the difference !



First, I noticed that my three little wires (on the output of the VS1053) were badly soldered and caused a short-circuit somewhere. So I removed them, and replaced them with a naked Jack plug. (I took it from a selfie stick. True story. These selfie sticks have an audio Jack plug to be able to take a shot from a button near the hand, that acts just like a button from headphones with mic. End of the story, back to business :p )

I wired the output of the VS1053 to the input of the transformers, and I wired the output of the transformers to the input of the PAM8403 (the amplifier). Since on the input and on the output, they have common ground between the two channels, I kept the common ground. You can see a rough scheme below (the "Aud…

Adding some speakers, part 1

I've got speakers, an amplifier, audio transformers, and a KaRadio.
Let's have fun with that !

So in order to connect everything, I took the plugs from the original radio and soldered them along with headers, to connect things easily.



Then I soldered headers on the amp side, easy connection. And I wired them together. I also soldered a USB cable on the power input of the amp board.

On the VS1053 side, I have a Arduino-shaped board, so I took advantage of some unused pins to wire the output speakers to 3 pins. Again, the easier, the better... Except that soldering these 3 little cables was FRIGGING HARD, they kept swinging and moving around, it was hellish. But oh well, it's done now.



Finally, I took 3 wires to link the VS1053 to the amp (it's a PAM8403). The pair ESP8266 + VS1053 has its own power supply (it's a USB battery) while the amplifier has a separate USB power supply.



Aaaaaaand it works very well :)

I tried to put the whole on the same power supply and I g…

Flashing an STM32 "Blue Pill"

Flashing this STM32 "Blue Pill" board took me 5 hours.

I finally recieved my microcontrollers. I have at disposal :
A brand new WeMos D1 Mini (it's a smallish NodeMCU)An Arduino Pro Mini (it acts just like a Leonardo, but it lacks some interesting pins sadly :(  )An STM32F103C8T6, I'll call this the Blue Pill for short. The Arduino Pro Mini has an Arduino bootloader out-of-the-box, so  I could play with it directly. It's nice ! Still, it lacks the double Serial of the original Leonardo, and most importantly, there's no A4 and A5 pins, so libraries for I2C won't work without modification.

But the Blue Pill needs more work. Basically, I followed the instructions on this site : http://wiki.stm32duino.com/index.php?title=Installation
Since it's quite complicated, consider the following as a tutorial to set up your Blue Pill. I tried different things, the following has worked for me.

Before doing anything software-related, while reading the Blue Pill page …