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.
Here you will find my recent contribution to LoRa drivers. This post describes the LoRa driver for a Raspberry Pi SBC (Single Board Computer). Additionally, a wrapper written in Python is available making it very easy to use and prototype. Raspberry Pi gets more and more attention. Adding LoRa communication enables it to communicate with IoT devices such as remote thermometers, soil moisture sensors and many more others. You can find HAT boards thatoffer a LoRa module. Here, I describe how to connect and how to use a low-cost LoRa RFM95W module. This particular module comes with different frequency options. However, this post describes the one which uses 868 MHz frequency.
I would like to give to you a bunch of tips about how to improve your work with console. If you are working remotely on Linux from Windows operating system then there it is hard to find a right solution. I will describe a few tweaks which make the work with Linux terminal on Windows a bit easier.
This post will manly focus on configuring a cmder terminal — a great tool for consoling on Windows. Also I will discuss screen which is nice application similar to tmux which allows you to have a bunch of virtual terminals open and ready for use.
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.
Some time ago, I have published a post about creating a Pan Tilt camera using UV4L library on a Raspberry Pi. It works really well. The camera position can be adjusted via a web interface while providing a live stream. It seems like a nice little thing. However, after upgrade of my Raspberry Pi from Debian Stretch to Debian Buster it broke down. The live stream is no longer available through UV4L on Debian Buster. Here is how to fix it!
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.
Here I describe how to set up secure video streaming using Raspberry Pi and a dedicated camera with UV4L. This post is written in tutorial–like form and the set–up presented here will be used in my other projects.
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.
Recently, I have written an article Automatic router reboot device with Arduino where I have presented a simple Arduino–based solution to reset router periodically. Since this is not the best idea to reset it, even if it does not require resetting, I have applied purely software–based solution. As the title says I have used a Python script which runs on Raspberry Pi connected to a local network.
For quite some time I was experiencing a problem with my router. When the temperature rises behind the window it just starts to freak out. Every once two weeks or so it drops the Internet connection. Local network is still running but the incoming or outcoming connections are terminated. The only solution to this problem is to reset the router or just take out the plug and insert it after a few seconds. However, it requires me to do this every few days to make sure that the connection is good and running. I have decided to automatize the process with Arduino since it was laying around.
Some time ago I have decided to make myself a electric bike — e-bike as they are called now. However, buying a stock solution, I mean a stock e-bike, was not an option because mainly of two reasons. The stock e-bikes are quite expensive stuff, this is one. The second one is about the actual parameters of the electrical bicycle. Manufactures sell e-bikes which have limited power output to 250 Watts and are only meant to support you and not drive themselves. But wait a minute … This should be about a spot welder not the e-bike ;). Well, each electric devices ought to have a power source and this is how the idea about making my own spot welder was born.
Recently, when I wanted to install IPython notebook server I discovered that for quite some time the project had changed its name to Jupyter. You may recall one of my posts about the IPython where I presented how to install it on Raspberry Pi. Now, I would like to present the Jupyter project to you which comes with some neat new features.
Many articles here and there describe how to use OpenCV on Raspberry Pi. However, most of them are about setting up the environment by hand — meaning compiling OpenCV from sources. There are two main disadvantages to this approach. Firstly, you have to spend some time to compile it. On Raspberry Pi 3 it takes quite some time, and not mentioning the earlier versions of this mini PC. Secondly, maintaining up–to–date version requires additional time. Still, you can go for middle ground — cross–compilation that requires less time but you have to set up the environment properly. Having above in mind I will introduce you to the OpenCV with Python interface installed from pre–compiled packages. If I have your attention keep reading 😉
The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.