Daily tips and tricks from the experts at Adafruit!
View this email in your browser

CircuitPython 4.0.0 Beta 1 released!

Last week, we released 4.0.0 Beta 0 with refined Bluetooth Low Energy and display APIs. After finding a few bugs and quickly squashing them, we’ve released 4.0.0 Beta 1! With Beta 1 we’re getting closer and closer to 4.0.0. So, if you are adventurous, please give it a try and let us know how it goes on Discord!

CircuitPython on the cover of HackSpace Magazine – Issue 15!

Pages 86 and 87 of Issue 15 — HackSpace magazine has a fantastic article by Ben Everard “CircuitPython – From desktop to microcontroller: this language does everything.” Great overview, it also features Mu and more! Read more & PDF.

CircuitPython snaked its way to a few other articles in this issue too!

Pages 96 & 97, a deLIGHTful article on making your own light painting glove by Sophy Wong using CircuitPython.

On pages 102 to 105, a great article on “Sorting toys the robot way – Make picking through Lego a thing of the past” by Archie Roques using CircuitPython – adafruit_circuitpython_motor.

On pages 126 and 127 there is a review of the Adafruit NeoTrellis M4! 9 outa’ 10!

CircuitPython in 2019 – In your words

2019 is beginning with a CircuitPython community coming together to discuss the future of CircuitPython. Undoubtedly, the future is bright, but what will it be exactly? While none of us can tell the future, each of us posted our individual thoughts earlier this year. (See the Adafruit Blog for each post) Yesterday, we posted the aggregation of these ideas to lay out our focus for CircuitPython in 2019.

ALL ABOARD! CircuitPython supported on 30 boards!

There are currently 30 boards that support CircuitPython!

  • Adafruit CircuitPython boards: Adafruit Circuit Playground Express, Adafruit Feather M0 Express, Adafruit Feather M4 Express, Adafruit Feather nRF52840 Express, Adafruit GEMMA M0, Adafruit Grand Central M4 Express featuring the SAMD51, Adafruit HalloWing M0 Express, Adafruit ItsyBitsy M0, Adafruit ItsyBitsy M4, Adafruit Metro M0 Express, Adafruit Metro M4, Adafruit NeoTrellis M4, Adafruit Trinket M0.
  • Arduino: Arduino MKR 1300, Arduino MKR ZERO, Arduino ZERO.
  • Electronic Cats: CatWAN USB Stick, Meow Meow.
  • MakerDiary: nRF52840 Micro Dev Kit USB Dongle.
  • Mini Sam: Mini SAM development board.
  • Nordic Semiconductor: nRF52840 DK board PCA10056, nRF52840 dongle PCA10059.
  • Particle: Particle Argon, Particle Boron, Particle Xenon.
  • SparkFun: SparkFun Pro nRF52840 Mini – Bluetooth Development Board, SparkFun SAMD21 Mini Breakout, SparkFun SAMD21 Dev Breakout. Sparkfun LumiDrive LED Driver, and SparkFun RedBoard Turbo – SAMD21 Development Board, support CircuitPython but are not in release until pull requests are received.

Keep an eye on awesome-circuitpython list releases for updates!

EduBlocks for CircuitPython beta is here!

It’s here! Introducing a brand new EduBlocks BETA editor release! Say hello to EduBlocks for Adafruit CircuitPython! Create and prototype awesome projects with this block-based editor for building CircuitPython code! Try out the BETA today: http://adafruit.edublocks.org

Tomu board using valentyusb! A little bit closer to getting CircuitPython on FPGAs!

Great news for FPGA and TinyUSB fans, the first data transmission on an ICE40 chipset with valentyUSB. ValentyUSB is an implementation of TinyUSB for FPGAs. Why is this exciting to us? Well, TinyUSB is the USB core we use for USB interfacing in CircuitPython. So we’re now just a little bit closer to getting CircuitPython on FPGAs!

A new SAMD21-based RedBoard with support for CircuitPython

