Close
0%
0%

Circuit Python Hack Chat

We'll be chatting with Scott and Dan from Adafruit about coding in Circuit Python

Friday, February 2, 2018 12:00 pm PST - Friday, February 2, 2018 12:30 pm PST Local time zone:
Hack Chat
Similar projects worth following

Join this Hack Chat by clicking on the JOIN HACK CHAT button. 


______________________________________________________________________________

Scott Shawcroft and Dan Halbert from Adafruit will be co-hosting the Hack Chat this week.
This Hack Chat is at noon PST, Friday, February 2nd.

Time Zones got you down? Here's a handy count down timer!

CircuitPython is based on the open-source MicroPython which brings the popular Python language to micro-controllers. The goal of CircuitPython is to make hardware programming as simple and easy as possible. You can also support MicroPython and the creator, Damien George by purchasing official PyBoards at Adafruit as well as MicroPython stickers

In this week's chat, Scott Shawcroft and Dan Halbert from Adafruit will talk about Circuit Python and answer any questions that you may have. 

Scott Shawcroft started working with Adafruit on MicroPython in September 2016 and has led the (renamed) CircuitPython effort ever since. He has a Computer Engineering degree from the University of Washington ('09). He worked at Google on Google Maps prior to starting his own hardware and freelance software engineering company Chickadee Tech. He has two cats, Vin and Spook.

Dan Halbert starting using and working on CircuitPython early in 2017 and joined Adafruit in August of that year. He has CS degrees from MIT (SB '78) and UC Berkeley (PhD '84). He's worked on programming for non-programmers, object-oriented programming languages and IDEs, and also speech and face recognition. Dan is the original author of the UNIX `more` command.

In this chat, we'll discuss:

  • What is CircuitPython? (history, current boards, etc.)
  • What is the goal for CircuitPython?
  • What are the future plans for CircuitPython?
  • Answer technical questions abut Circuit Python!

Adafruit launched Circuit Python in 2017, and came on the Hack Chat to discuss it with us. Here's a video of what went on.

  • Circuit Python Hack Chat Transcript Part 2

    Shayna02/02/2018 at 21:08 0 comments

    PART 1 OF TRANSCRIPT: https://hackaday.io/event/34310-circuit-python-hack-chat/log/86930-circuit-python-hack-chat-transcript-part-1

    Stephen : This running CircuitPython on other boards is getting at @Clifton 's question: How easily can I get started with Circuit Python? Can I use CircuitPython on a standard Arduino board or do I need a custom board or a custom setup?

    mxwrench : I bought Feather M0 express, Playground express, ESP32 Huzzah, and Trinket express. Was hoping to use ESP32 for project, because of multiple AtoD inputs, but if M0 will work then that is my 2nd option.

    Dan Halbert : @clifton you could arduino zero, if you have one: we have a build for that

    Dan Halbert : does NOT work on AVR boards like Uno R3: much too little flash and RAM

    Dan Halbert says:3:50 PM does NOT work on AVR boards like Uno R3: much too little flash and RAM

    Kattni : @Clifton It's incredibly easy to get started if you have the right board, you plug it in and using any plain-text editor you can begin coding. The M0 and M0 express boards are the best and easiest to use.

    Dan Halbert : The Circuit Playground is wonderful because it has so many builtin peripherals: NeoPixels, mic, speaker, IR, temp, light, acceleromters.

    Stephen : Tell us more about the Circuit Playground

    limor : My favorite is the Trinket M0 https://www.adafruit.com/product/3500 IT IS SO SMOL

    David Glaude : It is Circuit Playground Express. Express is important because it mean more space for libs.

    tannewt : 

    DLBoyd151 : A good editor to check out is the Mu-editor

    Dan Halbert : right, CPy won't work on Circuit Playground classic: that's an AVR-based board

    Kattni : @Stephen The Circuit Playground Express has a beginner library written for it that makes it super simple to get started with CircuitPython. There's tons of stuff built in so you can learn a lot about electronics and hardware as well without needing to solder or breadboard anything.

    limor :

    limor : *so tiny* *so python*

    David Glaude : And there is a great demo code for the CPE (ho wait... not available yet).

    Kattni : It also works with more complicated projects, so you're not limiting yourself by starting with this board.

    Clayton G. Hobbs : so small that the silkscreen for the board name is on an extra tab :v

    ɖҿϝիɟթվ : I made a bunch of shields for the trinket m0: #Trinket Shields

    Todd : Awesome work Adafruit!

    Dan Halbert : built-in dotstar, has touch, and all the usual peripherals

    Shayna : I want that and I also want the manicure

    limor : yeah those are some nice nails - inspiring :)

    Thomas Shaddack : lots of interesting photonics and material engineering and photochemistry can be found in nailwork.

    Stephen : One more tech timeline question from @Charlie Lindahl : So when will ESP32 Feather support be real instead of just beta?

    tannewt : @Stephen MicroPython support for esp32 is currently in beta and up to Damien when that will be stable. We'll probably work on it after 4.0 which is a ways away.

    Stephen : And let's end with one final fun question: what's each of your favorite projects you've seen or worked on using CircuitPython?

    DLBoyd151 : The pixeldust project

    DLBoyd151 : https://learn.adafruit.com/digital-sand-dotstar-circuitpython-edition/code

    tannewt : @Stephen my favorite is @ɖҿϝիɟթվ 's uGame

    Dan Halbert : I like the Circuit Playground Express sound and motion-sensitive projects.

    Kattni : I have 2: I'm still super happy with my first project in CircuitPython - a tone piano...

    Read more »

  • Circuit Python Hack Chat Transcript Part 1

    Shayna02/02/2018 at 20:08 0 comments

    Stephen : Okay, it's GO TIME! A huge welcome to @tannewt and @Dan Halbert from Adafruit, here to talk to us about CircuitPython.

    sommersoft : GO TIME!

    Stephen : Would you two start us off by introducing yourselves?

    Shayna : woohoo

    Stephen : Who you are, what you do, and what you're excited to share with us today?

    limor : Hii its me ladyada! i'm the lead engineer and owner of adafruit industries! i love to do electronics and write firmware

    tannewt : I'm Scott, I'm the project lead for CircuitPython. I do core work in addition to organizing our awesome community.

    Dan Halbert : I'm Dan. I've been on staff with Adafruit working on CircuitPython since August. We're having a wonderful time building CPy for you folks for your maker, educational, protototyping, and fun projects.

    tannewt : I'm excited to talk about how awesome CircuitPython is for beginners

    Kattni : Hello, I'm Kattni. I'm a Creative Engineer and one of the CircuitPython developers. I'm super excited to share how amazing CircuitPython is and how important the community is to it's development!

    Jani Turunen : what is ETA for CircuitPython 3.0?

    tannewt : @Jani Turunen hoping to do it by pycon in May. We have a long list of open issues for it still

    Stephen : Fantastic. Welcome! Let's get started with the basics: What is CurcuitPython, and why was it created?

    Stephen : An extra hello to @Kattni as well

    x : w00t https://us.pycon.org/2018/

    pt : (I'm phil, here for support, made hackaday 13 years ago, ladyada is my boss)

    limor : ok! first Q!

    limor : CircuitPython is a variant of MicroPython which is itself a variant of Python 3

    tannewt : We'll be at pycon US!

    x : how does CircuitPython compare to the micropython project itself, and what's the process for upstreaming contributions?

    tannewt : @x Differences are documented here: https://github.com/adafruit/circuitpython#differences-from-micropython We don't actively upstream anything but all of our code is open source so upstream can merge it as they like.

    Clifton : Is the video live? I don't see Lady Ada's messages here.

    Professor Fartsparkle : https://www.youtube.com/watch?v=JH-b2Gk5gfU

    limor : Python is the most popular programming language, and has some really cool things built in to it that makes it easy to teach electronics

    limor : I have been using other microcontroller systems like PIC CCS, AVR and Arduino for a reallllly long time. but its challenging for beginners

    pt : adafruit is a pycon 2018 sponsor https://us.pycon.org/2018/

    limor : you have to set up an IDE, compiler, toolchain. What I <3 about Python is that all goes away, the code lives on the device. Its easy to edit and very fast to iterate

    ɖҿϝիɟթվ : @pt awesome, are you going to have a booth this time?

    limor : and best of all *no more* BUFSIZE

    limor : we as humans are *bad* at BUFSIZE

    limor : :)

    limor : so thats what it is and why it was created

    tannewt : @ɖҿϝիɟթվ No booth, they take too much time

    ... Read more »

