Paul Cutler
S04:E36

Paul Cutler

Episode description

It’s the final episode! Tod Kurt returns and serves as guest host and interviews Paul. Paul shares how he started with open source, his favorite project, exciting things coming to CircuitPython, and more.

00:00 Welcome

00:40 How Paul first got started with computers

1:45 Paul’s start with open source

5:10 Learning Python

6:38 Discovering CircuitPython

8:50 Paul’s favorite CircuitPython project

13:22 Exciting things coming to CircuitPython

16:34 What would Paul like to see in CircuitPython in the future?

17:55 Tod’s thank you for The CircuitPython Show

18:55 Where to learn more about Paul’s work?

  • paulcutler.org - blog and project page

19:25 Which board?

Download transcript (.srt)
0:00

[Music]

0:05

Welcome to the Circuit Python Show. I'm your host Tod Kurt, taking over hosting

0:10

duties from the show's actual host Paul Cutler so that he can be a guest. Paul has

0:14

been using computers since a young age but did learn to code until he was in

0:17

his 40s. Paul has been contributing to open source projects for almost 20 years

0:22

including the Gnome Project and the Discogs Python Client. When he's not in

0:26

front of his computer you can find him listening to records from his vinyl

0:29

record collection. Paul, welcome to the show. It's great to be here, thanks for

0:34

guest hosting. Hey, my pleasure. I love the Circuit Python Show. So I guess we

0:39

should get to start with your background. How did you first get started with

0:42

computers and electronics? You know, I've been pretty privileged that I've been

0:46

around computers almost my entire life. I was probably nine or ten when we had our

0:51

first computer which was a Timex Sinclair TS-1000, which was really a modified Sinclair

0:57

ZX81 is what the rest of the world knew it as. And then we got a second one,

1:02

we got the TS-1500 which was a ZX Spectrum just a year or two later and I

1:06

played around with those for a couple years. You know, I remember getting those

1:09

magazines that were made out of newspaper and entering assembly code

1:13

trying to program them. You make one little mistake and you just want to tear

1:17

your hair out. But after a couple years we got an Apple IIc and I played around

1:22

with that and we got a 300 baud modem which was screaming fast at the time and

1:26

I got really into the bulletin board system scene. I loved BBS's and later we

1:32

had a 1200 baud modem and I would actually go to in real life meetups with

1:37

the different folks I met in the BBS as a teenager and from there it's just a

1:42

lifelong love of computers. That's great. So when was the time you started

1:47

getting into open source? Was it during the Apple II days or was it later?

1:51

Oh it was much later. I was a full-blown adult and it's the fault of the

1:57

game EverQuest of all things. So EverQuest came out in '99 and you could

2:03

cheat at EverQuest if you had a Linux computer. And I just happened to have a

2:08

second computer. I had been playing around with BOS actually a little bit

2:11

and then I had actually purchased Red Hat Linux from a retail store six months

2:17

earlier but it just sat in my closet until we started playing EQ with all my

2:21

friends and I realized I could take that second computer put Linux on it and

2:26

cheat at the game which was great. I know. That's cool. So I started using Linux and

2:34

I had the second computer next to my gaming computer and the more I used it

2:37

the more I liked it and I really loved the ethos that anyone could contribute

2:41

to it and after probably four or five years of using Linux this would probably

2:46

be around 2004-2005 I had done all the different distro hopping that people had

2:52

done. I had tried Ubuntu and I had tried Fedora and by the mid to late 2000s I

2:57

found a very small Linux distribution called Foresight and which isn't around

3:02

anymore but one of the things that they really tried to do was be really close

3:06

to upstream GNOME. So I started contributing to Foresight which led me

3:11

to contributing to GNOME and I got really into that. I joined the marketing

3:17

team and the sysadmin team even though I didn't really have a lot of sysadmin

3:20

skills but I had project management skills which are always needed in open

3:26

source projects. Yes, very much. And then I started writing a ton of documentation.

3:30

