I design and develop electronic devices using embedded small processor modules. The main part of modules is MCU (Microcontroller Unit) provided by Atmel-Microchip, STMicroelectronics or others. The MCU contains processor AVR or ARM family (RISC architecture), SRAM and FLASH memory on the same chip. Some other function (WiFi, Bluetooth, senzors, etc.) may be integrated on the same chip and such embedded system is called SoC (System-on-Chip). The I/O pins of the MCU or SoC modules are outside accessible and can be connected to senzors or other devices via data buses (UART, I2C, SPI etc.). The MCU or SoC are assembled with power and other auxiliary circuits and all is soldered on a small PCB (Printed Circuid Board) as the module.
The frequent families of MCU are AVR (Arduino), ESP8266, ESP32 (Espressif Systems) and ARM STM32 (STMicroelectronics). The MCU/SoC have low consumption of power and can be powered from small Li-Ion, Li-Po acumulators or solars cells. MCUs or SoC can control local processes or display data on OLED, LCD, TFT etc. Data can be also stored on SD card or transmitted via data networks to data servers for next processing.
I develop the firmware of MCU in Arduino IDE, PlatformIO (MS Visual Code IDE) or MS Visual Studio using the C, C++ or Arduino Wiring development platform. The code support (compiler, linker, etc.) for proper platform and type processor can be added to IDE. The compiled firmware is uploaded to the flash memory of MCU e.g via Serial-USB converter (CP2102) or ST-Link in case of STM32. The firmware can be also uploaded via network (OTA). I develop own firmware and use appropriate open software libraries from GitHub. Tools STM32CubeIDE/CubeMX or ARM Keil can be used for developping, debugging and to compile the firmware of STM32 MCU family. Web user interfaces I develop in PHP and JavaScript. May be also used Python as the programming language.
I use frequently air radio data connection LPWAN (LoRaWAN or SIGFOX) via ISM radio band (433/868 MHz), WiFi or GSM networks. In this case are the MCU modules connected via data buses (SPI, UART) to small radio modules. Using the LoRa has many advantages over the WiFi or GSM networks, particularly in low power consumption. The modules LoRa use mostly the radio chip by Semtech. The modules included auxiliary circuits and small IPEX or SMA connector for 433/866 MHz antenna. Power is mostly 3,3V. Some modules included together the radio chip and the MCU (mostly ESP32 or ARM STM32). The best solution is PSoC (Programmable System-on-Chip) where the ARM MCU and the radio are integrated on one chip (e.g. by Cypress).
The topology is often the transmitter node connected via air to the receiver node or end nodes connected via air to the network server via radio gateway (LoRaWAN). Data from MCUs can be transmitted via air to data servers to control other processes e.g. via MQTT broker or can be stored and displayed via web interfaces. I use servers in computer cloudes and some cloude services. May be also used servers created within local networks e.g. lightweight servers created e.g. on Raspberry Pi.
From the previous article may be clear I take fancy to IoT and LoRa technologies. We like SoC modules from HELTEC CubeCell Series. We use commercial radio network services LoRaWAN provided by CRA. Sometimes are used cloud services e.g. Microsoft Azure (IoTHUB) for data processing.
I am interested in RC models/drones and like to use Flight Controllers (FC). FC consists of MCU (STM32) and sensors connected via I2C/UART interfaces. The sensor acts as IMU (Inertial Measurement Unit) is 6-axis accelerometer/gyro and a pressure chip sensor acts as a barometer. The IMU sensors are chips MPU6000 or ICM42688 and the barometer BMP280, DPS310 etc. Current, power and temperature sensors are often also embedded. The MCU I/O pins are led out on the board and may be connected via UART to other sensors - GPS modul, compass or pitot tube modules), RC receiver (via Spektrum DSM SRXL2 on 2.4 GHz in my case) or other devices. Some MCU I/O pins are connected to servos via Pulse Width Modulation (PWM) and control flight surfaces for pitch, roll and yaw motion. Some I/O pins are also connected to the regulator (ESC) to control DC brushless motors for an aircraft. The ESC regulator may be controled by PWM or modern digital protocol e.g. DSHOT.
The base part of the FC firmware is a software acts PID regulator and the regulation loop. Inputs are data from sensors and commands from RC receiver. The regulated quantity is the signal to the servos and ESC regulator of motor. This way can be reached the knowledge of 3D position and ability to autoregulate motion of the aircraft. I mostly use open projects as iNAV or Betaflight.
The RC models or drones with the FC are capable to balancing flight, You can use RTH (Return To Home) or Way Points mission capabilities. The great advantage of FC are Telemetry data from embedded and connected senzors. Data can be transmitted to a ground station at the pilot. The ground station receive, decode and display flight telemetry data as speed, altitude, tilt, distance etc. via suitable telemetry protocols. I use serial LTM (Light Telemetry Protocol) or MSP (Multiwii Serial Protocol). Telemetry data can be transmitted via radio ISM band 433/868 MHz e.g. LoRa to Ground Station. There can be displayed on a small monitor or computer, save to storage or forward to data network. Bluetooth or WiFi (2.4 GHz) can be used for a short distanace. Also is an option to mix telemetry data as OSD with video from FPV (First Person View) analog/digital camera. Final video signal can be transmitted via board video transmitter (VTX e.g. ImmersionRC) and receive and display FPV video on the ground station. The video signal is transmitted often via 5.8 GHz radio band.
Created by © DuPe 2010-2021