MicroPython vs CircuitPython | What is MicroPython and CircuitPython

In this article , we discuss Difference between MicroPython vs CircuitPython ( MicroPython vs CircuitPython ). Both are available for Microcontrollers Boards. Developers used for IoT (Internet of Things ) projects or Embedded projects. CircuitPython is a programming language designed to simplify experimenting and learning to program on low-cost microcontroller boards by Adafruit Industry.

What is MicroPython ?

MicroPython is a software implementation of the Python 3 programming language, written in C, that is optimized to run on a microcontroller. It is a full Python compiler and runtime that runs on the micro-controller hardware. The user is presented with an interactive prompt (the REPL) to execute supported commands immediately. Included are a selection of core Python libraries; It includes modules which give the programmer access to low-level hardware.

It was originally created by the Australian programmer and physicist Damien George, after a successful Kickstarter backed campaign in 2013. While the original Kickstart campaign released MicroPython with a pyboard microcontroller, MicroPython supports a number of ARM based architectures. MicroPython has since been run on Arduino platform based products, ESP8266, ESP32, and Internet of thingshardware. In 2016 a version of MicroPython for the BBC Micro Bit was created as part of the Python Software Foundation’s contribution to the Micro Bit partnership with the BBC. In 2017, Microsemi made a MicroPython port for RISC-V (RV32 and RV64) architecture.

It is packed full of advanced features such as an interactive prompt, arbitrary precision integers, closures, list comprehension, generators, exception handling and more. Yet it is compact enough to fit and run within just 256k of code space and 16k of RAM.

Micro Python aims to be as compatible with normal Python as possible to allow you to transfer code with ease from the desktop to a microcontroller or embedded system.

Micro Python has some unique features that set it apart from other embedded systems:

  • Interactive REPL, or read-evaluate-print loop.  This allows you to connect to a board and have it execute code without any need for compiling or uploading–perfect for quickly learning and experimenting with hardware!
  • Extensive software library.  Like the normal Python programming langauge MicroPython is ‘batteries included’ and has libraries built in to support many tasks.  For example parsing JSON data from a web service, searching text with a regular expression, or even doing network socket programming is easy with built-in libraries for MicroPython.
  • Extensibility.  For advanced users MicroPython is extensible with low-level C/C++ functions so you can mix expressive high-level MicroPython code with faster low-level code when you need it.

What is CircuitPython ?

CircuitPython is a programming language designed to simplify experimenting and learning to program on low-cost microcontroller boards. Circuit Python is Adafruit’s open source derivative of MicroPython.  This version of MicroPython was created to add support for easily getting started with electronics using boards like Circuit Playground Express, Trinket M0, Gemma M0, and more.

Python is the fastest growing programming language. It’s a high-level programming language which means it’s designed to be easier to read, write and maintain. It supports modules and packages which means it’s easy to reuse your code for other projects. It has a built in interpreter which means there are no extra steps, like compiling, to get your code to work. And of course, Python is Open Source Software which means it’s free for anyone to use, modify or improve upon. CircuitPython adds hardware support to all of these amazing features.

Reasons to use CircuitPython

  • You want to get up and running quickly. Create a file, edit your code, save the file, and it runs immediately. There is no compiling, no downloading and no uploading needed.
  • You’re new to programming. CircuitPython is designed with education in mind. It’s easy to start learning how to program and you get immediate feedback from the board.
  • Easily update your code. Since your code lives on the disk drive, you can edit it whenever you like, you can also keep multiple files around for easy experimentation.
  • The serial console and REPL. These allow for live feedback from your code and interactive programming.
  • File storage. The internal storage for CircuitPython makes it great for data-logging, playing audio clips, and otherwise interacting with files.
  • Strong hardware support. There are many libraries and drivers for sensors, breakout boards and other external components.
  • It’s Python! Python is the fastest-growing programming language. It’s taught in schools and universities. CircuitPython is almost-completely compatible with Python. It simply adds hardware support.

MicroPyhton vs CircuitPython | Difference between MicroPython and CircuitPyhton

CircuitPython is Adafruit’s open source derivative of MicroPython.  This version of MicroPython was created to add support for easily getting started with electronics using boards like Circuit Playground Express, Trinket M0, Gemma M0, and more.

CircuitPython:

  • includes a ports for MicroChip SAMD21 (Commonly known as M0 in Adafruit product names) and SAMD51 (M4).
  • supports only SAMD21, SAMD51, and ESP8266 ports. An nRF port is under development.
  • tracks MicroPython’s releases (not master).
  • Longints (arbitrary-length integers) are enabled for most M0 Express boards (those boards with SPI flash chips external to the microcontroller), and for all M4 builds. Longints are disabled on other boards due to lack of flash space.

In almost all cases you can do the same things with both CircuitPython and MicroPython. Check out the CircuitPython documentation for more details about it, including a list of differences between CircuitPython and MicroPython. Visit This : https://circuitpython.readthedocs.io/en/latest/README.html#differences-from-micropython


Useful links:


Thanks for reading. If you like this post “MicroPython vs CircuitPython”. probably you might like my next ones, so please support me by subscribing my blog.

You may like also:



Harshvardhan Mishra

Hi, I'm Harshvardhan Mishra. I am a tech blogger and an IoT Enthusiast. I am eager to learn and explore tech related stuff! also, I wanted to deliver you the same as much as the simpler way with more informative content. I generally appreciate learning by doing, rather than only learning. Thank you for reading my blog! Happy learning! Follow and send tweets me on @harshvardhanrvm. If you want to help support me on my journey, consider sharing my articles, or Buy me a Coffee!

2 thoughts on “MicroPython vs CircuitPython | What is MicroPython and CircuitPython

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: