Maker.io main logo

Python on Hardware

2020-09-09 | By Maker.io Staff

Circuit Playground Adafruit Feather Gemma ItsyBitsy micro:bit

A whole generation of programmers have now grown up with the web, where JavaScript is the de facto language for creating dynamic user interfaces and managing databases. Alongside them is another, even larger, group who have made Python the de facto language of science, engineering, data analysis, and most recently machine learning. The emerging future communities we're seeing are being built not around specific chipsets or boards, but around languages. These modern languages are high level in that they are more than just a syntax-tree and compiler. They are fully-featured development environments that come with comprehensive libraries, code examples and support networks High-level language support is fundamentally disruptive to the way we currently build hardware.

Most people, and most makers, want to solve a problem. Maybe they're sending sensor data to the internet for an IoT device, or listening for radio signals that will move a motorized robot. While, for some, the specifications of the chipset or board really matter - the number of timers, the specs of the ADC controller - the across-the-board increases in microcontroller/microcomputer power and capabilities means that, often times, the specs don't vary that much. In a move that mirrors the changes we saw in the desktop and laptop computer market, our microcontroller hardware has become good enough that we now don't have to worry about the underlying architectures and instead, we can focus on application engineering.

When it comes down to it, the next generation of high powered microcontrollers and microcomputers will be defined, not by their hardware, but by their user experience. UIs will be rich and complex, with TFTs and OLEDs (a single button and buzzer will not suffice). Connectivity is now a given, you must have a stack for managing Internet or Bluetooth. And with such complexity, we need higher level languages. The future of hardware is about accessibility, and we will be programming using an easily accessible, and widely known, high level language like Python.

CircuitPython

Image of CircuitPython logoCircuitPython is Adafruit's branch of MicroPython designed to simplify experimentation and education on low-cost microcontrollers. It's fully interpreted, with the interpreter acting as your RTOS (of sorts). No compiler, linker or IDE required! Now you can code directly on the device itself. CircuitPython makes it easier than ever to get prototyping by requiring no up-front desktop software downloads - open up the embedded code.py text file in any text editor and type away.

It is great for beginners: With CircuitPython you can write clean and simple Python code to control hardware instead of having to use complex low-level languages like Arduino, C or C++. The simplicity of the Python programming language makes CircuitPython an excellent choice for beginners who are new to programming and hardware.

Image of Adafruit parts with Python

Experts love it too: skip the annoyances of long-compile cycles, pointers and memory management - get right to the programming you want to do. CircuitPython is also full-featured and supports all of Python's syntax (Python version 3.4) and implements some useful parts of the Python standard library so even seasoned Python veterans will find CircuitPython familiar and fun to use.

Adafruit's latest boards are the Metro, the Feather, and the ItsyBitsy (from largest to smallest). The Metro board features powerful Microchip Technologies SAMD51 microcontrollers with the ARM Cortex M4 core which includes hardware floating point support and DSP operations.

Running at 120 MHz and containing more RAM and Flash than prior boards, the new Adafruit boards are tailor-made for running CircuitPython quickly and effectively for taxing applications.

On the educational side, the Adafruit Circuit Playground Express provides the power of CircuitPython with the sensors and lights all on-board. It contains the features most requested from the educational community with ease of use and broad software compatibility.

The Adafruit Gemma M0, about the size of a U.S. quarter, is perfect for small wearables. The Trinket M0 is most often used in compact breadboard-friendly designs. Adafruit's Metro M0 Express provides shield-compatibility with the Arduino ecosystem. Finally, the Adafruit Feather M0 Express has dozens of companion boards which take advantage of the Feather system.

Articles

Blogs

Guides

Projects

Community

Books

  • Python for Microcontrollers - by Donald Norris, Discusses how to get started with MicroPython and Pyboard.
  • Programming with MicroPython - by Nicholas H. Tollervey, includes CircuitPython - Discusses the MicroPython language.

Videos

Code

Frameworks

Newsletter

News

Social

Events

