ARM Cortex-M Embedded Design from 0 to 1
Hobbyists can mash together amazing functional systems using platforms like Arduino or Raspberry Pi, but it is imperative that engineers and product designers understand the foundational knowledge of embedded design. There are very few resources available that describe the thinking, strategies, and processes to take an idea through hardware design and low-level driver development, and successfully build a complete embedded system. Many engineers end up learning the hard way, or never really learn at all.
ARM processors are essentially ubiquitous in embedded systems. Design engineers building novel devices must understand the fundamentals of these systems and be able to break down large, complicated ideas into manageable pieces. Successful product development means traversing a huge amount of documentation to understand how to accomplish what you need, then put everything together to create a robust system that will reliably operate and be maintainable for years to come.
This book is a case study in embedded design including discussion of the hardware, processor initialization, low‑level driver development, and application interface design for a product. Though we describe this through a specific application of a Cortex-M3 development board, our mission is to help the reader build foundational skills critical to being an excellent product developer. The completed development board is available to maximize the impact of this book, and the working platform that you create can then be used as a base for further development and learning.
The Embedded in Embedded program is about teaching fundamental skill sets to help engineers build a solid foundation of knowledge that can be applied in any design environment. With nearly 20 years of experience in the industry, the author communicates the critical skill development that is demanded by companies and essential to successful design. This book is as much about building a great design process, critical thinking, and even social considerations important to developers as it is about technical hardware and firmware design.
Downloads
EiE Software Archive (200 MB)
IAR ARM 8.10.1 (Recommended IDE version to use) (1.2 GB)
IAR ARM 7.20.1 (Optional IDE version to use) (600 MB)
This collection features the best of Elektor Magazine's articles on embedded systems and artificial intelligence. From hands-on programming guides to innovative AI experiments, these pieces offer valuable insights and practical knowledge for engineers, developers, and enthusiasts exploring the evolving intersection of hardware design, software innovation, and intelligent technology.
Contents
Programming PICs from the Ground UpAssembler routine to output a sine wave
Object-Oriented ProgrammingA Short Primer Using C++
Programming an FPGA
Tracking Down Microcontroller Buffer Overflows with 0xDEADBEEF
Too Quick to Code and Too Slow to Test?
Understanding the Neurons in Neural NetworksEmbedded Neurons
MAUI Programming for PC, Tablet, and SmartphoneThe New Framework in Theory and Practice
USB Killer DetectorBetter Safe Than Sorry
Understanding the Neurons in Neural NetworksArtificial Neurons
A Bare-Metal Programming Guide
Part 1: For STM32 and Other Controllers
Part 2: Accurate Timing, the UART, and Debugging
Part 3: CMSIS Headers, Automatic Testing, and a Web Server
Introduction to TinyMLBig Is Not Always Better
Microprocessors for Embedded SystemsPeculiar Parts, the Series
FPGAs for BeginnersThe Path From MCU to FPGA Programming
AI in Electronics DevelopmentAn Update After Only One Year
AI in the Electronics LabGoogle Bard and Flux Copilot Put to the Test
ESP32 and ChatGPTOn the Way to a Self-Programming System…
Audio DSP FX Processor Board
Part 1: Features and Design
Part 2: Creating Applications
Rust + EmbeddedA Development Power Duo
A Smart Object CounterImage Recognition Made Easy with Edge Impulse
Universal Garden LoggerA Step Towards AI Gardening
A VHDL ClockMade with ChatGPT
TensorFlow Lite on Small MicrocontrollersA (Very) Beginner’s Point of View
Mosquito DetectionUsing Open Datasets and Arduino Nicla Vision
Artificial Intelligence Timeline
Intro to AI AlgorithmsPrompt: Which Algorithms Implement Each AI Tool?
Bringing AI to the Edgewith ESP32-P4
The Growing Role of Edge AIA Trend Shaping the Future
History and Future in the Internet of Things
This book thoroughly reviews the history of the development of embedded Operating Systems, covers the technical characteristics, historic facts, as well as background business stories of mainstream embedded Operating Systems, and analyzes the technical evolution, market development, and new opportunities of embedded Operating Systems in the age of the Internet of Things.
From the perspective of time, the book examines the evolution of critical technical aspects, including real-time and Power Management of embedded Operating Systems and Linux, Internet of Things security, communication, and cloud computing.
The book looks into applications of embedded Operating Systems with important markets of mobile phones, communication equipment, automobile, and wearable devices, and also discusses business model and the issue of intellectual property of embedded Operating Systems.
In addition, the book walks through the status quo, technical features, product evaluation and background of the Internet of Things Operating Systems in the second half of the book.
The Raspberry Pi Pico 2 is a new microcontroller board from the Raspberry Pi Foundation, based on the RP2350. It features a higher core clock speed, double the on-chip SRAM, double the on-board flash memory, more powerful Arm cores, optional RISC-V cores, new security features, and upgraded interfacing capabilities. The Raspberry Pi Pico 2 offers a significant boost in performance and features while maintaining hardware and software compatibility with earlier members of the Raspberry Pi Pico series.
The RP2350 provides a comprehensive security architecture built around Arm TrustZone for Cortex-M. It incorporates signed boot, 8 KB of antifuse OTP for key storage, SHA-256 acceleration, a hardware TRNG, and fast glitch detectors.
The unique dual-core, dual-architecture capability of the RP2350 allows users to choose between a pair of industry-standard Arm Cortex-M33 cores and a pair of open-hardware Hazard3 RISC-V cores. Programmable in C/C++ and Python, and supported by detailed documentation, the Raspberry Pi Pico 2 is the ideal microcontroller board for both enthusiasts and professional developers.
Specifications
CPU
Dual Arm Cortex-M33 or dual RISC-V Hazard3 processors @ 150 MHz
Memory
520 KB on-chip SRAM; 4 MB on-board QSPI flash
Interfaces
26 multi-purpose GPIO pins, including 4 that can be used for AD
Peripherals
2x UART
2x SPI controllers
2x I²C controllers
24x PWM channels
1x USB 1.1 controller and PHY, with host and device support
12x PIO state machines
Input power
1.8-5.5 V DC
Dimensions
21 x 51 mm
Downloads
Datasheet (Pico 2)
Datasheet (RP2350)
Build robust, intelligent machines that combine Raspberry Pi computing power with LEGO components.
The Raspberry Pi Build HAT provides four connectors for LEGO Technic motors and sensors from the SPIKE Portfolio. The available sensors include a distance sensor, a color sensor, and a versatile force sensor. The angular motors come in a range of sizes and include integrated encoders that can be queried to find their position.
The Build HAT fits all Raspberry Pi computers with a 40-pin GPIO header, including – with the addition of a ribbon cable or other extension device — Raspberry Pi 400. Connected LEGO Technic devices can easily be controlled in Python, alongside standard Raspberry Pi accessories such as a camera module.
Features
Controls up to 4 motors and sensors
Powers the Raspberry Pi (when used with a suitable external PSU)
Easy to use from Python on the Raspberry Pi
Raspberry Pi Pico W is a microcontroller board based on the Raspberry Pi RP2040 microcontroller chip.
The RP2040 microcontroller chip ('Raspberry Silicon') offers a dual-core ARM Cortex-M0+ processor (133 MHz), 256 KB RAM, 30 GPIO pins, and many other interface options. In addition, there is 2 MB of on-board QSPI flash memory for code and data storage.
Raspberry Pi Pico W has been designed to be a low cost yet flexible development platform for RP2040 with a 2.4 GHz wireless interface using an Infineon CYW43439. The wireless interface is connected via SPI to the RP2040.
Features of Pico W
RP2040 microcontroller with 2 MB of flash memory
On-board single-band 2.4 GHz wireless interfaces (802.11n)
Micro USB B port for power and data (and for reprogramming the flash)
40 pin 21 x 51 mm 'DIP' style 1 mm thick PCB with 0.1' through-hole pins also with edge castellations
Exposes 26 multi-function 3.3 V general purpose I/O (GPIO)
23 GPIO are digital-only, with three also being ADC capable
Can be surface mounted as a module
3-pin ARM serial wire debug (SWD) port
Simple yet highly flexible power supply architecture
Various options for easily powering the unit from micro USB, external supplies or batteries
High quality, low cost, high availability
Comprehensive SDK, software examples and documentation
Features of the RP2040 microcontroller
Dual-core cortex M0+ at up to 133 MHz
On-chip PLL allows variable core frequency
264 kByte multi-bank high performance SRAM
External Quad-SPI Flash with eXecute In Place (XIP) and 16 kByte on-chip cache
High performance full-crossbar bus fabric
On-board USB1.1 (device or host)
30 multi-function general purpose I/O (four can be used for ADC)
1.8-3.3 V I/O voltage
12-bit 500 ksps analogue to digital converter (ADC)
Various digital peripherals
2x UART, 2x I²C, 2x SPI, 16x PWM channels
1x timer with 4 alarms, 1x real time clock
2x programmable I/O (PIO) blocks, 8 state machines in total
Flexible, user-programmable high-speed I/O
Can emulate interfaces such as SD card and VGA
Note: Raspberry Pi Pico W I/O voltage is fixed at 3.3 V.
Downloads
Datasheet
Specifications of 3-pin Debug Connector
World’s Most Popular ROS Platform TurtleBot is the most popular open source robot for education and research. The new generation TurtleBot3 is a small, low cost, fully programmable, ROS based mobile robot. It is intended to be used for education, research, hobby and product prototyping. Affordable Cost TurtleBot was developed to meet the cost-conscious needs of schools, laboratories and companies. TurtleBot3 is the most affordable robot among the SLAM-able mobile robots equipped with a 360° Laser Distance Sensor LDS-01. ROS Standard The TurtleBot brand is managed by Open Robotics, which develops and maintains ROS. Nowadays, ROS has become the go-to platform for all the roboticists around the world. TurtleBot can be integrated with existing ROS-based robot components, but TurtleBot3 can be an affordable platform for whom want to get started learning ROS. Extensibility TurtleBot3 encourages users to customize its mechanical structure with some alternative options: open source embedded board (as a control board), computer and sensors. TurtleBot3 Waffle Pi is a two-wheeled differential drive type platform but it is able to be structurally and mechanically customized in many ways: Cars, Bikes, Trailers and so on. Extend your ideas beyond imagination with various SBC, sensors and motors on a scalable structure. Modular Actuator for Mobile Robot TurtleBot3 is able to get a precise spatial data by using 2 DYNAMIXEL’s in the wheel joints. DYNAMIXEL XM series can be operated by one of 6 operating modes (XL series: 4 operating modes): Velocity control mode for wheels, Torque control mode or Position control mode for joint, etc. DYNAMIXEL can be used even to make a mobile manipulator which is light but can be precisely controlled with velocity, torque and position control. DYNAMIXEL is a core component that makes TurtleBot3 perfect. It is easy to assemble, maintain, replace and reconfigure. Open Control Board for ROS The control board is open-sourced in hardware wise and in software wise for ROS communication. The open source control board OpenCR1.0 is powerful enough to control not only DYNAMIXEL’s but also ROBOTIS sensors that are frequently being used for basic recognition tasks in cost effective way. Various sensors such as Touch sensor, Infrared sensor, Color sensor and a handful more are available. The OpenCR1.0 has an IMU sensor inside the board so that it can enhance precise control for countless applications. The board has 3.3 V, 5 V, 12 V power supplies to reinforce the available computer device lineups. Open Source The hardware, firmware and software of TurtleBot3 are open source which means that users are welcomed to download, modify and share source codes. All components of TurtleBot3 are manufactured with injection molded plastic to achieve low cost, however, the 3D CAD data is also available for 3D printing. Specifications Maximum translational velocity 0.26 m/s Maximum rotational velocity 1.82 rad/s (104.27 deg/s) Maximum payload 30 kg Size (L x W x H) 281 x 306 x 141 mm Weight (+ SBC + Battery + Sensors) 1.8 kg Threshold of climbing 10 mm or lower Expected operating time 2h Expected charging time 2h 30m SBC (Single Board Computers) Raspberry Pi 4 (2 GB RAM) MCU 32-bit ARM Cortex-M7 with FPU (216 MHz, 462 DMIPS) Remote Controller RC-100B + BT-410 Set (Bluetooth 4, BLE) Actuator XL430-W210 LDS (Laser Distance Sensor) 360 Laser Distance Sensor LDS-01 or LDS-02
Camera Raspberry Pi Camera Module v2.1 IMU Gyroscope 3 AxisAccelerometer 3 Axis Power connectors 3.3 V/800 mA5 V/4 A12 V/1 A Expansion pins GPIO 18 pinsArduino 32 pin Peripheral 3x UART, 1x CAN, 1x SPI, 1x I²C, 5x ADC, 4x 5-pin OLLO DYNAMIXEL ports 3x RS485, 3x TTL Audio Several programmable beep sequences Programmable LEDs 4x User LED Status LEDs 1x Board status LED1x Arduino LED1x Power LED Buttons and Switches 2x Push buttons, 1x Reset button, 2x Dip switch Battery Lithium polymer 11.1 V 1800 mAh / 19.98 Wh 5C PC connection USB Firmware upgrade via USB / via JTAG Power adapter (SMPS) Input: 100-240 VAC 50/60 Hz, 1.5 A @maxOutput: 12 VDC, 5 A Downloads ROS Robot Programming GitHub E-Manual Community
Program, build, and master over 60 projects with Python
The Raspberry Pi 5 is the latest single-board computer from the Raspberry Pi Foundation. It can be used in many applications, such as in audio and video media centers, as a desktop computer, in industrial controllers, robotics, and in many domestic and commercial applications. In addition to the well-established features found in other Raspberry Pi computers, the Raspberry Pi 5 offers Wi-Fi and Bluetooth (classic and BLE), which makes it a perfect match for IoT as well as in remote and Internet-based control and monitoring applications. It is now possible to develop many real-time projects such as audio digital signal processing, real-time digital filtering, real-time digital control and monitoring, and many other real-time operations using this tiny powerhouse.
The book starts with an introduction to the Raspberry Pi 5 computer and covers the important topics of accessing the computer locally and remotely. Use of the console language commands as well as accessing and using the desktop GUI are described with working examples. The remaining parts of the book cover many Raspberry Pi 5-based hardware projects using components and devices such as
LEDs and buzzers
LCDs
Ultrasonic sensors
Temperature and atmospheric pressure sensors
The Sense HAT
Camera modules
Example projects are given using Wi-Fi and Bluetooth modules to send and receive data from smartphones and PCs, and sending real-time temperature and atmospheric pressure data to the cloud.
All projects given in the book have been fully tested for correct operation. Only basic programming and electronics experience are required to follow the projects. Brief descriptions, block diagrams, detailed circuit diagrams, and full Python program listings are given for all projects described.
The Raspberry Pi Pico 2 W is a microcontroller board based on the RP2350 featuring 2.4 GHz 802.11n wireless LAN and Bluetooth 5.2. It gives you even more flexibility in your IoT or smart product designs and expanding the possibilities for your projects.
The RP2350 provides a comprehensive security architecture built around Arm TrustZone for Cortex-M. It incorporates signed boot, 8 KB of antifuse OTP for key storage, SHA-256 acceleration, a hardware TRNG, and fast glitch detectors.
The unique dual-core, dual-architecture capability of the RP2350 allows users to choose between a pair of industry-standard Arm Cortex-M33 cores and a pair of open-hardware Hazard3 RISC-V cores. Programmable in C/C++ and Python, and supported by detailed documentation, the Raspberry Pi Pico 2 W is the ideal microcontroller board for both enthusiasts and professional developers.
Specifications
CPU
Dual Arm Cortex-M33 or dual RISC-V Hazard3 processors @ 150 MHz
Wireless
On-board Infineon CYW43439 single-band 2.4 GHz 802.11n wireless Lan and Bluetooth 5.2
Memory
520 KB on-chip SRAM; 4 MB on-board QSPI flash
Interfaces
26 multi-purpose GPIO pins, including 4 that can be used for AD
Peripherals
2x UART
2x SPI controllers
2x I²C controllers
24x PWM channels
1x USB 1.1 controller and PHY, with host and device support
12x PIO state machines
Input power
1.8-5.5 V DC
Dimensions
21 x 51 mm
Downloads
Datasheet
Pinout
Schematic
Designed for overclockers and other power users, this fan keeps your Raspberry Pi 4 at a comfortable operating temperature even under heavy load. The temperature-controlled fan delivers up to 1.4 CFM of airflow over the processor, memory, and power management IC. The bundled heatsink (18 x 8 x 10 mm) with self-adhesive pad improves heat transfer from the processor. The Raspberry Pi 4 Case Fan works with Raspberry Pi 4 and the official Raspberry Pi 4 case.
The Raspberry Pi Bumper is a snap-on silicone cover that protects the bottom and edges of the Raspberry Pi 5.
Features
One-piece flexible silicone rubber bumper
Enables easy access to the power button
Mounting holes remain accessible underneath the bumper
Downloads
Datasheet
Technology is constantly changing. New microcontrollers become available every year and old ones become redundant. The one thing that has stayed the same is the C programming language used to program these microcontrollers. If you would like to learn this standard language to program microcontrollers, then this book is for you!
ARM microcontrollers are available from a large number of manufacturers. They are 32-bit microcontrollers and usually contain a decent amount of memory and a large number of on-chip peripherals. Although this book concentrates on ARM microcontrollers from Atmel, the C programming language applies equally to other manufacturer’s ARMs as well as other microcontrollers.
Features of this book
Use only free or open source software.
Learn how to download, set up and use free C programming tools.
Start learning the C language to write simple PC programs before tackling embedded programming - no need to buy an embedded system right away!
Start learning to program from the very first chapter with simple programs and slowly build from there.
No programming experience is necessary!
Learn by doing - type and run the example programs and exercises.
Sample programs and exercises can be downloaded from the Internet.
A fun way to learn the C programming language.
Ideal for electronic hobbyists, students and engineers wanting to learn the C programming language in an embedded environment on ARM microcontrollers.