I served one term on the board of directors and yeah and it's been you

3:36

know 10 or 15 years since I probably left that scene but I just I loved it so

3:41

much. I've made lifelong friends in that community. I was gonna ask you if

3:46

you were a gnome or a KDE guy but I guess that answers that question. Oh yeah

3:50

I'm a gnome guy there's no doubt about that. And one of the things that I'm probably most proud of is I

3:56

was one of the first mentors for the GNOME outreach program for women that

4:00

was started in 2010. So I mentored a couple of women for documentation and

4:06

that program is still around. It's known today as the Outreachy program. Outreachy

4:10

is still around and offers paid internships for those subject to

4:14

systemic bias and under representation in tech and it promotes diversity in

4:18

open source. So it's kind of cool that it's still around after all these years.

4:22

That's great. Yeah the whole very underlooked aspect of open source I

4:28

think is the management and documentation of the projects. It's like

4:32

everyone's like oh we just just write the good code put it up on a repo and

4:36

like you're done. It's like no no no that's just the start you know.

4:41

Especially for really complex projects like a distro or a big like GUI

4:47

application there's like so many different levels of like you know the

4:50

code, the OS integration, the artwork you know it's just a huge

4:55

huge task. You're absolutely right and I didn't know how to code at all when I

4:59

was contributing so I'm a you know an example that you don't have to know how

5:03

to code to be able to give back to an open source project. Right so but at some

5:09

point you got into Python after after playing around with all this open source

5:13

stuff. I did. How did that happen? I had an itch. I really wanted to learn

5:18

programming. My wife is a developer and I had an itch to do it. I had time on my

5:24

hands and it was something that I've always wanted to do but never had the

5:28

discipline to do it so I went out and I bought a couple of Python books and

5:31

realized very quickly that I don't learn from books. I learned from video courses

5:38

and from hands-on projects is what I learned through the process so I took a

5:42

course on Coursera with Dr. Chuck which taught me the basics of Python. What's a

5:47

string? What's an int? You know how to manipulate strings and all that kind of

5:50

fun stuff and then right when I was getting into it Michael Kennedy who

5:54

hosts the Talk Python to Me podcast started Talk Python training and he had

5:59

a Kickstarter of learn Python by creating 10 apps so it was very project

6:05

based and was perfect so I bought that Kickstarter and then I kept buying

6:09

classes from Talk Python to Me. The way he teaches really clicked for me and it

6:15

taught me not just Python but I learned web frameworks like Pyramid and a couple

6:20

years later I learned the fast API web framework as well so I'm a big fan of

6:25

the Talk Python to Me classes and strongly recommend them for people that

6:28

are looking to get into Python. Oh that's cool we should put that in the show

6:32

notes I think then yeah? Absolutely I'll link to that. Right on right on and so and then how

6:38

long did it take you to find Circuit Python like when when sort of in the

6:42

history of Circuit Python did you come in and start playing with that? So I

6:46

started Python in about 2017 and I got into Circuit Python because I was into

6:52

Python I attended PyCon virtually in 2020 during the pandemic so it was the

6:56

first PyCon I ever ever attended which was pretty cool and Microsoft had a

7:01

booth a virtual booth at PyCon and if you did an exercise on these exercises

7:07

built into github and if you learned and did the exercise you got a $50 Adafruit

7:12

gift card and then they had a bonus exercise and I walked away with $100 in

7:16

Adafruit gift cards. I did what probably everyone does when you're first

7:22

starting out with Adafruit products I bought a Circuit Playground Express and

7:26

it probably sat in my in my drawer for a good six months before I got it back out

7:30

but it was during the pandemic and there was all we had was time on our hands and

7:34

then I started playing around with that and quickly fell in love with Circuit

7:40

Python it took two things that I love you know the the coding aspect of it but

7:44

combined with that physical world aspect of it here's a device that you can touch

7:49

and feel and I just thought that was the coolest thing ever. Yeah I've been

7:54

I've been I've bounced off of Python like normal desktop Python many times