Products

  • MicroPython
  • 1528-2138-ND: ATSAMD21G18 Metro M0 Express SAM D MCU 32-Bit ARM® Cortex®-M0+
  • 1528-2554-ND: ATSAMD21 ItsyBitsy M0 Express SAM D MCU 32-Bit ARM® 
  • 1528-2619-ND: ATSAMD51J19 ItsyBitsy M4 Express SAM D MCU 32-Bit ARM® Cortex®-M4
  • 1528-2605-ND: ATSAMD51J19 METRO SAM D MCU 32-Bit ARM® Cortex®-M4 
  • 1528-2280-ND: Adafruit's ATSAMD21 Circuit Playground Express SAM D MCU 32-Bit ARM® Cortex®-M0+ Embedded Evaluation Board
  • 1528-2126-ND: Adafruit's ATSAMD21G18 Feather M0 Express SAM D MCU 32-Bit ARM® Cortex®-M0+ Embedded Evaluation Board
  • 1528-2348-ND: Adafruit's ADAFRUIT GEMMA M0 - MINIATURE WE
  • 1528-2361-ND: Adafruit's TRINKET M0 ATSAMD21E18 DEV BOARD
  • 1528-1580-ND: Adafruit's ADAFRUIT FEATHER M0 WIFI - ATSAM
  • 1528-1530-ND: Adafruit's ESP8266 FEATHER HUZZAH LOOSE HDR
  • 1528-1901-ND: Adafruit's ESP8266 FEATHER HUZZAH FIXED HDR
  • 1528-1902-ND: Adafruit's ESP8266 FEATHER HUZZAH STACK HDR
  • 1528-1539-ND: Adafruit's ATSAMD21G18 Data Logger Memory Evaluation Board
  • 1528-1531-ND: Adafruit's ATSAMD21G18 Feather M0 Basic Proto SAM D MCU 32-Bit ARM® Cortex®-M0+ Embedded Evaluation Board
  • 1528-1565-ND: Adafruit's STM32F405 PyBoard STM32F4 MCU 32-Bit ARM® Cortex®-M4 Embedded Evaluation Board
  • BBB01-SC-505-ND: GHI Electronics' AM3358BZCZ BeagleBone Black Sitara™ MPU ARM® Cortex®-A8 Embedded Evaluation Board
  • 2648-SC0022-ND: Raspberry Pi's BCM2837 Raspberry Pi 3 Model B - MPU ARM® Cortex®-A53, VideoCore Embedded Evaluation Board
  • 2648-SC0073-ND: Raspberry Pi's BCM2837B0 Raspberry Pi 3 Model B+ - MPU ARM® Cortex®-A53, VideoCore Embedded Evaluation Board
  • 1910-1000-ND: Pi Supply's BCM2835 Raspberry Pi Zero W - MPU ARM11 Embedded Evaluation Board
  • 1910-1001-ND: Pi Supply's BCM2835 Raspberry Pi Zero - MPU ARM11 Embedded Evaluation Board
  • 1050-1137-ND: Arduino's ATSAMD21 Arduino MKR Zero SAM D MCU 32-Bit ARM® Cortex®-M0+ Embedded Evaluation Board
  • 1528-2095-ND: Adafruit's FEATHER NRF52 BLUEFRUIT LE - NRF
  • 1871-1000-ND: Pycom's WIPY 2.0 IOT DEV BOARD
制造商零件编号 3505
METRO M0 EXPRESS ATSAMD21G18
Adafruit Industries LLC
制造商零件编号 3727
ITSYBITSY M0 EXPRESS ATSAMD21
Adafruit Industries LLC
制造商零件编号 3333
CIRCUIT PLAYGROUND EXPRESS
Adafruit Industries LLC
制造商零件编号 3403
FEATHER M0 EXPRESS ATSAMD21G18
Adafruit Industries LLC
制造商零件编号 3501
ADAFRUIT GEMMA M0 - MINIATURE WE
Adafruit Industries LLC
制造商零件编号 3500
TRINKET M0 ATSAMD21E18 EVAL BRD
Adafruit Industries LLC
制造商零件编号 3010
ADAFRUIT FEATHER M0 WIFI - ATSAM
Adafruit Industries LLC
制造商零件编号 2821
ESP8266 FEATHER HUZZAH LOOSE HDR
Adafruit Industries LLC
制造商零件编号 3046
ESP8266 FEATHER HUZZAH FIXED HDR
Adafruit Industries LLC
制造商零件编号 3213
ESP8266 FEATHER HUZZAH STACK HDR
Adafruit Industries LLC
制造商零件编号 2796
EVAL BOARD FOR ATSAMD21G18
Adafruit Industries LLC
制造商零件编号 2772
FEATHER M0 BAS PROTO ATSAMD21G18
Adafruit Industries LLC
制造商零件编号 2390
PYBOARD V1.1 STM32F405 NO HEADER
Adafruit Industries LLC
制造商零件编号 BBB01-SC-505
BEAGLEBONE BLK REV C AM3358BZCZ
GHI Electronics, LLC
制造商零件编号 SC0022
SBC 1.2GHZ 4 CORE 1GB RAM
Raspberry Pi
制造商零件编号 SC0073
SBC 1.4GHZ 4 CORE 1GB RAM
Raspberry Pi
制造商零件编号 RPI-029
SBC 1.0GHZ 1 CORE 512MB RAM
Pi Supply
制造商零件编号 RPI-030
SBC 1.0GHZ 1 CORE 512MB RAM
Pi Supply
制造商零件编号 ABX00012
ARDUINO MKR ZERO W/ HDR ATSAMD21
Arduino
制造商零件编号 3406
FEATHER NRF52 BLUEFRUIT LE - NRF
Adafruit Industries LLC
制造商零件编号 3800
ITSYBITSY M4EXPRESS ATSAMD51G19A
Adafruit Industries LLC
制造商零件编号 3382
METRO ATSAMD51J19 EVAL BRD
Adafruit Industries LLC
制造商零件编号 WIPY 3.0
WIPY 3.0 IOT DEV BOARD
Pycom Ltd.
Add all DigiKey Parts to Cart
TechForum

Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.

Visit TechForum