350: The State of the Empire is Good

Transcript for Embedded 350: The State of the Empire is Good with Ben Hencke, Christopher White, and Elecia White.

EW (00:01):

Welcome to Embedded. I am Elecia White, I am alongside Christopher White, and we are pleased to welcome Ben Hencke back to the show. I suspect there will be some blinking lights, which you probably won't be able to see.

CW (00:21):

Hey, Ben. How's it going?

BH (00:23):

Pretty good. How are you doing?

EW (00:25):

Could you tell us about yourself as though we met at a random meetup at a small coffee shop for no reason.

CW (00:34):

In the before times.

EW (00:35):

In the before times.

BH (00:35):

That might've happened. Yeah, let's see. So I like to invent and tinker on things. I'm an engineer, primarily software engineer and more recently an entrepreneur. So I have a background primarily in software with scalable web services, architecture and things like that. Previously I worked at SchoolMessenger, built up this awesome notification system for schools. Lots of servers, databases and stuff like that. More recently, I've been getting into electronics. It's always been a hobby. I always tinkered around on RadioShack kits and stuff like that, and even took some EE courses when I was a kid, which was pretty cool, but switched primarily to that in 2016. So I've been kind of transitioning to that, and now I run a business making and selling fun gadgets.

EW (01:33):

That's mostly what we're going to talk about, I think. But first, lightning round. Are you ready?

BH (01:38):

Yeah.

CW (01:40):

Do you miss banana slugs?

BH (01:42):

Yes. They're awesome.

EW (01:45):

What's your favorite color of light?

BH (01:48):

Oh.

CW (01:50):

You should have an answer for this. You really should.

BH (01:52):

Okay. How about the shade that happens in a real natural rainbow just after violet, that is really hard to see.

CW (02:01):

Good answer. Favorite Halloween things. Could be costumes, candy, movies.

BH (02:08):

I haven't thought about that.

CW (02:13):

Or you could hate Halloween.

BH (02:17):

No, I love Halloween. I'm totally drawing a blank there.

CW (02:21):

All right. Favorite candy.

BH (02:23):

Candy Corn.

CW (02:24):

No.

EW (02:24):

No.

CW (02:26):

I know you're lying. All right. We'll pass that one.

EW (02:32):

What's something that a lot of people are missing out on because they don't know about it.

BH (02:37):

Oh my gosh. I am failing lightning round. I have no idea.

EW (02:43):

Okay.

BH (02:44):

Probably something I don't know too.

CW (02:47):

All right. Let's bring it back to something simpler. Favorite animal.

BH (02:51):

Cats.

EW (02:52):

Best thing about the Pacific Northwest.

BH (02:56):

Everything is green.

EW (02:58):

Yeah. I can imagine that would be nice.

BH (03:01):

All the time.

EW (03:03):

Okay. So aside from lightning round, Pixelblaze. That is one of the pieces of hardware that you make, and it was one of the first ones you started to sell. Could you describe what it is for somebody who's never seen one?

BH (03:21):

Sure. So Pixelblaze as a system is basically a way to live code cool stuff on LEDs. Physically, it's a little board with a wireless chip on it that connects up to digitally addressable LEDs, and then that serves up a webpage that you connect to with your browser either on a desktop computer or on your phone, and you can go in there and it'll store a bunch of patterns, you can click on them to change things. But really, the kind of unique thing that Pixelblaze does is it has an IDE built into that webpage that you can go in and type in a bunch of code, and it compiles it and runs it on the chip, on the fly. So milliseconds after you're done typing something, if it's syntactically valid. Your code's actually running on the chip and you can see that effects live on your LEDs. That's the cool part.

EW (04:09):

And syntactically valid is... You have a sort of language that's heavy on math. How else would you describe the language?

BH (04:21):

Technically, it's a subset of ES6, which is a fancy term for JavaScript or new JavaScript. So basically JavaScript, but it doesn't have the sort of things that you would consider Javascript-y. It's kind of closer to C and the things that it supports. So syntactically you got parentheses and curly braces, and you can type a bunch of math and you can call functions and things like that. There's a little bit less syntax. Technically in JavaScript, you don't have to have semi-colons and stuff like that, but for the most part, it's pretty much the same. But as long as you have no missing curly braces or unbalanced parentheses or something like that, you're good to go.

CW (05:06):

Okay. You say it controls LEDs. What kinds of LEDs? What would I buy to go along with this, or what could I control? The vast video screen, or a strip?

BH (05:23):

Yeah. So this is more geared towards LED strips. The kinds of things that you have like digitally addressable LED. So if you think of a WS 2012, or NeoPixel or an APA102 also known DotStar. So those sorts of LEDs, often they come in strips, sometimes they're on strings. So those are really popular around holiday time. There are matrix panel arrangements, but typically they don't get up into LED video wall scale of things.

EW (05:54):

So these are internet LEDs, or more likely internet strings of LEDs.

BH (06:02):

Yeah.

EW (06:03):

What are some of the things people have been using them for?

BH (06:07):

Oh gosh. Tons and tons of stuff. And actually, I've been collecting all that stuff for some reason recently. But there's lots of really cool stuff. You can do home automation type integrations because it's an internet of things thing, but typically people will do this in an art piece or costumes or for cars or motorcycles and things like that. My favorite piece, I think, is actually an upcycled old, '70s style standing lamp. It's got these black fins coming off of the center, and it almost looks like a warp core or something. This person ran these LED strips up and down between all these fins with some diffusion and then made it sound reactive, and so it's just really cool looking.

