Embedded - 359: You Can Never Have Too Many Socks
Episode Date: January 22, 2021Thea Flowers (Stargirl, @theavalkyrie) creates open source and open hardware craft synthesizers that use Circuit Python for customization. She also writes about the internals of the SAMD21. Thea’s s...ynthesizer modules are found at Winterbloom, including Castor & Pollux and the Big Honking Button. It is all open source hardware so you can find code and schematics on Thea’s github site: github.com/theacodes Thea’s site is thea.codes. You can find her blog there with deeply technical and detailed posts such as The most thoroughly commented linker script (probably), The Design of the Roland Juno oscillators, and Understanding the SAMD21 Clocks. For more information about the Eurorack, listen to Embedded 356: Deceive and Manipulate You with Leonardo Laguna Ruiz of Vult.
Transcript
Discussion (0)
Welcome to Embedded. I am Alicia White, alongside Christopher White. Our guest this week is Thea
Flowers. I think we'll be talking about synthesizers, making your first dollars as a small business,
or mental health, or maybe all three. We'll see. Hey, Thea. Thanks for joining us.
Hi. It's lovely to be here. Could you tell us about yourself as if we met at a technical conference?
Oh, God, at a technical conference? Well, in that situation, I'm probably going to be like,
hi, I'm Thea Flowers. I work in developer relations. I can help you make things.
But if you met me on the street or something, I'd be like, I'm Thea Flowers.
I am a swirling vortex of chaos that sometimes makes synthesizers.
I like chaos, especially when I'm causing it.
Exactly.
Okay, so lightning round.
Are you ready?
I'm ready. Let's do it.
Favorite chord?
Favorite chord?
Yeah.
Like in music?
Yeah.
F minor.
Favorite programming keyword?
Favorite programming keyword?
Let.
I agree.
Favorite fictional robot um i like really sassy robots so webo from flubber if y'all remember that movie it's ridiculous um that robot's very sassy so webo definitely favorite Favorite instrument of all time? Ooh. Oh, that's like the hardest one.
Why would you do that?
How about a favorite instrument?
I mean, I've played guitar most of my life,
so I think that's probably my favorite instrument.
When I asked this question to somebody else,
I didn't get a very satisfactory answer,
so I'm going to try again.
Worst 80s synth tune,
or, if you don't like that, worst 80s synth sound.
The worst 80s synth sound, in my opinion, is like the really cheap brass patch that's on the otherwise incredible DX7.
There's like one patch that's supposed to sound like horns, but it just sounds like crap.
And every time I hear it,'m just like oh no i know exactly what that sounds like i'm harrying my head now
thank you you should insert it into this part i might hardware or software
hardware i guess that's so hard because i've done software my entire life i only recently got
into hardware so hardware though it's way more fun do you like to complete one project or start
a dozen complete one like starting projects is easy but completing one is like so hard, especially as someone with ADHD. So like when you finish one, it's just like,
ah, serotonin, that's amazing.
Do you have a tip everyone should know?
Like for life in general or like for hardware?
Your choice.
I mean, for life in general,
it's like you can never have too many socks.
For like, you know, tech stuff.
It's, you know, find a community, find people that do stuff like you do and learn from them.
That's the best thing that you can do. All right.
So you make synthesizers, which wasn't in your uh much in in your introduction
but i mean swirling chaos part but that's and not all synthesizers are swirling chaos
but the best ones are um but tell me about the synthesizers you make yeah um so i started a
i guess a business i don't know something that looks like a business, something that's legally a business, last March, of synthesizer format where instead of like you buying like
some off the shelf synthesizer that, you know, you plug in and it makes noise, you buy individual
modules and you connect those together with patch cables. And sometimes it makes something
resembling music and it's a lot of fun and it's really wild. So I make modules that go into Eurorack synthesizers.
We talked to Leonardo a few weeks ago about Eurorack synthesizers and he mentioned VCV
rack, a simulator. Do you work with that too? It's on my list of things to check out that I never get around to. It's really
cool. I mean, I've seen it, I've seen people use it at my customers use it. Um, it's, it's a great
way for like, like try out modular synthesizers without like spending a couple thousand dollars
investing in, in building one. And it also, like,
I know that John Park in particular likes VCV rack,
and he uses both an actual hardware modular synthesizer
and VCV rack at the same time,
which is super cool
because there's ways to get the stuff
in and out of VCV rack,
which is cool.
I have yet to really get into Eurorack at all.
I have no Eurorack stuff,
but I love synthesizers. What do you think draws people to modular versus non-modular or semi-modular?
I think, I mean, I can't speak for the whole, you know, weird niche or whatever, but like, I think one of the things that really appeals to people is this idea of it being a non-traditional sort of instrument, right?
Like, with your rack, you're not playing notes, you're not trying to reproduce a melody in your head, right?
Like, you're, that's usually not what you're trying to do you're trying to take all of these
various signals and like kind of evolve in processes and combine them together to kind of
make a something rhythmic something that sounds like music but isn't necessarily directly controlled
by a human and that's why you see like a lot of modular setups that don't have a keyboard.
Like that's like for a lot of people, that's not the point, right? You're not there to put in
put in notes and let it reproduce a note for you. Like for a lot of people, it's throw in this
random source, quantize it, sample and hold it until it makes something that resembles a melody
that you have no direct control over,
but you have indirect control over.
And I think that's kind of really interesting.
Is it the generative aspect?
The not only putting in the beginning,
but seeing how things build?
I mean, I'm used to visual generative art.
Is this...
Yeah, I think that's a good way of putting it.
This is the equivalent in music of generative art. And I think that's a good way of putting it. Like, this is the equivalent in music of generative art.
And I think that's a good way of putting it.
I've always been deeply confused about modular,
and I think you've just solved that confusion
because I've never understood why people don't have keyboards
and why a lot of times it's...
What I think of is necessarily musical in a traditional sense,
even though when I listen to stuff people do with modular, I'm like, that's really cool. And it never really clicked for me, oh, this is meant to be do not use many generative stuff in my usage of modular.
I mostly use it as a reconfigurable synthesizer.
That's,
um,
you know,
closer to what you would get from a,
you know,
a monolithic synthesizer.
And yeah,
so I'm,
I'm the weirdo that's using modular for normal,
I guess like normal synthesizer stuff versus generative art.
But, like, that's what's cool about modular.
It's flexible enough to, like, accommodate a lot of use cases.
And you can really build the instrument that you need for whatever you're trying to do.
Castor and Pollux, those are twins in Greek mythology.
Stars, too.
Yes. And they're stars.
But what was the mythology?
Do you remember the story? I don't.
Oh my god.
I researched this
when I was picking names for the module
and I've totally forgotten.
I'm telling you it's going to be
homework. Yeah, right? I've forgotten. I just like tell me it's gonna be homework yeah right like come on
i've forgotten i just picked it because it sounds cool also it's the stars that are in gemini and i
um other than big honking button all of my modules have um sort of space inspired names and stuff
like even my future ones have space inspired names Okay, so you don't need to know the history, the mythology. It was all about the space aspect.
Okay, that's fair.
Right, right. Yeah. I mean, I have a Greek name, but I don't know much about Greek mythology.
But yeah, it wasn't, I didn't name it after the mythological aspect of it. It was after the stars,
which are in turn named after, you know, the myth.
But we don't care about that. That's fine.
Right, right. The meaning is lost now.
Okay, so there's this synthesizer named after stars. What is it? What does it do?
I read about it, a modern reimagining of the voice found in the classic Roland Juno 106, which I assume for
your customers means something, but could you tell what it does for me?
Um, absolutely. So, you know, I mentioned that, um, that like with modular synthesizers,
you kind of have this option of like building your
own like whatever instrument you want and you have things like sound sources like oscillators and
um samplers and things like that that make noise and then you have like things like filters that
like change the the way that it sounds and like you have effects that can add things like reverb
and delay so uh castron poly is sound source. So it is what produces that
initial sound that gets further processed by the rest of the synthesizer. And it's,
it's, it came from me wanting to have a modern Juno voice. And the Roland Juno is like, for those
of you who don't know what it is, which might be a lot of you, if you're not just like deep in the synth community, you've absolutely heard it. There's
no way that you've listened to music at any point in your life and not heard it. Like it's, it's
unavoidable. It's like the DX7, which is like, you know, the synthesizer you hear a lot of Michael
Jackson's tracks and stuff like that. The Juno is, is a synthesizer like that. That's just so popular
that it's everywhere. Like, Sweet Dreams by the Eurythmics is like one that I always point at
people like that, that intro, that whole just synth sound in that song is the Juno all the way.
Time After Time by Cyndi Lauper, that's the Juno. Like, Take On Me by, you know, A-ha, that's the Juno. Like,
it's literally everywhere. And not just like in the 80s, it's everywhere in modern music too.
Like, if you're a fan of churches, a lot of their songs use a lot of Juno sounds.
Some of Haim's songs actually use the Juno sound and like, it's literally everywhere.
And like this synthesizer was so popular because it was like the first
like polyphonic synthesizer you could take on stage and it would be in tune.
Because at the time, all of the synthesizers that were polyphonic were basically analog,
right? This is before like, you know, microcontrollers could generate, at the time all of the the synthesizers that were polyphonic were basically analog right this is
before like you know microcontrollers could generate you know um sound all on their own and
so with all this analog circuitry the thing would just get out of tune so fast and then you know
you would go on stage you would warm up and you would get it in tune and by the time you're halfway
through your set your synthesizer had warmed up a little bit more and it was out of tune again.
And the Juno didn't have that issue. So it was really popular just because of that,
but it was also popular because it sounded amazing. So Castor and Pollux is taking that
inspiration, taking the central voice from the Juno and bringing it to your rack.
How do you go about designing such a synth? I mean, I assume it's digital and you do have
a microcontroller. Well, it's not quite digital. It's a hybrid. And that's actually what the Juno
was back in the day. It was a hybrid as well. It had a very, you know, compared to contemporary, like, sorry, compared to modern microcontrollers, it had a very, very simple microcontroller in it.
But the microcontroller isn't generating the sound the way that we think about computers making sounds these days, right?
It's not, you know, generating samples and pushing it through an audio interface.
It's controlling analog circuitry that creates the sounds. So you still have this sort of analog
core, but you have a microcontroller that determines what pitch the core runs at and
a couple of other parameters. And so that's the same thing that Castor and Pollux does. There is,
you know, a comparatively very powerful microcontroller in Castor and Pollux that
probably could make its own music if it wanted to. But that microcontroller is mostly just serving
to read some analog inputs and use those analog inputs, such as the analog inputs for pitch, for example, and use those
to digitally control an analog oscillator, or in this case, two analog oscillators.
So yeah, it's this hybrid approach, which is really neat.
But you write so much about microcontrollers.
I was like, okay, so it must be microcontroller-based.
I know she writes about microcontrollers a lot.
I bet there is the SAMD21 in there.
That module.
It is the SAMD21 in there.
Oh, okay.
But it's not the star of the show.
It's just there to support the analog
circuitry.
And I actually wrote
probably one of my favorite blog posts
I've ever written in my entire life about the design of the oscillator that's in the Juno and Castor and Pollux.
It has interactive illustrations of what each part of the circuit does, and it has calculators built into it so you can understand why they picked up the component values they picked. It's really great.
And it's kind of like this result of like two years of research into how the Juno works.
And so, yeah, like that blog post is all about the analog side of things, which was a lot.
And it was really challenging for me because I don't have a background in electrical engineering or analog circuit design.
And so learning those things and wrapping my head around them were really, really hard for me.
And the digital side of things comes a lot more naturally to me.
So that was quite a challenge.
That was a really great post.
I'm still absorbing it and I want to go back to it a few times.
Because there was a lot of stuff i didn't
understand about yeah how oscillators work and like for example duh everything starts as a square
wave and then it it does it you know it modifies that to make ramps and things i was like oh that
makes a hell of a lot of sense uh that never occurred to me that that's how they did it
yeah it's a neat strategy one of the things i really love about um like the juno doesn't quite have this as much as castron pollux does but um you
know like you said it starts as a square wave and then it gets turned into other wave shapes right
right and those have different timbres um but one of the waves it gets turned into is just a
sub oscillator where it takes that square wave and, you know, halves the frequency.
But the way it does it is with this little piece of digital slash analog logic circuitry, right, called a flip-flop.
And the flip-flop that I chose for Castor and Pollux has this really great sound to it.
Like, which is a weird thing to say
about a piece of digital circuitry, right?
It's like saying this RAM has great sound.
But like the analog characteristics
of this particular digital part
leads to the sub oscillator in Casper and Pollux sounding a lot like the square
wave that you'd hear in the Game Boy.
So if you're doing anything that's like chiptune inspired, like Castor and Pollux's sub oscillator
sounds so good for that because it sounds so much like the Game Boy's square wave, which
I think is really cool.
You know, they're square waves.
They should all be the same.
There shouldn't be a Game Boys square wave.
No, no, no.
They got harmonics and junk on them, and you know how this works.
We've had this discussion.
Yeah, there's something complicated called the Shannon Nyquist sampling theorem
that I should know considering I make synthesizers and
deal with audio all the time. Um, but basically like there's, there's no way that you can make
a perfect square wave now. Like, um, so no matter what you do, like the, the circuitry involved in
making a square wave is going to impart some sort of change in the way that it sounds.
And, you know, if you produce it one way, it sounds, you know, very harsh and sort of hollow.
But if you produce it another way, it can sound like much, a little bit softer and a little bit
fuller. And I think that's really interesting. It's like, oh, it's the same fundamental square way.
But depending on how you make it and how you push it out, it's going to sound a little bit different, which I think is really cool.
So I mentioned the SAMD21 because you've written about the clocks and you have a thoroughly commented linker script and ADCs.
Why that chip?
That's, I mean, like, I think it's equal parts just, like, luck and equal parts, like, admiration.
The SAMD21 is the chip that's in the Arduino Zero, and it's also the chip that you'll see in a lot of Adafruit's M0 boards.
So, like, the Feather M0, the Itsy Bitsy M0, you know, all of those.
And it's a 48 megahertz 32 bit arm chip. So like if you've played with like the original Arduinos that are these,
you know,
eight bit AVR microcontrollers,
like having a 32 bit arm microcontroller is a huge step up.
Um,
so it's,
it's one of these chips where it's like,
it's powerful enough to do,
you know,
so many things,
but at the same time,
it's not so overly complicated that you like,
you need a PhD to get started on it, right? And there's so many resources out there already just because it's used in the Arduino and it's used in the Adafruit boards. But not all of that information is all that accessible to people who are just getting started with electronics. So that's why I write a lot about it,
other than the fact that I use it for the stuff that I make.
I think it's a really approachable chip,
and I think it's a really powerful chip as well.
So I just think there needs to be more accessible resources for it.
So I think it's great to kind of write about it
and talk about some of the hidden secrets and stuff
that Arduino hides from you
that you might be able to unlock with the SAMD21.
That's an M0?
Yeah, an M0.
Yeah, it's an M0 plus, actually.
But yeah, it's great.
Power for performance is incredible. It is very low power for how much you can get out of it. Okay. Do you use that part of it at all? I don't generally
make anything that's battery powered. So no, not really. People have asked me to write an article
about using low power modes for the Samdy 21.
So I've done a lot of research into that.
And yeah, it's ridiculous.
Like you can set an alarm and then put the whole sort of sleep for a long time and wake up periodically.
And I didn't end up doing the project, but I did the research and I was like, oh, wow.
Like, even if I just power this from like a couple of coin cells, like it will last a long time.
It's incredible.
It really is.
I mean, as far as chips go, the reason I would look at it would be somebody would say,
I need it to be super low power.
And I'm like, okay, let's go look at this line of chips.
So it's funny to come at it from the other perspective, that it's a popular maker chip.
And its competitor with the Arduino Uno, it's just so different. It's like
going from standing in...
Oh, that's not a good metaphor. It's going from standing in a closet
that was what I was thinking the whole time, to
being in a big living room,
you actually can do all this stuff and move around and,
and get so much more done.
So,
yeah.
Yeah.
But it's,
it's not as overwhelming as some of the newer chips where it's like going
from,
you know,
standing in a closet and moving around to suddenly you're in a stadium and
you're like,
Oh God,
the big ass T chips are at this point indistinguishable from the A-series sometimes.
Yeah, yeah.
Like, I have no interest in doing anything with an A-series chip.
And, I mean, I'm sure your audience is familiar with the distinction, but for those who might not be familiar with it, like, the M-chips are designed for embedded use, whereas the A are um we're called application chips so they're like
the things that run linux and run you know cell phones and things like that much more
powerful complicated machines almost a computer almost yeah okay so how do you go about designing
a synth do you do you have a problem and you want to solve it? Do you have an idea? Goofing off with electronics?
What's the methodology?
I already described my methodology, which is that I'm a swarming vortex of chaos.
But more realistically, the answer to those is yes, like all of the above, right?
Sol, which is the first one that I designed, I made because I had a problem that I wanted to solve. I wanted to be able to control my modular gear from my computer. And while there's modules
out there that do USB to MIDI and stuff like that, I wanted one that I could program and I could just
kind of repurpose on the fly to do different things.
Because like, you know, for one thing that I'm using the synthesizer for, I may want, you know, just pitch and gauge.
Just say, okay, translate the note that I'm playing on my computer into a note for the synthesizer. But for other patches, I might want to be able to, you know, generate like three random voltages in addition to that.
Or I might want to switch it up you know generate like three random voltages in addition to that or i
might want to switch it up and use it for something else and having that flexibility to just edit
um a file and change what it does um was was really why i put it together and designed it
um for big honking button it which you may hate this but that is my favorite thing no everyone loves everyone loves it and i it's such a funny story to me because
um it was such a random idea like i i was just like exploring like what the sam d21 could do
in terms of like playing back samples.
And I just played Untitled Goose Games, so of course I put a goose sample on there.
And I'm sitting there playing with this, and my sister's like, what are you doing?
I'm like, I think I have an idea for a module.
And yeah, the rest is kind of history.
I designed it between the time where I sent off Sol for production and when it arrived.
So I ended up launching both of those modules at the same time.
Um,
when I opened my company, but soul was actually already in production before I even started designing
the talking button.
Um,
and so it was just like this last minute afterthought,
basically like I had planned to launch with just soul,
but I'm so glad.
I'm so glad I had the inspiration for big honking button.
Um, and then for castor and pollux
it's actually something i've wanted to build since i started getting interested in synthesizers i
love did you know it's my favorite synthesizer and i've wanted to recreate parts of it um since
i started this journey so for um well actually for all of them, I believe, but I know for Honking Button and for Sol, you mentioned about a file, you can change things, but this isn't recompiling.
This is with CircuitPython, right?
Yeah, yeah, this is CircuitPython.
And, oh my God, it's such an incredible experience.
Um, when, when I would like first started with soul and, um,
like wanted to see if it was even going to be something that people would be interested in, ended up reaching out to a couple of people, um,
to like beta test it. So I ended up with four people that were beta testers.
And, um,
one of them actually like live streamed her first interaction with it.
And she'd never done anything with CircuitPython before, never even heard of it, I don't think.
But like, within like 10 minutes of her stream, like she goes, huh, I wonder how I'll change this.
And she opens up the file. And she's like, oh, this is cool. And then she saves it. And she
sees the module reboot, and just immediately start running
her new code and she's like oh i love this and like just seeing like someone's face light up
and they realize like how lovely the experience is especially like us like jaded software people
who are used to like wading through all kinds of nonsense just to get something running
like seeing that instant feedback and ease of use for something like that is really incredible.
But your whole system isn't written in CircuitPython, is it?
It depends.
So for Sol, everything is written in CircuitPython.
I mean, CircuitPython itself is written in C and stuff like that.
For Sol, the driver for
the DAC is written in CircuitPython.
The
code that parses
MIDI messages is
written in Python.
Basically, the user code is written in Python.
It all runs on CircuitPython,
which is
cool. BigHonkingButton is also mostly CircuitPython, which is cool.
BigHonkingButton is also mostly CircuitPython.
BigHonkingButton's firmware in CircuitPython is about 100 lines of code.
The only thing that I did special for BigHonkingButton is I added an extra module to CircuitPython in C that lets it read the ADC with more accuracy.
And that's it.
It's actually entirely optional.
The first version of BigHawkingButtons firmware did not have that.
Why are you spending time looking at linker files if most of your code's in CircuitPython?
You know, like, I have this problem
where my brain does not do what I want it to do.
It does whatever it wants to do.
And I'm mostly just along for the ride.
So, you know, sometimes, you know, I wake up in the morning and my brain says,
you know what we're going to do today?
We're going to research linker scripts for five straight hours.
And you know what?
I just got to strap in and go for five straight hours. And you know what? I just got to strap
in and go along for the ride. And yeah, I mean, so the reason why I even got down to that level
is because Castor and Pollux's firmware is not written in CircuitPython. It is written in C.
It is a bare metal ARM project. I am not even using microchips or Atmel's HAL libraries.
It's just me, GCC, and CMSIS headers.
And I wanted to do that not because I'm a masochist,
but just because I really wanted to get more familiar with the hardware.
You know, like you mentioned, I've written blog
posts about the SAMD21s, like clocks and ADCs and timer peripherals and stuff like that.
And that research came because of Caster and Pollux, because I was writing the firmware
in this low-level sort of way. And, you know, I totally could have gotten away with writing it in
the Arduino framework, right? Like, I totally could have.
But I did want the ability to sort of take the most advantage of the ADC as I could,
because Castor and Pollux has eight ADC inputs that it needs to sample.
And it needs to do that in real time, because it is a synthesizer.
It is music, right? It needs to do that in real time because it is a synthesizer. It is music, right?
It needs to do that faster than you can perceive it. And I wanted to take the most advantage of
that that I could. And that meant doing things like interrupts and messing around with the
timers and stuff, things that the Arduino framework doesn't really love for you to do. but yeah so I dug down to that level and as I started sort of messing around with this bare
metal arm project like you know I had the linker script that I got from you know microchip and it
was just filled with all these things I didn't understand like I could understand the c side of
things right I can look at the CMSIS headers and say, yeah, that alias points to some location in memory, and I can go look at the data sheet, and I can see what that location in memory, you know, controls. But you look at this linker script, and you're like, where does this come from? Like, did someone, like, drive by on a spaceship and just throw a flash drive out the window. And in that flash drive was this linker
script because there's so many things in here that are named something and you don't know why they're
named that way. And it's not arbitrary because if you change it, something breaks and you're like,
where does this even come from? Um, so like, you know, it was this one part of my project that I
just completely did not understand and like had no way of understanding. So I was like, all right, let's research this. Let's see what it is. And
now I don't have to wonder anymore. What is your background? Software?
Yeah. Um, I've been a software engineer, um, for like professional software engineer for the last 12 years.
I've been programming for most of my life at this point, I think.
How did you decide to play with hardware?
I've always been kind of drawn to hardware.
When I was in high school, I helped start a robotics team,
which was really fun.
I was the one that ended up doing all the programming for the robot, which was great because I got to like go test out code that made a big machine move around, which was really fun until, you know, you run over some kid's foot.
It's, yeah, so I don't know.
That was interesting.
And then, you know, my career in software,
um, kind of took me away from that for a long time. It was a long time where I just like,
you know, I didn't do anything with hardware and also just because it was hard, right? Like
Arduino hasn't been around forever. Um, but eventually like a sort of gravitated back to it.
Um, I wanted to make, I think what, what actually got me back into hardware was like keyboards. I wanted to make a mechanical keyboard and stuff like this. So that ended up dragging me a little bit closer to the hardware community. And like, I just fell into it like it was a black hole or something like the keyboard stuff was the event horizon. And here I am.
So yeah.
And was it Arduino that was providing some of that gravity or did you not need that?
It was just kind of a nice path.
I think, I mean, yeah, I needed every bit of help I could get, right?
It's like, I'm not some genius that doesn't need to go through the basics first, right?
Because my first experience with customizing code on hardware,
post-robotic stuff in high school, was changing the key map on my keyboard.
And I was like, okay, this is written in C.
I know C, I'm familiar with that.
But the whole process of flashing the firmware back on there was really weird.
And I was like, hmm, I've never done anything like this before.
It's strange. And then I picked up hmm, I've never done anything like this before. Strange.
And then I picked up an Arduino to kind of just mess around with.
And I was like, huh, this is kind of cool.
It seems to be doing a lot of things for me underneath the covers,
but this is really cool.
And then I wanted to build something that made music.
So I ended up using the Teensy um the arduino there to to build a
little bit of a synthesizer which was really really cool it was really interesting and really
honestly like um the hardware parts were easy the the software parts on that particular synthesizer
were not as easy but it wasn't because of it being run on hardware. It was just tricky things to write in general.
And from there, I just kept digging.
I'm like, okay, Arduino's cool, but what's happening underneath here?
And then, oh, this microchip provided how start or whatever,
ASF4, is interesting, but what's happening underneath the covers?
And here I am am suddenly an expert on
the 7021 and I don't know how it got here. And you have a business, which starting a
business in March of 2020 seems... Is the dumbest thing that you could possibly do.
I wasn't going to frame it in those terms, but you said it, so I'm going to agree.
It's bold.
It's bold.
Yeah, it's a bold strategy strategy let's see how it works out
um yeah it was an absolutely silly thing to do um but it was always sort of
like i i did it with the intent of it like not going anywhere
like you were working a full-time job at the time.
I mean, I still am.
Yeah, I still am full-time employed.
But yeah, I was working a full-time job, and I was like, okay, people might be interested in buying this thing.
I set aside a budget at the beginning of the year for me to kind of do this, because all of it was learning.
I wanted to learn things i was like okay i've learned how to like make my own electronics but how do
electronics get made so i was like okay what would it take to manufacture a small run of
synthesizer modules and i looked into that i'm like i could do this and so yeah like you know
kind of the first little, little batch of modules with
Sol and BigHawkingButton were a learning experience for me. It was just learning how the,
you know, how the hardware industry actually makes physical products. And so, like, I kind
of started it with this idea of, like, it may not ever ever go anywhere and that's okay. And I didn't
need to like push it to be anything more than that. Right. I didn't, I didn't have to like
bet the farm on it and like stress about whether or not I'm going to have enough sales, which is
why I started it in March of 2020, because it's just kind of like, if people buy it, that's cool. If people don't, that's cool, too, because I learned something, right? And yeah, almost a year later, it's been surprising, I think, to see how far it's gone.
I mean, not quite even a year later. And you tweeted not too long ago that you actually had profit yeah yeah um which was a surprise to me
um despite you know being the one that does the bookkeeping because i'm the only employee
yeah i like i was like wow huh because like you know, like I said, I set aside an original, like a budget for it to start with.
And at some point I was like, oh, the budget's back.
You know, like I made it all back.
That's wild.
I didn't expect that to happen.
But, you know, at the same time, I did do math as I, you know, planned out the production for each of these modules to, like,
make sure that, like, they made a little bit of money, right? Like, not that, like, I was,
you know, making myself poorer by making the modules that, you know, there was at least some
net positive there. So, yeah. So, it shouldn't come as too much of a surprise if I, you know, paid attention to the math, but emotionally, it's a surprise.
How did you market and sell and package and ship and kit and build all of this?
That question went on longer than I expected.
How much time do we have?
So, fun fact, I've done almost no marketing.
And I joked earlier that I'm the only employee, but I'm actually not.
I brought on a friend of mine, Maggie, when I moved here to Atlanta to help with shipping and fulfilling and, you know, just kind of making things keep moving.
Because, as I mentioned earlier, I struggle with ADHD.
I also struggle a lot with depression and anxiety,
which makes it really hard for me to consistently ship out products,
as you can probably imagine.
So, having someone I pay to help with that is really great.
But in terms of marketing, I haven't done any.
And I remember Maggie asking me about it. And I'm like of marketing, I haven't done any. And I remember
Maggie asking me about it. I'm like, oh, I don't really do anything. So most of Winterbloom's
marketing has just been word of mouth. And it's been, I mean, there's been like two particular
communities that have been really, really wonderful for me in terms of Winterbloom.
Like the Adafruit community,
there are, you know,
quite a few people in there who also do modular stuff.
So when they saw a CircuitPython-powered
modular synthesizer kit,
they were like, oh, I'm so on top of this.
They were super excited about it.
And I'm very thankful for that.
I'm also part of a Discord
that is people who are transgender and involved in the synth community.
And, you know, they got to kind of watch a lot of the process of me designing these modules.
And then when I released them, they were my first customers.
And I'm so thankful for that.
They're my friends and my customers.
And it's great to be in that situation.
So, yeah, I mean, from there, it's just word of mouth.
I mean, you know, I post things on Twitter, people retweet them, and I get sales sometimes.
But yeah, I've actually done a little bit more active marketing with Castor and Pollux,
where I've actually sent modules to people who,
you know, have significant followings, like Jeremy from Red Means Recording, who's a super awesome
person and a nice dude in general. I sent him over at Castor and Pollux, and there's a couple of
videos you can see of his where he's using Castor and Pollux, which is really, really cool.
There's a few other people who have them in hand as well,
but they haven't quite posted about them yet, which is totally fine.
There's no deadline.
So, yeah, that's marketing.
Marketing is basically nothing.
I need to step it up.
In fact, I just need to pay Maggie to start doing marketing.
And in terms of building and shipping and packing and all this stuff um i use a contract
manufacturer to do all the surface mount stuff um so that gets done ahead of time for me which is
which is great um when i get them i program them i test them and then i do any through
hole assembly and package them up um and you know for some
modules that's really easy big honking button is so easy it's actually if you want to get into
modular and you want to do kits get a big honking button kit it is one of the easiest electronics
kits in the world and when you get done with it you have a button that honks um so i mean i really can't sell it any
better than that um but like you know big honking button's not too hard to put together so it's not
too bad but um soul oh my god like the the you know sort of retrospective on soul's sort of
manufacturing difficulties is like oh god like i'm already working on a new revision of it so
that I don't have to do the same manufacturing steps that I have to do now. And like, that's
the most important thing. Like, I mean, I want to add new features and I want to make it, you know,
a little bit better. But like, for me, it's that soul is hard to put together. And, you know, if I'm going to sell more,
I need to do better at streamlining that experience for myself.
I was going to ask you what your biggest surprise was
going through this process, things you hadn't realized.
Yeah, mostly just like, you know, scale.
Scale changes everything, right?
It's true in web dev and it's and it's true in hardware like um you know selling 50 souls is you know not too bad
but when you have to put together a bunch of them all the time it's you're like okay i should have
designed this differently and i avoid saying should have designed this better because like,
I didn't know any better at the time, but now it's like, okay,
if we're going to go back and revisit that, let's fix these things.
It's not so, so onerous to put together.
Now that I understand what design for manufacturing means.
When you're the manufacturer, that's yeah.
Takes on a different.
Yeah, absolutely. I also like, you know, When you're the manufacturer, that takes on a different meaning.
Absolutely.
What was surprising is hardware testing and programming is really interesting to me.
I published the factory setup scripts and everything with my modules.
Everything I do is open source.
But I ended up having to purchase a bench multimeter for Sol so I could calibrate the DAX. And learning how to program a bench multimeter was so cool. I super enjoyed that. And I had to do a similar thing with Castor and Pollux in an oscilloscope to take measurements and make adjustments which is so cool it's so cool to watch these like neat instruments like make measurements and like you know have have your
program like do all that for you and you know like create better testing calibrations than you could
ever do manually and i think that's really really cool you. You just mentioned that your design,
your hardware, your software,
your manufacturing scripts are open source.
And I wanted to ask you,
why aren't people just making them themselves?
Are there people out there making them themselves?
I think there's a couple of people who have reached out to have like asked me questions
about making them themselves.
And like, I encourage it.
If you want to, you know, download the source files for big honking button and, you know,
go order the PCBs from Oshpart and order the components and put it together yourself, knock
yourself out.
Please do it.
I super encourage that
because like, that's how I learned. If other people did not make electronics kits and make
open source hardware, I would never have made any of the things that I made. So it's so important
to me that I kind of give back, right? So, like, I'm never upset if someone makes their own
of things. Like, right now, Castor and Pollux is for pre-order, but the hardware is open source,
and it's already published. So, if you really, really want a Castor and Pollux,
you can go make one yourself. You also need to have an oscilloscope so you can calibrate it,
but you can go and make one yourself. And, you know, I,
I, you know, I think part of the reason why people don't just go and make it themselves
is that most people appreciate the value of, you know, someone else putting something together for
you. Um, and they also want to support my work and And, you know, like, it's like people will actually
pay for things. It's, you know, like, capitalism doesn't require you to hide, you know, all the
details so that, you know, people have no choice but to buy things from you. It turns out if you
give them a choice, they will sometimes buy things from you, which is really, really nice. So yeah, that and like, you know, it's,
it is, you know, like putting together hardware is not a skill that everyone has.
And not everyone has the equipment to do it. You know, like, you know, all of my modules
are surface mount stuff. And, you know, the, it's not like you buy a dev board and you buy a, you know, you order, you know, a printed circuit board that you stick the dev board on and you know the it's not like you buy a dev board and you buy a you know you order
you know a printed circuit board that you stick the dev board on and you add some jacks to it
right like i i actually went through and like integrated the you know the microprocessor and
everything into the design so you have to deal with like soldering qfn parts or qfp parts
and all of this stuff and like not everybody wants to mess with that and i totally get that
because i don't want to mess with that i pay a contract manufacturer to do it um so you know i think that's part of it
too like it's it does require a certain you know level of comfortability with that before you're
you know you want to do something like that and the other thing is like one of the things i'm
really planning with all of my future modules including including Castor and Pollux, is I want to offer kit versions of every single one of them. Because, I mean, I mentioned my
manufacturing processes, the surface mount stuff gets done by somebody else, and then I get it and
I do all the through-hole stuff. Well, that's a kit, right? So, you know, instead of me putting
it together for you, I'll just package up all the components in a nice little kit and make a nice little guide for you and you can put it together yourself.
So people can still get that satisfaction of having put something together, but they don't have to deal with all of the fussy bits of like the surface mount components and testing and calibration and all of that stuff.
I can do all of that ahead of time and just give you the joyful part of it.
I think it's funny that some companies do believe
that in order for capitalism to work,
everything has to be hidden.
Yeah, I've never bought into that.
That's like, I don't know,
maybe it's the socialist streak in me or something,
but I'm just like, you don't have to do that.
People will pay for stuff.
And running one board and building it myself with the uncertainty of whether I did it wrong or whether there's a bug somewhere, it's so much worth paying you to just send me one.
Right, exactly.
And yet, if somebody has a SAM D21 board, which they're pretty easy to get and is willing to put
in a little bit of time, they might be able to use your code and not have to pay as much,
but get to try out having a modular synth piece. And you make it available to them in a way that encourages them to start building things.
Yeah.
Actually, don't tell anybody this, but you can run Big Honking Button's code unmodified on a Feather N0 Express.
Like, plug in a speaker to the right pin and plug in a button to the right pen and put the code on there and you
have a big honky button like that's that's it except you don't have the very satisfying button
part and the button is really that's i think that's important how long have you just been
choosing that button um not long i mean um i i picked my favorite button of all time which is
an arcade button right it's a sanwa arcade button it's exactly all time, which is an arcade button, right? It's a Sanwa arcade button.
It's exactly what you would find on an arcade machine.
I have one of my parts kits somewhere.
Yeah.
So I was like, that's obviously the button that needs to go there.
Yeah.
I mean, it was actually really funny.
Speaking of the buttons, when I first launched Big Honging Button,
out of some, I guess, like artistic integrity
or whatever, I was like, I'm just going to offer white panel, orange button.
I want it to, that's the colors I picked out for it.
That's what I'm going to sell it as, right?
Like a real Henry Ford moment.
Huh, looking at your website, that didn't last.
No, it did not.
And here's why.
I, so my first run of Big Honking Button was 150 units.
And I'm doing part sourcing, and I reached out to my source for the buttons.
And I was like, hey, can I order 150 orange buttons?
And they came back with, sure, but we only have 58 in stock.
And I was like, okay, give me those, but also give me some of your other colors.
And that's why there's more colors for the big honking button.
I mean, if it was an Iraq, it would be nice to have it be multiple colors.
Yeah.
Absolutely.
The orange is very duck orange.
It's yes.
I love it.
I love it so much.
My favorite color combination though is black and pink i think that looks really great your boards are pretty too do you spend a lot of extra time
making them pretty um i don't know like it's it's part of the process right like it's not a separate
thing that i do like i don't lay out an ugly board and then go back and put pretty things on it i just go i just go from the start like yeah i'm gonna make this
pretty um although i will say like when i when i did a the second version of big honking buttons
boards i did go through and like like make it a little bit prettier because like the first one i
did was like no special graphics at all on it, right?
And I didn't have a logo yet when I made it and all this stuff.
So when I went through and did the second revision,
I made sure to put our branding on the back of it
and put a nice open source hardware logo on the back of it
and put the nice Creative Commons logos on the back of it
so that it's nice and pretty on the back.
And I'm happy I did that.
I also made sure that the designator for the jack said honk out, and I think that's great.
You write about your software.
You write about learning with your software, and you provide that educational resource.
Your board is open source, and it's intended to be looked at.
It's not intended to be hidden away in a package.
And you've been very upfront with your business information.
I mean, even telling people I've made a profit, it's kind of an unusual thing to do.
Yeah, and our bill of materials is available too.
So you can see exactly how much my my um like profit ratio is on every product if you if you look closely enough how much is your
goal to teach people things versus to make things i uh that's such it's a weird question because
like i don't see those as separate. That is my goal, right?
My whole, I guess, this sounds corny, but my mission in life is to empower people with software and hardware.
Technology is this thing that like is really transformative and a lot of the ways that we see technology in
the modern day is used in an exploitative way right like it's used to you know control resources
it's used to consolidate like means of communication and all this stuff and like
i it's it's easy to forget that technology, when it's personal, is really, really empowering and transformative.
And for me, that's what I want to do.
That's the whole purpose of this, right? build a module and sell it if I don't also have a chance to tell people how it works and why it
works and why it's cool and why it's interesting and, you know, how you can take that information
and use it to make your own stuff. And I think that's the most important part. Like, the fact
that I have something to sell is secondary, honestly, to the education aspect of it.
It's, yeah, it's more about that than anything.
It's funny.
You started that question with they're the same, but you ended it with the education part.
Well, yeah.
I mean, like, I mean, I guess you said, like, how much is it my goal to make something versus teach something?
Well, like, yeah, you have to make something to teach something.
But in terms of selling something, that's just, you know, that's just bonus.
It's just something else.
It's there, you know?
One of the reasons to ask the question is because last week when we had Emily on the show,
we talked about how sometimes you do things, you build things, people build things, she builds things because she wants to build it or wants to have it and doesn't want to have to explain it.
And you've made a pretty big effort to make sure that everything you do is explainable.
And that's both paths are admirable.
I'm just not always sure that everybody knows they're on one or the other.
I mean, honestly, I wish I had the mind that Emily has so that I could create something that's unexplainable.
Like, I feel like that would be't, that can't be explained at all is the moment that like,
I like the black hole inverts in the universe,
you know, goes backwards.
Right.
Like,
so yeah.
And both are admirable.
Like I,
I think that like,
you know,
there's parts of,
of technology that are artistic and,
um,
and indirectly empowering by saying something,
by having a message, by being unexplainable.
And there's this aspect of technology that is practical and empowering.
And I think, you know, like what makes humans humans is technology, right?
Like the fact that we learned how to, you know, use tools and communicate.
And like, yeah, it permeates everything.
And there's so many different ways of approaching it.
And I really admire Emily's approach to it.
And I appreciate our differences on that.
And I think it's wonderful.
Okay, I have two more questions.
One of them is dumb.
Awesome. How do you make the panels, like the. Okay, I have two more questions. One of them is dumb. Awesome.
How do you make the panels?
The PCBs, I understand,
but like the Castor and Pollux,
the panel is super cool
and it's got all these little stars
and multicolored things.
And so how do you source
and manufacture those?
What are those?
That is not a dumb question at all.
So for Winterbloom, our panels are PCBs.
Oh, okay.
Yep.
We use a PCB manufacturer to make the panels.
And we do really high-quality stuff, too.
We've been using PCBWay's advanced PCB service for that
because we have specific tolerances and we
want to make sure the art comes out
correct in the end.
We've also
we're going to use Aureole circuits for one
panel so we can get a specific color
because they'll do
any color you want, but it's a little bit more
expensive.
But that's something I haven't announced yet so um but yeah so they're just pcbs and um for castor and pollux
to get the whole like little light thing it's actually just exposed fr4 okay so the sub so
the substrate is just exposed so on the back of the panel there's like a cut out in the um
in the uh solder mask so that you can just see straight
through it um to see the fr4 and then on the front it's you know we basically have the star
part of it um cut out the the both the copper and the um the solder mask so that you can see
you can see the fr4 on both sides and when you have that it becomes an led diffuser that's really yeah yeah um and i've i've talked to other manufacturers about how they do their panels
and a lot of people do metal photo um like aluminum panels that have basically like screen printed
or um i can't remember exactly how metal photo works but some kind of chemical process
it's it's something that really
isn't practical into your shipping like a thousand of something yeah right and apparently it's really
hard to get consistent um i think it was someone maybe noise engineering was telling me that like
their manufacturer ended up bringing that in-house um because like they were contracting it out and
like they would just get so many that were just wrong.
So they bought their own machine to do it
so that it would be more consistent.
And I'm like, oh God, I don't want to go there.
What color do you need?
You don't have to tell us what it's for.
I just need to know what color.
Pink.
All right.
Yeah.
I think when we talked to Lenore and i think they mentioned that
company in pink didn't they a little red window i i remember pink boards being not yet available
yeah yeah you can get them you just got to pay a lot of money so um i mean it's not too much
in the grand scheme of things it's like you I think, depending on the size and stuff like that,
it's like $8 per board at 500 boards or something like that.
But, yeah, you need to order a lot of them to make it worthwhile.
But, yeah, pink.
One of our panels is going to be pink, and it's going to be obnoxious,
and I'm excited about it.
The other question I had going back to Castro and Pollux was,
how much part-level reverse engineering did you do like did the voice kind of do the chips that the juno
was made from still kind of exist or did you recreate it with modern parts oh god so the 60
is made up of discrete components so you can actually look at the service manual and see how it was put together. Which, thank God, because that's where I actually got the component values from for the blog post and stuff like that.
Casper and Pollux's component values are different just because it operates at different voltages.
Ah, okay. Juno 106, on the other hand, it is a custom integrated circuit. They call it the voice chip.
They're no longer produced.
There's someone who's
thoroughly reverse-engineered them and makes replacement
voice chips. I was
going to get my hands on one of them, and I can't remember why I never
did.
The service manual still contains
a schematic
for that chip.
It doesn't tell you the component values or anything, but it gives you a general idea of what's going on inside of that chip. It doesn't tell you the component values or anything,
but it gives you a general idea
of what's going on inside of the chip.
It's basically like what you'd see in, you know,
a data sheet for like an op-amp, right?
You see the equivalent circuit.
So it's like that.
So you can at least draw some conclusions.
And if you look at the blog post,
I mentioned like how the 60 uses positive control voltage
and the 106 uses negative control voltage.
And the way that you can tell that is because if you look at the, you know, the equivalent schematic in the Juno 106, you'll see they're using a different type of transistor.
And that like says, oh, that's using, you know, negative control voltage.
So, you know, there's a lot.
It documents enough so that you can figure it out just from the service manuals. yeah thankfully i didn't have to decap a chip or anything yeah it's weird that
they used to include schematics in the in the manuals can you imagine getting like a rice
cooker now and having a schematic in there i mean the apple 2 plus over there came with
yeah the apple 2 plus schematics so maggie and I have talked about including little manuals with our modules.
And that's something we haven't done yet because it requires getting a printer to do things and things like that.
But if we do, I'm totally including a schematic with each and every one.
It's going to happen.
I will put in the time to make keycat schematics look good so that I can put them in a
manual. Thea, it has been wonderful to talk to you, but I suspect we all need to go about our
weekends. Do you have any thoughts you'd like to leave us with? You know, I think the biggest
thought I want to leave y'all with is like, every time I get asked, you know, questions about how to get into hardware and stuff,
the answer is always the same.
Find a community, you know,
find people who are doing things that you want to do with hardware, right?
If you want to make keyboards,
go hang out with the mechanical keyboard nerds.
If you want to make robots,
go hang out with the robotics nerds.
If you want to make, you know,
all kinds of creative, interesting things,
go hang out with the Adafruit folks.
Like there's a lot of friendly communities and the best way for you to learn and get into something
is to have a group of people that are interested in the same thing and that you can ask questions
of and that you can share things with. Our guest has been Thea Flowers. She's Stargirl on Twitter
and general social media. Check out Winterbloom for her craft synthesizers. And of course,
we'll have links to blog posts and her GitHub in the show notes.
Thanks, Thea.
Thanks, y'all. This was really great.
Thank you to Christopher for producing and co-hosting, and thank you for listening.
You can always contact us at show at embedded.fm or hit the contact link on embedded.fm.
And now a quote to leave you with from Chico Xavier.
Though nobody can go back and make a new beginning,
anyone can start over and make a new ending.