ALL ABOARD! The SparkFun RedBoard Turbo – SAMD21 Development Board is the latest board from SparkFun that supports CircuitPython, check out the product page, video, and GitHub.

MicroPython 1.10 Release – Vast improvements to native emitter, new nrf port, unified documentation

In this release, there are a wide range of improvements and additions to both the core and the ports. In the core, the main improvement was to the native emitter which brings much more comprehensive support for general Python features such as generators and complex exception handling, and the generated machine code is smaller and retains its efficiency. Elsewhere, fuzzy testing was used to find and eliminate some corner-case bugs, user classes were optimised when they don’t use special accessors, underscores in numeric literals are now supported (PEP515), and the uio.IOBase class was added to allow user defined streams. More details at GitHub, forum post, changelog, and download.

Python history – The Python programming language was originally developed for the Amoeba operating system

From our dive into Python history! The Amoeba (operating system) – Wikipedia. “Amoeba is a distributed operating system developed by Andrew S. Tanenbaum and others at the Vrije Universiteit Amsterdam. The aim of the Amoeba project was to build a timesharing system that makes an entire network of computers appear to the user as a single machine. Development at the Vrije Universiteit was stopped: the source code of the latest version (5.3) was last modified on 30 July 1996. The Python programming language was originally developed for this platform.”

The Amoeba Distributed Operating System

“Amoeba is a powerful microkernel-based system that turns a collection of workstations or single-board computers into a transparent distributed system. It has been in use in academia, industry, and government for about 5 years. It runs on the SPARC (Sun4c and Sun4m), the 386/486, 68030, and Sun 3/50 and Sun 3/60.

At the Vrije Universiteit, Amoeba runs on a collection of 80 single-board SPARC computers connected by an Ethernet, forming a powerful processor pool. This equipment is pictured below. It is used for research in distributed and parallel operating systems, runtime systems, languages, and applications.”

News from around the web!

Cool “Operation” games using Circuit Playground Express made by High School Students via Twitter & Instagram. Our guide is here – learn.adafruit.com

Raspberry Pi 3 robot powered by CircuitPython and iOS app in Swift by John Gallaugher – Twitter. John is also posting up the videos “Raspberry Pi, Python robot controlled over WiFi using MQTT, with iOS app built in Swift + CocoaMQTT, MakerSnack: Configuring a Raspberry Pi w/o connecting it to a keyboard or mouse, and Installing CircuitPython on the Raspberry Pi via a MacBook”YouTube.

Eurorack function generator made with an Adafruit Metro, written in CircuitPython by Dr_Speed – Flickr.

Coding and creating with Circuit Playground – Arkansas Department of Education.

We added a bunch of CircuitPython, Raspberry Pi, Radio Bonnets with OLED – RFM69 or LoRa – RadioFruit.

JP, John Park, was on Cool Tools Show 159 and talked about CircuitPython! You know JP from his weekly show and guides at Adafruit. John is a professional maker. He builds creative technology projects, tutorials, and videos for Adafruit Industries. John hosted the Emmy-nominated Make: Television show on American Public Television. Prior to joining Adafruit, John worked in computer graphics, including twelve years in animation at Disney. John is an amateur circus aerialist and a synthesizer enthusiast – Cool Tools.

Using CircuitPython on the LumiDrive – Sparkfun.

If you have a custom PCB design and you’d like to add a little Bluetooth Low Energy, this module is ultra-compact and easy to use. It contains a Nordic nRF52832 Cortex M4 chip that comes integrated with BLE radio, USB as well as most of the supporting circuitry and even a chip antenna – Adafruit. This is what we use for the CircuitPython powered Adafruit Feather nRF52840 Express.

Blitz City DIY is working on an Adafruit Crickit using CircuitPython seesaw IR for analog signaling – Twitter.

CircuitPython and TinyLiDAR: Simple Example – Instructables. Also by Kevin: CircuitPython and Bearables Badge.

Cecilia Hillway made this super cool Ladyada Funko Pop drawing with a Circuit Playground Express 🙂 – Twitter.

