Working with embedded systems often involves troubleshooting unexpected behavior. Recently, I encountered a peculiar situation while using an STM32 Nucleo board that I want to write about. These boards are fantastic for prototyping and experimenting with different ideas, but sometimes things don’t go as planned. In this case, it wasn’t a typical malfunction; the way the short circuit manifested was quite unusual.
Over a year ago, I was describing a project about an On-Screen Display (OSD) based on the RP2040. It was a simple yet effective application that allowed me to display flight telemetry on a screen in real-time. The solution was somewhat limited because it was created out of necessity. I have several RC planes with FPV capabilities. During flights, I wanted information about current position, battery voltage, etc., displayed on the video feedback. All this information was displayed using four lines of text, two at the top and two at the bottom of the screen. Since then, project requirements have evolved, and I needed to add more functionality to keep up with my needs. In the newest update, I’ve focused on enhancing I2C transmission and adding a frame buffer.
Last year, I purchased a carbon fibre drone frame Mark4 for a 7-inch drone. It turned out to be of good quality, so I recently purchased another three frames from different vendors. In the end, I was quite surprised with what I got. Below, some retrospective of these purchases.
I have come across something interesting. As you might already know, Raspberry Pi subcontract Raspberry Pi Pico modules to be manufactured by JLC PCB. However, recently they launched the possibility to order assembly of RP2350 chips. These are nowhere to be found. But this is not the “big” thing. I have searched through the JLC PCB catalogue and found that there is a LoRa module produced by Raspberry Pi! Does this mean that in near feature they are going to release this wireless module?
During my classes at WRUST (Wrocław University of Science and Technology), I teach about Robot Controllers where most of the course related to embedded systems is centred around STM32 ecosystem. For quite some time, STM32CubeIDE software was used there. However, the version that is being used there is quite old (1.4.0). The newer versions of the software offer a lot of new features that are useful during debugging. On the other hand, any newer version than 1.4.0 has issues with remote debugging, which is a core part of RemoteLab. Fortunately enough, there is a good substitution that connects both words: new features and operational robustness. The solution is based on VS Code and uses cmake as a project build tool.
Since I started working with Raspberry Pi Pico, I mostly had it connected to my PC next to me. However, it is possible to configure an environment for remote debugging. There are a couple of things that you need, and of course some configuration of your IDE is needed as well. I will walk you through the main steps that are required to setup everything correctly and start a remote debugging session.
It has been a while since I wrote about RemoteLab. A new semester is approaching at the Wrocław University of Science and Technology and I thought that a long awaited feature should be released. I hope this will improve the user experience while working with RemoteLab. This is a second major update since moving to Django, unifying the status server with the camera server, and of course open sourcing it. Besides real-time plotting, there are some additional updates as well.
Sometimes streaming video might not be as straightforward as it might seem to be. In this blog, I will walk you through some ideas on how to stream video using Raspberry Pi Camera module and some Python libraries. Different techniques focussing around picamera module will be investigated along with some front-end code to facilitate reception via a web browser.
During the summertime, I have created and assembled a monitoring station based on Raspberry Pi and Raspberry Pi Camera module. The main purpose of this monitoring station was a video survivable system with some digital outputs to control the lights. The overall device is based on the Raspberry Pi 4 that sits inside a tight casing with the power supply module and the relay module. I do not want to write much about how it was built, but a bit more about how it is being maintained plus how it works during winter when temperatures are starting to go below zero.
Today I would like to present you a small GPS module with super capacitor backup. Having GPS coordinates known during flight time is very beneficial. There are multiple ways in which longitude and latitude can be used to enhance the RC flight experience. Once again we have, and for the most obvious reason, the ability to track a plane or a drone. We can also calculate the current distance to a flying object in line of sight. Finally, using GPS coordinates, it is possible to implement an autopilot and a feature called return to home in case of broken radio link.
In case you have missed it Raspberry Pi has launched its new product, second edition of Raspberry Pi Pico. It has a new microcontroller and it is lots of fun! Here, I highlight the most important things and differences.
When you want to control a DC motor, there are two ways in which this could be approached. It can be controlled (a closed-loop approach) or simply driven (an open-loop approach). The open loop approach is the easiest one since it does not relay on any addition knowledge about the system or the motor itself. The control process is straightforward. You send the control signal and hope that the DC motor will rotate at the desired speed. However, in many situations, it is insufficient. For example, when a car goes uphill, it requires more torque, so the power output needs to be adjusted. In the end, the same control signal will not give the same results as the environment changes.
In this post the main emphasis is put on quadrature encoders. The quadrature encoder is a sensor mounted next to motor which allows to measure how fast the shaft is turning. Going further, the usual implementation of the quadrature encoder sensor counts how many times the state has changed. However, before going into details, let us focus first on quadrature encoders and how they work.
For quite some time, I was curious about the on-screen displays (OSDs). It is a piece of equipment which enables you to put some text or graphics directly on a video stream. I am going to present you my solution for this device and, most importantly, why it is useful. The project was based on the RP2040 microcontroller which can be found on a very popular platform, Raspberry Pi Pico.