BH (06:57):

There's another artist that does all kinds of really cool molds with clear resins and things, and so he'll mold cactuses or other interesting structures and create these sea creatures, and then lights those up with LEDs and sometimes a combination of LEDs and projection mapping create some really cool effects.

EW (07:18):

That sounds really cool. We're going to need links for pictures.

BH (07:24):

For sure.

EW (07:25):

When we talked to you a few years ago... Wow. It's about three years ago now. You had put this up on Tindie, the first version of Pixelblaze, and had made a few, maybe several, sales. What is the state of your empire today?

BH (07:47):

The state of the empire is good. Yeah. Last time we talked, if I remember correctly, I was hand soldering these and trying to figure out how to better hand solder them, and then working with Bob at a Small Batch Assembly to get some of those made. And so I did, and it was awesome. I think I made almost 700 that way, and then those sold and I needed more. I ended up actually buying a pick-and-place machine to build them myself, and so I've been building them myself since. And it's been just scaling up since then. So that's how I made all the boards. Yeah, so it's been selling really good, and I've added a number of add-ons and things, still all going through Tindie. It's been popping up on their popular products page quite a bit, which is always really nice to see. People seem to really enjoy, so there's tons of awesome reviews. It's just awesome to see that people really like the thing.

BH (08:52):

So yeah. It's going really well. And now, I'm getting into the next phase and how to take it to the next level and the next version.

EW (09:03):

Well, when I met you, and I think maybe even when we talked last, you had a software contract job that you did for most of your day, and this was a side gig. Is that still true?

BH (09:22):

So I have been transitioning away from that to more of this. So it's been doing good enough that I think it's time to try to make a go at this. So this year I decided January 1st, I'm going to switch. So I didn't renew my contract, and dived into it like, "Let's try to make a real business out of this. Have this be the full-time gig." So it's been an exciting year.

EW (09:52):

That's sort of terrifying.

CW (09:55):

So you made that decision right before things got weird.

BH (09:59):

Yeah. If I had known.

CW (10:02):

Well, what would you have made a different decision?

BH (10:05):

That's hard to say. Pretty early on I knew this is going to significantly impact sales because a lot of the things that you would use cool blinking LEDs for, just aren't happening, or happening a lot less. Or because of economic reasons, people are scaling back their hobbies or projects and things like that. So I knew this year was going to be tough. But fortunately, it's kind of holding solid enough that if things went back to normal, I think this would be looking pretty good.

EW (10:37):

That sort of makes sense to me because while people aren't going out to have fun with LEDs, some of us have more time at home that we are doing things with. And so I could see having more time to play with the LEDs and to build things, even if I don't get to show them off.

BH (10:56):

Mm-hmm (affirmative).

EW (10:58):

Okay. So you got to pick-and-place machine. When you got one, I was just like, "Are you kidding? You're going to get your own pick-and-place machine?" What kind did you get, and was it really a good idea?

BH (11:11):

Yeah. I was looking for ways to get this manufactured. Really, there's a bunch of different variables that go into trying to get a board made. There's a lot of stuff that you have to know. Everything from how you design the pad layout and things like that, and how paste is going to work and stencils and how that reflows and all that kind of fun stuff. And I don't really have any firsthand knowledge of this other than doing it by hand. And of course, anytime you do all this stuff through machines, it's totally different. There's a different sort of design for manufacturing criteria that you would end up using. And I wanted to know a little bit more about that, but I also wanted quicker and better turnaround.

BH (11:54):

So even with somebody that's pretty responsive, I was still looking at something around a month-ish. So I'd go from idea to getting a batch of PCBs, and ordering all the parts and getting that to somebody. And then it's about a month until I have the actual boards. I wanted to speed up the turnaround time so I could have ideas and get them out there more quickly. So I found this article by Nate, the founder of Sparkfun about how he got this little desktop pick-and-place and was using that for prototyping. I was like, "Are you kidding me? This guy has crazy amounts of equipment at his disposal and he's buying this cheap desktop pick-and-place machine. What's this all about?"

BH (12:39):

So it turns out this thing is just pretty handy for just taking a file, throwing it on the thing and then getting it to run. So for his purposes it was working out great. I really aligned with that use case I ended up getting the same thing. And so it's a charm high, it's got some model numbers. There's 36VA. So it's got a vision, and 36 or 30 something feeders, basically. Two nozzles. It's not like a high end machine, but it's got vision, so it's good enough for most things.

CW (13:16):

What does the vision allow it to do? Differentiate parts or look for markers on the board, put things or magic something?

BH (13:26):

Yeah. So I guess I should back up a little bit. So I'm in the desktop pick-and-place world on the super, cheap, low end, you'll get stuff that's basically like the 3D printer mechanics, but with a nozzle that suctions up little parts out of tape and stuff. But it's just basically running based on coordinates that you program, and so it's kind of blind. So if it picks something up wrong, which happens all the time, it doesn't know about it, and it might just place it wrong. When you first set the thing up, you have to make sure that it's coordinates are exactly right and stuff like that. So the vision really helps out with that. So they have a down camera and an up camera.

BH (14:02):

So the down camera lets you sort of move the head around, and make sure that it's going to place stuff in the right spots or pick things up from the right spots, and they have an up camera which lets it look at the bottom of the component after it's picked it up, make sure that the translation is correct, and also that the rotation is correct and correct for any of that kind of stuff when it goes to place it.

CW (14:21):