7:59

over the last like 20 years or whatever always you know learned enough to do a

8:02

project and then kind of it you know I finished the project and then it leaves

8:07

my brain and I've been really happy with Circuit Python as a way to just learn

8:10

Python like I don't know any of the web frameworks yet like you're talking about

8:14

like Fast fast fast API fast API yeah like um you know I don't know anything I

8:20

don't know you that you need the real Python frameworks but I think I'm pretty

8:23

cognizant of how Python thinks in a way that I could actually learn those now

8:27

as I definitely could not before. Yeah fast API was a fun one to learn because

8:32

it's it was one of the fastest growing Python applications out there and it's

8:37

async which is great for a web web server and learning that taught me a lot

8:43

about you know how to program asynchronously as well as using the

8:48

latest and greatest that things that are out there. And you've got some project

8:51

now that you've created that that marries both desktop Python and fast API

8:56

and Circuit Python right? I do it's it's probably the the project I'm most proud

9:00

of I have a website called silversaucer.com that you can visit it was

9:04

inspired by a Neil Gaiman poem of all things and it combines my love of vinyl

9:09

records Python and Circuit Python so I learned how to use the Discogs API and

9:15

Discogs is a website that's been around for about 25 years and they crowdsource

9:20

all the different records and cassettes and CDs that are out there so for example

9:25

Pearl Jam's debut album 10 has almost 300 different versions worldwide each

9:30

country had their own CD and people have entered all this data into there to

9:34

catalog each specific release. So I have a fairly large vinyl record collection as

9:40

listeners know and I wanted to learn how to interact with an API and I wanted to

9:45

learn how to use fast API so I built a site and it only does three things

9:49

there's three buttons on the front one is a random button it'll randomly choose

9:55

an album for me to go play it's just an inspiration for me. So anyone on the

9:59

internet can say hey Paul go just randomly go pick an album. Well it'll pick

10:04

an album for them but it doesn't tell me anything. Oh I see okay. Now if I'm logged

10:09

in there's some different functionality when it comes to the Circuit Python stuff

10:13

but I'll get to that in a minute. Right right right. And then there's a play

10:16

button and if you in that shows you a list of every record I have and you can

10:20

select a record and then I'll show you the album art and the song list

10:23

underneath it once it loads and then there's an another feature that I built

10:27

called On This Day that I scraped both discogs and music brains with my

10:33

collection to figure out which day in a certain album was ever released. Oh cool.

10:38

So which is another way that I get inspired to go listen to an album it's

10:42

like oh you know it's for example and this is kind of a funny one yesterday or

10:47

today Debbie Gibson's Electric Youth came out in 1989 which is a record that

10:51

I happen to own I love 80s pop music so you know don't laugh at me too hard but

10:57

it's a great way to just go pick a record off the shelf and say hey I'm

11:01

gonna listen to this now. So once I started getting into Circuit Python I

11:04

realized that I could take it a step further. Now my record player is in

11:09

another room it's on the opposite side of the wall of my home office down here

11:13

in my basement so it's only about 10 feet away but the record sleeve is in

11:17

there so I can't see the album art. So I have a pie portal and I decided using

11:22

the discogs API it shows me that the album art the download to JPEG that's

11:28

displayed on the website while using the pillow library I took that album art and

11:33

reformatted it to a pie portal size which I think is about 300 pixels or

11:38

320 pixels and when that web page loads if I'm the user who's logged in it will

11:45

then send a message using MQTT over Adafruit IO and the pie portal is

11:51

listening for that MQTT message and once that page loads and sends the message

11:56

the pie portal goes out to my web server downloads the album art and displays it

12:02

so that's how I kind of married desktop Python with Circuit Python. So it's a little

12:07

thing that sits on your desk and it just displays the album art and oh

12:11

that's great as soon as you play to play an album that's cool yeah. Yep as soon as I

12:14

choose that album to play on the website and then late last year I bought a 64 by

12:19

64 RGB matrix and did the same thing again but now it looks like pixel art

