Book Image

MicroPython Projects

By : Jacob Beningo
Book Image

MicroPython Projects

By: Jacob Beningo

Overview of this book

With the increasing complexity of embedded systems seen over the past few years, developers are looking for ways to manage them easily by solving problems without spending a lot of time on finding supported peripherals. MicroPython is an efficient and lean implementation of the Python 3 programming language, which is optimized to run on microcontrollers. MicroPython Projects will guide you in building and managing your embedded systems with ease. This book is a comprehensive project-based guide that will help you build a wide range of projects and give you the confidence to design complex projects spanning new areas of technology such as electronic applications, automation devices, and IoT applications. While building seven engaging projects, you'll learn how to enable devices to communicate with each other, access and control devices over a TCP/IP socket, and store and retrieve data. The complexity will increase progressively as you work on different projects, covering areas such as driver design, sensor interfacing, and MicroPython kernel customization. By the end of this MicroPython book, you'll be able to develop industry-standard embedded systems and keep up with the evolution of the Internet of Things.
Table of Contents (14 chapters)
11
Downloading and Running MicroPython Code

Navigating the startup code

The startup code for the STM32 port can be found in main.c, which is located in the micropython/ports/stm32 directory. This folder also contains the code for various peripheral modules. In order to make heads or tails of the startup code, I recommend that you open main.c and locate the stm32_main function. stm32_main contains the initialization sequence for MicroPython.

In addition to stm32_main.c, the main.c module also contains several additional functions that are used to support the system startup. The support code in main.c includes additional initialization for items such as the following:

  • A flash error state code
  • A filesystem reset code, such as creating default main.py and boot.py files
  • Filesystem initialization
  • SD card initialization

The initialization sequence is not complicated, but it does contain quite a few steps. When I encounter a...