Category

Embedded Systems

Category

This example presents a simple video streaming(PC) and video player(STM32F746 board). The video streaming solution is designed to be flexible with a simple “threading” architecture that allows customization. Due to the image processing limitations (missing JPEG decoder) of the STM32F746) which acts as a client, the server (linux PC) is responsible to decode the selected media files and transmit them on a simple, yet effective way. The streaming can support 24bit RAW bitmaps (images) of…

Interacting with I2C devices is usually done with a microcontroller and an I2C library, but sometimes either the microcontroller is not supporting I2C or you have some other restrictions which do not allow you to use the provided I2C library. For that reason you can always Bitbang the I2C protocol a.k.a emulate the behavior of this protocol by manually toggling the pins. The following example is using Bitbanging to communicate with an EEPROM device (ST…

The I²C bus is the most popular of the three current serial EEPROM protocols because of its simplicity, high signal density, and unique write protect (WP) pin characteristics. This illustration shows the typical pin-out of an I²C device with pins 1 through 3 as address pins A0, A1, and A2. Pin 4 is designated as ground, Vcc, while pin 5 is the data line, SDA. The clock signal SCL is at pin 6, pin 7…

KWP2000/UDS devices are essential tools for anyone who wants to tinker with a vehicle’s onboard computer system. Whether you’ll use yours for chip tuning a hobby-racing vehicle or you need to equip your auto-shop business with better on-board vehicle diagnostics (OBD) programming tools. KWP2000 actually stands for Keyword Protocol 2000, which is the name of a set of communications codes employed by vehicle computers and systems that meet the OBDII regulatory standard. Diagnostic scanners and…

Using the  the current project aims to update a board through CANbus. The workflow: The first board has a firmware loaded into the SD Card. At the beginning it requests to transmit the firmware through CANbus. If the second board accepts the request, then the firmware is transmitted through the CANBus to the SD Card of the client. After the completion of the firmware transfer process, the system reboots itself and Stitch Bootloader flashes and loads…

Usually a firmware upgrade of the STM32FXXX boards are is not an easy task for customers. They have to plug the board and use several different tools to flash the memory. For that reason i have made a simple, effective and easy way to upgrade your firmware using an SD Card. The upgrade task is simple, just write your firmware in the first sector of the SD Card (use HxD application to perform this operation),…

Sometimes, we need an easy way to test and verify that our board works correctly, especially if we are using breadboards and cables. The following simple FreeRTOS thread is able to echo each incoming CAN frame. To use this thread you must enable FreeRTOS using the ST’s CubeMX software which will generate the appropriate startup source code and afterwards you have to include some extra libraries that can be found in the blog (please check…

In a previous post we saw a simple CAN library to handle the CAN interfaces of STM32 board. However one basic issue that we had to solve is the frames buffering (especially when we receive the frames). This issue came up by the processing time that each frame needs and the limitation that the receive interrupt routine should be as fast as possible. For that reason, the following source code presents an incoming CAN Frames…

Dynamic resources allocation has become even more attractive as a research direction with commodity computing gaining momentum and bringing new requirements regarding elasticity and flexibility and with the growing importance of cloud computing.  The aim is to deliver high-performance computational while leveraging on other aspects, such as energy consumption. Admittedly, heterogeneity comes at the cost of greater design and management complexity. A promising approach to address the difficulties posed by this scenario is to exploit…