12:24

because this is a 64 by 64 image it's tiny by the time it shrinks it down

12:30

but it was kind of cool and now I'm actually considering doing it for a

12:35

third time and picking up one of those s3 qualia boards with one of the RGB dot

12:40

clock displays that are a little bigger than a pie portal but I haven't

12:44

spent the money on that yet. Yeah and the color the color rendition of those

12:48

displays like they're both like higher density or higher resolution they're

12:52

like up to 480 by 480 I think but also they're like I think they're six bit per

12:56

channel color instead of the sort of mostly five bit per channel that the

13:01

other displays use on my controllers are so it's like it's like man we get to

13:04

drive these like real displays and Circuit Python it's kind of incredible

13:08

exactly probably the next time I order something from Adafruit I'll pick one of

13:12

those up and do the whole project all over again. Totally totally yeah there's

13:17

no OS so it just starts up. Exactly. So we talked about like like quality is one of

13:23

the new the new things that's going on in Circuit Python what are some other

13:26

other things you're excited about that's coming up in in Circuit Python because

13:30

it's it's kind of ever-evolving there's new things happening all the time what

13:33

are some of the things that you've seen? You know the first two things that come

13:36

to mind are the first is the Memento camera I have been waiting for that

13:39

thing to come back in stock and I just think it's so cool not only is it an

13:44

open-source hardware camera it's programmable and every time I think of a

13:49

different way to program it it seems like there's already a learn guide to do

13:52

it whether it's you know using a remote or stop-motion or creating GIFs and I

13:58

just think that thing is is cool and I can't wait to get my hands on one. The

14:02

second one that comes to mind is is USB host you know that combined with support

14:08

with the new bigger RGB dot-clock displays makes me wonder and and Scott

14:12

Shawcroft actually mentioned this in his Circuit Python 2024 blog post how close

14:18

are we to a little mini Circuit Python powered computer right when you have a

14:22

computer or a keyboard with the display it can't be that far away now I know

14:28

that USB host only works on the IMX and the RP 2040 chipsets right now in those

14:34

dot-clock displays work on the S3 so there's gonna have to be some work done

14:38

probably to get to that point but it that's one of the things that I think

14:42

I'm really excited for in the future yeah we're really close to something that

14:46

is very much like the old Sinclair zx81 or the timex one you had where where

14:51

it's just this little box and it and you just turned it on and you've got a full

14:56

little language based computer you can type programs into without any like

15:01

worrying about is it on the net is it is it running OS all this kind of stuff is

15:05

just all it does is the language it does basic in the case of the zx81 or it does

15:10

Circuit Python in the case of this hopeful new thing we could make in a

15:14

year or so it's exactly yeah the the camera the the memento camera is pretty

15:20

great because it takes a bunch of stuff that's been here and there like there's

15:24

been a camera you can hook up to an ESP 32 for a while and there's been like you

15:29

know SD card support for a while and all this other sort of stuff you know

15:32

screens of course and now it's a whole thing it's like it's got the camera the

15:37

screen a little microphone a little speaker SD card Wi-Fi and oh yeah and

15:44

you can access all of this via Circuit Python and make it do things that a

15:48

camera can do right and it just works yeah yeah so it'll be interesting it's

15:55

it's um one of the one of the things that I think people need to realize

16:00

about Circuit Python that has taken me a while is um it's sort of like Legos

16:04

where you can you've if you've got the pieces available to you you can snick

16:09

them together to form new things but if you don't have the right Lego piece you

16:14

can't do stuff like and so like for a while like for the longest time there

16:18

wasn't camera like the camera Lego piece and Circuit Python didn't exist but now

16:22

it does and so I think it's pretty cool that we're getting more and more of

16:25

these cool little Lego pieces that we can do stuff with oh I agree it is so

16:29

cool to watch the development happen in real time so so we got all these new

16:34

things that are that are definitely coming up what are some of the things

16:36

you want to see Circuit Python do in the future you know one of the things I'd