View all 2 event logs

Enjoy this event?

Share

Discussions

tinkeringtech wrote 02/02/2018 at 20:59 point

what's the max number of neopixel you can drive with a trinket m0? Assuming you have proper power. 

  Are you sure? yes | no

tannewt wrote 02/02/2018 at 21:10 point

Something like 8000+ but you will start to have issues with speed depending on the length of the strips.

  Are you sure? yes | no

Charlie Lindahl wrote 02/02/2018 at 20:56 point

Love the Trinket shields, where do I BUY ONE? 

  Are you sure? yes | no

deʃhipu wrote 02/02/2018 at 21:13 point

I only made them as one-offs to see if they can be done, but all the design files are available at #Trinket Shields, so you can order them from OSHPark and make your own versions. I can help you with that.

  Are you sure? yes | no

Charlie Lindahl wrote 02/02/2018 at 20:52 point

So when will ESP32 Feather support be real instead of just beta? I'm not being super fancy in my application --- just controlling some LEDS and/or playing via the MusicMaker Feather board. 

  Are you sure? yes | no

tannewt wrote 02/02/2018 at 21:11 point

Thats up to Damien for MicroPython support. We haven't started looking at the ESP32 for CircuitPython yet.

  Are you sure? yes | no

tinkeringtech wrote 02/02/2018 at 20:39 point

