How to start
Hello and welcome to PLAY Embedded! If you’re new here, you’re in for a treat. We’re a dedicated platform that aims to educate and inspire individuals interested in embedded systems. Our mission is to help you understand, create, and innovate within this exciting field. With a wide range of articles, tutorials, and resources, we’re confident that you’ll find everything you need to excel in embedded systems.
Our ultimate goal is to create a thriving community of embedded systems enthusiasts who learn from each other, share their experiences, and ultimately, contribute to the growth of the field. By providing comprehensive, accessible, and engaging content, we aim to nurture the next generation of embedded systems engineers and professionals.
At PLAY Embedded, we understand that learning can be a challenging process, especially when it comes to complex subjects like embedded systems. That’s why our articles are designed to break down these concepts into digestible, easy-to-understand pieces. We cover a variety of topics, from fundamental concepts and programming languages to hardware platforms and practical projects.
A key aspect of PLAY Embedded is our focus on Open Souce projects such as ChibiOS, a Free and Open Source Software (FOSS) project that offers much more than a real-time operating system (RTOS) for embedded systems. In addition to the RTOS, ChibiOS includes a Hardware Abstraction Layer (HAL) that supports a wide range of peripherals, and it comes with a ready-to-use free Integrated Development Environment (IDE) called ChibiStudio.
The reason we chose ChibiOS is due to its flexibility, scalability, and comprehensive features, making it suitable for a wide range of applications. Whether you’re just starting out or looking to take your embedded systems projects to the next level, ChibiOS allows for seamless growth and development.
Walk before running: some prerequisites
Before you begin your journey into embedded systems, it’s crucial to establish a solid foundation in a few key areas. A basic understanding of C programming and circuit theory will provide you with the necessary background to effectively explore and engage with the world of embedded systems. In the following sections, we’ll discuss each of these prerequisites in more detail, helping you prepare for a successful learning experience.
In order to work with embedded systems, it’s essential to be proficient in running basic C programs. While we don’t currently have a dedicated tutorial series on C programming, there are numerous resources available online to help you learn. Websites like Learn C and W3Schools offer comprehensive tutorials for beginners.
To get started, consider installing a simple IDE like Dev-C++ or using an online platform such as OnlineGDB to experiment with C code. You should aim to familiarize yourself with concepts like program structure, preprocessor directives, variables, data types, loops, conditionals, functions, pointers, arrays, structures, and enumerations. Additionally, a basic understanding of memory management and data structures will prove invaluable as you delve deeper into embedded systems.
As you advance in your understanding of C programming, we have prepared two informative articles that shed light on concepts that are often misunderstood. These articles will be particularly helpful for readers aspiring to delve into embedded system programming:
As you embark on your journey with PLAY Embedded, it’s crucial to have a strong foundation in circuit theory, as you’ll be working with various components and interfaces.
You’ll be connecting components and designing circuits that involve both analog and digital elements. Start by learning the basics of electricity and circuits, including essential electrical components such as resistors, capacitors, and inductors. Familiarize yourself with fundamental laws like Ohm’s Law and Kirchhoff’s Laws, which will help you analyze and solve simple linear circuits and first-order circuits. Electrotechnics forms the backbone of your understanding of how electrical circuits function and how they interact with embedded systems.
After building a strong foundation in electrotechnics, move on to the basics of electronics. Gain an understanding of key components like diodes and transistors, and explore the principles of analog and digital electronics. While we cover the basics in our articles, you may need to further expand your knowledge through additional resources or coursework. Embedded systems often require a combination of analog and digital circuits, so understanding the fundamental principles of electronics will be essential for your success.
Our recommendation is to opt for a hands-on experience, and a great way to achieve this is by using ADALM1000 or ADALM2000. These educational kits from Analog Devices offer numerous hands-on exercises that help you thoroughly understand electronics. The exercises are organized in a table on the Analog Wiki, which is regularly updated.
By developing a comprehensive understanding of circuit theory, you’ll be well-equipped to tackle the challenges and opportunities presented by embedded systems.
Get your hands on some hardware
The key to truly understanding and mastering embedded systems lies in hands-on experience. Engaging with real hardware allows you to explore, experiment, and learn by connecting various components and observing their interactions. This practical approach is the driving force behind our name, PLAY Embedded, as we believe that “playing” with hardware is the most effective way to develop expertise in this field. In the following sections, we’ll provide a list of essential components to help you get started with your hands-on journey into the world of embedded systems. So to get started you definitely need a PC where you can install ChibiStudio to develop and compile your projects.
Throughout our series of articles, we guide you through the initial steps of working with embedded systems, and while any board supported by ChibiOS could be used, we recommend starting with the Analog Devices SDP-K1, which is the board we primarily use. After gaining confidence and experience with the system, feel free to transition to your preferred board.
To connect various components, it’s essential to have some Dupont cables, a breadboard, and a kit of through-hole components such as resistors and capacitors.
In our articles, we often use different breakout boards, but having a basic button and RGB LED breakout board on hand is always useful. You might also consider investing in an all-inclusive sensor kit, such as the 35 in 1 sensor kit from AZ-Delivery, which provides a wide range of components to experiment with as you progress in your embedded systems journey.
Gaining Proficiency with Embedded Systems using PLAY Embedded
To make the most of PLAY Embedded and gain proficiency in embedded systems, we recommend following a structured approach that involves mastering the prerequisites, acquiring the right hardware, actively engaging with our articles, and exploring our key categories and articles.
Building a strong foundation: must-read articles
At PLAY Embedded, our articles are organized into categories to help you easily navigate through them and understand the primary focus of each group. You can access these categories using the main menu. The “General Knowledge – Fundamentals” category contains many key articles that can elevate your embedded systems skills. There’s no need to read them all at once; we’re big fans of the divide-and-conquer approach. If a topic is too complex, we prefer to split it into smaller articles, and if understanding a particular article requires prior knowledge, we simply provide a link to the necessary prerequisite. You definitely want to read:
- Microcontrollers 101
- Fundamentals of Digital Circuitry
- Registers and bit masks
- Breadboards explained: tips and tricks
However, we recommend casually browsing the “General Knowledge – Fundamentals” category from time to time and choosing articles that will expand your knowledge. Another intriguing category to explore is “General Knowledge – Advanced Concepts“. While the articles here may not cover essential topics for beginners, they can significantly improve your problem-solving abilities and deepen your understanding of our proposed examples.
Getting started with ChibiOS
For the next step, the category ChibiOS – Getting started is what we are looking for. You may want to grab your PC and your evaluation kit and start by setting up the toolchain following the guide in Getting Started with ChibiOS using the SDP-K1. This article provides step-by-step instructions on setting up ChibiStudio, learning how to flash and run firmware, importing and exporting projects, and creating new ones.
Next, familiarize yourself with the toolchain by reading ChibiStudio Overview, which aims to provide a general understanding of ChibiStudio as a tool and its overall structure, making it easier to navigate and optimize your workflow.
After that, you’ll be ready to delve into Mastering Multithreading with ChibiOS: A Beginner’s Guide. This comprehensive guide offers an in-depth look at a ChibiOS project, helping you understand how to set up, modify, and build one while also explaining how multithreading works in ChibiOS. This knowledge will enable you to confidently start building your own ChibiOS projects.
Following this guide, explore the companion category ChibiOS – Examples and Exercises, which provides hands-on experience and reinforces the concepts learned. Begin with The Simplest Project Ever in ChibiOS, which breaks down the default demo into a basic, functional ChibiOS project that can serve as a foundation for your experiments.
Continuing with hands-on learning, Parametric Threads with ChibiOS is an excellent next step. This article delves into parametric threads, working areas, and thread functions.
By now you should have read:
- ChibiStudio Overview
- Mastering Multithreading with ChibiOS: A Beginner’s Guide
- The Simplest Project Ever in ChibiOS
- Parametric Threads with ChibiOS
With the groundwork covered, it’s time to move on to GPIOs. The theory is split into two articles:
- Mastering GPIOs with ChibiOS PAL: a practical guide, that gets covered the working principles of a GPIO and the related API of the PAL driver in ChibiOS/RT HAL.
- Mastering External Interrupts with ChibiOS PAL: From Polling to Events, which goes a step further in exploring the PAL API, detailing the event mechanisms to leverage external interrupts.
These articles heavily reference Fundamentals of Digital Circuitry, which explores key concepts in digital electronics, such as logic levels, push-pull and open-drain configurations, pull-up and pull-down resistors, first-order RC circuits, and Schmitt triggers.
Once you’ve grasped the theory, move on to hands-on exercises like Mastering Push Buttons with ChibiOS PAL: Hands-on Exercises
To further explore the topic of GPIO, consider checking out Hands-on exercises with LEDs and ChibiOS PAL.
This is where we stand right now with our newest series of articles. However, we are continuing to expand it with new content published every week. This guide will be updated accordingly to help you stay on track with your embedded systems journey.
Following the full list of articles related to GPIOs:
- Mastering GPIOs with ChibiOS PAL: a practical guide (Theory)
- Mastering External Interrupts with ChibiOS PAL: From Polling to Events (Theory)
- Mastering Push Buttons with ChibiOS PAL: Hands-on Exercises (Hands-on)
- A complete overview of LEDs: from theory to applications (Fundamentals)
- Hands-on exercises with LEDs and ChibiOS PAL (Hands-on)
If you feel like getting more into the communication busses and open to the possibility to interface external digital devices then you should explore the Serial Peripheral Interface also known as SPI.
These are the article you definitely should read:
- SPI 101: A beginner’s guide (Fundamentals)
- Leveraging ChibiOS/HAL’s SPI for Real-Time Applications (Theory)
- Hands-on exercise with the ADXL355 and ChibiOS SPI (Hands-on)
If what are you looking for is a way to print data out then you are looking for the Serial Driver.
This is what we are currently working on therefore the topic is not complete yet but we have a good primer for you:
- UART 101: the blueprint of Serial Communications (Fundamentals)
- ChibiOS/HAL’s Serial Driver Explained (Theory)
- Untitled article on Base Sequential Streams, chprintf and chscanf (Hands-on) – Coming Soon
- Untitled article on ChibiOS/Shell (Hands-on) – Coming Soon
Done with the basics now what
Depending on your interests, there are several paths to take next. We’ll be releasing more articles about each peripheral supported by ChibiOS, but in the meantime, you can refer to the older articles under the ChibiOS – Getting Started (obsoleted) category. While these articles may not be entirely up-to-date, they still offer valuable insights.
Another excellent resource is the ChibiOS – Further Readings category, which features a collection of in-depth articles, case studies, and advanced resources that delve into the intricacies of ChibiOS and its various applications.
Ultimately, the goal is to interface with external peripherals and the ChibiOS – Interfacing External Peripherals category provides a wide range of articles demonstrating how to connect and work with some of the most common peripherals in embedded systems.
As we wrap up this introduction to PLAY Embedded, we want to emphasize the importance of engaging with our community and becoming an active participant. Our platform is not just about providing information and resources; it’s also about fostering connections and learning from one another.
We encourage you to join our LinkedIn community Microcontroller Masters: discussing Embedded Systems, where you can meet fellow embedded systems enthusiasts, share your experiences, and learn from the expertise of others. By engaging in discussions and exchanging ideas, you’ll enrich your own understanding and contribute to the growth of the entire community.
If you’re eager to stay up-to-date with our latest articles, consider subscribing to our newsletter or following us on LinkedIn. We carefully craft each newsletter to share our most recent publications, and we’re committed to keeping your inbox spam-free. PLAY Embedded is a passion project, driven by the desire to educate and inspire rather than financial gain. Our platform is, and will always remain, an ad-free safe space for learning and collaboration.
Additionally, we value your feedback and would appreciate if you could share your thoughts and suggestions about our articles by contacting us. Your input helps us understand your needs and enables us to improve PLAY Embedded, making it a more valuable resource for everyone.
Lastly, don’t hesitate to leave comments on our articles. Engaging in these conversations not only benefits you but also helps others who may have similar questions or insights to share.
Remember, the ultimate goal of PLAY Embedded is to create a thriving community of embedded engineers, and your active participation plays a vital role in achieving that vision. Together, we can build a dynamic and supportive environment that nurtures the growth of the embedded systems field.