Okay.

EW (14:22):

So you made your hardware soldering and into a software problem? It went from sorting everything by hand to programming a machine, it sounds like.

BH (14:34):

Yeah. Well, programming, I'm not really writing code or anything, I'm just telling it coordinates and stuff. It's more of like a machine operator job at that point. It's really close to babysitting a very picky 3D printer.

EW (14:54):

That makes sense. Okay. So you have a pick-and-place machine and you made the initial Pixelblaze, you made a couple of others, you made some other boards, but things are changing now. You're going to version three. Why and what is version three? How's it different?

BH (15:16):

Yeah. So version two is based on the ESP8266, which is a pretty awesome chip in terms of just value, and just what it can do, and the specs for the price. But the ESP32, which is sort of the next line in that series of chips has been out for a while, and it was time to bump that up to the next version. And so the ESP32 has two cores actually, which is pretty cool from a microprocessor standpoint, and both of them are faster than the original in the 8266. It's gobs more RAM, which is really helpful because things get pretty tight, and a bunch of additional peripherals and stuff. So really it's about cranking out LEDs faster, so you can have higher frame rates, more GPIO so you can interface with more sensors or buttons or switches or turn external things on and off in the sort of general scripting sense, and just an overall faster user experience.

EW (16:20):

Okay. What are you doing differently with it? That's what Espressif would say.

BH (16:28):

Yeah. There's the specs. Right now, basically the software, as it exists on the 32 and the... Sorry. On the V3 and the V2 are pretty similar. Today actually they're coming off with of the same code base. There's some additional usability enhancements and things on the V3, but from a hardware perspective, my goal was actually to make them as compatible as possible. So there's a number of ad-on boards, sensor boards, output expanders and things like that, and I wanted those to be compatible with the V3. So the V3 is actually the same form factor as the V2 and has the same sort of layout for where all the connectors and headers and things are. And the software itself is very similar. So the same kind of pattern language and all that kind of stuff. It just runs a lot faster, has more memories, you can do more complex things, you can run more LEDs at the same frames per second, or the same LEDs at higher frames per second.

BH (17:26):

It unlocks all kinds of potential for the future. So it has the memory to continue to add and expand features, were on the 8266, I'm basically pushing the limits in every dimension on that chip.

EW (17:43):

I didn't really like the 8266. I know a lot of people out there are going, "What? $4 WiFi, it's amazing." It was amazing, but it was also kind of clunky. Or at least it felt clunky to me having worked on actual WiFi products. I haven't tried the ESP32. Do you like it?

BH (18:05):

I have a feeling that you would probably have the same experience.

EW (18:09):

It's good to know.

BH (18:10):

Yeah. I wouldn't say that it's less clunky or that the SDK is better or anything like that, but it's certainly is just a ton of hardware for a very low price. And so I realized that sort of price point that I'm going for.

EW (18:29):

Is it still cheap?

BH (18:32):

Yeah.

EW (18:33):

Good.

CW (18:33):

It seems like the absolute sweet spot for the kind of product you're making. Was there anything else you looked at for V3 and said, "Okay, is there something else out there that's not an ESP?"

BH (18:46):

So I have considered using an ARM chip for the main processing engine that all of your patterns and stuff run on. And the reason that I might go down that route is because instruction set architecture is very well documented, and it's all pretty well known and works very well, and there's tons and tons of chips with all kinds of different performances that I could potentially choose from there, and kind of unlock that from the processor that just happens to be running the WiFi stack. But then I'm looking at running a WiFi chip alongside an arm chip, and then dealing with all the complexities of having two different code bases communicate with each other and all that kind of fun stuff.

BH (19:28):

It may happen at some point in the future, but right now, this was sort of the perfect combination of fast enough, has enough memory, and also does WiFi.

EW (19:38):

But it has two CPUs, and you still have that problem of them we're communicating with each other don't you?

BH (19:44):

Mm-hmm (affirmative).

EW (19:45):

Does it allocate one for WiFi and the other one is for application, or do you get to control both?

BH (19:51):

Yeah. So by default it schedules all of the system stuff. So they have, in their SDK, a whole bunch of things that's handling the WiFi things, they need CPU time, and that's all running on one core. And then by default, your stuff runs on the other core. But, you can schedule new tasks to run on either core. And so the system core is not used a hundred percent of the time. There's tons of free cycles there that you can borrow for stuff.

EW (20:20):

Dangerously. You can borrow for stuff dangerously.

BH (20:24):

Well, I wouldn't say it's dangerous. You're not going to crash anything by using it, but you will definitely get pre-empted by something that's more important.

EW (20:34):

And is this a FreeRTOS? What are you running on the chip?

BH (20:40):

So Espressif took FreeRTOS and hacked multi-core support into it, is my understanding. So it has FreeRTOS APIs plus a couple of extra things.

EW (20:55):

Okay. How was writing firmware for it? Is it like, "Oh yeah, I worked with the old chip. The new one's pretty much the same, just better." Or is it learning a whole new system?

BH (21:10):

That's a great question.

CW (21:17):

Inside joke.

BH (21:23):

It's been challenging for various reasons. But if you're coming from just running on a single CPU like most of the microcontroller stuff I had ever done previously, you start to run into multi-threaded kind of issues and you need more semaphores to keep track of who owns what and that sort of thing, which is something that you deal with a lot more when you're dealing with large distributed web services and stuff like that, but now on a microcontroller. There's things like keeping track of what CPU your task is running on. The fact that there are even multiple tasks that could be running concurrently, you run into things with threads and race conditions. So if one thread is trained to do something or modify some memory and another thread is doing something else, if they don't happen in the order that you think they might happen in, you can get into where it states you need to guard against those with semaphores and things like that, or just how you design your code.

