Welcome to the CircuitPython Show. I'm your host, Paul Cutler. This episode I'm joined
by Tod Kurt. Tod is a co-founder of ThingM, a ubiquitous computing and Internet of Things
device studio based in Pasadena in San Francisco. He is creator of the popular BlinkOne USB
notification light in BlinkM, the smart LED prototyping device. Tod is a co-founder of
the Los Angeles hackerspace Crashspace, the author of the book Hacking Roomba, and an
active member in the CircuitPython community with his CircuitPython Tricks webpage. Tod,
welcome back to the show. Hi, thanks for having me again. This is great. I used to listen
to a podcast that when they had a repeat guest, they would officially become a friend of the
show. I'd like to welcome you as my first official friend of the show. Thank you. I
feel very honored. It's been almost two years since we first chatted and way back in Season
One. And one of the big things that's changed in CircuitPython since you were last on the
show is the addition of Synth.io. This past August, we were on a panel together where
we discussed Synth.io. And I'll link to that in the show notes for anyone who wants to
do a deep dive into Synth.io. But really briefly, what is Synth.io in CircuitPython? Yeah,
that was CircuitPython Day. That was a great sort of constructed holiday. It's a great
time period now. But Synth.io is a synthesis, an audio synthesis, musical synthesis library,
core module, I should say, in CircuitPython. And in CircuitPython, core modules are things
that are built into CircuitPython. They're written in C usually. And it means you don't
have to do anything. It's just there. And it's incredible. It's polyphonic. It's got
filters. It can do arbitrary waveforms. It's got LFOs and modulators. Pretty much all the
things you would want in a synthesizer, it's got. And I've been having lots of fun with
it since it was in a pull request in like January, February. Yeah, you've put together
a tips and trick page for Synth.io, just like you did for CircuitPython. And you've also
designed a couple of boards to take advantage of Synth.io. Tell me about some of the boards
that you've worked on. Oh, sure. Yeah. So I've designed a whole ton of boards, like
the ones that are kind of useful. I usually do an extra run and put the remainders up
on my Tindy store. So people that want to get those, they can get them there. I sort
of have two main interests in these boards. One is to make the sort of really easy to
build learning platforms that people with like a QDPI or a Raspberry Pi Pico can just
drop it down, add a few extra other easy to add parts. And they've got a little synthesizer
board, and they can like write their own synthesizers. I've not been working too hard and making
a fully fledged thing for these kinds of boards because I think of it more as a, for me, it's
like an experimentation platform, though that like, you know, some other, like, like these
Arduino experimenter kits from, you know, several years ago. And the other, the other
kind of focus I've been on are what's the thinnest circuit board microcontroller, sorry,
circuit board synthesizer MIDI controller that I can make because I have often carried
a little MIDI controller or a little synthesizer gizmo in my backpack or my book bag. And,
you know, I don't want it to get damaged. So I don't want knobs sticking out. I don't
want things, I don't want to be a bare circuit board. And so a lot of my stuff has been like,
that's the thinnest thing I can do. And so on my tiddie store, there's a couple of examples
of these very thin MIDI controllers. And the most recent one has been this fully enclosed
little cap touch synthesizer that I had 50 built that I gave out as to the 50 attendees
of our sketching and hardware conference that happened a couple months ago, because there's
a bunch of friends that I know for like the last almost 20 years, and I wanted to infect
them with synthesizers.
And what was their reaction to it?
I think I think a lot of them are pretty good. Of course, now we're all old enough that a
lot of them have kids, so they kind of gave them off to their kids. But I should be having
I should be having a version of that board up on the tiddie store as well. It's um, it's
basically you know, what is it a octave and a half cap touch keyboard with a couple of
modifier keys. It's got some reverse mount LEDs to let you know when you're touching
the pads. And then a couple of examples synthesizers that you can install onto it like one's a
wavetable synthesizer that makes really weird, cool, like space noises. And another is a
drum machine. And I'm hoping that I'm going to do a bit more and get a little bit more
interesting examples up there that are like kind of full synthesizers because I think
you can do a lot with this little platform and it's like, no parts that stick up. So
you can just like slide it in like you would a pencil case into your bag. And it'll be
safe.
That's cool. Last year on our old podcast, the bootloader you shared your experience
attending Hackaday Supercon. You were there this year too, just a couple of weeks ago.
What were some of your of your favorite talks at Supercon?
Yeah, Supercon is really great. Have you like you should come some year.
I should I really should.
Like you and me, we only know each other online. We don't we've not been in the same physical
room in the same place. We've been in the same Discord channel tons of times. Right.
And so there are so many people that I know in the larger sort of hardware hacking community
that I only know in this way. And Supercon has been the one of the few cases where I
get to meet some of these people, you know, and so like one of the cool things is, is
like a geek mom who Deborah Ansell, she lives in Los Angeles. And so I've seen her a few
times in reality. But she has a small business with Ben Henke, I think, and Jason Koons.
I think we covered them, their product, the LuxeLavier in one of our bootloader podcasts.
We did.
And so Jason Koon, he makes these beautiful pieces of LED art that fit in the palm of
your hand. These little like they're not grids of LEDs. They're like a Fibonacci spiral of
LEDs. And they just are jewels. It's like and because he uses such small LEDs, these
little like one millimeter by one millimeter LEDs, but they're like new pixels. The LEDs
become a surface like a sorry, a texture rather than like individual LEDs. It's like it's
just incredible. And so I got to actually meet him and hang out with him and and hold
some of these things in my hand. Just just marvel at them. Like it's it's one thing to
see what see pictures of them on websites. Another thing to actually like, you know,
gaze into it. Right.
And that was as I was just just seeing all these people that I've only only interacted
with on Mastodon or or Discord or whatever is really great.
I know looking looking at Super Con from afar, even some of my former guests have been there,
right? The Flowers was there.
Oh totally.
Castillo was there. You're there.
Oh yeah.
So it's like that gives me a reason to go when I actually know a couple of people already
too. So I so like you said, I have to I have to find a way to get there in the next year
or two.
Yeah. One of the things I noticed hadn't seen before is in some of the talks and some of
the idle conversation, people would just say, oh yeah, and we programmed this with Circuit
Python. Like it was it wasn't it was no longer a special thing. We're like, you know, we're
out of this evangelization phase where it's like, hey, you should try this weird thing
called CircuitPython. It's like now now people are just using it because, oh, it's a good
enough tool and we can use it now to do a lot of the projects that we've done in the
past. And that was really nice that it was just like, oh yeah, it's just another tool.
That's great to hear. Tell me about some of the lightning talks that you attended.
One of the coolest things they did this year was lightning talks. So not everyone not everyone
has the time to like prepare an hour long talk in front of hundreds of people. That's
pretty intimidating. And so during one of the days, they just said, hey, if anybody
wants to give a lightning talk for like 10 minutes, come on up. And maybe you had prepared
slides. I think most people had had to prepare some slides. I think some people didn't didn't
so much, but they were all great. It was like, it was, it was like hour and a half, 10 people.
And it was everything from, you know, Scotty of strange parts talking about his, how his
brain injury led him to whole, whole new hacking experiences to, you know, Allie was up there
with her, her Pokemon ball purse. It was just like a purse, purse Pokemon ball, but it also
is remotely controlled light up Neo pixel craziness to Tina Belmont taught us all how
synthesizers worked from, and she, and she's been doing synthesizers for like over a decade.
So it's like, you know, there's, there's, here's someone who actually knows no sense.
And yeah, it just was every, from all over. It was like one of the best kind of condensed
group of talks and the videos up on YouTube right now because hackaday streamed the, the
super con has sort of two stages, the main stage and the design lab stage and the main
stage they live stream and keep the live streams up for awhile. And so for the time being,
you can go to the youtube.com slash hackaday and click on the live tab and then there's
all the talks from the, from the main stage of the super con so you can, you can get those.
And so that was great. The other one, another one was on the main stage was this hacker
named sprite. I forget his real name. It's like your own maybe. Yeah, I can't. We'll
find it and link to it in the show notes and give them credit. Yeah, yeah. He, he's one
of the, he's one of the, the Uber hackers. He works for, for expressive. He is responsible
for a bunch of the really cool FPGA hacks you might've seen on hackaday. And he continued
that trend with his talk was about taking the old 1982 vector video game system called
vectrix that, you know, back then took cartridges, everything to cartridges and he reverse engineered
how it all worked and then recreated how that worked in an FPGA and to be a, an appropriate
emulation instead of boringly driving a LCD screen, he figured out how to, he found a
little like tiny portable right angle CRT and had an analog stage that drove the CRT
the way that like the real vectrix vector scope did. So it was like an analog output
of these, you know, a very clean lines that that's indicative of a, of a vector scope
output and it is, it was all handheld ran off a battery. It just amazing how these little
car, it would play actual vectrix cartridges, but also would play all of these. There's
apparently there's a vectrix, a demo scene of people making new stuff and he found a
bunch of that and was able to slot in those custom demo scene cartridges and it just was
like this tour de force of engineering. That's so cool. Really brand new stuff. Yeah, really
brand new stuff and FPGAs driving really old stuff of like tiny old CRTs from, from video
phones. Now I gotta ask you about a talk that was about the cuddly companion bots with a
title like that I have to know more. Yeah. So, so Angela Sheehan, she makes this really
interesting sort of snake, not a snake. It's like a fuzzy boa companion bot. So a companion
bot, if you've never heard, is a robot that you have on your person somehow. Usually wear
it kind of on your shoulder or maybe it's kind of like you, it's a slung thing, like
kind of in kind of the way a purse would be or you'd wear, maybe it's a backpack and it's
sort of the, the people who make these call them, call them like you companion robots.
So the way you have maybe a companion animal, I find it fascinating because robots are hard
and they're noisy and they take a lot of power and they are not really amenable to being
so close to a person, but here they are making these devices that, that will sit on their
shoulder and, and have to interact with the more soft human world. You know, that means
that like in the way they move and the way they, they interact with the, with the other
people, with the person that they're, that's, that they're on. So Angela's talk was about
like how to do some of that. And that was, that was, that was really fascinating because
I love robots. I'm not interested in making us, making a companion bot, but all the people
in the bot community are really cool. It's like, it's Angela and Ajay, which, which,
you know, and Allie who's the Pokemon ball thing and geek mom, like as representatives
of the, of the, of the companion bot community, they're just, you know, wonderful. Oh, that's
great. Yeah. Yeah. And, and so, yeah, so it's just a, that, that is, that video is also
up on, on YouTube so you can watch her talk right now too. I mentioned the flowers earlier.
What was her talk on? Oh man. Okay. Star girl, AKA Theo flowers for the last year or so she's
been working on making a web viewer for key CAD schematics and PCBs. You think like, oh,
that's pretty easy. You know, you just read the file format and you just, you know, turn
that into an SVG and no, like her talk was, her talk was hilarious. It should have been
a main stage talk so we could have a video of it right now. It'll like the, they'll upload
the video of it eventually. It was just, just amazing. Cause cause you know, key CAD it's
30 years old, you know, it's, it's this amazingly long lived code base that's been touched by
hundreds of people. And so the fact that it runs as well as it does is amazing. Yeah.
I had no idea that it's been around that long. Yeah. Yeah. It's just, um, I mean, granted
the people that, that wrote most of it, uh, work at CERN, you know, there's some of the
smartest people on the planet. So, but it's, it's like any, any long live long live code
base has a bunch of different ways of doing a single thing because you know, you do it,
you do it one way and then like sometime later you figure out a better way to do it, but
you have to keep the old way because of compatibility issues. And then suddenly it's a couple of
decades later and you've got a couple of piles of legacy stacks you have to deal with. And
so in navigating that to make it so the web viewer works, she had to figure a lot of that
out. Her talk about how she went through it was, was really, was really nerdy and really
fun and really funny. That's pretty cool. Supercon is known for its badges. What was
the badge like this year? I don't know if you've seen pictures of it yet, but it looks
kind of like an old Tektronix scope and these scopes, they had a round CRT screen in like
the top left and then they had these big knobs and buttons that sounded kind of surrounded
it and it was a sort of a vertical orientation of the whole instrument. So like a lot of
the, a lot of the test equipment nowadays has sort of a horizontal orientation with
like the screen to the left and the knobs to the right. This thing was, is vertically
oriented where the screen was kind of the top left and the buttons were on the, on the
bottom. That's kind of what the badge looks like. It has this round LCD and then a bunch
of buttons and some little like connectors on the side. And then when you turn it over,
you see that it's a Raspberry Pi Pico and a couple of support chips and, and it's a
pretty brilliant little hack. There's an arbitrary waveform generator that I think is written,
so the whole thing is running MicroPython. Okay. The way you kind of interact with it
is there's an, there's sort of two parts to the badge. There's the arbitrary waveform
generator that outputs an X and a Y signal. And then there's the scope part that reads
an X and a Y signal. And so you can just use it as an oscilloscope. You can just feed in
an X and a Y and, and then get cool Lissajous vectorscope patterns. Or you can use the arbitrary
waveform generator to give you like an X scanning time base to then be your X and then have,
then your signal, whatever your signal you're measuring is your Y. And then you get like
more of a standard oscilloscope readout where the scan is a constant time and then the vertical
Y axis is showing you what the voltage is over time. And you can do all of that without
doing any code on the badge. You just like, like hook up wires and press a few buttons.
And it's, it's basically like a, like an old oscilloscope. It's all like got green phosphor
look and it's as the traces move, it's got this cool phosphor fade effect. This, it's
like this running is like a separate process on the second core of the RP 2040 that's in
the Pico or something. It's, it's incredible. But of course it's all open and you can hack
it all. And so I was like, I hacked around with a little bit, but I'm not very fast with
MicroPython. So one of the first things I did is they just blew MicroPython away and
so CircuitPython, cause I know how to run these GC nine a zero one round LCDs. I've
been playing with those for a couple of years. So I did, so I did, I did a bunch of little
dumb hacks with that. And then you created a capacitive touch sensor to go along with
it. I sort of, I've been, I've been playing around like, like I mentioned with the boards
that I made, I've been playing around with cap touch buttons for a long time now because
in CircuitPython it's so easy. You just use the touch IO core module that's built in and
you say, Hey, I want to turn this pin into a touch pad and then it'll give you a true
faults value whenever somebody touches the pad. And so it's super simple. But I knew
that there was ways of doing more complex sensors with just a couple of cap touch pins.
And so you can actually make a slider, a capacitive touch slider with just two pins if the pads
are shaped in a certain way so that you get sort of a ratio between the two pins depending
on where your finger touches. And similarly you can make a rotary control, a touch wheel,
sort of like the old iPod touch wheels with just three pins. And so I'm like, and this
is a, this is a thing that's been known for like 20 years or something. I've not played
with it much. I'm like, okay, I'll just, I'll just spin up a quick board and I'll have it
so that the pin out matches the little expansion pin out of the badge. So that in theory you
can just plug it onto the badge and have it work. I got the boards back like two or three
days before SuperCon started up real quick. Went once I got the badge and uh, yeah, it
worked great. I was like so surprised. Yeah. It was like, it was like, you know, 20 lines
of CircuitPython to do the, do the, the, the, the, the simple math to turn the three
sensor readings into a angle. Yeah. So that's up on, on the GitHub. There'll be a link to
it hopefully in the show notes. Absolutely. And I'm working on a board cause cause I'm
so excited now by like, Oh, I can do like various types of interfaces with, with capacitive
touches, not just buttons that I'm working on a little, a sort of cap touch explorer
board that'll have some wheels and some sliders and some other things. See how that turns
out. Now there was some controversy around the lack of diversity in the speaker lineup
at SuperCon this year. Not having been there myself, was it fair criticism? Uh, yeah, yeah.
There's, I mean you can just go to the, go to the, uh, SuperCon website and you'll see
that all the speakers, they're mostly white guys, you know, it's um, there's a Carrie
of Alpen glow has a really good thread on Mastodon about this and cause she, she, she's
been a speaker in the past and she comes every year and she was there this year. But it's
just, it's, it's really hard because when, when a community has sort of a default kind
of member, you know, like, like, like you and me, we're kind of the default kind of
member. We're sort of middle aged white guys. Right. Um, you know, that's, that's, that's,
that's kind of your, your, you know, they're stereotypical hacker and, and when you're that,
it doesn't, it's not hard to get the default to, to submit talk proposal when, when they
just say, Hey, here are talk proposal website is open, submit a talk, you know, cause you
know, we'll have, we feel we, we have the time. We also feel comfortable in submitting
a talk if we can, if we can get over our own personal, like, Oh, I have a fear of public
speaking, but like, but like, but like, but like we mostly feel welcome in the community,
but there are so many other people that are part of the community, but they don't feel
welcome. And you know, usually these are the non non white guys. And so like, how do we
get more of those people that are in the community, but don't feel welcome? How do we welcome
them in? And we really have to do the effort to, to make sure they know they're welcome.
And and that's hard. It's a, it's a proactive reaching out rather than a, than a, Hey, come
submit your talk to us. You have to actually go out and get people. And that's hard.
You're absolutely right. Yeah. It's very hard. And even with the podcast, I'm always trying
to keep that diversity, you know, and inclusion top of mind and making sure that I try and
balance those guests out. And there's been some criticism of the Python podcast ecosystem
as well of not being as diverse as it, as the Python community is. So you're right.
It's something that you have to work on. You have to have it top of mind and you have to
keep working on it and you have to let people know that you're going to be fine. You're
going to do great. And welcome them with open arms. Yeah. It's, it's really hard because
it's a lot of us are introverts. It's hard. It's hard to reach out to people in general,
you know, and just say, just say, Hey, you know, it's like, like, this is the problem
that we had at crash space. The hackerspace that I founded, sorry, co-founded that, you
know, people, people would come in off the street and just say, Hey, is this a hackerspace?
And we'd be like, yeah. And then we would all turn back to whatever project we're working
on. You know, it's like, that's not how, that's not how you welcome new people to welcome
new people. If they come in the door, you have to like get up and, and welcome them
and show them around and say, here's where the laser cutter is. Here's where the 3d printer
is, you know? Exactly. You're absolutely right. But it's, but it's so easy when you're, when
you're in your head, you're, you know, you're focused on a thing and you're like, I just
want to solve my problem. Well, we're almost out of time. And the last question I always
ask is which board do you reach for when starting a new project? And in over two dozen episodes,
you're the only person that's chosen a fun house and an itsy bitsy. Are those still your
go-to picks or is there a different board that you reach for these days? Yeah, probably
these days for, I'd say general CircuitPython work, I would choose a Raspberry Pi Pico because
of the fact that they're sort of sold at cost at $4. They're, they're like a really cheap
way of just trying stuff out and lowering that barrier of fear of like, Oh, what if
I, what if I fry something? What if I burn this board up? It's like, well, you've burned
up $4 if you have. But also like the, the space of things you can do with a Raspberry
Pi Pico is really, is really large. And so it's a really great board. Even if you're
not doing CircuitPython, like you can do a lot of really great stuff in Arduino. You
can use the Pico SDK to get really low level. It's got that PIO functionality that's sort
of like a little bit of programmable logic inside of the Pico that you can, you do to
do, do like really fast protocol type stuff. And so it's, it's a very interesting board.
You can do the PIO stuff in CircuitPython even, which is amazing, but it doesn't have
wifi and there's the Pico W that has wifi. But I think, I think that the, an ESP 32 board
would be better if you want to do wifi. And for, for, for wifi CircuitPython, I like
something, I'd probably recommend an S3 board. Yeah. Yeah. ESP 32 S3. And then like which
one? So like, like my default is a, a QDPI ESP 32 S3, but I think wifi devices need some
sort of a display because there's this whole onboarding problem of how do you get it onto
your net? And like having a display is really useful for that. So I guess maybe the, like
if we're talking at Adafruit products, the reverse feather, the reverse TFT ESP 32 S3
feather, I think there's also a really good Lilygo board that has an ESP 32 S3 in it.
I think there's so many choices, ESP 32 S3. And if you display pick one, if not a QDPI,
those are all good picks. Tod, thanks so much for being on the show. Thanks Paul. Thank
you for listening for show notes, visit www.circuitpythonshow.com and transcripts are available in your favorite
podcast app. Until next time, stay positive.
♪♪
for the next session.