FreeRTOS is a popular real-time operating system that is designed to run on microcontrollers and small embedded devices. It is based on FreeRTOS, an open-source operating system that has been widely used for IoT projects for many years. The popularity of FreeRTOS is due to its efficiency, portability, and ease of use in embedded systems development. However, Amazon FreeRTOS takes FreeRTOS to the next level by providing additional features and services that simplify the development and deployment of IoT devices. Amazon FreeRTOS includes features such as AWS IoT device SDK integration, over-the-air updates, and Amazon Web Services (AWS) integration.
Most embedded systems are “employed” to perform a task within a specified time. Such “employees” are called real-time systems. The employment chain continues as the real-time systems also “hire” real-time operating systems (RTOS) to meet the job deadlines. Choosing the right RTOS can be a confusing task since there are so many options to pick from. This article compares, from head to toe, the most popular Open-source RTOSes available so that you won’t have to. What is a Real-Time Operating System (RTOS)? A real-time OS is a particular type of operating system that manages an embedded system’s hardware to perform the user applications within the specified timing constraints. It differs from the generic OS as it is specifically designed for scheduling processes and managing the system’s limited resources to achieve fast real-time responses. “RTOS, thou art be a great manager.” In actual fact, any job that a user requests an embedded system to do consists of multiple individual smaller tasks, and execution is switched amongst them quickly enough to give an illusion that a single job is done. However, the CPU “brain” of an embedded system can only focus on one task at a time. How does it choose…
If your project requires a global positioning feature, then you should use one of many GSP modules. There are many receiver modules and expansion boards available for your choice. They vary in PCB size, functionality, antennas used, and price. In most cases, you are probably looking for a simple, small-in-one solution where GPS receiver and antenna would be on the same package. Recently I have picked one that might fit most needs – GPS receiver NEO-6M module with ceramic antenna and TTL serial interface. It is a very compact GPS module with the most needed features:
We all agree that hobbyist or engineer should have proper bench oscilloscope for everyday use. They have all standard features including built-in screen, interchangeable probes and convenient knob controls. Anyway if you are looking for a temporary cheap solution, you can try building your own oscilloscope. Luckily you don’t have to make it from scratch because there are many projects and kits available that are cheap but powerful enough to fit most of the basic needs.
Today I want to talk about protecting digital Inputs of AVR or any other microcontroller from over-voltages. When you look at most microcontroller circuits found on the internet shared by hobbyists, you don’t find any input protection. Some argue that this is not needed or don’t understand in most cases how it works. Let’s see how a simple resistor can save the day. Lets see at simplified version of digital input of AVR microcontroller. We can see there that input uses CMOS logic where the transistor is switched by voltage. According to the AVR datasheet, the gate control voltage should stay within the -0.5V to VCC+0.5V range. If we power our device with a 5V supply, we need to ensure that the pin input voltage stays in the range of -0.5 to 5.5V. When the input voltage source is taken from the same power supply, we don’t have to worry much about it. But what if AVR is accepting digital signals from other sources like sensors, other devices powered by their power supplies. Can we be sure that voltage will always be within safe limits? This is why there are two clamping diodes (sometimes called ESD protection diodes) used. They…
1-wire devices are commonly used in many applications. You probably are familiar with the famous DS18B20 digital temperature sensor in the TO92 package. They can be powered and interfaced using the same single data line plus the ground return, of course. 1-wire originally was designed by Dallas Semiconductors Corp., which is also a major provider of 1-wire devices like temperature sensors, timers, real-time clocks, memory, and the well-known iButton. 1-wire interface is a bidirectional, half-duplex slow serial communication standard. It doesn’t use any clock signal. When talking of speed, the standard data rate is 15.4kbps. But there is possible to overdrive 1-wire communication to up to 125kbps.
During this time, I’ve been purchasing or building various microcontroller boards. Most of them were used to try things out or because they were cheap to get. So I thought, why not blow dust away and see what we have here. Maybe there will be some fresh thoughts on where to use them. Probably I should spare a few words about each of them.
Smartphone devices are as valuable as there are some useful apps there. So I started wondering if there are electronics/microcontroller-related apps that could be useful in daily work. Let’s see what we can find in an in-app store. First of all, we are interested in free apps. Search on AVR microcontrollers gave me coupe results: AVR Fuse Calculator and Using Atmega128 apps. Let’s see what they are capable of.
AVR microcontrollers aren’t the best choice to run the FreeRTOS scheduler due to low on-chip RAM. Atmega128 has only 4K of RAM, so this limits the FreeRTOS functionality to very basic. This problem can be solved by adding extra RAM, which may be connected to an external memory interface. We have already built an external memory block of 8K previously to test it with FreeRTOS applications. Let’s continue with our previous code, which runs several simple tasks (button state reading, LCD output, and LED flash), and we can add more to it. We are going to set up an external RAM for storing heaps. This will allow the storage of large data buffers without worrying too much about heap and stack overlaps.
Modern cars have more electronics than you can think of. Almost every vital part has tons of sensors on it with a dedicated computer called ECU (Electrical Control Unit). Usually, there are from several up to hundreds of ECU’s in a single car. Especially luxury ones. All modules have to work as an organized unit. So this is where a reliable connection interface is needed. Probably you’ve already heard of CAN bus (Controller Area Network). It is a standard bus interface used in most vehicles where the board computer communicates with separate control ECUs taking care of the engine, gearbox, climate, security alarm, and safety bags. CAN devices are connected by using twisted pair signal wires that are more resistant to noises. Signals usually operate at the 5V level. The transfer speed can reach up to 1Mb/s for 40m cable lengths.