Current State of the Giant Board, blinking some LEDs with CircuitPython! – Groboards.

Calliope mini is a small educational development board made for primary school and up, and we now stock it – Adafruit. It runs MicroPython! – GitHub.

Getting MicroPython on a Sonoff Smart Switch – Cloud4RPI.

MicroPython and LumpyBoardpetanikode.com Here are couple videos about the LumpyBoard as well.

5x5x5 Rubik’s Cube solving robot. Runs MicroPython on a custom built board with a ESP32 Wrover module – YouTube.

ws2812-SPI, an efficient MicroPython WS2812 (NeoPixel) driver – GitHub.

ucryptoauthlib, lightweight driver for Microchip Crypto Authentication secure elements, written in pure Python for MicroPython – GitHub.

Kalliope is a framework that will help you to create your own personal assistant – GitHub.

18 Python programming books for beginners and veterans – opensource.com

Convert any Python file into a single line of code onelinerizer.com & GitHub.

Outperforming everything with anything Python? Sure, why not? – wordsandbuttons.online

Oil is a new Unix shell, this repo contains a bash-compatible shell called OSH, written in Python – GitHub.

Machine-Learning-with-Python, small scale machine learning projects to understand the core concepts – GitHub.

How Python made it big at Microsoft – techrepublic.com

Learn Python, from Top 50 Articles for the Past Year v.2019 – mybridge.co

Comprehensive Python Cheatsheet – GitHub.

Distributing Standalone Python Applications – gregoryszorc.com

Flair, a very simple framework for state-of-the-art Natural Language Processing (NLP) – GitHub.

Popular PyPI projects made in 2018 by Dustin Ingram.

Python can be now downloaded from the Microsoft Storemspoweruser.com

This is a good tip via Twitter “If you’re on macOS and have Homebrew installed, run brew cask install quicklook-json and Quick Look will let you look into JSON files properly.” And here are some good Quick Look plugins – GitHub.

The State of the Octoverse: Machine Learning – GitHub.

2018 GitHub Transparency Report – GitHub.

SCRIPT-8 is a fantasy computer for making, sharing, and playing tiny retro-looking games (called cassettes). It’s free, browser-based, and open-source – GitHub.

6 Ed Tech Tools to Try – cultofpedagogy.com

PyDev of the Week: Lorena Mesa from Mouse vs Python

CircuitPython weekly meeting for January 22nd, 2019 on YouTube on diode.zone

CircuitPython weekly meeting for January 28th, 2019 on YouTube on diode.zone

#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Support for CircuitPython has been added to the Makerdiary nRF52840 MDK USB dongle.

Made with Mu

A sneak peak at initial Mu work that allows you to add and remove 3rd party Python packages via Python packaging for use within Mu’s isolated Python environment – Twitter. This, and a few other fun, useful and interesting features will be part of the upcoming 1.1 alpha 1 release.

Zenith is the #circuitpython Discord channel is exploring some new graphics and ideas for Mu.

Additionally, we added a Mu emoji to the Discord server, just type :mu: to use it.

Bett 2019 micro:bit hacks – Using Mu with micro:bit.

Coming soon

Here is the upcoming nRF52840 based Metro Express. This board has QSPI flash, native USB, BTLE and is shield compatible. You can power it from USB, DC power jack or from a Lipoly battery (there’s a built in charger circuit). We tried out a USB C connector, it’s our first board with C. The nRF52840 can run CircuitPython or Arduino!

With the ESP32 WiFi co-processor work we’re doing, a plain ESP32 breakout would come in really handy. No USB to serial converter or extra stuff to complicate it, just the pins broken out, power supply, two buttons, and LED.

The ATECC608A is a cryptographic coprocessor with secure hardware-based key storage from Microchip – it can store your keys or certificates so you don’t have to worry about plaintext data or people reverse engineering your firmware. It supports SHA-256, HMAC and AES-128 algorithms which can offload computation from your main chip. This breakout will be a great addition to our Arduino and CircuitPython boards, could also be useful for SBC like Raspberry Pi if you want to keep a secret off of the SD card.

