Well, I feel like this will be one of these sentimental entries, but not entirely. I would like to present my journey with quadrocopters, or drones in general. I first started to invest in drones when I was at my university. The passion developed in 2012 when I was defending my Bachelor’s degree and I decided to make a thesis about it. The topic was ‘Filtering and validation of measurements from accelerometer and gyroscope in Matlab/Simulink for a quadrotor flying robot’. In this blog post, I will tackle different aspects, namely software and hardware (mechanics and electronics).Continue reading
Tag Archives: STM32
RemoteLab a distributed Hardware-as-a-Service
This blog will be a little bit different from what I usually write about but not entirely. I am very proud of the results of what I did and I would like to share them with you. It is not a secret that I work at Wrocław University of Science and Technology. Apart from my research duties, I also run classes with my students. However, we should start the story from the beginning, that is, in the year 2019. At the dawn of 2019 we had COVID-19 outbreak. It did a lot of change in our lives and daily duties which still ought to be carried out. From the perspective of my university there were a lot of challenges. The lectures could be moved to the digital world pretty easily; however, project or laboratory classes were not that easy to move. They strongly depend on human-to-human interaction, and additionally when you work with hardware, it is even more challenging. What I did and what I will describe below was a way to respond to these difficulties. It involves a lot of hardware and not a small dose of software development.Continue reading
nRF905 — an another module for wireless communication
You might be already familiar with different transceivers I have described here, namely LoRa module. You can read about it here (STM32 driver for LoRa) and here (Raspberry Pi driver for LoRa). Now, time have come to give nRF905 module a try. As usually, the driver alone and an example are available at my github. If you do not want to read the rest of this blog, just jump straight to nRF905 driver or the example.Continue reading
ADC is as fast as possible always the best approach?
Is as fast as possible always the best way to do things with STM?
Recently, I have stumbled upon an issue regarding ADC scan conversion on STM32 microcontrollers. I have wondered why the scan conversion was not taking place. As it turned out it did but it was not handled fast enough. In this blog post I will discuss the need to return from interrupt routine as fast as possible. However, it will not be only this one thing. Interested? So keep reading.Continue reading
ADC initialization order bug in CubeMX
An another bug in STM32CubeMX software. This is a perfect example where the order of called initialization functions really matters. In discussed case I will give an example where ADC was configured to go through regular conversion triggered by an event from timer and the data was transferred automatically using DMA.Continue reading
Pan Tilt Camera for Raspberry Pi with STM32 and UV4L
I would like to present a simple project which involves Raspberry Pi with a camera. Sounds boring, right! But the camera can be tilted in two axis using two servos which are directly controlled via STM32 microcontroller which in turn communicates with Raspberry Pi. Furthermore, the RPi is hosting a web server with interface to control position and speed of the camera and of course the video is streamed so you can see what is going on i.e. in your room. If you are even a bit intrigued then keep reading.
Design of embedded system
Today, I would like to ponder on a subject of creating some measurement systems, or in more general, embedded systems. There are multiple approaches to make such a system. Let’s consider a few of them — the most popular approaches.
Embedded systems are gaining popularity by the day. Those systems are used in Internet of Things (IoT) but also in more advanced control systems. However, sometimes a need of more sophisticated system is emerging which requires more computational power. I would like to present some architectures of such systems and highlight some features of those approaches.
STM32 HAL driver for LoRa SX1278 wireless module
Long range wireless communication is getting more and more attention. Today, I would like to share with you my experience with a LoRa module — SX1278 and also the drive for this device.
ST-Link-V1 — Obsoleted but not depreciated
Yes, I am still using the practically obsoleted ST-Link-V1 on a STM32F1 disco board. It still gets the job done but regretfully it is not supported out of the box by IDE I happen to use from time to time.
When I gave a try to the AC6 (SW4STM32) I found out that, to not much of a surprise, the ST-Link-V1 is not supported. Only V2 and V2.1 are supported. Well, I decided to change that unfortunate situation because I have two of the disco boards with this debugger laying around.
GSM GPS Tracker
I would like to present one of my latest projects which is the GSM GPS tracker. Basically, it is a device which allows to send its current position using GPS via SMS. Also it is able to log the position on a microSD card.
SPL vs HAL: which one should you use (and Low Layer Library) — part 2
Some time ago I have written SPL vs HAL: which one should you use where I have focused on differences between two main frameworks for STM32 — Standard Peripheral Library (SPL) and Hardware Abstraction Layer commonly known as HAL. Since the recent post only focuses on those two sets of libraries I have decided to write some examples which can tip the scale. What is more, at the end of previous article I have asked an important question for a developer — does the STM is going to introduce us to a brand new library. Answer to this and other questions are further in this post.
Code size optimization for ARM based MCUs
There is a time in every developer’s life when the program memory is running out. If you have already experienced this problem or you are about to this article is for you!
STM32 HAL driver for I2C OLED display with U8glib
Recently, I have come to a conclusion that it would be good to print the state of my quadrocopter on a display. The question was what kind of display should I use. I decided to give a try to a small 0.96″ OLED display with I2C interface. It is based on SSD1603 driver. You can see this display on the image above. However, there was an issue regarding the screen controller. But it was soon solved. I have come across the U8glib which is a graphic library, quite popular among Arduino users. As soon as I started to read about the library I realized that it does not support STM32, not mentioning the HAL library.
Well, I have solved that 😉
Using FatFS with HAL
Recently I have written a short post about the HAL library created by STM32. The HAL is gaining popularity among hobbyists and is more and more frequently used. However, when you would like to use it for something else than just basic stuff like generating PWM on digital output you have to write it by yourself. Not so long ago I had to use SD card in one of my projects. It turned out that there is no driver for FatFS based on HAL – at least there was not. I decided to write the driver and here you can read about it…
SPL vs HAL: which one should you use
There is an unending dispute about which library should you use when writing an application for STM32 microcontroller. Actually, there are at least three choices which you should consider. In this post I will highlight the advantages and disadvantages of each approach which can be considered when writing software for ST microcontrollers.