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)
De werking van veruit de meeste moderne elektronische apparaten is niet slechts op één enkel principe gebaseerd. Vaak staat een of andere computer (doorgaans een microcontroller) centraal. Uit deze fundamentele opzet – een computer die is ingebed in een bepaalde toepassingsschakeling – is de algemene benaming Embedded Systems voortgekomen. De meeste van deze systemen moeten vanuit het niets worden ontwikkeld, en daarbij komt het op elk detail aan. Vindingrijkheid en veelzijdigheid zijn dan een vereiste. De problemen die opgelost moeten worden, vormen niet zelden een ware uitdaging en betreffen niet alleen de analoge en digitale elektronica maar ook de systeemarchitectuur, programmering en programma-organisatie. De delen van deze reeks zijn geschreven voor iedereen – leerling, student of beginnend elektronicus – die zich terdege wil bekwamen in de professionele hardware- en systeemontwikkeling. En ze richten zich tot de allround-elektronicus die geen tijd heeft om specialist op een van de vele deelgebieden te worden maar die weet dat hij met standaard huis-, tuin- en keukenoplossingen niet ver komt. Ze bieden wat studenten en professionele elektronici nodig hebben: een opfrissing en verdieping van de basiskennis, een bron van inspiratie en een schat aan details en spitsvondigheden. Dit deel behandelt de passieve componenten: vaste weerstanden • instelbare weerstanden • NTC- en PTC-weerstanden • spanningsafhankelijke weerstanden • condensatoren • spoelen • transformatoren • contactelementen Andere delen in deze reeks: Digitale technieken • Hard- en software • Signaalwegen • Basisschakelingen
De werking van veruit de meeste moderne elektronische apparaten is niet slechts op één enkel principe gebaseerd. Vaak staat een of andere computer (doorgaans een microcontroller) centraal. Uit deze fundamentele opzet – een computer die is ingebed in een bepaalde toepassingsschakeling – is de algemene benaming Embedded Systems voortgekomen. De meeste van deze systemen moeten vanuit het niets worden ontwikkeld, en daarbij komt het op elk detail aan. Vindingrijkheid en veelzijdigheid zijn dan een vereiste. De problemen die opgelost moeten worden, vormen niet zelden een ware uitdaging en betreffen niet alleen de analoge en digitale elektronica maar ook de systeemarchitectuur, programmering en programma-organisatie. De delen van deze reeks zijn geschreven voor iedereen – leerling, student of beginnend elektronicus – die zich terdege wil bekwamen in de professionele hardware- en systeemontwikkeling. En ze richten zich tot de allround-elektronicus die geen tijd heeft om specialist op een van de vele deelgebieden te worden maar die weet dat hij met standaard huis-, tuin- en keukenoplossingen niet ver komt. Ze bieden wat studenten en professionele elektronici nodig hebben: een opfrissing en verdieping van de basiskennis, een bron van inspiratie en een schat aan details en spitsvondigheden. Dit deel behandelt de theoretische principes en de basisschakelingen van digitale technieken: signalen, bits en binaire getallen • propositielogica en Booleaanse algebra • schakelalgebra • het vereenvoudigen van schakelingen • combinatorische en sequentiële schakelingen • parameters • halfgeleidertechnologieën • signaalwegen • geïntegreerde schakelingen • impulsen • kloksystemen • initialisatie • combinatorische basisschakelingen • latches en flipflops • registers • adresseerbare geheugens • sequentiële basisschakelingen Andere delen in deze reeks: Passieve componenten • Hard- en software • Signaalwegen • Basisschakelingen
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
World’s Most Popular ROS PlatformTurtleBot 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 CostTurtleBot 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 StandardThe 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.ExtensibilityTurtleBot3 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 RobotTurtleBot3 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 ROSThe 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 SourceThe 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
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.
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.
De Raspberry Pi Bumper is een opklikbare siliconen hoes die de onderkant en randen van de Raspberry Pi 5 beschermt.
Kenmerken
Flexibele siliconenrubberen bumper uit één stuk
Maakt gemakkelijke toegang tot de aan/uit-knop mogelijk
Bevestigingsgaten blijven toegankelijk onder de 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.
Slechts tijdelijk is de Joy-Pi Advanced verkrijgbaar in een voordelige bundel met een Raspberry Pi 4 (8 GB)!
De Joy-Pi Advanced is een compact en krachtig instrument waarmee je snel en eenvoudig je projecten kunt realiseren. Of je nu veel of weinig ervaring hebt, met de Joy-Pi Advanced kun je je creativiteit de vrije loop laten. Dankzij de compatibiliteit met een groot aantal platformen, waaronder Raspberry Pi, Raspberry Pi Pico, Arduino Nano, BBC micro:bit en NodeMCU ESP32, kun je eenvoudig en snel toegang krijgen tot het platform van je voorkeur.
Daarnaast heeft de Joy-Pi Advanced meer dan 30 stations, lessen en modules, waardoor je een onbeperkt aantal manieren hebt om je projecten uit te voeren. Met het zelfontwikkelde leercentrum kun je niet alleen je vaardigheden verbeteren, maar ook nieuwe projecten maken. Het leercentrum biedt een schat aan informatie en tutorials die je stap voor stap door je projecten begeleiden.
Joy-Pi Advanced wordt in het bijzonder gekenmerkt door zijn intelligente schakeleenheden, die een uitgebreid gebruik van de beschikbare pinnen mogelijk maken. In totaal zijn er drie schakeleenheden geïntegreerd, elk voorzien van 12 individuele schakelaars die zorgen voor een nauwkeurige aansturing van de aangesloten sensoren en modules. Dit systeem lost het bekende probleem van het beperkte aantal pinnen op dat optreedt bij conventionele microcontrollers. Met de schakeleenheden kun je een groot aantal sensoren en modules parallel aansturen door ze afzonderlijk aan en uit te schakelen. Dit simuleert meervoudige pintoewijzing, waardoor je het volledige vermogen van je projecten kunt benutten zonder afbreuk te doen aan de functionaliteit.
Door onze innovatieve adapter boards en het micro:bit slot te combineren, bereiken we naadloze compatibiliteit met een breed scala aan microcontrollers zoals Raspberry Pi Pico, NodeMCU ESP32, micro:mit en Arduino Nano. De speciaal ontwikkelde adapterkaarten zijn zo ontworpen dat ze perfect passen bij de betreffende microcontroller. Door de microcontroller op het juiste adapterboard aan te sluiten en deze vervolgens in het micro:bit slot te steken, wordt de Joy-Pi Advanced snel en eenvoudig compatibel met de verschillende microcontrollers. Dit zorgt voor een naadloze integratie van het platform van je voorkeur en de mogelijkheid om de sterke punten van de verschillende microcontrollers te combineren in je projecten. Op deze manier kun je je volledig richten op je creatieve projecten zonder dat je je zorgen hoeft te maken over de compatibiliteit van verschillende microcontrollers. De Joy-Pi Advanced vereenvoudigt het ontwikkelproces en geeft je de mogelijkheid om je projecten flexibel en individueel te ontwerpen.
Kenmerken
Sterk geïntegreerd ontwikkelplatform & leercentrum
Snel, eenvoudig & draadloos combineren van verschillende sensoren & actuatoren
Installatieoptie voor Raspberry Pi 4
Compatibel met verschillende microcontrollers
Zelfontwikkeld, didactisch leerplatform voor Raspberry Pi & Windows
Specificaties
Compatibel met
Raspberry Pi 4, Arduino Nano, NodeMCU ESP32, BBC micro:bit, Raspberry Pi Pico
Geïnstalleerde sensoren, actuatoren & componenten
39
Leerplatform
Meer dan 40 items in de kennisdatabase, 10 projecten, 10 lessen, 14 visies
Displays
7-segment display, 16x2 display, 1,8' TFT-display, 0,96" OLED-display, 8x8 RGB-matrix
Sensoren
DS18B20, schoksensor, hallsensor, barometer, geluidssensor, gyroscoop, PIR-sensor, Lichtbarrière, NTC, Lichtsensor, 6x aanraaksensor, kleurensensor, ultrasone afstandssensor, DHT11 temperatuur- & vochtigheidssensor
Controle
Joystick, 5x schakelaars, potentiometer, draaiencoder, 4x4 knoppenmatrix, relais, PWM-ventilator
Motoren
Servo-interface, Stappenmotorinterface, Trilmotor
Meet- en conversiemodules
Analoog-digitaalomzetter, niveauomzetter, voltmeter, variabele spanningsbron
Andere onderdelen
RTC real-time klok, zoemer, EEPROM-geheugen, infrarood ontvanger, breadboard, RFID-lezer
Adapterkaarten
Adapter voor NodeMCU ESP32, Arduino Nano & Raspberry Pi Pico, Board connectors voor Raspberry Pi & externe boards
Elektronische onderdelen
Infrarood afstandsbediening, RFID-chip, RFID-kaart, 6x krokodillenklemmen, microSD-kaartlezer, servomotor, stappenmotor, 32 GB microSD-kaart
Onderdelen
40x weerstanden, 3x groene LED's, 3x gele LED's, 3x rode LED's, 1x transistor, 5x knoppen, 1x potentiometer, 2x condensatoren
Andere accessoires
Schroevenassortiment, schroevendraaier, accessoire-opbergtas, voeding & voedingskabel, servo bevestiging
Stroomvoorziening
Ingebouwde voeding: 36 W, 12 V, 3 A Behuizingsconnector: Kleine apparaat stekker C8
Spanningsuitgangen
12 V, 5 V, 3,3 V, variabele spanningsuitgang (2-11 V)
Databussen & signaaluitgangen
I²C, SPI, Analoog naar digitaal converter
Batterij (RTC)
CR2032
Afmetingen
327 x 200 x 52 mm
Inbegrepen
Raspberry Pi 4 (8 GB RAM)
Downloads
Joy-Pi website
Datasheet
Manual
Program and Build Raspberry Pi 5 Based Ham Station Utilities with the RTL-SDR
The RTL-SDR devices (V3 and V4) have gained popularity among radio amateurs because of their very low cost and rich features. A basic system may consist of a USB based RTL-SDR device (dongle) with a suitable antenna, a Raspberry Pi 5 computer, a USB based external audio input-output adapter, and software installed on the Raspberry Pi 5 computer. With such a modest setup, it is possible to receive signals from around 24 MHz to over 1.7 GHz.
This book is aimed at amateur radio enthusiasts and electronic engineering students, as well as at anyone interested in learning to use the Raspberry Pi 5 to build electronic projects. The book is suitable for both beginners through experienced readers. Some knowledge of the Python programming language is required to understand and eventually modify the projects given in the book. A block diagram, a circuit diagram, and a complete Python program listing is given for each project, alongside a comprehensive description.
The following popular RTL-SDR programs are discussed in detail, aided by step-by-step installation guides for practical use on a Raspberry Pi 5:
SimpleFM
GQRX
SDR++
CubicSDR
RTL-SDR Server
Dump1090
FLDIGI
Quick
RTL_433
aldo
xcwcp
GPredict
TWCLOCK
CQRLOG
klog
Morse2Ascii
PyQSO
Welle.io
Ham Clock
CHIRP
xastir
qsstv
flrig
XyGrib
FreeDV
Qtel (EchoLink)
XDX (DX-Cluster)
WSJT-X
The application of the Python programming language on the latest Raspberry Pi 5 platform precludes the use of the programs in the book from working on older versions of Raspberry Pi computers.
Wanneer u regelmatig experimenteert met de Raspberry Pi en verschillende externe hardware aansluit op de GPIO-poort via de header, heeft u mogelijk in het verleden schade veroorzaakt. Het Elektor Raspberry Pi Buffer Board is er om dit te voorkomen! Het board is compatibel met de Raspberry Pi Zero, Zero 2 (W), 3, 4, 5, 400 en 500.
Alle 26 GPIO's zijn gebufferd met bidirectionele spanningsomzetters om de Raspberry Pi te beschermen tijdens het experimenteren met nieuwe circuits. De printplaat is bedoeld om aan de achterkant van de Raspberry Pi 400/500 te worden geplaatst. De connector voor aansluiting op de Raspberry Pi is een haakse 40-polige connector (2x20). De printplaat is slechts iets breder. Een 40-polige flatcable met bijpassende 2x20 headers kan worden aangesloten op de buffer-uitgangsheader om bijvoorbeeld te experimenteren met een circuit op een breadboard of een printplaat.
Het circuit maakt gebruik van 4x TXS0108E IC's van Texas Instruments. De printplaat kan ook rechtop op een Raspberry Pi worden geplaatst.
Downloads
Schematics
Layout