ItsyBitsy nRF52480 runs CircuitPython. Thinking of calling all these nRF boards NARF.

Scott’s working on displaying text right from the terminal. We’ve also been looking at a lot of retro, bitmapy’ like fonts here are a few link we were sharing: Miniml fonts by Craig Kroeger are vector-based pixel web fonts designed to remain aliased in web applications. The fonts are cross-browser and cross-platform compatible, including Retina display support, Fontstructions in the “Game Recreations” set, and The Ultimate Oldschool PC Font Pack.

New Learn Guides!

How to Program SAMD Bootloaders from Brent Rubell

Adafruit Prop-Maker FeatherWing from Kattni

Updated Guides – Now With More Python!

You can use CircuitPython libraries on Raspberry Pi! We’re updating all of our CircuitPython guides to show how to wire up sensors to your Raspberry Pi, and load the necessary CircuitPython libraries to get going using them with Python. We’ll be including the updates here so you can easily keep track of which sensors are ready to go. Check it out!

Adafruit 8-Channel PWM or Servo FeatherWing

Adafruit 16 Channel Servo Driver with Raspberry Pi

Adafruit PCA9685 16-Channel Servo Driver

CircuitPython Libraries!

CircuitPython support for hardware continues to grow. We are adding support for new sensors and breakouts all the time, as well as improving on the drivers we already have. As we add more libraries and update current ones, you can keep up with all the changes right here!

For the latest drivers, download the Adafruit CircuitPython Library Bundle.

If you’d like to contribute, CircuitPython libraries are a great place to start. Have an idea for a new driver? File an issue on CircuitPython! Interested in helping with current libraries? Check out this GitHub issue on CircuitPython for an overview of the State of the CircuitPython Libraries, updated each week. We’ve included open issues from the library issue lists, and details about repo-level issues that need to be addressed. We have a guide on contributing to CircuitPython with Git and Github if you need help getting started. You can also find us in the #circuitpython channel on the Adafruit Discord. Feel free to contact Kattni (@kattni) with any questions.

You can check out this list of all the CircuitPython libraries and drivers available.

The current number of CircuitPython libraries is 129!

New Libraries!

Here’s this week’s new CircuitPython libraries:

Updated Libraries!

Here’s this week’s updated CircuitPython libraries:

PyPI Download Stats!

We’ve written a special library called Adafruit Blinka that makes it possible to use CircuitPython Libraries on Raspberry Pi and other compatible single-board computers. Adafruit Blinka and all the CircuitPython libraries have been deployed to PyPI for super simple installation on Linux! Here are the top 10 CircuitPython libraries downloaded from PyPI in the last week, including the total downloads for those libraries:

| Library                                     | Last Week   | Total |
|:-------                                     |:--------:   |:-----:|
| Adafruit-Blinka                             | 963         | 16962 |
| Adafruit_CircuitPython_CharLCD              | 518         |  7538 |
| Adafruit_CircuitPython_BusDevice            | 441         |  8306 |
| Adafruit_CircuitPython_RFM69                | 326         |  5402 |
| Adafruit_CircuitPython_Crickit              | 173         |  2802 |
| Adafruit_CircuitPython_RFM9x                | 172         |  2567 |
| Adafruit_CircuitPython_TMP006               | 172         |  2202 |
| Adafruit_CircuitPython_MPR121               | 170         |  2902 |
| Adafruit_CircuitPython_74HC595              | 170         |  2675 |
| Adafruit_CircuitPython_TrellisM4            | 167         |  2615 |

Upcoming events!

PyCascades 2019! February 23 — 24, 2019, Seattle. WA. PyCascades is a two-day Python conference that will be held in the scenic coastal city of Seattle, Washington (USA).

Nina Zakharenko will be doing a talk “Light Up Your Life – With Python and LEDs!” which includes CircuitPython!

Organized by members of the Python communities in Vancouver, Seattle, and Portland, the hosts aim to bring together Python users and developers from both the Pacific Northwest and around the world – 2019.pycascades.com Tickets are on sale now!