BH (22:24):

There's resource contention and things like that that you have to keep in mind. You can't have everything just talk to the spy port all at the same time, for example. And there's different ways that you would design and architect how you lay out your things, so that you're delegating responsibility to things as opposed to just having everything try to talk to those directly. And more about sending messages through cues and things like that.

CW (22:55):

It sounds like actually a pretty great platform to learn all that stuff on.

EW (22:59):

And you'd have to. There's a lot of things you could avoid, but once you have wireless, you have some form of asynchronous communication, once you have that, then you really have to start figuring out the race conditions and the ordering problems. So do you have all that? That's kind of new. But the rest of it, the rest of writing for the ESP chips is pretty similar, or did they just scrap the old API and you have a whole new one?

BH (23:34):

It's a different SDK for sure. So those are night and day difference.

EW (23:39):

Okay. So that's the chip. What about the board? What else is new? You said you wanted to keep it the same, but it's a new board. What else would I be getting on my new board?

BH (23:54):

New. Version three. So funny story. V2 plus is actually V3, but back ported to the old chip. So I actually started on this design a while ago and it wasn't ready yet, but I needed to make more boards, so I carried forward or backwards, one of the two, all the [crosstalk 00:24:19] stuff... Yeah, sideways. Pretty much all the awesome stuff. So I added a couple extra things. For example, reverse polarity protection, because people would plug stuff in backwards and try their Pixelblaze, and all their programs are of course are on a chip. What?

EW (24:38):

I've done that. Plugging things in backwards. I've done that.

BH (24:41):

Yeah. So that's a nice feature, right? So it just kind of doesn't work, but at least it's not smoking. So there's that, there's high voltage protection. Oftentimes people plug this into a 12V led system, and so on the old version I had just a five to three volt regulator which max is a six, so it would let the magic smoke out. So now there's a higher regulator. It'll go into thermal shutdown, but that's a cheap way to give people some protection if they do hook up 12V. There is a button which was surprisingly lacking on the original version of Pixelblaze. You had to add your own to switch... [crosstalk 00:25:24]. But really, the difference you get between V2 plus and V3, there's just a ton of IO that are available on the underside, so you get tons of ADCs, so lots of analog inputs. There's touch controller, so you can quickly and easily add touch buttons and things like that. A bunch of digital IO that you can use for things. But otherwise, it's exactly the same form factor. Just basically a brain swap.

EW (25:56):

I like the additional IO, because that's always been something that I have wanted for the Pixelblaze is to be able to do more, having it be smart on its own, not needing me to tell it what to do, but to look at what's around it and do whatever it says that's around it, like temperature or even music. Before, if I wanted to have sound activated lighting, I had to have something that went between the sound and the web interface. I couldn't do it directly, but now I can?

BH (26:33):

Well, you could do it before with a sensor expansion board. So the sensor expansion board has a microphone and a processor on that board that does all the audio analysis, a jack so you can plug in an external audio if you don't want to use the mic, an accelerometer and a light sensor and a couple additional analog inputs. So you can do sound directly with that. But yeah, so now you have tons more audio inputs. You can connect that to all kinds of different analog sensors and things like that.

EW (27:06):

I didn't even know about that. That's cool.

BH (27:10):

And there is one more thing with V3.

EW (27:14):

Just one more thing.

BH (27:16):

There's a new form factor. So the V3 standard is just like the V2 plus. Almost identical board layout, everything. There is a Pico form factor that is incredibly tiny. It's about as thin as led strips themselves, and something like 33... I have to go look that up, millimeters long. So it's really tiny.

EW (27:38):

And is your board really tiny too?

BH (27:44):

The V3 standards are just under 35 by 40 millimeters, including the antenna and stuff like that. And the Pico's 11 millimeters by 33 and a third. So it's super tiny. And that includes the antenna, button and everything.

EW (28:01):

So Pico. P-I-C-O?

BH (28:04):

Mm-hmm (affirmative).

EW (28:06):

Okay. Dialects. I would have said Pico.

BH (28:10):

Is it Pico? I don't know.

EW (28:14):

I don't know. I'm staying with Pico, but I'm okay with Pico. I just wanted to make sure it was the same thing. Okay.

CW (28:22):

One thousands of a nano.

BH (28:27):

I'm going to have to get a shirt like the KiCAD/KiCAD.

EW (28:30):

Exactly. Now that I think about that, Pico is easier. The other one representing that, no. It'll come to you. It'll be okay. It'll come to you.

CW (28:44):

All right.

EW (28:46):

Okay. But these aren't on your Tindie. CrowdSupply, right? It's coming through CrowdSupply.

BH (28:58):

Yeah. So V3 is launching through CrowdSupply. Whereas before, I would just make a couple of boards and throw it up on my store and see how they do and maybe make more, this time around I'm going through CrowdSupply.

EW (29:12):

What is CrowdSupply?

BH (29:14):

