Embedded - 381: Mass Sponge Migration

Episode Date: July 22, 2021

Chris (@stoneymonster) and Elecia (@logicalelegance) discuss Blender, Make, TCP/IP, and listener questions (mostly about the podcast itself). Lightweight IP: an open source TCP/IP stack for embedd...ed systems Look for Lazy Tutorials for Blender in Ian Hubert’s YouTube Channel or if you want something a little simpler, try the Blender Beginner Tutorial (donut!). Ukulele and acoustic guitar kits are at StewMac.com Book with sponge sneeze information: Brilliant Abyss by Helen Scales This episode was sponsored by InspectAR. If you design, debug, or just need to use PCBs, InspectAR can give you superpowers. It’s an augmented reality app and platform that allows you to visualize every layer, every connection, every aspect of your actual physical board in real time InspectAR is free for trial and home use. With a subscription you get powerful collaboration and debugging features including annotating the AR view, sharing comments, setting up test and calibration procedures. Check it out!  

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to Embedded. I am Elysea White, here with Christopher White. It's just us this week, and we have a whole bunch of listener questions. Okay. I have a whole bunch of listener answers. Most of them conflicting. Not sure it works that way. Oh.
Starting point is 00:00:24 Well, first we will do news. News. Do I need to put in a little do-do-do-do-do-do-do-do-do thing? Yes, you do. Okay, I did that. Okay, so I've talked a lot about my talk about map files. That's on YouTube for your watching pleasure, as well as the bloopers file. The bloopers. The bloopers file. The bloopers.
Starting point is 00:00:46 The bloopers file? The bloopers video. Christopher put a lot more work into. Bloopers. It's like in a drawer. It's investigate the blooper file. Yes. And your Kickstarter is over.
Starting point is 00:01:03 It's over. How'd it go? Over for them, not over for me. It went very well. I'm very pleased. I'm learning all about the intricacies of delivering things to 100 people, which is a number that seems small until you start doing things like sending out emails to them, realizing that that needs to be automated.
Starting point is 00:01:28 And then when stuff breaks and you have to send out 15 by hand, that's actually quite a few. And anyway, yes, fulfillment, fun. Okay, so... We haven't even gotten to shipping actual things yet, so... Your Kickstarter is over and you're funded and everything went well that way. Yes. You got sick of promoting. Yes.
Starting point is 00:01:47 So you didn't do it as hard at the end as you did at the beginning, but that's normal. That's not actually true. I did a ton in the last week. Oh, but there was a week there that it was a little bit lighter? There was some in the middle where it was lighter, but toward the end. How much did you enjoy promotion? Not a lot. What was the worst part about it?
Starting point is 00:02:05 Having to come up with something to say that's different than things I had already said. You had to live. Like, hey, it's me again about this thing. I mean, some of it is just, you know, the only way to promote now is social media unless it was to try to get something going on. Somebody else to help me promote, you know, on a blog or whatever, an interview somewhere. Anyway, that wasn't going to happen. But with social media, the thing is, you know,
Starting point is 00:02:31 people don't see everything every time. So you do have to kind of repeat yourself. But I really find that distasteful. So I didn't really enjoy that. And there was a lot of, you know, okay, I got to do a quick little thing. Well, everybody likes videos, so now I got gotta do a quick little thing well everybody likes videos so now i gotta do a quick little so you know just a lot of time to put into having something to kind of catch people's attention something new and interesting and and not the same old thing put something out there about the record maybe a teaser for a song but not reveal the whole record ahead of time and
Starting point is 00:03:00 you know what's the balance there and i don't know i know i just don't like talking about things i've done or things i've made and so trying to get people interested in it is a bit of a conflict so that uh yeah it mostly mostly was just you know waking up every day thinking i should really promote the record today which i do well i've used most of the pictures i have part of the problem is with not being able to do like a photo shoot and stuff and some spontaneous stuff with my brother you know that that was difficult so probably should have tried to figure out how to do that ahead of time there's there's a bunch of things were i to do it again i would do differently like spending a month before even launching the Kickstarter. And I did some of this, you know, collecting things that I could use for promotion.
Starting point is 00:03:49 Yeah, you had a list. And I had a list of things, but they weren't well-defined or done. And I had a list of pictures and videos and things and stuff of that nature. But it would have been better to just kind of have like a dozen things done that I could dole out, which I really didn't have. But then I had to spend time doing other things. So yeah, it's all a balance of how much time do I have to do for this? So it went fine. I'm not really upset about anything. It's just promotion is not that enjoyable. So one of the things that you did that was other things involved those cat videos we requested. Yes, yes, yes.
Starting point is 00:04:29 And I know you're not done with that. No. But as part of it, you've been learning Blender. Yeah, I don't think I'll actually end up using Blender for that. But if I do more stuff, yes, I have been playing around with Blender. So tell me about Blender. Blender? Blender is a very cool program. And I've played with it over the years.
Starting point is 00:04:51 I think the first time I played with it was when it was back, you know, before it was a 1.0 even. And then it was even more inscrutable than it is now. Blender is a gigantic 3D graphics package. It's open source. It's free. It does just about everything you could imagine having to do with 3D graphics. So it'll do modeling. It has a thing where you can create models, sculpting, texturing. It has animation.
Starting point is 00:05:19 It has things where you can rig. If you have a model of a person, you can rig the bones in it and do inverse kinematics and all that stuff to properly animate them. It does video stuff, so you can model camera motion in existing video and then put that in a 3D world space, put 3D objects in it. Everything you want to do with visual effects or 3D graphics, you can pretty much do in Blender at a really high level of quality. It has rendering capabilities that are really excellent. You can do basically, people have done whole movies in it, and they look like, you know, Pixar. Maybe somebody in the industry who knows better would say, nah, you know,
Starting point is 00:05:55 Pixar stuff does this and that, and it's much better. But, you know, from a layman's perspective, it's a very powerful package. The only problem with it is that it's extremely complicated and it will do anything you want but you kind of have to i think an analogy i used is it's like somebody gave you a lamborghini but it doesn't have an engine computer you have to you have to do all the engine timing and the valves by yourself while you're driving. So there's just a lot of, the UI is very complex. There's a lot of duplication throughout the UI.
Starting point is 00:06:32 There's a lot of knobs for everything. And they're strewn throughout the UI in all kinds of places. And there's, you know, every option is kind of exposed to you. And some of them are important and some of them aren't. And it's hard to make sense of what they are. So it's a real learning experience to try to get any kind of deep knowledge of it. And like I said, it does so many things. I'm not even sure it makes sense to get deep knowledge of it because people will use it for different ways. Like I'm not interested in sculpting, so I can kind of ignore that part of it. I'm not really interested in changing models. I would like to do things with visual effects and maybe movies and go grab a model from somewhere else and use that. Maybe make some small modifications. so many powerful things, but it's also very frustrating. And I end up watching a lot of YouTube tutorials where they'll blow through stuff,
Starting point is 00:07:25 and even the experienced people are like, oh, I just figured this out, there's this option, if you right-click here and do this and this and this and this and this and this, we get this thing over here which isn't well-documented that does the thing I wanted. And so it's interesting. I think the UI has gotten a lot better, which is terrifying.
Starting point is 00:07:44 Given how bad it is now. And it's quite usable, and it just takes some time. But it's interesting. The stuff I'm going to use for video stuff is probably not that. I have some other 3D graphics things that integrate with video that are far simpler to use and produce pretty good results, but what they can do is more constrained so there were two things in blender that i thought were very cool that you showed me yeah one was you made a cube of jello yes i got that off a tutorial how long did it take you to make that 30 minutes was that after you knew it pretty well i mean
Starting point is 00:08:23 somebody would like no i just i basically followed it well if you don't know the the very basics of the blender ui it's very hard to follow the tutorials because you don't know what they're doing so if you don't know how to get around and rotate things and change modes uh it's probably not that easy um but having that knowledge i was able to at least kind of understand what the tutorial was doing and click along. But the tutorials, sometimes they leave a lot of stuff out. So if you don't know how to do some simple things, you might get lost or get into a situation where I tried that and it didn't work. And it's because you were in the wrong mode or clicked the wrong thing. And then you also scanned one of my origami octopus yes
Starting point is 00:09:07 and somehow that ended up near the jello cube well it's in the jello cube now oh is it yeah i'm having trouble getting it to stay in the jello cube octopus are like that uh yes yes yeah that's another thing you can do is there's simple iphone apps now to scan 3d objects and they work pretty well and then you can export them as a file and just dump them in Blender, and suddenly you've got whatever was on your table in a 3D world. And it gets the texture mapping and everything, so you don't have to do that even. And then there was the YouTube guy, the One Minute Tutorials. Yeah, Ian Hubert has a channel on YouTube he does a lot of Blender stuff he has a series
Starting point is 00:09:48 called one minute or lazy tutorials I think it's lazy tutorials for Blender and he goes through one very specific thing at incredibly fast and if you don't know Blender pretty well they're not really followable
Starting point is 00:10:04 I can't follow most of them. Um. But it's amazing what he makes. Yeah. Like. It's simple stuff. Like, make a city in Blender. It's a one-minute video.
Starting point is 00:10:14 Yeah. And he'll go through it. And if you go through, it probably, you know, if you spend an hour going through the one-minute video and you knew some Blender, you could probably. But it gives you the high points of what you need to do. And it's like, make a this, then do this, and then extrude this, and then that, and then that, and then that, and then add it in, and you're good. They're fun to watch, and they're a minute, and they're kind of inspiring. They're very inspiring.
Starting point is 00:10:35 It's inspiring because, okay, maybe that's not that hard. If he can make a tutorial that I can kind of follow that only takes a minute to describe doing this thing that seems pretty complicated, maybe if i spend an hour on it i'll be able to get a result that's not not too bad i think the other one we watched was the fish one there was the fish one and there was the animating the person yeah well that was much more much oh animating person uh oh yeah he was just looking back and forth not his it was pretty cool. Not his demo reel, which is a whole other level of stuff. He also has, he works on movies himself. He's got two demo, two or three trailers for kind of movie shorts he's working on, and they are both very impressive. Oh, that was unreal.
Starting point is 00:11:19 And he does most of the work by himself. And they're like, you know, I wouldn't say they're contemporary ILM quality, but they're probably 10 years ago, you know, AAA movie quality. Well, when we watch a movie, you know, there are hundreds of people. Yeah. So it's kind of interesting to see one guy. One guy and what he can produce. It was really neat. Yeah. I wasn't trying to follow the blender at all.
Starting point is 00:11:43 I was just looking for what can you do. What would be the first place for people to start? With Blender? Yeah. There are a lot of tutorials out there. I can put some that I've followed in there. There's a whole bunch that start from basically zero
Starting point is 00:12:00 that are pretty good. One I did a few years ago that's recently updated for the newer version of Blender, you basically make a, it's more modeling. You make a donut and a cup of coffee model, and that's pretty neat. I wasn't super into modeling, but it does teach you most of the interface and you get something out of it at the end that's kind of fun to look at. But yeah, there's a ton of good YouTube tutorials and I'll try to get the list that i've got and put them in there um and they're not terribly like it within an hour you can kind of if you're familiar with like photoshop or
Starting point is 00:12:37 any of the other kind of pro creative applications most of the concepts kind of will seem familiar so after an hour you're probably pretty familiar with the basics of the interface even though it's kind of intimidating to look at i know this isn't very embedded but watching you learn blender has been so fun i mean i'm not trying to learn it i not sure I am. But you keep coming up with neat things. Well, it's just that you can do everything, and it's kind of mind-boggling. I watched a tutorial today where somebody was like, okay, here's how to do face tracking in Blender. And he put dots on his face and took a video, and he turned himself into a zombie, and he put a 3D model of zombie teeth in. And that one's much longer because it's much more complicated.
Starting point is 00:13:19 But, you know, you can do all kinds of the things that happen in visual effects in Blender, including all the stuff you're used to where somebody wears a mocap suit with dots on it and does their thing. So, I don't know why I'm doing any of this. Probably because I'm overambitious with some music videos and I probably won't continue doing this for very long. But you've gotten pretty far. I don't know. I mean, I don't know how far you've gotten in the world of Blender, but you've gotten far enough to entertain and amuse other people. Okay, well, I'm not sure that's a high bar.
Starting point is 00:13:53 Well, it's me, so no, it isn't a high bar, but still, it is pretty cool. Hey, everyone. Today we'd like to tell you about InspectAR. If you design, debug, or just need to use PCBs, InspectAR can give you superpowers. It's an augmented reality app and platform that allows you to visualize every layer, every connection, every aspect of your actual physical board in real time. Need to know what a pin does? No problem. Need to know where a trace goes two layers deep? Okay. Not only does InspectAR bring your EDA tool's level of visualization into the real world,
Starting point is 00:14:31 it gives you deeper insights too. Click on a component on your board and easily identify it. See its datasheet, supplier info, or pinout. InspectAR imports your PCB manufacturing files, and if you're using an off-the-shelf board, you might find it already in the list of sponsored projects. Once your project is set up, just point your phone camera at your board and see the technology work.
Starting point is 00:14:54 You can dial in exactly what you want to see, and what layers to overlay, just like in your design software. It'll simplify your analysis and repair of hardware through augmented reality, with your phone or other camera, not a fancy headset. InspectAR is free for trial and home use. With a subscription, you get powerful collaboration and debugging features. Annotate the AR view, share comments, set up test and calibration procedures, and more. I've tried out InspectAR myself, and it really is amazing. I encourage you to check it out. Test it with some of the many pre-populated projects or common dev boards and find out how much it can speed up your troubleshooting and firmware development.
Starting point is 00:15:32 InspectAR works on nearly all mobile and desktop operating systems. Go check it out at inspectar.com or use the link in the show notes. Our thanks to InspectAR for sponsoring this week's show. Okay, so I have one question that's not on our list. This one is from Silas. Sophomore in college, doesn't know people doing embedded. So our show is good for Silas. Currently looking at build systems other than make, could we talk about our experience with build systems? Is there a de facto standard in
Starting point is 00:16:13 the embedded world? How have build systems changed over the years? And as a beginner, what should they learn? Make or some other system? To the last question, there are many build systems that boil down to make at the end. And if you want to understand what they're doing, you need to understand make. I'm thinking specifically of CMake, which generates make files,
Starting point is 00:16:39 and they're probably inscrutable at the end, but it's probably worthwhile knowing how to use make especially for small projects so there's that there's a lot of build systems out there and i don't know that i can really speak to many of them uh there's a lot of newer ones that are very complicated like bezel and um some other things that i'm drawing a blank on me i'm i'm stuck in cat can make which is well there you go there's another one terrible um i would say and people may dispute this but i would say learn make learn c make even if you don't want to uh and then if somebody else comes along and you're working in some place that does something different just learn it there but i wouldn't waste
Starting point is 00:17:34 a hell of a lot of time trying to learn a whole bunch of different build systems especially since there isn't really a standard i mean if you want a standard, make files are the standard simply by inertia and the longest time they've been around and the fact that many things are built on top of them. So if you've got to learn just one, I would say make files. And people may say, no, don't do that. Learn CMake.
Starting point is 00:17:57 But I think it's still make files is the standard. Beyond that, CMake is probably the next level up of standard, but then everything gets kind of messy from there. I'll make files as the standard. Beyond that, CMake is probably the next level up of standard, but then everything gets kind of messy from there. I feel like you have to know about how Make works to make CMake work. I don't know. I can't. I'm so far from that time that I'm not... I don't know.
Starting point is 00:18:20 Silas mentioned reading Robert Mecklenburg's Managing Projects with GNU Make and mentions module has its dependencies listed. And those are all things that can be solved pretty easily in Make. I think you just need to read a little bit further in that book. I agree. Yeah, dependencies especially, there's ways to do dependencies in Make that are pretty straightforward. I mean, they're not perfect. Make's dependency stuff is limited compared to some more sophisticated things. I would strongly encourage you to learn make, especially at the beginning of your career. It's kind of like having invisibility as a superpower. You may not want everybody to know because it's a lot more useful if people don't know. You don't want to get stuck being the
Starting point is 00:19:21 invisible person, but it does form the basis of a lot of things and understanding it is unlikely to be a waste of time it's not going to hurt you it's not going to hurt and it's not going to be a waste of time you will use make at some point in your career and i use it all the time for simple little things when i don't want to reach for something bigger i mean you've got a project that's got 10 source files or something and small dependencies, and it's going to work on one target, you don't need some of that other infrastructure that just makes things more complicated.
Starting point is 00:19:56 I mean, that's one of the things where make falls down a little bit, I think, is when you've got a lot of targets or different OSes, and your code is going on, that you have to make a lot of, you know... Different lot of targets or different OSes, and your code is going on, that you have to make a lot of, you know... Different versions of the build. Different versions of stuff.
Starting point is 00:20:10 So that can be much more difficult with Make, but it depends on how common that is for you. Yes. But even as I see things that are meant to be built between different processors, Make still seems to be... It's kind of like, should be kind of like should you learn yeah should you learn arithmetic or you should you learn algebra and really arithmetic first
Starting point is 00:20:31 probably should learn arithmetic first because that plus sign is going to be real confusing if you've never seen it before x plus y what does the plus do um so yeah i i think that's the answer I would give. We got a question from Patreon from Bailey. What does one do with the other 11 of the dozen projects started? Let them molder? Let them sit on the benchtop in the garage? Look away in embarrassment every time you see them? Put them in a box so you don't have to see them? yeah i mean yeah i don't know well the question is why are you doing these i don't know i mean i'm going to list the 11 projects sure go ahead and list your 11 i have
Starting point is 00:21:18 a partially assembled ukulele on the bench top that's been waiting for me to buy some plywood, I believe, for 18 months. Well, shorter, 12 months maybe. I have a completely unassembled acoustic guitar in a box that has not been opened yet in the garage that I bought because it was on sale. I remember being against that decision. I got a, it was a good deal. It's a great deal. Also, I had a gift certificate. Think of how much money you saved. I had a it was a good deal it was a great deal also I had a gift certificate think of how much money you saved I had a gift certificate
Starting point is 00:21:47 I have that MIDI thing that was based on the nucleo board I had that's in pieces over there I have oh well the curb if you want to go back years I have the unfinished curveball controller that's in the cabinet over here.
Starting point is 00:22:06 What else have I got? Probably a half dozen or more 30-second snippets of song ideas. No, probably two dozen snippets of song ideas that are just sitting on a drive somewhere that I haven't sat down and expanded on. That's not a dozen. See, I'm doing good. Not 11.
Starting point is 00:22:27 I have a PhD I never finished. You got a master's degree. I quit that. That one's gone. I don't know. So I have projects too. I never finished taking a part twice because I wasn't happy with how it was going to be published.
Starting point is 00:22:44 And I didn't want to go on my own. I have origami things that are half-started all over the house. Those usually get trashed because it's just paper. I have plans for more origami things that require math that I'm just too tired at the end of the day to do. Oh, I have so many. So much gardening. I have so many gardening plans. So little will to do it. Okay, so the thing is, there is some embarrassment, self-guilt for not finishing things. But like with Blender, you start these things to learn
Starting point is 00:23:30 and to learn about them. And if you get to them and they're not that interesting... That's never my problem. Or other things are more interesting. I have a lack of focus. Like, I feel like I would feel really good if I finished some of these things. You just finished an album and a Kickstarter. Yeah, but that has other people involved. If I had to finish my own album, we'd be waiting a long time.
Starting point is 00:23:59 I say what you do is you take them apart and set them free. That's what you do for the other dozen, other 11 projects. It's okay to set them free. That's what you do for the other dozen, other 11 projects. It's okay to set them free. It's okay to throw them away. No, it's definitely okay to throw them away or give away the parts. Yeah. You don't have to promise you're going to get back to it.
Starting point is 00:24:17 Yeah, sure. And you don't have to... It's a cost thing. Like, you know, I spent a bunch of money on this and I haven't finished it. So, I have to finish it you don't how much would you have paid for the amusement of going to disneyland versus how much the amusement of that project was disneyland on last year not a lot well yes but if you think about it as a form of entertainment it it's okay if it costs, and that cost is going away.
Starting point is 00:24:49 Okay, so from Rick. Have you worked on any unusual microcontrollers? Starts with a P, ends with a T, sounds like rocket. There was no microcontroller involved there. There was a chip. That's was no microcontroller involved there there was a chip that's not a microcontroller it was one of the largest chips to be produced in that time are you kidding me the thing cost about two thousand dollars a pop that was not a microcontroller okay well it's not qualified yes uh i don't think i've worked on any unusual microcontrollers
Starting point is 00:25:24 i've used on i've used things that on any unusual microcontrollers. I've used things that should have been microcontrollers. Like what? Like full x86 PCs with National Instruments boards being used to bitbang I2C for $5,000. Yeah, I've used things that should have been PICs, but people have specced out multi-thousand dollar computers. So that was unusual. But no, I've used mostly ARM or PICs or 8051s. Yeah, everything. I mean, there's a reason those things are common. It's because people use them commonly. I think some people we know use weirder things. Like, I think Andre uses some very strange power PC things for automotive that have counters and stuff that you don't normally get with standard microcontrollers.
Starting point is 00:26:19 What have you used? You've used some strange things, though. Well, I was actually going to say 8051, because we made our own chip at leapfrog in the 8051 core and there was some other stuff that went with it yeah um i worked on making an arm chip for the cortex m0 plus before the m0 plus was a public product so that required a lot of paperwork i will say the microcontroller we used um at fitbit which i'm sure i'm past the nda at this point uh was a custom thing from another company and it had a lot of really
Starting point is 00:26:52 custom features in it yeah i mean i'm not revealing anything it had uh it could access a lot of different kinds of memories and it had a whole bus arbitration thing for dealing with that. It had some graphics capabilities, which were completely unusual for the industry for a Cortex-level part. So that was pretty unusual, I guess. It was more like a real microprocessor system on a chip being jammed into something that was a low-power Cortex-y thing. So that was hard to work with, very hard to work with.
Starting point is 00:27:26 I guess it's kind of rude to say that I consider the TI-CC2600 to be an unusual microcontroller because it was a 16-bit microcontroller that... Oh, right. Had the... Everything was 16 bits. There was no 8-bit. There was no 8-bits. And it was strange. And they hid that from you later, which when I revisited that chip line,
Starting point is 00:27:58 it was super confusing because I knew very well you could not do this from the first time I had worked on it. And then... And that was just weird because they called it a bite and it was 16 bits and it just broke my mind i mean the chip itself was great it did what we needed it we needed mathy stuff so that was great but every time i would get a character and it was 16 bits i'd be like what the heck right now um and then the other one was another ti one which is probably
Starting point is 00:28:32 a super useful and popular chip but it was in the piccolo line which had a lot of motor outputs and a lot of signal processing inputs and it was really fun to use, but the documentation was something else. I mean, just reams of documentation and you could never be sure that it was for your chip. Like, okay, so SPI3 acts like this, SPI2 acts like that. So, I want SPI3. Oh, my chip only has one SPI. So, is it a SPI3 type or is it a SPI2 type? It was so confusing. It's not really unusual, but it was something else.
Starting point is 00:29:15 What about unusual non-processor things like peripheral chips and stuff? Oh, my God. I had to explain IMUs again last week. That's not unusual. That seems pretty far for the course. I mean, since I started with IMUs when they were first solid state, I feel like I've just been going against that wall
Starting point is 00:29:44 over and over again. And they're still so powerful and so cool. And they're so much better than they used to be. And people still don't really understand at an intuitive level. Like, people understand temperature. And explaining pressure is not hard. People just don't get gravity or acceleration. But explaining the difference between linear acceleration and pure acceleration shouldn't have been hard.
Starting point is 00:30:16 Especially when the person I was talking to didn't know which he had. And I was like, so if you take the magnitude, it adds to one, then it's regular acceleration. If it adds to zero, then it's linear acceleration. And so then there was the, well, it adds to 0.3. And I was like, okay, so this is linear acceleration and it's moving. And he said, oh yeah, it is. This is the part where it moves. And I was like, it's okay. Okay, this is good. This is good. We're making progress. So that was, I guess that's not really weird, is it? No, that's completely normal. But that went from analog to SPI and I2C. It's still one of the most common things that are in every stupid piece of electronics you can buy. Okay, so tell me about an unusual sensor, non-microcontroller part.
Starting point is 00:31:09 Well, there wasn't a sensor, but there was the whole thing I had to do for authentication for a consumable part for a medical device. There was a piece that goes on the end that kind of wore out, and they wanted to sell a lot of them and so they had a lifetime limited lifetime and you had to keep track of that and you had to make sure that the device was authentic so when you people couldn't knock them off and plug them in the thing but anyway these were this whole one one wire line of, because it was at the end of a very long cable.
Starting point is 00:31:47 So the double E's decided OneWire was the way to go, reduced the conductor count through the cable or whatever. And so Dallas Semi, I think it was Dallas Semi, had these authentication chips, and one chip talks to the the other chips the one chip would be on the motherboard and the other chip would be in the consumable and they would communicate over one wire and exchange a cryptographic hash and then decide that yes you're you're the authorized part and also it can update its lifetime with a kind of a write-only decrement god this they were so hard to work with.
Starting point is 00:32:26 Weren't those the ones that you ended up with counterfeit chips for? Yeah, well, yeah. I think I talked about this. Yeah, no, they somehow got a whole lot in when we ordered parts. And I don't know how this happened, if somebody did something weird or whatever. But they were these test chips or something, but the whole, they were these like, like test chips or something, but the whole locking mechanisms, like when you, when you set them up, each chip you got in for each part, you had to program your key, your company's key into it. Um, one at a time that
Starting point is 00:32:58 there was no way to say, Hey, Dallas, here's our key. Give us 5,000 with this key. Uh, maybe if we'd ordered a billion of them, they would have done that for us. But, um, yeah, here's our key, give us 5,000 with this key. Maybe if we'd ordered a billion of them, they would have done that for us. But yeah, so they had to be provisioned. And the provisioning process involved putting the key in and then blowing some fuses on the, you know, chip fuses to say this key can never be changed for obvious reasons. And we got this setback and all this weird stuff kept happening and the things basically said at all no matter what you did everything is great no matter what key you put in it all it always worked you could always update it and it's like this is really messed what is going on what is first of all it's like what the hell did i do to the code
Starting point is 00:33:41 to make this happen because Because return always good. Shouldn't be possible. So we, you know, we had the, we had the scope out and we're looking at the whole transactions and everything. And finally said this,
Starting point is 00:33:52 these chips are weird. There's something wrong with these chips. And finally talked to Dallas and like, they were like, where did you get these? We swept them up off the ground. So I don't remember what the resolution was to that but that was very strange but the whole process of getting them working was very difficult
Starting point is 00:34:10 not just because of the cryptographic stuff which was actually turned out to be easy relatively it was just the electrical signal integrity stuff the the requirements of communicating with the one wire device were tight. And when we were originally doing it, remember the aforementioned national instruments ports? Those were the things doing one-wire. So I was writing code in C, and VXWorks, for a PC architecture embedded single-board computer,
Starting point is 00:34:40 to use a national instrument digital outboard. Yeah. Digital outboard? That makes sense. I sense i think yeah basically a gpio board for two thousand dollars to to bit bang this one wire stuff which had tight timings and things and oh god we replaced all that in the second version after i was kind of in charge of some of the architecture with uh you know sensible things that cost dollars uh but uh yeah there was just stuff like oh you have to hold this up for 20 milliseconds and it wasn't quite like spy or something like that where it was well defined each part had slightly different timing requirements. We had other one-wire stuff in there too. So, yeah, it was a pain. It was not, I would have rather
Starting point is 00:35:29 denied squared C device or something like that. Anything else? Not really. I don't think so. Everything else was pretty boring. From Svek. Oh. Chris Svek, who is not you. You are not Chris Svek. That's what I hear. From Svek. Oh. Chris Svek,
Starting point is 00:35:45 who is not you. You are not Chris Svek. That's what I hear. You are Chris White. What has surprised you about starting and running a podcast? That we have continued
Starting point is 00:35:54 to run the podcast. That is the biggest surprise, yes. I don't know. I don't know what we were expecting. I don't know. I'm't know what we were expecting. I don't know. I'm surprised continually that anybody listens to us.
Starting point is 00:36:09 I guess I didn't expect to build a community around it. That's kind of nice. So the Slack community is pretty good and I've met a lot of people virtually and in real life who I never would have met. So that was not something, I don't think that was on my radar as an outcome of running a podcast. I wouldn't have thought making close friends would have been on the list. And I have made some very close friends. And some enemies. You were enemies. I'm kidding, I'm kidding.
Starting point is 00:36:44 Yeah, that's probably the biggest stuff. I mean, I don't know that we had expectations starting it of much of anything. I mean, it was just a let's try it. Let's learn the technology. I remember being so excited when, you know, 50 people downloaded an episode or something. But it seems kind of quaint now. Well, that touches on the next question. What was the audience size in your wildest dreams in the early days?
Starting point is 00:37:12 I don't really know. I don't remember. I mean, 100 would have been... I mean, we got to 100 pretty rapidly. Okay, 100 strangers. 100 people that I didn't browbeat. No, I don't really know. I mean, I think I had some idea of what popular podcasts were doing in numbers back then. So I probably, you know, in my wildest dreams, we're thinking of numbers like that, which we still have not reached.
Starting point is 00:37:37 I'm not disappointed necessarily, but, you know, it's really hard to know what the kind of the top audience for a particular podcast is, whether you've kind of reached everybody you can conceivably reach. I don't think we have. I don't think so either. Neither one of us is great at promotion. Please don't ask me to do more promotion. I think it could still be useful for college students. I think there are still some professionals out there who haven't heard it, haven't heard of it.
Starting point is 00:38:14 I totally understand the people who have heard of it, but they don't listen to podcasts or this just isn't the right medium for them. I think some podcasts get more listeners because they're they're more visible in other ways too um so you know they have a they had a popular blog before they podcast or um they were associated with someone else on a previous podcast and so you know they've built a an audience in different ways so we would have to do different things, I think, reach different people by doing something else that we aren't about to necessarily do. Yeah. I mean, there are the Webby Awards and some other ones where you have to pay a fee to be in the list.
Starting point is 00:38:59 Yeah. Well, I don't think that nobody... We haven't... I don't think there are listeners who pay any attention to that. Oh, okay. I think that's a kind of a podcast pat on the back industry thing. But someday, I want to be able to say award-winning podcast. Sure.
Starting point is 00:39:17 Someday. We just need somebody to invent an award and give it to us. That's true. It doesn't really matter. It's not like we need a monetary award. We just need a certificate. We can have the Chris Speck, I'm not on this podcast award. Yeah, I don't know.
Starting point is 00:39:35 I mean, maybe we can be more controversial. We could take a position that's really, really unpopular and push it for a few episodes. Speaking of... Oh, crap. Svek also asked what the most ridiculous email you've received about the show was. And unfortunately, when he asked that, I was actually getting one of the ones
Starting point is 00:39:57 I thought was the most ridiculous. And that was after my Maps talk, when a very nice FAE from IAR emailed and wanted to tell me more about their map files and some features which they have, which GCC also has, and offered to help to walk me through their build system. And my first thought was, you'd think IAR would accept our lack of bashing gracefully. Because we haven't really talked about them much. But it was an email that sort of hit the ridiculous spot for me because it was just like, really? I didn't see that question, so I didn't go through my list of emails, which I have all of them. You have all the emails?
Starting point is 00:40:44 I have all the emails. You have all the emails? I have all the emails. Never delete anything? They're all flagged with a little purple flag, and they go in my flagged thing. Yeah, but it would take me some time to find one that's ridiculous, and then I'd probably feel bad about revealing it. There are some where people kindly email to correct us on things which we have great experience with. There's a lot of things we don't have great experience with.
Starting point is 00:41:16 So if you want to email and correct us, that's fine. But sometimes those get more giggles than serious consideration. There's always the ones where somebody wants to, you know, have their client appear on the podcast talking about something completely unrelated. PR ones? Yeah. Oh, those are so painful. Then they email back and say, did you get my email?
Starting point is 00:41:42 Or you missed our meeting, I set it up. You missed our meeting. Yeah, meetings are a two-way thing. You can't just unilaterally declare a meeting. Not unless you're paying me a lot of money for it. Do you have a dream guest you'd like to have on the show? Anyone at all, living or dead, but not undead, because that's right out. So, not Dracula? Okay. that's right so not dracula okay i mean no not i mean there's people i wouldn't mind having on the show who are kind of interesting people who i've followed for a while um some of the space people like the nasa guy boback boback for dowsey probably getting that
Starting point is 00:42:21 wrong um people like that maybe some folks from you know i enjoyed some of the podcasts we've done with with people who've been at the you know the beginning of the industry or of an industry in some way so like liskov yeah yeah and um so maybe somebody along those lines from you know the days of the Apple II or something like that. But I don't have like, God, it'd be great to get... It'd be great to get Waz on. Steve Waznatch. Sure. I'd like an astronaut.
Starting point is 00:42:57 Or a tech support person in the space community. Tech support? No, it's somebody who works on the aeronautics for going to space. Oh, okay. Not tech support, but support staff for the astronauts. Gotcha. Hello, this is the astronaut speaking. I have this brinkling light and it will not...
Starting point is 00:43:23 Have you tried turning your spacecraft on and off again? I would especially... So, on that line, I would also like a historical perspective on going to space. Who else? You know, I'm wary of big famous people, you know, big titans of industry kind of people. I don't really... Interesting people who become famous because they're interesting. I'm fine with that.
Starting point is 00:43:51 Famous people who we've had on the show before have not always been our favorite shows. But some of them happen. So it's a mix. It is a mix. But they're so much harder to book that I'm kind of leery about spending the additional time. What about fictional people? Fictional people? Oh, that's so easy.
Starting point is 00:44:12 I would love to have Rey on the show. From Star Wars? Yes. Not from Ghostbusters? Right. How did she learn the languages? How did she learn how to do the scavenging? And did people help her?
Starting point is 00:44:29 Was it all just the Force, or did she learn things? Did she ever find the technical spec manual for the ship she was scavenging? How did she know how to fix BB-8? I'd rather have BB-8 on the show. I mean, you could have BB-8 on the show. I mean, you could have BB-8 on the show. But Ray from Ghostbusters, like, how do you make the sensor to detect a ghost? What is a goat? What frequency?
Starting point is 00:44:56 What is a goat? What electromagnetic stuff is a ghost putting off that you can detect? How do the little cage things work? I mean, why are lasers involved? Is one of those things where, you know, like the laser traps for photons, for ions? Is that how that works? You know, that kind of stuff would be interesting.
Starting point is 00:45:17 Was that the person who talked about? How did you manage to have the money for all of that stuff and yet you bought the crappiest car you could imagine for your service visits was ray the person who talked about the sponge the mass undersea sponge migration yeah i believe he was so i've been reading a book by helen scales um called the brilliant abyss and the one of the sections that came up this morning was, so we all think of sponges as stationary. That's why that joke is funny, the underwater mass sponge migration. Turns out that in a 30-year-long time-lapse photography,
Starting point is 00:46:03 sponges are not stationary. They can act like tumbleweeds and move around. They can sneeze or expel something that they don't want to have in them, and that takes a couple of weeks. It takes a couple of weeks for a sponge to sneeze. I just wanted to have that out there because I was so fascinated. Okay, so... How did we get there? Tom Anderson, whose show went really well, I thought,
Starting point is 00:46:37 had something from the Patreon Slack in which you, Stoney Monster, That's me. suggested running TCPIP. Oh, God. Somebody wanted to know. Yeah. Tell us. Tell us about this. I don't know the details. They had two chips that were communicating, and they wanted something that was...
Starting point is 00:47:02 Where's the thread? Do I have to go find the thread? You want to. I have to go find the thread. Inner microcontroller communication. I have one big MCU and two small MCUs. Need inner microcommunication with error checking, ACNAC, etc. I have selected spy as a transport. Can you suggest a good protocol?
Starting point is 00:47:26 The only reason I suggested TCPIP is because you get all of that stuff, ACK and NACK and retries and error checking, but it's probably too heavyweight a thing for most uses, but there's other things out there. I don't know if, I have not done a lot of inter-micro communication that requires ax and nacks and error checking. My question, which I did not ask, was why do you need all of that? What is happening between these chips that's causing you to lose packets or have corruption? I don't really, maybe this is a failing of mine, but I don't really spend a lot of time on checking for spy corruption.
Starting point is 00:48:06 I mean, CRC occasion—no, not spy corruption. Yeah. Yeah. Unless you've got a real bad signal integrity problem. It's not something I usually worry about. Maybe if it's a long run. But, yeah, so I kind of wasn't sure about the whole premise of it. But there are, I mean, there's a lot of ways to do chip-to-chip communication with a bit more reliability.
Starting point is 00:48:31 And people listed lots of things. But the TCPIP, it was one of the things you went to because you have such a good networking background. Because every time I see a thing that looks like a nail, how does that go? There are hammers and there are nails and they should always be joined together. Whatever, anyway. TCP IP is either my hammer or my nail. How would you go about putting TCP IP on a microcontroller? I'd go grab lightweight IP and then get that built and then I'd go on with my week.
Starting point is 00:49:09 And then if I wanted to send something to the other chip, would I put something on top of that, like HTTP and post things? Or would I just... I mean, it depends on what you're sending, but if you have fixed... You probably have a fixed set of messages and things that just stick into TCP. Stick into TCP. You build a layer on top of TCP IP. It's probably a socket layer that you have, and then you use that. You treat the socket kind of like a FireLio stream?
Starting point is 00:49:40 Yeah. Okay. Well, that didn't take nearly as long as I thought that question was going to take. I'll probably get people yelling at me. I mean, it's not trivial. No. But it's not as hard as it used to be. Doing any of the stuff that you want to do is not trivial.
Starting point is 00:49:56 So, as soon as you want to do that, it depends on which non-trivial you want. As soon as you want acts and verification. Never invent your own protocol for anything. There's almost never a reason to do that. Now, TCP IP may not be the right thing for a whole bunch of use cases, including interchip communication. It's very heavyweight. TCP has a lot of memory requirements. You can tune it so it doesn't, but there's a lot of stuff that goes on with that that's probably inappropriate for small micros.
Starting point is 00:50:24 But there's a lot of protocols out there that people have worked on. The difficult thing is some of the communication, some of the conversation that followed that question conflated protocols with framing and stuff
Starting point is 00:50:42 like that. And framing is a completely different issue from things like error checking and ACK and NACK. It's just a way to say, I'm starting to give you stuff and this is the end of the stuff. Like slip framing for serial communications and stuff like that. And serialization is another thing that gets conflated with protocols. That's the way you take some data, it's a json uh what's a json thing object a json object or a c struct and you you need to communicate that to someone else how do you get that onto a wire that's serialization that's all parts of protocols but that's not a protocol is
Starting point is 00:51:20 the means by which you arrange for communication by saying, I'm going to send this, and somebody saying, okay, send it, and saying, oh, I didn't get it, please send it again, or there was an error in that. It's the high-level stuff on top of the communication that makes things work in a more reliable manner or makes things work in a consistent manner or makes things work with the speed that you need by having flow control and things like that. That's protocols. All the other things are pieces that our communication is built out of, and they're all different. So the answers to that question were kind of not really all on target, I thought, because people were suggesting things that are good suggestions, but they were more along the lines of, you know, somebody, I think, said I had to Google protobuffs, which is a way of serializing stuff,
Starting point is 00:52:15 but it's not necessarily a way to ensure reliable communication and that sort of thing. Is TCPIP the easiest way to ensure reliable communication? It depends on your definition of reliable. And it depends on the definition of easy. But it really depends on the resources you have available. So if you have an 8051, I wouldn't try to stick TCPIP on that. If you had a Cortex-M4 or M3, it's probably reasonable,
Starting point is 00:52:44 depending on how much space you've got Cortex-M4 or M3, it's probably reasonable, depending on how much space you've got. But if you want simple reliability, then there's probably easier things to do. And there were some other suggestions along those lines in the conversation. There was, what was it? I think it was high-level HD, well, it was HDLC. It's a very old one. But even that's more of a data link kind of thing. It's more of a framing thing. So yeah, it's, it's all very complicated. I don't have a good suggestion. I've never done that. If somebody has something that they like for interchip communication for the case where you need reliability and, and, uh, error checking,
Starting point is 00:53:23 which I still don't quite understand. I need to see the use case for that to see why that's necessary. You have such a different perspective on that sort of thing than I do because I have totally built protocols. Sometimes you just need to talk to somebody. I mean, there's building a protocol and there's building a protocol, if you got talking chip communication and you got like okay i've got three messages and they're these message types and that that's sure that's building a protocol that's not what i'm talking about air quotes that are so big you can't even imagine what i'm talking about i mean yes that is building a protocol but it's it, but it's more like establishing your message types.
Starting point is 00:54:05 Yes. Which is fine. That's still technically building a protocol. But what I'm talking about is building the infrastructure through which general things can happen. So I can send arbitrary messages and they can be acknowledged and all of that stuff. That's more of a general purpose communication protocol is what I think of when somebody asks a question like that. Okay, well, that's it for my questions. Do you have anything else you'd like to talk about?
Starting point is 00:54:34 There was more. Wasn't there more? There were a couple of things, but they were from old shows, so no. I just wonder, we got recent emails. One of them was marked private. I responded to that. Right, right. I guess I should ask if there are professors
Starting point is 00:54:53 out there who are using my book, please contact me. I have some questions for you. It won't take very long. Cool, cool. Showitembedded.fm And we have been talking. Cool. Um, show it embedded. Dot FM. And we have been talking about Patreon. We have a Patreon page.
Starting point is 00:55:10 Uh, you can support us for like a buck and you get access to the Slack. Um, if you want to support us at a higher level, we appreciate that. And I will send out stickers this year. Stickers and pins. I'm promising stickers.
Starting point is 00:55:28 We really should get the international pins finished. Yeah, we'll do that. We have a lot of shipping to do in the next few months anyway. I'm not promising pins because I have looked at my work schedule and every time I look at it, I just want to hide under the couch. It is so not good for the next few months. I don't, I will not take any responsibility for that. Nope, that's all me.
Starting point is 00:55:51 Well, no, that's not entirely true. Well, I still haven't heard back about that, so. All right, well, if that's it, let's get to the thank yous. Thank you so much to InspectAR for sponsoring the show. We really appreciate it. Thank you to our Patreon supporters for their support as well and their questions. And thank Christopher for producing and co-hosting. If you'd like to contact us, it's show at embedded.fm or hit the contact link on embedded.fm. And now some Winnie the Pooh.
Starting point is 00:56:30 My bookmark fell out, so I'm not quite sure that it's going to line up. Second time this has happened. So Eeyore stood there, gazing sadly at the ground. And Winnie the Pooh walked all around him once. Why, what's happened to your tail? he said in surprise. What has happened to it? said Eeyore. It isn't there. Are you sure? Well, either a tail is there or it isn't there. You can't make a mistake about it, and yours isn't there. Then what is? Nothing.
Starting point is 00:57:12 Let's have a look, said Eeyore, and he turned around slowly to the place where his tail had been a little while ago, and then finding that he couldn't catch it, he turned around the other way, until he came back to where he was at first, and then he put his head down and looked between his front legs, and at last he said with a long, sad sigh, I believe you're right. Of course I'm right, said Pooh. That accounts for a great deal, said Eeyore gloomily.
Starting point is 00:57:44 It explains everything. No wonder.

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