May 2019 Cleveland, Ohio! The PyCon 2019 conference, which will take place in Cleveland, is the largest annual gathering for the community using and developing the open-source Python programming language. It is produced and underwritten by the Python Software Foundation, the 501(c)(3) nonprofit organization dedicated to advancing and promoting Python. Through PyCon, the PSF advances its mission of growing the international community of Python programmers – PyCon.

Speaking of events, here are “8 Python conferences to attend in 2019” – opensource.com

Latest releases

CircuitPython’s stable release is 3.1.2 and its unstable release is 4.0.0-beta.1. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20190126 is the latest CircuitPython library bundle.

v1.10.0 is the latest MicroPython release. Documentation for it is here.

3.7.2 is the latest Python release.

857 Stars Like CircuitPython? Star it on GitHub!

Call for help – CircuitPython messaging to other languages!

We recently posted on the Adafruit blog about bringing CircuitPython messaging to other languages, one of the exciting features of CircuitPython 4.x is translated control and error messages. Native language messages will help non-native English speakers understand what is happening in CircuitPython even though the Python keywords and APIs will still be in English. If you would like to help, please post to the main issue on GitHub and join us on Discord.

We made this graphic with translated text, we could use your help with that to make sure we got the text right, please check out the text in the image – if there is anything we did not get correct, please let us know. Dan sent me this handy site too.

10,271 thanks!

The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 10,271 humans, thank you! Join today! https://adafru.it/discord

ICYMI – In case you missed it

The wonderful world of Python on hardware! This is our first video-newsletter-podcast that we’re trying out! The news comes from the Python community, Discord, Adafruit communities and more. It’s part of the weekly newsletter, then we have a segment on ASK an ENGINEER and this is the video slice from that! The complete Python on Hardware weekly VideoCast playlist is here.

Making Awesome-CircuitPython more awesome!

We did some updates to adafruit/awesome-circuitpython: A curated list of awesome CircuitPython guides, videos, libraries, frameworks, software and resources.. Here’s what was updated/added:

Code

Hardware

  • Added releases.
  • Updated Adafruit CircuitPython boards – Adafruit Circuit Playground Express, Adafruit Feather M0 Express, Adafruit Feather M4 Express, Adafruit Feather nRF52840 Express, Adafruit GEMMA M0, Adafruit Grand Central M4 Express featuring the SAMD51, Adafruit HalloWing M0 Express, Adafruit ItsyBitsy M0, Adafruit ItsyBitsy M4, Adafruit METRO M0 Express, Adafruit Metro M4, Adafruit NeoTrellis M4, Adafruit Trinket M0.
  • Added Arduino – Arduino MKR 1300, Arduino MKR ZERO, Arduino ZERO.
  • Added Electronic Cats – CatWAN USB Stick, Meow Meow.
  • Added MakerDiary – nRF52840 Micro Dev Kit USB Dongle.
  • Added Mini Sam – Mini SAM development board.
  • Added Nordic Semiconductor – nRF52840 DK board PCA10056, nRF52840 dongle PCA10059.
  • Added Particle – Particle Argon, Particle Boron, Particle Xenon.
  • Added/Updated SparkFun – SparkFun Pro nRF52840 Mini – Bluetooth Development Board, SparkFun SAMD21 Mini Breakout, SparkFun SAMD21 Dev Breakout. Sparkfun LumiDrive LED Driver, and SparkFun RedBoard Turbo – SAMD21 Development Board, support CircuitPython but are not in releases until pull request is received to add.

News

Social

Events

Swag

Contributions and suggestions are always welcome! Please make pull requests to modify Awesome CircuitPython.

Contribute!

The CircuitPython Weekly Newsletter is a CircuitPython community-run newsletter emailed every Tuesday. The complete archives are here. It highlights the latest CircuitPython related news from around the web including Python and MicroPython developments. To contribute, edit next week’s draft on GitHub and submit a pull request with the changes. Join our Discord or post to the forum for any further questions.