my experience with uF2 has been great so far!

  Are you sure? yes | no

Kattni wrote 02/02/2018 at 21:43 point

@tinkeringtech That's great  to hear!

  Are you sure? yes | no

xBeau wrote 02/02/2018 at 20:33 point

are you adding ESP32 to the CircuitPython ports

  Are you sure? yes | no

tannewt wrote 02/02/2018 at 21:12 point

Its on our radar but won't happen any time soon. We're currently focused on the SAMD51 and nRF52.

  Are you sure? yes | no

tinkeringtech wrote 02/02/2018 at 20:32 point

have you seen problems with the UF2 bootloader approach as yet with certain PCs not enumerating the M0 properly? Is this the approach you will take for future boards?

  Are you sure? yes | no

Dan Halbert wrote 02/02/2018 at 21:47 point

We haven't seen enumeration problems, but on Windows the boards appear as three different COM ports (Arduino, UF2, and CircuitPython). The Arduino IDE isn't good at picking the right one automatically, so you have to do it yourself. We love UF2 in general because it makes it really easy to update firmware, whether CircuitPython, MakeCode, or something else.

  Are you sure? yes | no

Ben Vinson wrote 02/02/2018 at 20:27 point

Since it was "leaked" earlier in the chat, I'll be brave and ask: What is the performance boost over the SAMD51 (M4) vs the SAMD21 (M0)? Also, when the M4 is released, will it be the 1MB flavor and how much will be available for CP?

  Are you sure? yes | no

tannewt wrote 02/02/2018 at 21:14 point

The performance boost is something like 10x due to faster processor speed and faster floating point operations. @limor measure 6x for pin toggling.

The first versions will be the 512k flash 192k ram because they are more readily available.

  Are you sure? yes | no

peter wrote 02/02/2018 at 20:25 point

 Has the web interface improved?

  Are you sure? yes | no

tannewt wrote 02/02/2018 at 21:14 point

We haven't improved the web interface in CircuitPython at all.

  Are you sure? yes | no

Clifton wrote 02/02/2018 at 20:24 point

How easily can I get started with Circuit Python? Can I use CircuitPython on a standard Arduino board or do I need a custom board or a custom setup?

  Are you sure? yes | no

tannewt wrote 02/02/2018 at 21:15 point

Very easily! You'll need a board running a SAMD21 and load it with bossac. The Arduino Zero will work. Older Arduinos will not because they are not 32-bit CPUs.

  Are you sure? yes | no

James wrote 02/02/2018 at 22:01 point

there is a welcome guide https://learn.adafruit.com/welcome-to-circuitpython which should help you get started.

  Are you sure? yes | no

brentru wrote 02/02/2018 at 20:22 point

Is support for asynchronous io in the pipeline for 3.0 or later?

  Are you sure? yes | no

tannewt wrote 02/02/2018 at 21:15 point

Not for 3.0 but we'll look into it later.

  Are you sure? yes | no

xBeau wrote 02/02/2018 at 20:17 point

does CircuitPython have any roadmap for WebREPL support

  Are you sure? yes | no

tannewt wrote 02/02/2018 at 21:16 point

It works already in ESP8266 as it does in MicroPython. We haven't changed it at all for CircuitPython.

  Are you sure? yes | no

xBeau wrote 02/02/2018 at 20:17 point

have you thought about implementing a ++ & -- operation to CircuitPython I really miss being about to do something like "if i++ < 10:"

  Are you sure? yes | no

tannewt wrote 02/02/2018 at 21:17 point

Nope, Python chose not to implement it and we want to preserve compatibility with it.

  Are you sure? yes | no

Clifton wrote 02/02/2018 at 20:16 point

What major applications/devices/products has Micro Python been used in?

  Are you sure? yes | no

tannewt wrote 02/02/2018 at 21:20 point

Damien, the creator of MicroPython, is currently working with the European Space Agency to qualify it for running on satellites. There are development boards such as WiPy, pyboard and Adafruit's Trinket and Gemma that use it as well.

  Are you sure? yes | no

Felix wrote 02/02/2018 at 20:16 point