16:40

like to see is more options for Bluetooth so we've got that an RF boards

16:45

that that are out there and with Circuit Python 9 they've updated the expressive

16:51

IDF the IOT development framework and I know or I believe that there are still

16:57

some changes upstream in the nimble library that need to happen before

17:00

Circuit Python can take advantage of Bluetooth on an s3 chip but I think

17:05

it'll be you know considering all the different places we're seeing these s3

17:08

chips now right the qualia boards yeah the memento camera everything we just

17:13

talked about adding Bluetooth it just seems to be the next step and that's one

17:17

thing I would personally like to see yeah yeah definitely the these ESP 32 s3

17:22

chips are so powerful with their like they've got dual core I think and

17:26

they've got Wi-Fi and they've got Bluetooth but yeah getting the Bluetooth

17:30

stuff has been not quite working on Circuit Python and I think there's even

17:34

been a problems with it and when you're writing programs in C and stuff and so I

17:38

can't wait for that because it's pretty cool to have your have a little Bluetooth

17:43

gizmo that talks to your phone or whatever and so you can pull off you can

17:46

get cool notifications from your phone you can like control your phone in

17:49

various ways you know have it be a MIDI device or audio device or something

17:53

right yeah this isn't the end of the show yet but I wanted to also thank you

17:57

for the last what two years of doing the Circuit Python show I think it was a

18:01

very critical tool to help get people to learn about Circuit Python and get

18:06

people who are doing some of the Circuit Python stuff kind of get them out there

18:10

into the world so thank you very much oh you're welcome it's been my pleasure

18:13

that you know the developers and hackers and makers that I've gotten to talk to

18:16

it's been so cool getting to know all these people and seeing all the cool

18:20

projects that are done you know it's it's sad in a way that the show is

18:23

coming to an end but I think it's time but yeah the last two years have just

18:28

been wonderful and being able to meet everyone especially a good a good thing

18:32

to let us do instead of worrying about the pandemic for the last couple years

18:37

exactly and that's one of you know one of the reasons why I started it is I was

18:41

looking for a hobby in addition to you know Circuit Python and Python and just

18:46

coding and it was a great learning experience and how to cut up audio and

18:50

audio production and all that kind of fun stuff I've learned a ton totally

18:54

yeah these are your two standard questions you have at the end of end of

18:58

the the podcast if anyone wants to learn more about you and your work where

19:02

should they go they can visit my home page at Paul Cutler org I have a blog

19:07

there that I infrequently update like most people these days but I also have a

19:11

projects page that lists all the different projects I've worked on over

19:14

the last couple years with screenshots and links to the github repos and all

19:17

that kind of fun stuff that would be the place to go yeah I should do that that's

19:23

a good idea and lastly so you're going to start a new Circuit Python project

19:27

what board are you reaching for just to first start prototyping or building with

19:31

I'm gonna go with the one that we've been talking about so much well as the

19:35

same one that Jeff Epler picked in the last episode which is a QDPI s3 with two

19:39

megs of PS RAM I don't typically need a lot of GP GP IO so the QDPI s are

19:45

perfect for me with that small little footprint and like we were just talking

19:49

about the s3 is such a powerful chip and I've really really enjoyed working with

19:53

Wi-Fi a number of my projects use Wi-Fi whether it's downloading images or

19:58

controlling my home theater receiver remotely I love built-in Wi-Fi on those

20:03

chips yeah yeah I'm a big fan of the ESP 32 s3 chips also not even

20:09

not even when using them for Wi-Fi like I've used a ton of them for non

20:13

internet projects because their little processor in them is so fast they can do

20:18

a lot of mathy type operations if you're doing like synthesizers or stuff so yeah

20:23

big big fan of that chip as well Paul thanks so much for being on the show and

20:28

hosting the other shows and creating the circuit Python show transcripts are

20:32

available in most podcast players and show notes are available at www.circuit

20:37

python show calm thanks for listening and stay positive

20:42

(electronic beeping)