CrowdSupply is a crowd funding site for hardware projects. And so you could kind of think of it like Kickstarter in terms of people go on there and they say, "Hey, this looks like a really cool project, I'm going to back it." I say, "I want one of these boards for X dollars. Here's my money and ship it to me whenever it's ready." Except CrowdSupply is way more responsible. They go through this whole process, they make sure first of all that you have a good product, that it's unique and interesting in the world, and also they go through this very rigorous vetting process that I'm in the middle of right now, where they make sure that you actually can make this thing. Send us your prototypes. Not just a photograph of it. Let's make sure this thing works. Document how you're going to manufacture this thing, and all that kind of stuff to make sure that you actually will be able to ship and deliver on that campaign.

BH (30:16):

So it's totally awesome for that. Even before I was going through them for this to use them to back interesting projects and things in the past.

EW (30:26):

Oh, I thought they actually helped you build the board. This is just about getting the funding.

BH (30:30):

Mm-hmm (affirmative).

EW (30:32):

Okay. And it's more vetted than Kickstarter. But you already know what you're doing. Did you think going with Kickstarter would get you less likely to be funded, or you just liked the idea of going through somebody who has more... I don't want to say responsibility, but a better track record.

BH (30:56):

Yeah. There's a couple of different reasons there. So one is, I've known about CrowdSupply and I think they're just an awesome group of people. And actually, last year they had a convention down in Portland, Teardown, and it was just super amazing. You got to meet a bunch of the CrowdSupply folks. They're just awesome people. An acquaintance of mine who I knew through Pixel Lights ended up working there, which was also another awesome reason, and one of the things that pushed it over the line, I guess. But really, I think the CrowdSupply crowd, the kind of people that would go for this sort of thing, if you go on their website and you go look around stuff, you're buying circuit boards, or they might be hardware projects and cases and things, but it's a different kind of scene than in Kickstarter.

CW (31:57):

Cool.

BH (31:57):

Kickstarter's got everything. Music, and projects, and restaurants and robots that don't work. Some robots that do, probably. And also, the other big thing is that CrowdSupply is more involved with the project, and they're more committed to helping it succeed whereas Kickstarter is sort of... The marketing and making sure that you can even build this thing and all that kind of stuff's just left up to you.

EW (32:29):

You haven't yet started your campaign. What is the next step in CrowdSupply?

BH (32:40):

So as we record this, it's in a sort of pre-launch phase. So there's a page that you can go on and put in your email address and subscribe for updates and stuff, so when it does go live you'll know immediately. And then once it does go live, then you can see, "I want one of these and one of these, and add a couple of things and back them and add them to your cart. And then the campaign will run for a period of time, and then at the end of the campaign, assuming it's successfully funded, I guess they collect all the money, write me a check, I build them, and then ship them to CrowdSupply who then is doing the fulfillment.

EW (33:17):

Oh, that's kind of nice. Fulfillment's such a pain.

BH (33:21):

Yeah.

EW (33:22):

Okay. So we're hoping to put this show up on November 5th, which is currently your target date for shipping or for starting the campaign, I get it. How long do you think it will last?

BH (33:44):

We're still trying to iron out the details for that, just because of the timing around the holidays and things like that, but the original timeline was four to six weeks. So from the fifth to four to six weeks out from there, it would be active.

EW (34:00):

Okay. And then do they give you a limited time to build it?

BH (34:05):

Yeah. Part of the process is you say, "Okay. Well, here's the different kinds of things that I'm going to offer in the campaign. I'm going to make them in batches of 500 or 100 or whatever it ends up being, and it takes this long. Here's my lead time for these things." And so it depends on the popularity of the campaign. So it might be that I've got enough to ship everything out in the first one, or maybe the first batch of orders goes at a certain date then the next batches, two weeks out from that or so on and so forth.

EW (34:35):

Are you to limit it?

BH (34:39):

Yeah.

EW (34:39):

Okay. So if you get $100,000 you don't collapse.

BH (34:44):

Yeah. If that happened, it might be with the current timeline and my manufacturing capability, it might push the final ship date for the late backers to sometime way in the future. But if you need to, for whatever reason... Let's say you had something that required a lot of hand assembly time or something like that. You could say, "I don't want to have more than a hundred of these in the campaign or anything."

CW (35:12):

Okay.

EW (35:13):

And do you know how much it's going to cost, or how many backers do you need?

BH (35:21):

So that's kind of interesting. Through some changes that are happening right now with CrowdSupply, it looks like the price is going to be closer to what I will end up ultimately selling it for, which is awesome. So the current price target, and I don't know if I should say this because it's not finalized.

EW (35:43):

Give us a range.

BH (35:44):

Okay. Around $35.

EW (35:47):

Okay. So not that different from your V2 version.

BH (35:51):

Mm-hmm (affirmative). Pretty good. Does more.

EW (35:57):

It does more. Somebody might be able to get an ESP32 for cheaper, because as we noted, it's not that much more expensive than the original. But you have more on the board. You have the power and... Maybe I should be letting you do this. Ben, why would people pay more than the minimum price for the ESP32?

BH (36:21):

That's a great question. So Pixelblaze is way more than just the bare ESP32 board. Like you said, anybody can go get one of those these days, and for relatively cheap. And that's awesome, and they should definitely do that. But really, Pixelblaze is all about software, and to a large extent, support. So when you get the Pixelblaze firmware, there's a whole lot of software on top of that ESP32 chip that is serving up that webpage, that has a full IDE, the easy to use interface that lets you set up WiFi, that lets you go in and pick patterns and even control things about those patterns with easy to use user interface controls. The whole editor that lets you live compile code and run that on the chip live. And so there's all that software really that's on top of that base chip. And that's primarily what the cost is around Pixelblaze is supporting that software venture.

