444: It Is If You Do It Wrong
Transcript from 444: It Is If You Do It Wrong with Peter Griffin, Chris White, and Elecia White.
EW (00:06):
Welcome to Embedded. I am Elecia White, alongside Christopher White. Our guest this week is Peter Griffin, someone who is a little new to embedded systems. Well, he was when I met him, anyway.
CW (00:18):
Hey, Peter. Welcome.
PG (00:20):
Hello.
EW (00:22):
Could you tell us about yourself, as if we met at a local maker meetup?
PG (00:29):
Sure. Hi, I am Peter Griffin. During the day, I am a consultant in Slalom’s Data and Analytics Practice, and I might think of that as a department. I love the variety in bigger picture problem solving that comes with consulting. My superpower is I can automate just about anything.
(00:45):
On evenings and weekends, I split my time between various embedded projects, and being a husband and snuggling with three adorable fur babies, two cats and a dog. I tend to get really into my hobbies, always have. They never really go away, so when I switch to something new, they just go dormant, waiting for the right time to re-emerge. And yeah, that is me in a nutshell.
EW (01:07):
Unfortunately for you, lightning round has been really bummed about not recording as often, and so it really wants to have a few more questions than usual. Are you ready?
PG (01:20):
Absolutely.
CW (01:21):
I am looking through this wonderful list here. When do you think Star Trek style transporters will exist?
PG (01:29):
Ooh, maybe never.
EW (01:32):
Is it better to sort Lego bricks by color or shape?
PG (01:37):
Shape.
CW (01:39):
GStreamer queue leaky upstream or downstream?
PG (01:42):
Oh God, I cannot remember. <laugh> Both?
CW (01:46):
No, this is a serious question. I need to know. <laugh>
PG (01:50):
Uh oh, I will have to look it up.
CW (01:50):
I am kidding. <laugh>
EW (01:52):
What is the most amazing thing you have built with Legos?
PG (01:55):
Ooh, there are a couple contenders there. Either the prototype for the project I am working on, or a money flinging machine that would make it rain. I did not have enough money, so I used Monopoly money.
CW (02:07):
To listeners: Do not email us. We know it is "Lego bricks."
EW (02:10):
I said "Lego bricks" the first time. I wanted to annoy everybody equally.
CW (02:13):
<laugh> Does an ice candle really have ice in it?
PG (02:18):
It does when you are pouring it. It melts and leaves those wonderfully shaped holes.
EW (02:23):
Which is better: a ground level mouse maze or an elevated one?
PG (02:28):
Elevated, so they are not inclined to wander out of the maze and into the rest of your lab.
CW (02:34):
That was a good thing. What is the optimum proportion of water to air, to maximize altitude in a water-propelled bottle rocket?
PG (02:41):
Oh, it is actually about two-thirds to- Wait, say, water to air? So it would be one-third to two-thirds, as proportions of the bottle.
EW (02:51):
Why would adding weight to the nose of a bottle rocket increase its altitude?
PG (02:57):
This is actually a really- I cannot answer this quickly. <laugh>
CW (03:03):
Okay, take your time.
PG (03:04):
<inaudible> That is the short answer.
CW (03:06):
What was that?
PG (03:07):
Momentum.
CW (03:09):
Momentum. Are there any buildings on Whitman College campus that you did not climb up?
PG (03:16):
Three at the time of graduation.
EW (03:18):
And since?
CW (03:19):
At the time of graduation. That is very qualified. <laugh>
PG (03:22):
I have not had a chance to add to that. They have built more buildings. So there are now more buildings.
CW (03:26):
Oh, that is not fair. They should not have done that to you.
EW (03:31):
Is baking soda and vinegar a good way to create pressure inside of a bottle rocket?
PG (03:37):
It can be. It can also be a terrible way.
CW (03:41):
Favorite fictional robot.
PG (03:43):
K-2SO.
EW (03:44):
This was seeded by you and I am not sure about it, but what is your wife's favorite voltage?
PG (03:51):
Negative 70 millivolts. It is the typical resting membrane potential of a neuron.
EW (03:55):
Okay.
CW (03:56):
I knew that for a week in 1993.
PG (04:00):
It was far more interesting than my answer, which was five volts.
EW (04:03):
Oh, last one. Do you have a tip everyone should know?
PG (04:06):
Yeah. This one I have not- I have heard a lot of great tips on this show, but I would say, show up. Before the pandemic, I used to mean that literally, but really it is important to show up even virtually. There are a lot of opportunities now to go to conferences that you had to pay for travel before, and now you can show up for free online. So, do that. Yeah, <laugh> show up!
EW (04:32):
Cool. So you mentioned Slalom and data. How did you get into that as a career?
PG (04:43):
Ooh, data is a long journey. It started all the way back with Excel in college. I had a professor who would pay students to do data entry, and he was really nice about it. And I said, "Hey, if I write a program to do all of this automatically, will you pay me as much as it would have taken?" He thought about it for a minute and went, "Yeah, sure." So he estimated it would take about 15 hours. The first program took me 20 hours, so it was a loss. The second one took me 15, and the third one took me ten. So by the end, I was well on my way to data and analytics and automation and my love of Excel.
EW (05:20):
Have you always been interested in microcontrollers and gadgets?
PG (05:25):
No, I actually had avoided it for a long time. I feel like it is such a shame, because they are so awesome and it made me appreciate certain programming languages more too.
CW (05:40):
What programming languages did you appreciate more after that?
PG (05:43):
Oh, C++ for one. I took a C++ class in college and was like, "Why would anybody do this?" It took me seven hours to create a Fahrenheit to Celsius converter. Like, "I can just Google that. What on earth? What a waste of human effort!" And then once I was like, "Oh, this runs on really tiny machines that do not have memory to do anything else, and they interact with the real world. Oh, that is why a compiler is useful. That is why it is worth putting all this effort into something that-" I do not know, a light bulb moment.
(06:15):
I wish they had done that in college. Because you lose a sense for the value of programming, when you are running it on your laptop and you spend so long to do things that are so silly.
CW (06:27):
That is an interesting perspective, because when we were in college, C++ was the main language that was taught. It was very new at that point. I think they had just switched to it as the language, and there was not a lot else. So that was the language you wrote desktop applications on and stuff.
EW (06:47):
That was the shiny new language.
CW (06:49):
That was the shiny new modern high-level language.
EW (06:53):
Beyond Pascal. Beyond C.
CW (06:55):
So to see the evolution of it being pushed down to being the low-level language. It is still used in high-level applications a lot, but it is interesting how things evolve.
EW (07:05):
Usually number crunching ones.
CW (07:06):
Video games.
EW (07:07):
Yeah. Number crunching ones.
CW (07:09):
Yeah. Right.
EW (07:13):
Why did you first try out a board?
PG (07:17):
It depends what you mean by try out. This started during the pandemic. I was looking for an indoor hobby and that is what got me into all of this. But the first time I tried the Arduino board, I just made the onboard LED blink. And then I put it away for about six months. About six months later I actually came back and did something interesting with it. One of those two times I would count as the first time, I am not sure which.
EW (07:43):
What did you do with it after the six months?
PG (07:45):
I do not remember what I did first, but basic stuff, hooking up a breadboard, playing with the parts it came with, making the piezo buzzer play the Mario song.
CW (07:56):
<laugh>
EW (07:57):
What drew you to it?
PG (08:00):
It was there. If I am being honest there, I did not know anything about it. I did not know the difference between a board and the microcontroller that was on the board. I think at the time I reached out to you, it was, my parents were sick of me calling them up and asking them questions about voltage. They were like, "You should really talk to our friend Elecia." And I was like, "Okay. Sure. I guess." Appreciated all the guidance since.
CW (08:24):
<laugh>
EW (08:25):
<laugh> What makes embedded cool enough to spend your nights and weekends on?
PG (08:32):
There are a couple different things. I do like that it is an interaction with the physical world. The applications of it, I think, are what is cool. You can really do things that fit your needs and nobody has made them yet. You can really tailor things in your house and your life to be just for you. And that is pretty neat.
EW (08:58):
So you learned some about the voltage, and more about C. But as you put together devices, which we are going to talk about what the devices are soon, are you using more computer science, mechanical engineering, electrical engineering? Which areas have you had to learn the most in?
PG (09:21):
Oh gosh. All of the above. Every time I am like, "Oh, I do not need that discipline," it comes and kicks me in the butt and is like, "No, look over here. I am going to ruin your day by-" There is a reason. There are whole disciplines around these things. They are not trivial. Maybe the most, circuit board layout was completely new to me. And making heads or tails of that was not trivial, even with help.
EW (09:53):
I totally agree, layout. I was like, "Okay, it is just like playing Tetris or any other pattern game." It turned out that was so not true.
CW (10:05):
I am finding the same thing with mechanical, which is stuff I am having to do for the first time. I just need to draw something, right? No, no. You can draw something, but then there is a whole other world you have to learn about. Screw pitches...
PG (10:23):
<laugh> Yeah. Assembly. That is a thing.
EW (10:28):
So what was the first big project, beyond playing with it?
PG (10:34):
The first big project, the big one was, was pretty immediate. The reason Gwen had gotten this Arduino kit, was she wanted to build her own operant boxes. It had sat on the shelf for two or two and a half years. I had promised her that I would not take it and go play with it without her. It had been on there so long, I eventually asked, "Are you still going to do this? I am happy to do it with you, but if you are not, can I play with it?"
(11:02):
So that immediately was the first big project I dove into. I think that was what I reached out to you about when we met. It was Legos. I built this prototype box with an Arduino and a bunch of wires and a breadboard, and Legos. That was the first big project, and it integrated a bunch of different systems. I had each one working independently, and then as soon as I put them together, not so much.
EW (11:30):
Operant boxes are things like feeding mice when they touch a button. Right?
PG (11:36):
Yes. Thank you for the reminder. I should define this. So operant behavior, which is the thing you think about when you think of Pavlovian training or responding to stimuli. I am not describing this real well. Operant boxes are a way of having these behaviors that you can- So for mice behaviors, for example, these boxes have like either nose poke holes or buttons, and the mice will go push the button when a light comes on.
(12:05):
It is a lot like Simon Says, except instead of just getting a happy little tune, you get actually dispense food. So the mice very quickly learn, "Oh, if I push the button when the light is on, I get food." Then these processes can get more and more complicated, to study different components of how mice learn or unlearn sometimes. So it is like, "Oh, I should stop pushing the button when the light is on, because it will turn on the house lights." They are nocturnal animals, so that is obnoxious for them.
EW (12:36):
And you made this for Gwen, who is your wife?
PG (12:39):
Yes. My wife is a neuroscientist. She got her PhD at Vanderbilt, and is currently teaching neuroscience in a psych department at Wittenberg. She is awesome. One of the things she saw was a pain point around the existing lab equipment. Once I started looking at it, I was like, "Oh, these really are not that complicated. It should not be that hard to put one together." I have been suckered into that ever since.
EW (13:12):
And it is a computer science problem because the scientists want to have all kinds of control over what you are feeding the mice, and when and what they have to do to get it. So there is no single solution.
PG (13:29):
Yeah, that is actually one of the things that has shaped my approach to this the most, is the variety of needs in this space. It is really varied. There are some core features, but how those features are used, almost by definition, have to be controlled by custom written software.
(13:50):
Each lab is going to want to do a different experiment, and to push the boundaries of what we know, those things have to not have existed before. So it is not really like you can ship a pre-programmed thing with some features and a couple parameters and call it a day. There really needs to be some deep customizability to these devices.
EW (14:12):
But how does it work? Do you have like a solenoid that kicks out kibble, or some sort of rotating thing?
PG (14:23):
For the food dispensers, there are two main methods. There are pellet feeders and liquid reward dispensers. I will start with a second one. Liquid rewards are something like sugar water, that is dispensed from a little dripper into a trough. Usually there is a syringe pump, or a peristalsic? Argh. Word.
CW (14:45):
Peristaltic.
EW (14:45):
Peristaltic? Okay.
PG (14:53):
Yes. The word is harder than the concept. It is basically a liquid pump. Those are the two main ways of of implementing that.
(15:01):
Pellet feeders are pretty straightforward for the most part, but the ones that are pretty common tend to not always dispense reliably. So when you are trying to do an experiment where the mouse always gets rewarded when they do X, and your machinery just does not, that is a problem. They also do things like jam more frequently than they should. I have some clever solutions to that, I think. There are some interesting mechanical challenges. Those parts are pretty central. But exactly when things are dispensed and how much, all of that will vary based on what you are trying to study.
EW (15:44):
When I worked on similar things a decade ago, we used a photo sensor to detect if the kibble fell, because of the potential for jamming and failure of the pellets to dispense. It really felt very much like a hack, because you are solving a problem that you really would rather not have the problem at all. If only could you solve the original problem.
PG (16:16):
I think I have that solution. It is a step improvement, but it is not perfect. No mechanical system with these irregularly shaped pellets will be perfect. The idea is also to incorporate that kind of sensing. The key part of making it work is if it fails to dispense, it has to fail in a way that it does not- Its failure is not correlated with subsequent failures. Because if you have a pellet jam, its failure will cause the next pellet not to dispense. So even if you detect, "Oh, it was not dispensed," and you go try and rotate in another pellet, it is still going to fail.
(16:58):
The key is you want the only way it can fail to be, "Oh, it failed to like pick up a pellet." If it failed to dispense it, it is released back into the tray.
EW (17:09):
Are you making little grabber arms, like the video games? Because that would be really cool.
PG (17:13):
Not exactly. It is more like a Ferris wheel on a 45 degree angle. It would be easier to show a picture. It is a great concept for a podcast, because it is a very visual device to understand how it works.
EW (17:32):
Did you buy the Ferris wheel?
PG (17:35):
No, I actually designed it, and I was bouncing ideas around with a close friend of mine, and we came up with it together. We could both see all of the problems, and we laid them out and went through like, "Oh, this will not work. If we do this way it will not work. If we do do an Archimedean screw, it will not work." And all of these other different approaches do dispensing irregularly shaped pellets. Then we sort of came to the solution together, and then I just had to design it and print it. Go from there.
CW (18:06):
Did you-
EW (18:06):
Just design and print?
CW (18:06):
Yeah, that is easy.
PG (18:09):
<laugh> Yeah, just design and print it. Yes, this is another whole area where I am getting my butt kicked, in what I do not know and what I need to know. So designing all of the stuff I have done so far has been in Tinkercad, which sounds insane for the people who know CAD tools.
CW (18:25):
I have tried Tinkercad. It is the most simple, right, of the?
PG (18:31):
A good analogy is, it is the Microsoft Paint of CAD tools.
EW (18:34):
<laugh>
CW (18:34):
Yes. That is about right. Okay.
PG (18:35):
When you are like, "Oh yes, I painted the Mona Lisa in Microsoft Paint," people look at you like you are absolutely bananas. I was like, "I know I can get this project done with this, get the prototype out and get feedback. I will learn a proper CAD tool later. I am not going to waste time learning a CAD tool before I know if this thing even works." So I have found myself muddling my way through making things work in this tool. I have started transitioning, but it is a slow process to pick up a new tool.
CW (19:13):
What are you moving to?
PG (19:15):
SolidWorks, the maker version.
CW (19:16):
Oh, wow, okay.
PG (19:18):
The elevated zero maze that I was working on recently. So to give you an idea what that is, it is a circular maze, so basically a track. It is elevated about two feet off the ground so the mice do not jump off and run into your lab. Sections of it have very high raised walls so the mice feels safe and secure, and then other sections of it have open walls so they feel like they are exploring. It pairs these two drives that mice have, to feel safe and secure and to explore for food, against each other. You can measure anxiety by how much time they spend relative in each of the sections.
(19:56):
So the problem with that is when you go to 3D print this thing, it is continuously curved and it is very large. It is, I think, about three feet across. It is huge. It is absolutely enormous. I had to print it in eight segments.
(20:10):
Tinkercad does this thing where it approximates circles with 64 segments, which is fine for things that you hold in your hand. It is a lot less fine when you want your things to slot together and have slide together pieces that slide around a curve. It is like, "Oh, now this curve is segmented. Now it has little bumps. My tolerances are not good enough that I can accommodate those bumps."
(20:35):
That was what pushed me to stop messing around with Tinkercad, and actually pick up the big boy software and start learning that.
CW (20:46):
How have you found that experience <laugh>?
PG (20:49):
Oh my god. So painful.
CW (20:50):
Thank you. Good. <laugh>
PG (20:51):
I have nothing positive to say about SolidWorks yet, which is sad because I really want to like it. I think it is just early days, I think I just need to get used to it.
EW (21:01):
How much ME did you need? How much mechanical engineering did you need to create this maze?
PG (21:10):
That is a good question. I do not know how to quantify that. I think the part that was most needed- It is not a particularly structural thing. The part of mechanical engineering that I needed the deepest knowledge on, was around what my 3D printer is capable of.
(21:34):
That is a little bit about tolerances, a little bit about overhangs, a little bit about designing to print in multiple parts, and assemble nice friction fits that can be easily disassembled and cleaned, but also will not fall apart while you are using them. That is the part where I would say like, "Yes, I had to learn some mechanical engineering," but the broader spectrum of all the things covered by mechanical engineering, not so much.
EW (22:05):
The friction fit seems particularly interesting and hard to me. How did you learn how to do that?
PG (22:13):
Trial and error. Basically I just tried different fiction friction fits. One of the things I found was there is a Maker's Muse "Test Your Printer Part." It is his most popular purchase design I think. It basically prints a bunch of rotating disks with different tolerance gaps. It goes from like 0.5 millimeters, I believe, all the way down to like 0.15. You can basically see if you can rotate these things after you have printed them. Which is cool because it tells you like, "How tight are the tolerances on my printer?"
(22:47):
What I found was about 0.3 millimeters was about what my printer could do cleanly, without having to break things off or sand or do post-processing. That was still a pretty snug fit. What I ended up going with was a 64th of an inch, because in Tinkercad, all of these boxes, all of the measurements are not inches. So I just set my system to inches, and a 64th of an inch is somewhere between 0.3 and 0.4 millimeters. It is still a pretty snug fit, but it is slightly on the looser side.
(23:19):
I generally have not had problems with that so far, but I know I am going to have to redesign this whole thing, because not every printer is a- What I have in my office is a Prusa i3 MK3S or something, S+, something along those lines. It has got incredible tolerances. It is amazing, for a filament extrusion printer.
(23:45):
What I am trying to design is- I am trying not to make the M4 of designs, where it has to be tightly maintained and the tolerances are very demanding. I am trying to make is the AK -47 where you can bury it in the sand for a month, pull it out and things still works. I need to redesign all of the parts with different tolerances, so they can be printed on gen one 3D printers that a university might have on hand.
EW (24:14):
So the "zero maze," is that what it is called? Is that because it is a circle, or is there another reason it is called that?
PG (24:19):
That is exactly why it is called the "elevated zero maze." It is a variant of the "elevated plus maze," which gets its name for the plus shape. The big difference between those is the plus maze, each segment, each of the branches, is either has those raised walls or does not. The problem is in the middle it is unclear whether the mouse is exploring or hiding, because they have raised walls on two sides and open walls on two other sides.
(24:49):
Sometimes you get mice who just hang out in the middle, and it is hard to kind of quantify what are they doing. So the variant is to turn it into a giant circle, so you do not have this weird awkward transition zone that is unclassifiable.
EW (25:08):
And are these traditional well understood mazes, or does a scientist say, "I want to design a maze that has three branches to the left"?
PG (25:19):
These ones are pretty standard. The behavioral things you measure, these mazes are aimed at measuring certain types of things. Usually, some measure of anxiety. There are other mazes that people develop to measure other things, and some of those get more exotic, I guess is a way to say it.
(25:45):
The thing with these is they normally cost a couple thousand dollars for one. What we are testing this semester is basically being able to make one for a $20 roll of filament, a 3D printer and about ten feet of PVC. It is really pretty straightforward. We are hoping that these kind of designs will open it up so that universities have other options, and can make these things more accessible to undergraduate students, when they do not have huge lab budgets.
EW (26:23):
And that is the same principle for the operant boxes, making it more available and cheaper and more flexible.
PG (26:30):
Yeah, exactly. They are at different price points, different markets, in a sense. The elevated zero mazes are on the cheaper end of lab equipment. Like, "Oh, it is only a thousand dollars." So making those cheaper and more accessible means making them with tens of dollars.
(26:50):
The operant boxes, those tend to run $40,000 for a set of four is not uncommon. And the really nice ones with touchscreens run $80,000 plus for a set of four. They have a lot of challenges, and so making cheaper ones that are more accessible does not just mean bringing the price down.
(27:09):
It really means also making sure they are not locked into a special ecosystem with proprietary languages. That is actually pretty common, which sounds weird and archaic to those of us who are like open source everything. But that is just the way it is right now.
EW (27:27):
How far along are you with the operant boxes?
PG (27:30):
I would say I am on version one prototype. We are hoping to have them deployed in Gwen's lab and start testing them this summer. Hopefully get a paper out in the fall, and present that paper maybe at a poster session at SfN, which is the Society for Neuroscience Conference. That would hopefully give us a little bit of feedback about whether anyone else cares about these. It is a little hard to know whether or not there is actually a market here.
(27:57):
So if we do this poster session presentation, and we get lots of people coming up going, "Tell me when you can buy one. Take my email." maybe there is something here. If people are like, "Oh, that is nice. I will just keep ordering boxes from the company I have been ordering them from." then we know that this is helpful for Gwen's lab, and we will leave it there.
EW (28:20):
But you are moving away from Arduino towards CircuitPython, right?
PG (28:23):
Yes. That is actually an odd thing. I am doing both Arduino and CircuitPython, and that is very intentional. The goal with these is the end user needs to reprogram them. Because that is a really core design feature, it really needs to be as accessible as possible.
(28:45):
It is not just, "Oh, the end user needs to reprogram them, let us throw them into the STM32CubeIDE." It is like, "No, these people are not programmers. They are not chip developers. These are scientists. Their goal is not to write a program. Their goal is to test something new, and a program is just in the way, to be honest."
(29:05):
Coming at this from my programmer background, I am like, "Oh, I can do programs for that," but I can see the pain of using this. I have watched Gwen struggle with the MATLAB code she had to use to analyze certain signals in her lab. So I am like, "Okay, I know this can be easier, but I can also see the pain points of the existing boxes." These proprietary languages are challenging to learn. They do not have much transferability. You are very limited in what you can do, and the documentation is just whatever is there.
(29:35):
One of the things I saw as an opportunity is by focusing on Arduino and CircuitPython, there is this huge, huge library of existing documentation. It is no longer an anchor that weighs you down of like, "Oh, I built this custom language. Yeah, it is great for this task, but now I have to document it all. Now I have to maintain it." All of a sudden, as soon as it is released, it is out of date and it does not do the things it needs to, and you have to tack things on. That just seemed like a bad way to go.
(30:07):
Making sure that these were compatible with these two very common ways of programming microcontrollers seemed like it would have a lot more opportunities. The reason I am focused on both is I think there are two markets here. There are going to be universities that are giving these to undergrads and saying, "Oh, do your first research experiment." I think that is more of the people who are going to be using CircuitPython, where they are completely new to this process of programming a device. They may even be completely new to programming entirely.
(30:37):
It may not have all of the advanced timing and interrupt features that they would want for some of the advanced monitoring of neural circuits, which requires very precise timing. But I wanted to make sure I picked hardware that would not close off that path. So making sure that it was compatible with the Arduino ecosystem, means you could use C++ and interrupts and all of the more advanced features.
EW (31:03):
No, that totally makes sense. But if you are going to a conference and asking if people want this, but you are also very much in the open source, "let us make it available to anybody who needs it," how will you make money?
PG (31:22):
That is a great question. It is right. If you are giving away the product and the design and you are relying on open source libraries for the coding, like "What exactly is it that you sell?" So part of the assessment of figuring out if there is interest is, maybe people are only interested in building these themselves and there really is no market to sell anybody anything. That is fine. It still improves the world just to put out these designs, and maybe leave it there, let other people contribute to it.
(31:52):
What I think is more likely is that people are like, "Oh, that is great, but I do not really want to build it. That seems like a lot of work and it seems complicated. Can you just send me one?" I think that there is going to be a spectrum here.
(32:06):
There are going to be some universities that just want their students to go build them themselves, and they do not want to spend a lot of money for it, or they just do not have the budget for it. And that is fine. I am never going to be able to sell anything to those people anyway. And now they have something.
(32:20):
There is going to be people who want it fully assembled, because time is precious, and they do not want to dick around with printing it and making it. And that is totally fine too.
(32:28):
I think there is also an intermediate group, that is going to say, "Oh yeah, I will just take the base design, print it myself, assemble it. But hey, can you make me a custom part that slots in to your existing design and adds feature X?" Because of the unique nature of each experiment, I think there is going to be a market for customizations or add-ons or other things that are compatible with, once an ecosystem is established, like an existing standard.
EW (33:02):
Do you want this to be a business that is your full-time job?
PG (33:06):
I am not sure yet. I am open to that possibility. I really like what I am doing currently, so it is hard to just say, "Oh yeah, I would jump on this as soon as possible." I would like it to fund its own development, if that makes sense? It does not have to be my full-time job.
EW (33:25):
When you started this in 2020, could you have imagined where you are now?
PG (33:34):
No, not really. I did not know what I was getting into in 2020. I just thought it was interesting, and I wanted to see where it would go. In some ways I always had this, I do not know, grandeurous vision of where things could go, and trying to make sure I was not cutting that off by not planning ahead. But it is very different to think, "Oh, it might turn into something bigger," and actually see progress in that direction.
EW (34:04):
But I seem to recall you thought it would not be very hard.
PG (34:08):
Oh yeah, no, it cannot be that hard. It is only a couple sensors and so on and so forth. Making one box for yourself is not hard. That I will say. What is hard is making it reproducible, well documented and accessible. What I mean by that is I am trying to design things so that they can be what is called "drop shippable." So if I get an order, I am not pulling it out of my closet and putting in a box and sending it off.
(34:38):
It is a program that automatically orders parts from a number of suppliers and ships them directly to the customer. That means that those parts have to be designed in a way that the suppliers can manufacture them, or the end customer can assemble them.
(34:53):
This has a lot of important consequences in this particular work, because it cuts out inventory costs, it cuts out additional shipping costs, which means the price point for these things could be a lot lower than traditional manufacturing methods, but it does mean I have to design them to accommodate those processes.
CW (35:15):
How are you learning this new field of...
EW (35:19):
Manufacturing?
CW (35:20):
Well, business, manufacturing. Inventory, timeline, supply chain? How are you going about learning that? Hope not trial and error, probably.
PG (35:31):
Well, no, you would be wrong about that. Trial and error. <laugh>
CW (35:34):
All right.
PG (35:34):
So for the boxes for Gwen's lab, for example, I printed one of them. But the print time right now before doing a redesign and some optimizations, is about two straight weeks of printing, and probably more than two rolls of filament. So it is intensive and the deadline, we were originally looking at for her class, was much earlier than I could print four boxes.
(35:57):
And so we looked at basically hiring. There are these contract 3D print services, where you can send them your files, and they will ship them out to print farms all over the world, and then ship you back the parts. I got to do trial and error with that.
(36:15):
One of the things I learned is that my tolerances were way too tight, and a lot of the parts I got back would not slot together. Because the machines they use are whatever people do not want to use for something else. They print, but their tolerances are bad. Let us just say that.
CW (36:36):
And variable, probably. You probably get some parts that are... <laugh>
PG (36:38):
Yeah. And there are weird things like when it goes around a corner, it does not reduce the amount of filament. So you get these corners that are bulgy and rounded. It is like, "Oh yeah, I forgot that the Prusa does that really nicely." So you cannot have square pegs that slot into square holes. You have to have square pegs that slot into square holes, but with little extra cutouts for the corners. And yeah, those kinds of things.
EW (37:04):
We have talked about two projects, the elevated zero maze, which is print project. And then the operant boxes, which are electronics and code and printing. How big are they? They take two weeks to print?
PG (37:23):
Yes. Part of that is there are a lot of long prints. There are four tall columns and those can take 18 hours to print. I think I was printing them in Paris. I am trying to remember what took so long. It is a fairly large amount of filament in version one. So part of the problem is I cannot quite run them around the clock, because you can- It is like, "Oh, this part only prints for three hours." So I could start it, but then like I cannot change it in the middle of the night, so I lose some time printing a three hour part in the evening. There is some stuff like that.
(38:06):
There is some stuff where it is just not as optimized as it could be. So my parts are probably bigger than they need to be. There are probably more parts than there needs to be. Things like that. I could probably use circuit boards for some of the paneling, with the right coding, but right now I am using 3D printed panels, so that that just takes more print time.
CW (38:27):
Just buy more printers.
PG (38:29):
<laugh> You know, I would not mind that. That is not a bad idea.
EW (38:34):
But it does sound like a redesign might help you organize these, so that you have everything that prints about the same amount of time on the same print job, instead of maybe printing a column here, something smaller there.
PG (38:52):
Yes. There is that component. It is just a balance of trying to figure out, the more things you make 3D printable, the less extra materials you have to source. That becomes increasingly interesting when you talk about like, "Oh, a lab in Europe might not be able to get imperial measurement bolts."
CW (39:14):
Right.
PG (39:14):
It is a trade off, where I think what- If I had to guess, I think the final version is going to have it both ways. There is going to be a, "I do not want any extra materials. Here is how you 3D print it." And then there is the, "Oh, I do not want to waste time 3D printing it. You can cut a third or half the time out with some basic fasteners."
EW (39:39):
Making it this flexible, and making it drop shippable, does add to the complexity. You could do it all yourself and ship them a finished product. That might decrease the complexity of the system as a whole. Is there a reason you are really trying to do the drop shipping thing?
PG (40:00):
Yes, because I do not want to become a manufacturer. My time and bandwidth is limited, and I want to make sure that stays focused on design and improvement. Yes, I can assemble some, but what I have seen so far is there are some labs that have done their own designs. They are usually pretty rudimentary, and some of them use an Arduino or Raspberry Pi to add some feature for operant boxes, but they are not-
(40:35):
Even the ones that are published as open source projects, are not really as reproducible as you would like. And it is mostly because the person who would go to reproduce it goes, "Oh, I do not actually need that feature. Mine is a little different. I need to do something a little different." It is not obvious how to extend it, and they actually have to do it themselves.
(40:58):
So I think a lot of the challenge for why these have not caught on, is the same reason why I think an open source thing could work as a business, is that it is not exactly a maker community, where people will just grab the free design online and go make it themselves. There is actually a lot of friction there.
EW (41:20):
Have you been part of the maker community before this?
PG (41:24):
No, not more broadly. I have definitely made things before this. But sharing them or being involved in a larger community, I think is something that has become more appealing to me now that I am older.
EW (41:38):
Speaking of a community, you are currently leading the book club on our Patreon Slack. I believe it is Dan Shapiro's "Hot Seat"?
PG (41:49):
Yes. That is a really interesting book. I actually got the idea to read it from one of your earlier episodes a long, long time ago. So we are only about a third of the way through the book at the moment. But the section we have read so far has been really helpful for someone like me, who is trying to figure out if this is something that I should be doing, and how, and what it means to start something new.
CW (42:18):
This is a book about start-ups.
PG (42:18):
Yeah, sorry, I should have given that broader context first.
EW (42:25):
Actually, could you describe it a little better?
PG (42:27):
Yeah. From what I can tell, it is a book about the process of being a start-up. He speaks to his experience, having gone through five or six up to that point. They are all a little different, and they have different things. He talks about a lot of the processes.
(42:48):
He even has some exercises, which I have gone to the trouble to actually do, about how you should split founder shares, or how you decide which start-up to do when you have dozens of ideas. That is not my problem in particular. In this case, I do not have that many ideas. I am pretty skeptical about new ideas that might change things. I think this one resonated with me, because even if I was off by an order of magnitude and the costs, I knew there was still margin there. I was like, "Okay, if I think this is exciting, I am probably wrong. But I can be wrong and still come out okay."
EW (43:29):
And it is helping someone you care about. So even if you are wrong such that you do not make money, as long as you can help, there is some value in learning all of this and helping.
PG (43:41):
Exactly. I knew it would not go to waste, if that makes sense. Like it has the prototypes even have value to someone I care about. So even if those are absurdly expensive and it does not go beyond that, at least those have value.
EW (43:57):
You said you do not have a lot of ideas, but you mentioned recently in our complainatorium that you finished one project and started five more.
PG (44:08):
Yeah, I do normally work on multiple projects at the same time. I am a "start a dozen to finish one" type of person. The complaint in complainatorium is more about I was working on one project which had a deadline, and it kept me laser focused. And I hated it. But it gave me some perspective for like, "Oh, I actually got something pretty impressive done, because of that deadline."
(44:37):
The things that I want to get done now- Normally I do not care about deadlines, my side projects are to learn, it does not matter if I finish them. But the five side projects that I started working on after this, there is not a lot of learning going on, and so I am doing them mostly because I want the finished product. Not being terribly focused on anyone in particular, does not get me any of the five things that I want to build.
EW (45:05):
But you also were having fun bopping between them.
PG (45:08):
Yes, it is a difficult balance sometimes.
EW (45:15):
Did we have the conversation about orange juice recently, or was that offline?
CW (45:21):
I do not remember a conversation about orange juice.
EW (45:23):
About how-
CW (45:24):
I do not want orange juice.
EW (45:26):
How sometimes you need input in order to have output, and the input needs to be of a different kind. And so you may be the best juicer in the world, and you may be providing high quality, super duper defense, evolution, orange juice with other yummy things. But then if someday you stop having input, you stop having whatever it is that you take in as fuel- Without oranges, you cannot make orange juice, even if you are the best juicer ever.
(46:05):
I bring this up because it is important to sometimes just have fun, and not make progress. Although it is also sometimes important to make progress, even if it is not fun, because then you get the dopamine hit of having being done, which is such a nice dopamine hit.
PG (46:23):
It is, but it does not last as long as you would hope. <laugh>
CW (46:29):
What are some things that have surprised you thus far, with embarking on this project? Apart from <laugh> 3D printer tolerances? <laugh>
PG (46:38):
Ah, gosh, I do not know. There are a lot of little things that have surprised me. It has just been a series of small little surprises. Every new domain that I have to learn has its own surprises. I do not know that there has been big surprises. Sorry, that is not a terribly exciting answer.
CW (47:04):
That is fine.
EW (47:05):
Sometimes having a hundred little surprises all the time is...
CW (47:09):
Nibbled to death by ducks. <laugh>
EW (47:10):
Yes!
PG (47:12):
That is accurate.
EW (47:14):
So one of the things you sent me before the show was a list of projects. Which was nearly 70 entries long, which I have to admit, made me laugh <laugh>. But you have since put in that many of these are completed, so you only have like 30 open right now. Do you always keep this good of documentation on which projects <laugh> you have going on? <laugh>
PG (47:45):
No, I started doing this actually, because I was listening to the podcast. As I was working on little things to learn, I was bouncing around. The lightning round question of, "Finish one or start a dozen?" I was like, "I do not know, am I working on a dozen? I should write them down and find out. I cannot actually keep track of them all."
(48:06):
So I started writing them down, and then very quickly, I think I had eight when I started, and it was not more than two weeks before there were more than a dozen. So that is where the list came from, was just to know if I am the "Finish one or start a dozen," and turns out, do a lot of both. But usually there are about a dozen or so, that are broadly open or waiting to be worked on.
CW (48:34):
Has it been hard to focus on this thing that you are trying to make a serious project, and not get distracted by the other ones?
EW (48:43):
Not get distracted by say, tearing apart your headphones and changing everything inside of them?
CW (48:50):
Yeah, I think they broke. He had to fix them.
PG (48:52):
<laugh> You know me well. Yes and no. I mostly use the other projects as a way to not burn out on the main one. Because there was a deadline for getting the boxes version one ready for Gwen's class, in case they wanted to do that kind of research, I was working basically exclusively on that for about six months straight. When they decided they did not want to do that kind of research, I was very much relieved, being at like the 95% mark, but was very ready to just start doing some other stuff in the meantime.
(49:29):
There is still lots of learning and a lot of the things tie back. But yeah, it goes in spurts, and so I tend to set the other miscellaneous stuff aside, when there is something I actually need to make progress on. Right now I am in a lull, so I am doing a little bit of everything.
EW (49:51):
We just mentioned your headphones and fixing them, but you have been doing a lot of projects with salvaged parts.
PG (49:58):
Yeah.
EW (49:59):
How did you get into that?
PG (50:02):
That was interesting. I think when I started, I saw maybe a couple of videos where people noted things that you could take apart to get something useful. And there is always that drawer of junk electronics. I was curious how they worked, and I just started taking things apart to see if I could find things that were useful. I would actually recommend it, if you are looking get started.
(50:27):
There are a couple things that I did not expect to get out of it, that were actually really helpful. One, if you build things out of salvage parts, it is the hard way. It is not the order two boards that are supposed to be compatible from Adafruit, and just stick them together, and download the sample code and you are off. You have to look up the data sheet. You have to find the markings on the chip and figure out what kind of chip it is. And figure out the pinout. And do your own testing.
(50:57):
One of the other benefits is it gives you one of everything. If you take enough things apart of different varieties, they have components. So the reason I do it, I like doing it. One is it is a form of recycling, and two, I think my brain is broken. I think the way my brain evaluates these hobby projects, is it looks at it as a percent ROI on the raw materials. It does not matter how long it takes me to do it, but if the materials cost me nothing and the end product is useful to me, then that is an infinity win. Which is a little silly, but...
CW (51:35):
It just shows you do not value your own labor.
EW (51:37):
<laugh>
PG (51:38):
Yeah, pretty much. That is largely why I do it. There is some really neat stuff that you find when taking things apart. One of my favorite discoveries was I was taking apart an alarm clock, and I was like, "Oh, this is a fairly simple system. There is going to be some kind of clock, and a couple other things, and a display and maybe a display driver, and I will take it apart and take these different things apart and repurpose them." And there was none of that.
(52:07):
There was one single IC on the board. When I desoldered it and cleaned it off, and figured out what the number was, it is an alarm clock IC. Almost all alarm clocks have this IC. It is an integrated circuit that does one thing, it is an alarm clock. That is why almost all alarm clocks have snooze buttons, because on this IC there is a dedicated pin to snooze. It is a feature of the IC. I was like, "Oh, it is just one of those things where, completely useless waste of my time to desolder."
(52:35):
But it made me realize, when you take things apart, sometimes you find really cost optimized things that are not that general purpose. And sometimes you get really juicy things that were made a long time ago, before those optimizations were made, where they are really made of basic components.
EW (52:55):
You know there is a toaster chip, too.
CW (52:57):
Yep.
PG (52:57):
Oh my gosh.
EW (52:59):
And it has got a bagel input.
CW (53:00):
The bagel pin.
EW (53:01):
The bagel pin. <laugh>
PG (53:03):
<laugh> That is delightful. I did not know that.
CW (53:06):
Yeah, I think for anything sufficiently high volume, there is a dedicated little IC for it. It costs 3 cents.
EW (53:11):
But the bagel pin <laugh>.
CW (53:13):
Bagel pin. Yeah, I want somebody to do a whole compendium of chips with weird named pins for strange functions like that. Snooze button, snooze pin, bagel pin.
PG (53:24):
That would be fun.
CW (53:24):
There has got to be some others. I have a question about the mouse thing.
PG (53:29):
Yeah.
CW (53:31):
Have you considered grabbing the mouse and bringing it to the food instead? Because that probably would solve a few problems.
PG (53:36):
Well, yes.
CW (53:38):
Well, the mice are about the same size. You said the food was variable size, so if the mice are...
PG (53:44):
Well, yes. Oh, you mean having the device-
CW (53:48):
Grab the mouse.
PG (53:49):
Okay.
CW (53:49):
And hold it over a bowl of food.
EW (53:53):
Oh, so when the mouse-
PG (53:55):
So you are thinking like a pick and place machine. But instead of taking the chips off the feeder and putting them on the board, it is taking the mouse off the board and putting it next to the reel of chips.
EW (54:04):
Right. It pushes the button, and then it gets picked up and transported to the food.
CW (54:08):
Yeah.
EW (54:08):
Where it gets a second to eat.
CW (54:09):
Yeah.
EW (54:09):
And then it is transported back to wherever it was.
CW (54:12):
Yeah.
PG (54:13):
Yeah. There is no chance that would jam or cause harm in any way.
EW (54:17):
And the mice would certainly enjoy their little flying adventure.
CW (54:20):
I mean, yeah, you could change it up a little bit. It would not have to be a grabber. It could be like a thing that scoops under, a little plate that scoops under them. Like a little elevator. Like a little Mario platform.
EW (54:32):
Or like a tractor. The tractor thing.
CW (54:33):
Oh, wait. When they push the button, they are already standing on a Mario platform, and that just lift- This is easy. Okay. So they are standing there, and you have got a couple motors. So when they push the button, the side walls come up so they cannot fall off. Then it lifts them up, and then it just slides over to where the food is, and then it slides them back there. It is a little elevator. It is a little Star Trek-
EW (54:55):
It would be consistent, which is-
CW (54:56):
Star Trek, what do you call them? The tube thing? The hyper tube. The turbo tube. The turbo-
EW (55:01):
Turbo lift.
CW (55:01):
Turbo lift. Yeah.
PG (55:03):
Interesting. I cannot say that anybody has done that before.
CW (55:07):
See, it must mean it is a good idea.
EW (55:09):
That is what it usually means, yes. Your goal of making something reproducible by many people, seems at odds with the salvaging. But those are just two different hobbies, right? I mean, they are not- "Hobbies" is such a terrible word. Two different areas of interest.
CW (55:28):
Interests. Yes.
PG (55:29):
Yes and no. So the version zero prototype made with Legos was also made with salvaged parts, for things that did not come in the Arduino kit. But that was because I did not need to make more than one of them. I was just checking that there was not a $40,000 reason this could not be done.
(55:46):
So it did not matter whether the LED came from some toy that I took apart, or whether the fan came out of a broken computer. I just needed to see that it could be put together. The version one that I have been putting together, I have had to tamp down on my temptation to build them out of salvage parts, because I am like, "No, I need all of these to be the same. And I need them all to have the same things. And I need to be able to tell people where to get them. And I cannot just say, 'Oh, go take apart a printer, and you are looking for a stepper motor, but it has to be this big.'" No, so yeah. Those are at odds.
(56:25):
Occasionally I dig into the salvage bin and pull something out in a pinch, to test that it will work before I order four. But, other than that, those are pretty separate. Yeah.
EW (56:37):
Well, Peter, it has been really great to talk to you. Do you have any thoughts you would like to leave us with?
PG (56:45):
Keep exploring and learning. It makes life more interesting.
EW (56:50):
Our guest has been Peter Griffin, consultant at Slalom, data engineer, and embedded systems enthusiast / developer.
CW (56:58):
Thanks Peter.
PG (56:58):
Thank you. It has been a pleasure talking with you.
EW (57:01):
Thank you to Christopher for producing and co-hosting. Thank you to our Patreon subscribers for their support. And thank you for listening. You can always contact us at show@embedded.fm or at the contact link on embedded.fm. And now- Oh, I am sorry. The lightning round had one more question for you, Peter.
PG (57:19):
No!
CW (57:19):
<laugh>
EW (57:21):
Returning to bottle rockets and baking soda and vinegar.
PG (57:26):
Yes?
EW (57:27):
Is that a good way to clean the kitchen cabinets and ceilings?
PG (57:31):
Now I know who you talked to. <laugh> It is, if you do it wrong.
EW (57:37):
<laugh>