News for hackers. Stuff that matters.
Re:CircuitPython: Programming Hardware in Python by xrd on Tuesday January 26, 2021 @11:26PM (#25924269)
What adafruit board would be best for a beginner (at circuit python but long time developer otherwise) dad and his 8 year old kid?
Re:CircuitPython: Programming Hardware in Python by gorgoiler on Wednesday January 27, 2021 @12:54AM (#25924794)
Circuit Playground is the hardware product that goes hand in hand with CircuitPython, but you’ll probably want to program it using makecode instead.

Version 2 called “Circuit Playground Express” is currently very popular. V1 is obsolete, and there’s a version 3 with Bluetooth. All of them are pre-built with sensors, RGB LEDs, and buttons. This removes a huge hurdle: no soldering required. (Soldering is a fun skill but so is baking bread and cross country hiking — most kids are usually 100% focused on making blinking lights and don’t want to do anything tangential.)

Right now, only version 2 is supported by http://makecode.adafruit.com. makecode is different to CircuitPython: you write your code in JavaScript either using a visual block language or directly in the online JS IDE — both of which are very high quality dev environments with excellent discoverability — and compile everything into a new .UF2 firmware for the device to load each time. The site provides an emulator which is another killer feature. You can go there right now and start programming a board.

CircuitPython on the other hand is itself a pre baked UF2 firmware with a Python interpreter built in. Because your dev tools (runtime, debugger) are now on the device you have less memory to play with and it’s less stable, in my experience. It’s also not immediately obvious how to get things done, compared with the makecode IDE.

With my teenage pupils it was only the makecode JS / block programming that lit up their eyes. The Python tools were too weird. Devices like this are about playfulness and doing weird stuff, and only tangentially about programming, I’ve found.

The killer feature of Circuit Playground was the v2/“Express” (CPE) board with its infrared transmit and receive functionality. Connectivity turns these things from toys into real hacking platforms. I spent the holidays making IR “WiFi” for a pool of 8 CPEs.

The v3 Bluetooth-enabled board sounds great but it won’t be as popular with my classes if it doesn’t support makecode (which it currently does not.)

Re:CircuitPython: Programming Hardware in Python by xrd on Wednesday January 27, 2021 @01:26AM (#25924972)
This is a fantastic write-up. Thank you.

Are the details of your classes online anywhere?

Re:CircuitPython: Programming Hardware in Python by gorgoiler on Wednesday January 27, 2021 @02:41AM (#25925392)
Thanks. I don’t, but you don’t need the structure of a class. My Circuit Playground stuff all happens as an after school club.

I let the kids riff, then review their project before showing them a new idea. It’s like they are learning a modern era computer game where there are no manuals, only self discovered game mechanics.

(CS classes have much more structure but are more niche and for the older pupils.)

Re:CircuitPython: Programming Hardware in Python by dolmen on Thursday January 28, 2021 @12:33PM (#25945336)
What do you think of LEGO Boost and LEGO Mindstorms?
Re:CircuitPython: Programming Hardware in Python by kylepdavis on Wednesday January 27, 2021 @02:06AM (#25925175)
Great timing. I just showed my kids some of the things you can do with this on the Circuit Playground Bluefruit[1] earlier today. It comes with a lot of sensors and is full of possibilities.

For getting started fast I can't recommend MakeCode[2] enough. It's a web IDE with a compiler and device simulator for programming microcontrollers with blocks or JavaScript/Python.

That said, for more complex projects CircuitPython might be a better choice. There are tons of docs and lots of great examples. It re-runs your code every time you save so you get instant feedback. Also, the vscode-circuitpython[3] plugin has been really nice too.

[1]: https://www.adafruit.com/product/4333

[2]: https://maker.makecode.com

[3]: https://marketplace.visualstudio.com/items?itemName=joedeviv...

Re:CircuitPython: Programming Hardware in Python by agravier on Wednesday January 27, 2021 @12:00AM (#25924489)
It's not Adafruit (although they make lots of kits for it) but I'd advise the micro:bit v2 (https://microbit.org/new-microbit/)
Re:CircuitPython: Programming Hardware in Python by riq_ on Tuesday January 26, 2021 @11:33PM (#25924339)
from a programming point of view, all are the same. But if you want to introduce your kid to play with sensors and other stuff, I'd get Playground Blefruit[1]

[1]: https://www.adafruit.com/product/4333

Re:CircuitPython: Programming Hardware in Python by ducktective on Tuesday January 26, 2021 @11:39PM (#25924377)
Seconded. Pick something with wireless connectivity and lots of on-board sensors/LEDs.
Re:CircuitPython: Programming Hardware in Python by M5x7wI3CmbEem10 on Wednesday January 27, 2021 @12:26AM (#25924645)
any add-ons that you’d recommend? or other stuff for kids playing with Python?

maybe an arduino board plus a raspberry pi?

Re:CircuitPython: Programming Hardware in Python by ducktective on Wednesday January 27, 2021 @12:53AM (#25924787)
Depends on the level of abstraction you and your kid are willing to get into.

Arduino's are lower-level C/C++ which may be a little more complex than CP, but have much broader library support (better intro to EE/embedded).

RPis are much higher level which could be programmed in any language (better intro to CS/Linux).

Re:CircuitPython: Programming Hardware in Python by M5x7wI3CmbEem10 on Wednesday January 27, 2021 @11:52AM (#25930466)
for kids, so ideally not as low as C++
Re:CircuitPython: Programming Hardware in Python by raykamp on Tuesday January 26, 2021 @11:37PM (#25924362)
Adafruit’s line of “featherboards” are pretty neat and user friendly. For circuit python, you plug the board in over usb. It’s detected as a mass storage device like a usb drive. You drag and drop a python file over to it that you want to run. https://www.adafruit.com/product/4516