BH (37:22):

In addition to that, I really strive for excellent customer support. Often times, you can just go on the forums and ask a question. Sometimes people will beat me to the answer, but a lot of times I'm on there answering all your questions, making sure that you've got all the information that you need, trying to give you pointers into where you could learn more about coding if you're like an office coder or haven't been coding in a long time. Often, I'm asked, "How do I get into doing this sort of thing." Or if you have a particular question, if you have an install, things like that. So I try to spend quite a bit of time just helping folks get done whatever they're trying to do with Pixelblaze.

EW (38:03):

Wow. That makes it seem really cheap. What is the worst part of owning your own business?

BH (38:15):

Support obviously.

EW (38:17):

It was kind of leading question, wasn't it?

BH (38:23):

The support's great. My customers are absolutely wonderful to work with. But I would have to say the worst thing about owning a business is all that business stuff. Oh my gosh. It's terrible.

EW (38:37):

Payroll, taxes and accounting, or something else?

BH (38:41):

Oh yeah. So in July, I hired an employee to help out with all the [crosstalk 00:38:47] groups, and train them how to run the machines and stuff, so he's actually doing all the boards and stuff for me. Great guy. But, oh my gosh, the business complications. Just in the number of forms that you have to fill out and all these things that you have to do, and the taxes, and the payroll, and then getting health insurance. Health insurance alone. All the business stuff, that is definitely not the fun part. Support is so much fun compared to anything else having to deal with to run the business.

EW (39:26):

It sounds like you still do a fair amount of software development. But that used to be mostly all you did. Do you ever miss the easy days of just pushing compile over and over again?

BH (39:39):

Right? Hit compile, go get a cup of coffee. No, that wasn't then. I would say not really. This is a lot of fun. But what I do miss, and which I don't even know if it exists anymore, is hanging out in an office, and talking to people, and going to lunch and brainstorming stuff on a whiteboard with a bunch of people and that sort of thing, I definitely miss. From what I hear, that doesn't happen really.

EW (40:03):

Well, not right now.

BH (40:05):

Yeah. So I guess I'm not doing too bad, right?

EW (40:13):

Actually going ahead with the business was a little scary. What do you wish you had known then that you know now?

BH (40:24):

I would say the business structure that I ended up with is way over complicated. I have a tax guy and he said, "Hey, you're doing all this consulting stuff, you should form an escort and do that, and then you can do all these tax things. And it's advantageous for reasons. Even though you're going to be paying a whole ton in my fees to file the report." And so of course I listened, and here I am. I have an S-Corp, but of course I was in California at that point in time, and you can't move corporations, I guess. They have to be gobbled up by other corporations. But you can operate as a foreign entity, so I have a California corporation operating as a foreign entity in Washington and in Portland for insurance reasons, and with resellers, permits and stuff, and it's just way more complicated than I think it has to be.

BH (41:24):

So I would say as simple as possible on the business structure side of things, I would definitely do that differently. I guess the other thing that's a little bit more interesting and useful is so solder paste. There's this... It's LOCTITE. It's put out by...

EW (41:46):

You wrote it down somewhere where I saw LOCTITE GC10 paste Henkel Adhesives.

BH (41:54):

Yes.

EW (41:56):

Okay. I'm sorry. I just read that. I have no idea what it means. So could you...

BH (42:03):

When I make circuit boards, I have a stencil and some printed circuit boards. Basically, you have a jig where you put the PCB down, and then you slap the stencil on top of that. And it's got all these little holes, and paste needs to go in those holes. So you squeegee that on there, and then all of a sudden all the pads that should have solder, have solder. And then you put it in the pick-and-place machine, it puts all the little components, they stick to the paste, you put it in the oven, and all of a sudden you have a circuit board. Except stuff goes wrong all the time. The machine might put a component very slightly off. And most of the time, solder paste is supposed to just automagically fix that.

BH (42:42):

So part of the component is touching the pad, the surface tension of the solder is going to pull it right into place. Anyway, the paste that I have been using, I'm sure is totally fine and in certain applications, it just wasn't doing that quite as much or the way it should, and so I would have components that were off a little bit. And it's not that that doesn't happen, but it just wasn't fixing things that I thought it should be fixing and I was getting some bridging and stuff like that. Anyway, so paste is kind of like flux. In conversations you'll find people that have lots of advice on flux. This is the sort of same kind of thing. So I switched pastes. This thing has a crazy awesome shelf life, so you don't have to refrigerate it. You can just leave it out and it's not going to go bad.

BH (43:38):

You can actually stencil a board and leave it for a day or two or something crazy, and it's not going to dry out. And all of my bridges went away. So yeah, that stuffs magic. And I would say the other thing is air filters. And this is probably something I should have been better at even when I was just doing hobby stuff, which is if you're soldering with wire solder, there's smoke that comes out. And if it's rosin solder, it's an irritant, but just not super bad. But if you're working with pastes, it's kind of on the nastier side of things. So you definitely want to have some sort of air filter system. So if I was me telling my past self what I should be doing, I would say, "Just go out there." And it's crazy. The grower industry has a whole bunch of really cheap air filters that you can buy from. They work great for this.

EW (44:36):

Yeah. I remember you made a fairly persuasive, to me, argument about unleaded solder, and people argued with you.

BH (44:50):

