Welcome to the CircuitPython Show.
I'm your host, Paul Cutler.
This episode, I welcome John Park, who is a professional maker and live streamer.
He builds creative technical projects, tutorials, and videos for Adafruit Industries.
He previously hosted and co-wrote the Emmy-nominated MAKE: Television show on American Public Television.
John previously worked in computer graphics, including 12 years in animation at Disney.
John is an amateur circus aerialist and a synthesizer enthusiast.
JP, welcome to the show.
Hey, Paul.
So glad to be here.
Thanks for having me.
How did you first get started with computers and electronics?
Ah, let's see.
I was a kid who took everything apart.
So I think that's a part of my origin story there was pulling things apart.
And I had some just fortuitous broken things that suddenly worked after I put them back together,
even though I hadn't really done anything.
So, you know, as a kid, you believe, well, now I know electronics.
Or now I know how to fix it.
I fix some walkie-talkies.
that way, and I think had a BB gun that had a problem and managed to pull it apart and put it
together. So I was doing that and never really learned much about how actual electronics worked,
but more like fiddling with and putting parts back together. But I think that led me to be
curious enough about it to ask for a Radio Shack 150 and one kit, which was, I grew up in the late
70s, early 80s. And so that was a pretty typical way to get started building.
things without needing a soldering iron because it was a little spring clip sort of more than a
breadboard type of gizmo. So I enjoyed putting together circuits from that and trying to understand
a little bit of what it was teaching in the comprehensive guide that came with it. And about this time,
my dad started bringing home some computers from work at the time. He was a principal at a high
school in the Hudson Valley in New York where I grew up. And the school started getting in some
early tandy radio shack computers. There's a Radio Shack theme here apparently, but they had a
color model one. They had a model one. They had a model three. So he would bring him home on the
weekend. My sister and I would type in programs from magazines and manuals. And at some point,
we convinced my dad to go out and buy us an Apple 2E computer. So that was the first one that we
had and had permanently in the house. Loved it. Loved, you know, doing little logo.
and basic programming on it,
but also, of course,
playing tons of games.
We were using it to write papers.
We had a printer for it.
We had a couple of monitors for it.
We had a color monitor
and the beautiful phosphor green monitor.
My dad went all out and got kind of everything
two disc drives, the whole line yards.
And around, I don't know,
probably within a year or two of that,
we got a modem for it.
And I think the first one we have was a 300-baud modem
and then we upgraded to a 1200 baud modem.
And this led to me finding BBSs full of wares
and the anarchists cookbook and Freaker BBSs.
So I got really excited about telephone stuff
and hacking and war dialing and things like that.
And I also start putting together little,
my own version of like a lineman handset
so I could clip onto the outside of the house
and listen in on my sister's phone calls.
and all sorts of finky stuff like that.
So that's, yeah, that's my early 80s computers and electronics
and phoden freaking type of childhood that got me excited about these things.
Like you, we had an Apple 2, and we had the 300-baud modem,
and then we got a 1,200-baud modem, and I got into BBS as a,
just takes me back to being 15, 16 years old and hearing that modem startup sound.
Oh, yeah.
B' ding, dang, dang, dang, wow.
Fantastic.
Most folks might know you from the shows you host from Ada Fruits,
but one of the first shows you hosted was Make Television,
produced by Twin Cities Public Television and American Public Television back in 2008.
Tell me more about Make Television.
I'll give you the brief version of kind of how this happened.
I had studied theater in college,
and my concentration was in acting,
but I also worked as a prop builder and as an audio designer,
sound designer and engineer. So I had done a lot of hands-on physical stuff, building things,
and also acting. But when I got out of college, I pretty quickly entered into a career in
computer animation, computer graphics and animation. And I'd been in that career for about 15 years.
I was working at Disney. Hadn't been building much hands-on stuff, but then Make Magazine came out.
I was aware of like Boing Boing and my friend Mark Fraunfelder. He was the first editor at Make
magazine. So it was kind of where this thing was happening. This is probably 2004 or 2005.
So I got real into Make Magazine and started building projects that were in the magazine.
And at one point, Mark asked me if I wanted to write some articles for the magazine. So he knew I was
a computer graphics person. So the first article I wrote was on using SketchUp to design something.
But I had just finished writing a book about Maya, which is a computer animation software used in
in the game and film industry.
And I was really sick of taking screenshots of computer graphics in action.
So I didn't really want to do a lot more in CAD,
but I asked him if I could build some hands-on practical projects.
And he said, sure.
So I started building things little like a Lego charger keychain thing for my phone
and my iPod and some coffee brewer and tamper kind of related projects.
Lots of sort of fun hands-on stuff that actually didn't use that much electronics.
And I started to go to Maker Fares to show these projects, to do talks about these projects, things that I had built.
At Maker Faire, I want to say it was maybe 2007 or so.
Phil Torrone, now of Adafruit, was at Make as the online editor.
And I believe he was part of the group that was pitching doing a TV show.
Make and Maker Faire were doing well and getting a lot of press.
press and attention. There was a whole maker movement that was happening. So they said, hey, let's,
let's pitch doing a TV show. I believe they had gone to some production companies that were
sort of MythBusters-esque, but really were trying to push it in the direction of slow-mo,
explosions, spectacle, that sort of thing. I believe things sort of fell apart with that,
but then they got in front of Twin Cities Public Television and Richard Hudson, their producer there,
who really had a great track record in doing science programming.
They had done sort of educational science programming development there,
and they wanted to do a much more sincere version of this.
They got what Make was about,
and they wanted to present something that was showing the excitement around making,
the community around making, some of the wacky projects people were doing.
And so they were searching for a host.
They went to Maker Faire,
and I think Richard saw me do a talk and approached me afterward and said,
hey, would you like to audition for this TV show that we're going to do?
So I said, sure.
So I spent a couple of minutes in like a back booth where they'd set up a camera doing a little
screen test.
And not long after that, they said, great, do you want to do it?
Because we'd like to have the host the show.
So I said, why not?
This is great.
Meanwhile, I was working my full-time job at Disney Animation as a character, technical director.
So I was really busy, but I managed to squeeze in this.
TV show, which was super exciting. This guy, Bill Gerstell and myself wrote the projects, the script,
and the outline for the projects I would build. I would put one together. He would put one or two
together there in Minneapolis, so he would have parts on hand. And then I would fly out on the
weekend, like on a Friday, spend two or three days there filming a couple episodes, and then come
back here to Los Angeles to live my regular life. So it took a couple months to put it all together,
but we put together a really nice season, 10 episodes of this Make show that I absolutely am so proud of and really enjoyed working on.
I'll link to it. It's still on Archive.org. You can see some past episodes.
Excellent. Yeah. Fantastic.
Was there anything from hosting Make Television that you learned that you brought over to your weekly workshop show?
Yeah. I think the format of it was such a good fit for me personally and the style that I wanted to do.
and I think that showed me that there was not really a huge need to put on an exaggerated character or anything.
I could just kind of be myself and present this stuff, which makes it a lot more sustainable and a lot easier, I think,
versus going in like real big and exaggerated and then getting tired of that.
So I think it's a theory of mine. I haven't tested this, but I suspect if you look at YouTubers who have been around for a long time,
who were in sort of a niche hobby area,
they probably become more themselves
and more conversational over time
because I think at first you want to get attention
and blast it out there.
But I think I was able to jump to that fairly quickly
because that had already been the tone set on that show,
which was a good fit for me.
In fact, after I'd done that show,
I had an agent who was going to send me on an audition
for another show that was literally all about
just blowing stuff up.
And I just decided, you know, I don't really want to be a TV host doing stuff that isn't really in my, my exam.
I mean, this sounds fun, but I was also like, I kind of have this other life.
And I think that turned out okay that I stayed with animation for a while and then eventually transitions to doing this full time.
I should say working on that show and then doing my own live streams and videos from my workshop here as a one-man band,
made me really appreciate having a full production crew
because the Twin Cities Public Television are such pros,
everyone there was great,
and having a director and camera people,
camera operators, sound people.
Sometimes, as I'm sure you know,
I'll start talking and I haven't flipped my mic's mute button.
So like having to think about performing and talking while managing all that stuff
is a challenge.
And so, yeah, I appreciated that the Twin City Public Tellers and had all of those things as separate jobs that separate people who are experts can do.
But it's a different thing.
Speaking of your workshop show, can you take us behind the scenes and give us a sneak peek into what goes into preparing for an episode?
Oh, sure. Yeah.
So I do two shows a week.
One is the product pick of the week, and I do that on Tuesdays.
And then I have the John Parks Workshop show on Thursdays.
and I was looking, I think I'm coming up on like 388 episodes or something like that of the workshop shows.
I've got a lot of them under my belt now.
The process for putting them together, so initially I was doing pre-recorded project builds for Adafruit.
First one was this Chewbacca mask video where I added a different sound chip to that sort of famous internet viral Chewbacca mask.
That was a week and a half of shooting three cameras, B-roll, editing all that together, sound.
And it, you know, in the end, probably took like three weeks to produce the thing.
And I did a few like that.
And then at one point since Phil and Lemore had been doing their live stream shows for so long, they said, hey, why don't you give live streaming a chance?
I loved it immediately.
And it is fast.
It is, you know, yes, it takes preparation.
But when you're done, you're done, other than posting a couple of little videos that come out of it.
So I was like, yes, this is the way to do it for me.
It's just so much more content.
Obviously, pre-edited content can look beautiful and tell the story.
And I love watching that type of content.
But it's also at a completely different pace that you can produce what you're producing.
As I transitioned to that, I sort of put together the camera and lighting and sand.
sound setup that I have in here based on a bunch of advice from from
Limor and Phil on things that they had used and I put together a big pre-flight
checklist of okay if I'm doing these five things on the show so I have you know an
intro I have a coupon code that I've prepped I have a CircuitPython parsec or
I used to do the make code minute so I have a little sort of coding segment that
takes five minutes then I have a project build that I've that I've been working on
some part of, and then I have sometimes retro tech that I'll show off or a tooltip.
So preparing that is the day before, usually, I have a list of a few weeks out of
CircuitPython Parsecs that I'm planning to do.
So I'll actually sit down and figure out, okay, the thing I'm trying to show off today,
I've been doing a bunch of things with this little trellis thing, which is buttons and
neopixels.
So I'll say, okay, if I'm building up towards a MIDI controller that will have a few neat features and some lighting stuff, what are the little elements that I want to break it down to?
So I started off with just some of the lighting, then some of the relationships among neighboring buttons.
Yesterday I showed just the very simple note-on-note-off messages from MIDI coming from it.
So I'll have a little plan of a few episodes that fit a theme often.
Sometimes I'll just have a request from someone like, how do you do X?
And I'll plunk one of those in there.
So the day before, I'll write that up and prep the code for that and have that ready to go.
Then I'll also look at the projects that I'm building for Make, which are going to be a learn guide.
And those usually are two or three week process of taking an idea, plotting it out, prototyping it, ordering the parts, and then prepping to build the real thing.
building it a second time and actually photographing it,
or one of my favorite tricks is just taking it apart
and playing the photos back in reverse on the Learn Guide,
if it's the type of thing that that'll work for.
So on the show, I'll do a section, maybe 10 minutes long of,
okay, here's a step of that,
here's maybe the prototype in action,
and then I'll bring up either the fritzing diagrams
or some of the CAD in Rhino,
and Grasshopper that I'm working on and show a little bit of the behind the scenes of that there.
I don't overplan those.
I don't write a script for it really, just because, again, I enjoy doing it that way, and it's
faster and easier for me.
It's less work.
It also sometimes leads to fun, mistakes, errors, accidents that I think are the most interesting
thing for people to see.
And I think the most encouraging thing for people to see is, you know, particularly when
something doesn't work or breaks right on air and then it takes a while to figure out
trying several different things, what's wrong with it? And then ideally at the end,
I do get it working or a suggestion from someone on our chats, either in YouTube or Discord,
we'll say, hey, try this and it works. Like, that's the best. That's gold. Like, I'll finish the show
and my wife will be like, hey, how'd the show go? It's great. I had that ideal thing.
I don't like fake that or anything, like, but when it happens, I'm so excited to have
shown a realistic portrayal of the life of someone building a project.
Let's see, I think, hopefully I'd answer the question, yeah, and then it's just a lot of management
of, I use a program called Wirecast, which is like OBS, but a little bit more TV production
oriented in the way it's laid out.
So it has like a little multi-layer timeline sort of thing that I can punch between.
So I have a bit of time, sometimes half hour or so, an hour or so in the morning of the day of the show of just prepping all of that and making sure that the cameras are right and the coupon code is set and all those things.
So that's a lot of like busy work of prepping a thing.
But again, like I was saying, you're a one-person production when you do this sort of live streaming.
You mentioned earlier that you've done almost 400 episodes, and you've been with Adafruit for almost 10 years, which means you've seen the birth and growth of CircuitPython.
Do you have a favorite CircuitPython memory over that time?
Oh, yeah.
So I started with Adafruit in 2016, and most of my programming experience in my professional life had been in a sort of C-like language that was used in the animation studios inside of Maya that was called Mell.
That's transitioned a lot more towards Python in the last 10 years probably, or maybe even more.
But I'd come at this stuff in Arduino.
And that was a lot of the early projects that I was doing for Adafruit were Arduino-based projects.
And then maybe six months after I started full-time with Adafruits, Scott Shawcroft came on.
And he was talking about this micropython thing and maybe porting it over to run on
on Adafruit hardware.
And so the CircuitPython project started to gain some steam.
And I think Scott and I were at Maker Faire in New York in 2017, just sitting down at
dinner chatting about this.
What would we want to use it for?
What was the deal with an interpreted language running on a microcontroller?
Why did that matter?
So I was a little slow in understanding why this would be so cool until I got my hands on it.
And then I remember very quickly being so.
excited about the iteration time being nearly instantaneous because with Arduino, it was a code,
compile, flash to hardware, 30 seconds, 40 seconds of your life have just been spent staring at the
screen. And so being able to change something, hit save, and five seconds or so later have it up
and running was great, because I don't have formal computer programming training or
education, and so I'm super iterative. I just try a little thing, and then I try to tweak it,
and then I try to sort of multiply it to act on a bunch of LEDs or buttons or pins. So for me,
just being able to iterate, iterate, iterate, iterate, iterate was a huge plus. So just having that
shift really left Arduino in the dust for me, except for projects that were really needing that
kind of speed that happens on the compiled Arduino side versus the interpreted CircuitPython side. So
I think the other funny recollection I have from that trip, Scott and I were in a cab headed somewhere.
And we started dreaming about a little CircuitPython computer that could have like a display and a keyboard and you could kind of code on it like as if it were some old 8-bit computer.
And so it took nine years, but now we have the fruit jam.
And so this, you know, this little thing is almost exactly what we were talking about.
I think we still need to add like a fruit jam display that just jams into the headers on the top of the thing so that it becomes, you know, your little E typewriter type of device or whatever.
So, yeah, those were some early memories of type.
What have been some of your favorite projects over the years?
Ah, so there was a whole swath of projects that I did, some as learn guides, some as things that I was doing on.
commission that were what I termed the mystery boxes. And these are such a sweet spot for
microcontroller input output projects with fairly simple code, but a huge bang for buck
results. So a friend of mine is a magician and a storyteller who develops these interactive
experiences, not quite like an escape room, but in many ways, the devices that I was building
were along those lines. So I started building these antique radios he would acquire, and I would
just add a little bit of electronics like a hall sensor and a magnet to the tuning dial so we could
tell when certain positions had been hit and then trigger audio or trigger messages between the
three radios talking to each other so that three groups of people would arrive, add a solution to a
problem, and then some other event would happen. So building these mystery box projects,
absolutely loved doing, and this was prior to CircuitPython. So these fall into the category of
things that I'd love to have the chance to do new versions of with CircuitPython, largely because
it's very difficult to hand someone a black box with Arduino code embedded on a device and have them
ever adapt, change, update it, even fix it if there's an issue. A CircuitPython would make that
much easier for those types of projects.
So unless there's a really good reason when I build things on commission for other people,
I try to have it easy to edit by putting it into a CircuitPython code so that I can say,
you know, remotely, hey, just drag this thing onto that thing and don't touch anything else
and we'll have updated your project, that sort of thing.
The most practical daily use project I've ever made, I think, is my espresso machine water tank sensor.
I have a big, wonderful espresso machine.
It does not have any way of monitoring its water reservoir other than it has a little float sensor.
And so when it gets real low, it just turns itself off to prevent the boiler from, you know, being dry and bad things happen.
But I have to remove all the cups from the top of it, open it, and lean over it, and look to see the water level.
And so I built this ultrasonic sensor and a microcontroller.
Forget which one is in there.
Actually, I think it's a Metro ESP 32 S3.
So it just monitors the depth that it consents with the ultrasonic sensor and sends that data every five minutes.
I think it is up to Adafruit I.O.
So I have a dashboard.
I can just look at it.
But I also am using the shortcuts so that it can, when my alarm goes off on my iPhone in the morning to wake up,
the next thing it does is show me the depth of that sensor.
So I know before I even go downstairs and head to the machine,
if I probably need to fill it up before making a couple of cups.
So that one is really helpful.
And then also, I think touching back on some of my,
lifelong love of telephone and telephone freaking and that sort of stuff.
Like if you ever see three days of the condor, like, you know, it's just, and sneakers and hackers,
like there's so much steeped in these devices.
And I've done, I think, three or four projects, Adafruit projects that involve circuit
Python and old phones.
So here I'm holding up a gorgeous black bell rotary desk telephone.
And this is one that I put a.
KB2040 microcontroller in it, some simple code on a in-CircuitPython to count the pulses
of the rotary dial and convert those to USBHID. So I love projects where you can use retro
tech fairly non-invasively. I'm just going to tap into existing things on it. The phone is
basically intact with a couple changes. It could be used as a phone again. But I can now use it as a
ridiculous interface for unlocking my iPad, was the demo I showed on my Learn Gun. I have another one
which is a dial-a-song using a similar phone, but a digital touchtone pad on it. I'm just reading
those inputs coming from the rows and columns of that pad on a feather, a microcontroller in this
case, and it's a simple wave playback. It just plays different tones after you enter in seven digits. It says,
do I know those seven digits? If not, it says,
the number you've dialed is not in service. Otherwise, it'll play a song.
Love those kinds of projects. And they make me happy. And I think they are hopefully
good at showing people some possibilities that will spark their own thing.
The thing I've always wanted to do is X, but oh, I get it because this telephone project is
buttons and wave playback. You know, it's that that's the sweet spot.
I think of the stuff that I really like to build as Learn Guides is a launching off point that hopefully imparts enough about how to approach the thing that people do the project they're really hoping to do.
You talk a little bit about synths on your show.
As of this moment, what is your favorite synthesizer?
Ah, synthesizers.
So I have sort of two branches of what I really love to play.
and play with with synthesizers.
One is just sort of sound design and noodling,
and that's what I love modular synthesizers for.
So I have a big euro rack of modular synthesizers,
mostly from one maker, mutable instruments.
And I just can put on headphones,
or I have some speakers there,
and zone out making sort of generative, interesting stuff,
and noodling around with timbers and stuff like that.
So I absolutely love that,
It's very almost one knob per function and patch cables to visually see what you're connecting together.
So that's a lot of fun.
The other one that I really, really love, and I unfortunately, these have gone up a little bit in price,
probably just because of global parts shortages and all that, tariffs and so forth.
But the Arturia Micro Freak, when I got it, I think it was $250 or $300.
I think they're retailing for four now, but that may be cheaper or just get a used one.
But the microfreak is a, I have one right here just so I can talk about, a microfreak is a great little digital synthesizer.
It's parophonic, four voice paraphonic, I believe.
So it has one filter, but multiple voices going to that filter.
All digital, except for the filter, which is analog, has a crazy little capacitive touch PCB piano keyboard on it that actually really love, particularly if I put headphones on and I play it on the couch, I'm not clicking clacking.
Because if you ever try to not disturb someone in your house while you're playing a cheap little plastic keyboard, which all of them are, it's a terrible noise.
So this one's actually basically silent to other people.
But the amazing thing about this is that they have, Arturia is fantastic at software synthesizers.
They do plug-in type synthesizers.
But here it's encapsulated in a box where they have upgraded the thing with firmware over the years to just add more and more synth engines to it that are excited.
to play with. So it started off with maybe four or five synth engines on it. Then at one point,
they added wave table synthesis. Then I added a vocoder and you could get a little mic. In fact,
the CircuitPython song, I did that on this. And so that's, you know, me just saying those words
and playing the vocoder pitches on it. And then they've added a sampler recently. So it'll do
sample playback with like granular sample playback.
and a few others. So they just keep adding to it. So if you ever excited about getting interested in
sense and learning on them, this is a great one to learn on because it has, again, very clear sort of
one knob per function for a lot of the basic stuff. There's actually very little menu diving,
but there is a cute little OLED on there that will show you like the shape of your envelope as
you're making the attack be slower. You get a nice little graph of it of that. So I'm a big fan
of this. And I do have a pretty decent number of synth, some vintage, some modern, nothing big
and huge and crazy, but this one I come back to all the time for actually making little songs
that I put behind videos or noodling around with new synth techniques, since they're good about
updating it. So that's, I think, my fave. So final question for you. Yeah. You're starting a new
project or prototype. Which microcontroller do you reach for? It depends a little bit on the project,
but most of the time I'm going to grab the feather RP 2040. If it needs display and more,
horsepower, maybe it's the 2350, but the RP 2040 feather, it's great. It's got a ton of I.O.
It has, you know, the battery and lipo circuit on it so you don't paint yourself into a corner
when you realize you wish this were a portable project. It's just kind of already got it built on there.
And it's, it's plenty fast. It can get, you can do some trickier stuff using the, the PIO state machines.
if you need to, let's say, blink lights while doing synth stuff
and you don't want those two interrupting each other,
you can, even in CircuitPython, you can separate out those tasks a bit.
You can also use ASync IO.
So I think, yeah, for our RP2040,
there's plenty of reasons to grab other ones for other projects,
but if I'm just about to prototype a thing,
I would say majority of the time, that's what I'm going to grab.
It's a classic pick these days.
Oh, is it? Yeah. Yeah, no, I love it. I think it's great.
JP, thanks so much for coming on the show.
Paul, thank you so much for having me.
This has been a pleasure.
Thank you for listening to the CircuitPython Show.
For show notes, transcripts, and to support the show,
visit www.circuitpythonshow.com.
Until next time, stay positive.