Embedded - 359: You Can Never Have Too Many Socks

Episode Date: January 22, 2021

Thea 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)
Starting point is 00:00:00 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.
Starting point is 00:00:56 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.
Starting point is 00:01:10 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.
Starting point is 00:01:49 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,
Starting point is 00:02:04 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,
Starting point is 00:03:07 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.
Starting point is 00:03:40 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.
Starting point is 00:04:49 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,
Starting point is 00:05:35 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?
Starting point is 00:06:12 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
Starting point is 00:07:03 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...
Starting point is 00:07:20 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,
Starting point is 00:07:43 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.
Starting point is 00:08:18 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.
Starting point is 00:08:47 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.
Starting point is 00:09:03 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,
Starting point is 00:09:43 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
Starting point is 00:10:26 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
Starting point is 00:11:15 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.
Starting point is 00:12:09 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.
Starting point is 00:12:48 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.
Starting point is 00:13:46 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.
Starting point is 00:14:34 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.
Starting point is 00:14:55 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.
Starting point is 00:15:38 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
Starting point is 00:16:11 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.
Starting point is 00:17:03 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
Starting point is 00:17:35 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.
Starting point is 00:17:56 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.
Starting point is 00:18:45 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,
Starting point is 00:19:47 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,
Starting point is 00:20:00 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
Starting point is 00:20:45 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
Starting point is 00:21:16 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.
Starting point is 00:22:07 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
Starting point is 00:22:39 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,
Starting point is 00:22:52 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.
Starting point is 00:23:09 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?
Starting point is 00:24:07 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
Starting point is 00:24:57 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.
Starting point is 00:26:05 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.
Starting point is 00:26:20 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.
Starting point is 00:27:09 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
Starting point is 00:27:41 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.
Starting point is 00:28:20 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.
Starting point is 00:28:40 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.
Starting point is 00:29:09 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?
Starting point is 00:29:39 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,
Starting point is 00:30:18 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.
Starting point is 00:31:01 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
Starting point is 00:32:05 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?
Starting point is 00:32:54 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,
Starting point is 00:33:29 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?
Starting point is 00:34:26 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.
Starting point is 00:34:49 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.
Starting point is 00:35:28 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.
Starting point is 00:36:02 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.
Starting point is 00:36:31 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
Starting point is 00:37:19 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.
Starting point is 00:38:32 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?
Starting point is 00:39:20 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,
Starting point is 00:39:54 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,
Starting point is 00:40:26 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
Starting point is 00:40:42 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.
Starting point is 00:41:17 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.
Starting point is 00:41:51 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
Starting point is 00:42:28 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,
Starting point is 00:43:18 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
Starting point is 00:44:01 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.
Starting point is 00:44:25 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,
Starting point is 00:45:27 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,
Starting point is 00:45:57 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,
Starting point is 00:46:31 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
Starting point is 00:47:17 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
Starting point is 00:48:03 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.
Starting point is 00:49:02 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.
Starting point is 00:49:27 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.
Starting point is 00:50:18 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.
Starting point is 00:50:50 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?
Starting point is 00:51:13 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.
Starting point is 00:51:46 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.
Starting point is 00:52:04 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.
Starting point is 00:52:49 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.
Starting point is 00:53:14 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
Starting point is 00:54:02 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
Starting point is 00:55:07 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?
Starting point is 00:55:44 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.
Starting point is 00:56:20 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.
Starting point is 00:56:53 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,
Starting point is 00:57:06 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.
Starting point is 00:57:40 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
Starting point is 00:57:53 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.
Starting point is 00:58:08 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
Starting point is 00:58:31 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
Starting point is 00:59:02 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
Starting point is 00:59:51 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.
Starting point is 01:00:18 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,
Starting point is 01:00:46 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
Starting point is 01:01:22 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
Starting point is 01:01:56 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,
Starting point is 01:02:11 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.
Starting point is 01:02:35 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.
Starting point is 01:03:19 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?
Starting point is 01:03:53 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
Starting point is 01:04:09 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.
Starting point is 01:04:44 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.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.