Yeah. It's contentious. People really like their leaded solder, and that's fine if they want to keep using it. But yeah, I did write an article on this, and it was basically around debunking a myth that I've heard a lot of times, and that's around on unleaded solders being worse for you somehow, which is totally not true. And primarily, the reason that was stated that unleaded solders are worse for you is because they have more or worse chemicals or flux or something in them, and then that would cause worse air vapors. And that touching lead all day is actually not that bad for you, which is not where I stand on things.

CW (45:31):

That's the primary means of getting it into your body.

BH (45:36):

It sounds like the electric car. People who say electric cars are actually worse for the environment. Yeah. So I did a bunch of research on material safety data sheets trying to figure out what was actually going on here, tried to find all the research I could, and a lot of times, and especially in the solder that I just happened to have on my desk that I use every day, they have exactly the same flux formulation for leaded and unleaded, and the safety data sheets is exactly the same. It has nothing more on the smoke things, except it has all this extra crazy, gnarly stuff about lead, which you don't want to have, basically. If you handle it properly, you're not going to expose yourself to it. But in a hobby context, telling people that they should use leaded solder instead of unleaded because it has better health implications, I think is just wrong. Because in a hobby context, you're holding it in your hands, you're probably not wearing gloves.

BH (46:38):

A lot of people might be eating or drinking shortly thereafter. You'd have to go wash your hands and stuff like that to really be safe. And then sometimes, I happen to use these brass sponges to clean your soldering iron tip, and those things basically just turn your solder into dust. So if you drop that thing or you pull it out to change it out, you're just spraying tons and tons of leaded solder dust everywhere. So in general, I think it's better to use unleaded. Of course there are still fumes, and it is very likely that there's either more flux in those solders, even if they're the same formulation, same chemicals, they're not using gnarlier chemicals, so there's more smoke. Those are more classified on the minor irritants as opposed to will give you reproductive harm sort of levels of things.

EW (47:36):

And if you go back to getting a good air filter with a nice carbon insert, that's not as big a deal.

BH (47:44):

Yeah. So either way, use air filters. Get ventilation because you don't want to be breathing that.

EW (47:52):

What other projects have you been working on? It sounds like it's enough, but I know you had been... the MIDI keyboard that we saw, the Synthia was fantastic. Is there anything else you're using your own products for, or ideas you've started?

BH (48:11):

Yeah. So one of the beautiful secrets of taking a hobby and turning it into a business is now you can have more hobbies.

EW (48:22):

Is that right?

BH (48:25):

So since last time we talked, there's a bunch of fun projects. So the Synthia keyboard, I did the version three of that as well. And so I went to all capacitive touch, whereas before it was kind of clickety clackety on V2, and on V1 it was like arcade buttons. And I wanted to capacitive touch because it's basically impossible to wear out. You can really just bang on the thing and it's not going to do anything. If you spill some water, you just clean it off, whatever. So I ended up designing this 12 key capacitive touch keyboard, and it works with this pretty thick... I think it's like five or six millimeter thick acrylic on top of the sensor, so your finger's pretty far away, with LEDs running along the backside to eliminate the acrylic.

BH (49:11):

And it looks absolutely gorgeous. I've put some links in the notes. And then I started really geeking out about capacitive touch, and I actually got it to the point where I can detect acceleration for a MIDI keyboard. So you can press it softly, or press it hard and get a stronger note by running the capacitance on the sensor really fast, and detecting the rate at which your fingers smushed into the surface.

CW (49:49):

That's cool.

BH (49:51):

Where that flattened out and you stopped increasing the capacitance. Anyway, I threw that together and actually got some help from Elecia to try to figure out how to debug. Because when you have two of these things next to each other, the way the capacitive sensing stuff works is it throws out a charge on the plate, and of course that could interfere with stuff that's next to it. So as soon as you have multiple keyboards next to each other, they had to do this stuff at the same time where they would start to give bad readings on adjacent keys and stuff. So that was super awesome. Got multiple of those working, and then installed one of these things in the Museum of Discovery in Santa Cruz, which is a children's museum.

EW (50:35):

Neat.

BH (50:35):

It ran for like a year with kids just banging away at this thing. Just totally going nuts. And they loved it. It was awesome.

EW (50:44):

Yeah. How cool. Let's see. You told me to ask you about Halloween LED decoration tips.

BH (50:53):

I have a really cheap, easy one. So you take a coin cell, one of the three volt like a Sierra 2032, and you can get just a couple of bare LEDs, the ones with leads. And you can actually run those straight off of those coin cells. And so this is the kind of what people would make with throwies where you can tape that together along with a magnet and just throw it on a metal surface far away. Yeah, exactly.

CW (51:22):

Impossible to take down.

BH (51:25):

But if you get two LEDs, you can make cool little creepy eyes on this coin cell, two little glowy LED eyes, and then hide them all on your bushes and stuff and it's awesome.

EW (51:37):

Cool. That's actually a good idea because we're having a Halloween, no contact, scavenger hunt, trick or treating party.

CW (51:48):

Party is a strong word.

EW (51:50):

Party is a strong word given the few people who are coming.

CW (51:53):

We'll be waving through windows.

EW (51:54):

Yes. So it'd be kind of fun to have more things to put out.

CW (52:01):

We've got a pack of CR 2032s?

EW (52:03):

And I have my secret stash of LEDs. I think I even have some candle ones from EMSL. Okay. Now you've got me totally distracted. Now I want to go play with the Halloween stuff. But I also wanted to ask you about some other things that Pixelblaze has been used for. You mentioned the alien sea creatures, which I'm going to need a sample of, but what's this about a liquid LED bucket.