Will numpy or scipy be ported someday for CircuitPython?

  Are you sure? yes | no

tannewt wrote 02/02/2018 at 21:21 point

Not any time soon. They are very large libraries. However, you can use CircuitPython to collect data to analyze with numpy and scipy on a desktop computer.

  Are you sure? yes | no

stephensb wrote 02/02/2018 at 20:16 point

Are there any circuitpython boards with onboard wifi/ble or plans to make them in the future?

  Are you sure? yes | no

tannewt wrote 02/02/2018 at 21:23 point

The ESP8266 has support for CircuitPython and provides wifi. We've just incorporated BLE support into our master branch for the nRF52. Those both support existing Feather boards and we'll likely create a new feather for CircuitPython and the nRF52840.

  Are you sure? yes | no

Bryan wrote 02/02/2018 at 20:16 point

Question: The Adafruit Feather M0 Wifi also runs the SAMD21 chip, so I'm wondering if there's any docs related to running/flashing the CircuitPython env onto a Feather?

  Are you sure? yes | no

tannewt wrote 02/02/2018 at 21:26 point

You can run CircuitPython on it but it won't be able to use the wifi. Instructions to flash it are here: https://learn.adafruit.com/welcome-to-circuitpython?view=all#non-uf2-installation

  Are you sure? yes | no

deʃhipu wrote 02/02/2018 at 21:27 point

You can simply flash the M0 basic firmware on it, and it will work fine, it won't however give you access to WiFi. You could write a library to do that, but you will quickly run out of memory.

  Are you sure? yes | no

xBeau wrote 02/02/2018 at 20:15 point

what have the major performance challenges been with CircuitPyton, and do you differ to C/C++ for anything in particular vs straight Python

  Are you sure? yes | no

deʃhipu wrote 02/02/2018 at 21:25 point

The memory is a huge issue, there is never enough of it — all those dynamically allocated objects can fragment your memory quite fast. I'm really looking forward to some of the improvements for memory allocation in 3.0. Other than that, when you need speed, you simply write that part in C and import it as a Python module, so you can do pretty much anything.

  Are you sure? yes | no

tannewt wrote 02/02/2018 at 21:28 point

We do defer to C code when we need stronger timing guarantees. For example, the neopixel code is written in C because we need to precisely control the pin output.

  Are you sure? yes | no

bejecreimer wrote 02/02/2018 at 20:11 point

How close can you get to the hardware layer and still maintain python/cython syntax? Will new syntax be created to give more control over specific hardware?

  Are you sure? yes | no

tannewt wrote 02/02/2018 at 21:30 point

Pretty close! We can use Python unless we need specific timing guarantees. We won't add new syntax per se but we will add additional modules for new functionality. We are careful to do it in a way that will work across different microcontrollers.

  Are you sure? yes | no

David Glaude wrote 02/02/2018 at 20:09 point

Any CircuitPython presence at FOSDEM in Belgium this week-end?

  Are you sure? yes | no

deʃhipu wrote 02/02/2018 at 21:21 point

There is going to be a MicroPython table, and I sent some of my CircuitPython projects to be shown there, but I don't know of any person involved with CircuitPython coming.

  Are you sure? yes | no

James wrote 02/02/2018 at 20:09 point

per the front page of hackaday there were several comments debating compiled vs interpreted languages and also python vs javascript. 

What makes this a good starting point for getting involved with electronics, programming, and making things? why should someone choose this over other choices(arduino, makecode, javascript etc)?

  Are you sure? yes | no

deʃhipu wrote 02/02/2018 at 21:22 point

In my experience the most important game-changer is the interactive console. It really makes a huge difference when you can type a command and *immediately* see an effect — you just *feel* what is happening much better then.

  Are you sure? yes | no

Frank Buss wrote 02/03/2018 at 15:05 point

IKR? Forth had this in 1970, and only now people are beginning to add this to languages and embedded systems again.

  Are you sure? yes | no

Kattni wrote 02/02/2018 at 21:27 point

@James CircuitPython is designed with beginners in mind. The whole concept was built around lowering the barrier to entry to the maker world and simplifying experimentation with code and electronics. Getting started is as easy as plugging in the board, opening any plain-text editor, and writing code. The boards show up as a USB drive, so you can drag files directly to them. There's no compiling code, the copied file runs immediately, and you get to see results right away. Further, there is a huge support ecosystem as well including Learn Guides, documentation, forums and a live chat on Discord. The community built around it is already solid and is still growing. You can start from knowing nothing about these things and begin learning immediately. And when the are problems, the community and support ecosystem are available to help you through.

  Are you sure? yes | no

Interested in attending?

Become a member to follow this event or host your own