BH (52:35):

Yeah. Roger Regulus on Twitter actually did this really awesome project with a Pixelblaze. He got one of the early V3 pre-production units. And he took the accelerometer on the sensor board and used it to detect the vector of gravity, and then project that onto, basically like a helix wrapped around a cylinder of an LED strip so that it's basically covering all the outside as one continuous strip. Map that in three dimensional coordinates and then rotates the plane that's visible based on the vector of gravity from the accelerometer. And so what happens is, you take this bucket and on the bottom, it's filled with a gradient of color and then goes to black on some line. And if you tip and rotate it, it looks like there's glowing liquid floating around in this bucket. It's awesome. You need to see that visually. Glow flow. It's really cool.

CW (53:46):

So at the top of the show, you mentioned that your career history was as a software person and then you started doing electronics as a hobby, and then in 2016 you started doing Pixelblaze and learning more. I don't think we've ever really talked to you about how you learned electronics past that time. You said you took some e-classes, but was there a lot of self-education during the course of building Pixelblaze and stuff, or were there any resources that you found really useful?

BH (54:18):

Yeah. When I had taken some e-classes, I was talking about when was a kid and still mucking around with RadioShack kits and stuff like that. But yeah, so more recently, it's really just a skill that I picked up through being self-taught and it's how to teach myself stuff and really just getting books and resources and blogs, and actually your slack has been incredibly helpful. You guys have tons of really awesome folks there that are just more than willing to share amazing information. And a lot of it's just experimenting and trying different stuff, reading things, trying to understand, going to those first principles and just trying to pick up how things work and how they're put together, and the relationship of how things interact, and then going from that and then trying stuff, experimenting and building upon some of the theoretical with more practical knowledge.

CW (55:19):

Cool. The path that seems to work best for people is to try to do something even if you don't know how to do it, and then learn the pieces you need as you go.

EW (55:31):

They say failure is a great teacher. Although I never really think of that as failure.

CW (55:35):

I think of it more as building something as a good motivator.

EW (55:37):

That's true too.

CW (55:39):

Yeah.

EW (55:40):

Well, I know that you were a little disappointed in your lightning round.

CW (55:46):

Probably it is, but I'm just going to fold them back in as if it was...

EW (55:50):

Oh, okay.

CW (55:52):

Let just make it a cohesive lightning round.

EW (55:54):

I think it should be two parts.

CW (55:57):

Oh, okay. Alright. Double lightning round.

EW (56:01):

Double lightning round.

CW (56:02):

Okay.

EW (56:03):

Exit lightning round.

CW (56:05):

Okay.

EW (56:06):

Complete one project, or start a dozen.

BH (56:09):

I'd definitely start a dozen.

CW (56:12):

Favorite fictional robot.

BH (56:15):

Depends on how much news I've read. I could go all the way from Johnny 5 to Cyberdyne Systems Model 101.

EW (56:27):

If you could teach a college course, what would it be?

BH (56:28):

Oh, that would be how to teach yourself anything by reading and beating your head against a brick wall.

CW (56:37):

I don't know about that.

EW (56:38):

Perseverance 101.

BH (56:40):

There you go. How to teach yourself anything by reading books and trying stuff.

CW (56:45):

Favorite acronym or initialism.

BH (56:49):

Okay. So XMLHttpRequest.

CW (56:51):

That is the wrong answer.

EW (56:55):

Do you have a tip everyone should know.

BH (56:56):

No.

EW (57:01):

Do you have any final thoughts you'd like to leave us with?

BH (57:04):

Be excellent to each other.

CW (57:07):

And party on dudes.

EW (57:10):

Thank you Bill and Ted. Our guest has been Ben Hencke. Wizard, CEO of many hats and creator of the Pixelblaze. You can order version 2+ and its extension boards on Tindie right now, or you can get the shiny new V3 on CrowdSupply sometime very soon. The links will be in the show notes.

CW (57:36):

Thank you, Ben.

BH (57:37):

Thank you for having me.

EW (57:39):

Thank you too, Christopher, for producing and co-hosting, and thank you all for listening. You can always contact us at show@embedded.fm or at the contact link on embedded.fm. And now, a quote to leave you with, from an author I don't like and a book in I hated.

CW (57:57):

Great. This sounds good. I'm excited.

EW (58:00):

Like a running blaze on a plane, like a flash of lightning in the clouds, we live in the flicker. That's from Joseph Conrad in Heart of Darkness.

CW (58:11):

One more chance on the candy question.

EW (58:16):

Almond Joy for me.

BH (58:18):

Butterfinger.

CW (58:19):

Alright.

EW (58:20):

What's yours?

CW (58:26):

Butterfinger's up there, but they get stuck in your teeth. I don't really appreciate that. They taste good, but the maintenance afterward is high.

BH (58:34):

You have to be dedicated really.

CW (58:36):

I really like Kit Kats but the chocolate quality is not good. But there's still Kit Kats cats. But I think I'd have to go with... They're the Score Bars.

EW (58:46):

Those are like 90% hard toffee. Talk about getting it in your teeth.

BH (58:50):

Yeah. But you freeze them. You freeze them and then you eat them in the summer and they're real good. All right, bye everyone.

EW (59:03):

Embedded as an independently produced radio show that focuses on the many aspects of engineering. It is a production of logical elegance and embedded software consulting company in California. If there are advertisements in the show, we did not put them there and do not receive money from them. At this time, our sponsors are Logical, Elegance and listeners like you.