Embedded - 493: Put the Peeps in the Chili Pot

Episode Date: January 24, 2025

Elecia and Chris talk with each other about the state of Chris’ mind, what makes an embedded developer stand out, “LEGO block” based design, unit tests, and astronomy. Whew! Elecia was recently ...on the Changelog podcast, talking about the world of embedded systems. Chris has been working with Micropython (we talked with Damien George about Micropython on episode 456). He’s using a Pyboard to start, but is looking to move on to this board from Sparkfun. Wikipedia has a nice reference on what the pulse-per-second signal is all about. Elecia talked about her experience using CFFI to drive unit tests. She also talked about some facts from Information is Beautiful. Chris’ telescope is the ZWO Seestar S50. There’s also a smaller Seestar S30 now which has a wider field-of-view. Title reference (Chris and Elecia both thoroughly enjoyed The Good Place, the TV show this is taken from.) Transcript Nordic Semiconductor has been the driving force for Bluetooth Low Energy MCUs and wireless SoCs since the early 2010s, and they offer solutions for low-power Wi-Fi and global Cellular IoT as well. If you plan on developing robust and battery-operated applications, check out their hardware, software, tools, and services.   On academy.nordicsemi.com, you’ll find Bluetooth, Wi-Fi, and cellular IoT courses, and the Nordic DevZone community covers technical questions:  devzone.nordicsemi.com.   Oh, and don’t forget to enter Nordic Semiconductor’s giveaway contest! Just fill out the entrance form, and you're in the running. Good luck! Here’s one of the astrophotos Chris has taken: The Horsehead and Flame nebulae in Orion taken from a Seestar S50

Transcript
Discussion (0)
Starting point is 00:00:00 Hello, and welcome to Embedded. I am Elysia, here with Christopher, and it's just us today. So we're going to talk amongst ourselves about, I don't know, new podcast ideas, data loggers, telescopes, questions from listeners, all kinds of things why we've been gone for three weeks two weeks some weeks we just missed one show okay we've been gone for two weeks
Starting point is 00:00:35 why have we been gone for two weeks just too much just too much everything's too much there's just too much of everything it's fine we did it was weird that we did okay through the holidays, but then as soon as work started up, it was like, uh, anyway, we're happy to be back. And I am madly scheduling for the next six months.
Starting point is 00:00:57 So excellent. Who are we talking to in six months? Uh, well, I have been promising Shimon, the Nand Tetris guy, forever. We are going to talk to Kwabena from OpenMV. They have something new coming out. There's rumors that one of the Salier guys will come by, chat with us, and I have an idea about some sensors. And so I actually just signed up for LinkedIn Premium so I could spam a bunch of sensor developers, MEMS sensor developers, so that I could ask questions. I mean, that's what this show is about, really. It's not about the listeners. It's just about me being able to ask the questions I have in my head
Starting point is 00:01:46 to people who believe they are coming on a show for an entirely different purpose. Right. It's a trap. How are you? It's all a trap. Yeah, it's always been a trap. I'm okay. It's been... Yeah, I'm okay. Holidays were
Starting point is 00:02:01 a time of relaxation, but you always superimpose on top of a time of relaxation all the projects that you want to do. And so I didn't get a lot of them done or even start them or even look at them. You know, when your project list is 200 lines long, the first project should be prioritize the top three and don't worry about the rest. There was that. And then getting back to work has been fine, mostly. I'm down to one client now,
Starting point is 00:02:30 which means I can focus. Which was fine until they got a great idea to try a different project entirely. Yeah, so we're preparing for maybe a different project, which has been a bit of a scramble. From the outside, it's been great. Lots of interesting new science and cool stuff.
Starting point is 00:02:45 Well, you can do it. Yeah, I don't know, anytime. And I don't think I have recovered from the burnout that I thought I should have recovered from a year and a half, two years ago. So I think I'm just stuck now the way I am. And so this will be just a slow glide slope to, um, to, um, Retirement. Yeah. That's the thing. What are you doing to get over burnout these days?
Starting point is 00:03:13 Um, what am I doing to get over burnout? Well, I tried to reduce my workload, which failed because the workload increased at my existing client. I've tried to, well, so just recently I have been disconnecting from not the internet exactly, but a lot of things on the internet. So I have pared back my social media usage. Well, not just social media usage, but I have pared back my social media usage just to Mastodon, where I have a curated list of people who generally talk about random things and not about, you know, outrages and events in the world. Horrifying, terrifying, and enraging sort of things. Mm-hmm. I have disconnected from the news.
Starting point is 00:04:03 I have not read any news intentionally since Wednesday of last week, which is my longest run. I have seen some unintentional news, but only a couple little things. Some of that was from me. I'm sorry. And so that's been okay. That's helped to keep my anger level down, which is what I was getting in trouble with, which isn't really burnout, but it's not helping with the burnout. Um, and so I've been reading more. I've gone back to, I decided there's a little bit of, uh, activation energy problem sometimes with reading, like, Oh, I don't have a really good book I'm reading right now,
Starting point is 00:04:39 or the book I'm reading is okay. And I read 20 pages of it a, and it's fine, I'm enjoying it. Or if I want to find a new book, you know, do I really want to expend the 100 pages of energy it takes sometimes for me to get into a book and really get addicted to it? So I've just been rereading some old books that I knew were good and that I knew that I liked, which has been taking... Sometimes I feel like my eyes just need to read something, and so they used to gravitate... They often gravitated to reading crap on the internet or on social media and reading stuff, you know?
Starting point is 00:05:12 And putting a book in front of my face does the same thing, as long as I can stay into it. You read The Lord of the Rings and some of the bonus material. That I did over the holidays. That took me a while. And then you started Bujold's Rokosigan series. Restarted for maybe the third or fourth time.
Starting point is 00:05:30 Yes. I mean, you've read it before. But it's been a long time, maybe 10 years since I've, maybe longer since I read it. I've never gone that long between rereads on that one. But I don't reread the whole series usually. It's a good series. You know, it was written starting in the 80s. It's kind of classic sci-fi space opera
Starting point is 00:05:46 stuff but she's a very good writer with some strange ideas and um a expansive vocabulary so she's fun to read and uh yeah i've been trying to keep my head down a little bit um but i don't don't know that I'm doing anything else that's particularly burnout-reducing. I've not been convinced that anything really works. And you have been learning things. You've been taking an extensive drum course. Yes.
Starting point is 00:06:20 And you have been exercising. Less than usual, but yes. But some of that's because you've been drumming for an hour and a half a day or some incredible nonsense. A little bit. And we do have the little dog, so we do take walks. We've been walking a little more. Yeah. And then what about mental shifts?
Starting point is 00:06:40 We talked a little bit about growth mindset versus fixed mindset. We talked about that two days ago. I haven mindset. We talked about that two days ago. I haven't had a mental shift since two days ago, no. Do you think that helps? No, not to tell me. Mental shifts are not... They're fine to talk about. They're very hard to implement.
Starting point is 00:07:05 And the mental shifts I have been trying to implement have more to do with anxiety-related things than burnout or goal-related things. And those are hard enough to deal with. So adding another mental shift is... You built a little car, a puzzle, wood. Yeah. Does that sort of activity
Starting point is 00:07:25 where you're building something help a part of your brain, or is it just activation energy? I don't know. I don't know if getting things done helps. Getting things done does help. Getting things so I don't have to worry about them helps.
Starting point is 00:07:43 Unfortunately, there's always more to worry about. Well, I, there's... Always more to worry about? Well, I think it's Merlin Mann who has this analogy, but it's like a Kleenex box. A lot of people with anxiety just think, if I can get past this thing that's making me anxious, then I'll be able to relax. But there's always another Kleenex in the box.
Starting point is 00:08:01 Oh, yeah. And so there's some of that. Like, I do relax after some anxious thing gets cleared, but it's not for a super long time. But things like little projects and things, those are not anxiety-provoking to me. So the goal of those is I need to focus on something that's completely disconnected from anything that I'm worried about or working on that has no stakes. So, and even then, you know, I got a little mad at it yesterday because I broke some of the pieces.
Starting point is 00:08:28 You heard me. So I can't even, you know, fully relax doing that. I think I watched, you know, a movie while I was doing it. So I wasn't completely focused on that. But yeah, it's a challenge. One of the challenges at the risk of discussing current events or current anything is my distaste for the tech industry has not improved. And the tech industry has not worked to improve that. Did you notify them?
Starting point is 00:09:02 I did notify them and they did not listen. Yes, my deletion of accounts had no effect on them. My complaining about them on this podcast or in other media or shouting at them loudly from the kinds of things I want to work on and for whom I want to work is causing me some consternation. The kinds of things I want to work on and the people involved in them continue to shrink. Let's put it that way. So not only is tech, even if something is disconnected from all the bad stuff in tech, I feel like somebody's thrown paint over all of it. So even when I'm doing something just normally with a computer, there's always that little thing in the back of my head. It's like, well, you know what this company did today? Or you know what these people are doing? Or you know what this person said? Or you know who's in charge of this or who's funding it. And it's getting harder for me to quiet that little
Starting point is 00:10:09 voice. So there's a little bit of enjoyment about using technology of any kind that's been sapped. And then when you put work on top of that, it's like, well, I'm putting myself into this. I'm kind of endorsing this by working on it or for it. And what does that say about me? And if I don't fully feel on board with this, then it makes it much harder to actually do the work. So that's the, I think that's what's kind of replaced the burnout for me is I, I'm not as tired as I was about working on stuff. But instead of it being a me problem, it's a me problem plus a them problem. And I have improved that. I did make some changes in my work, so I wasn't doing some of those things. But it's still hard because there's always that... I feel like things have changed.
Starting point is 00:11:06 And maybe they haven't changed. Maybe it's always been this way and now we just know it. But that doesn't make it better. The global bumblebee population increased 47% in 2024. So how can we train the bumblebees to be our bee army. The fifth person has been fully cured of HIV. Yeah, I saw that. Europe could power the entire world
Starting point is 00:11:33 with wind power. Why don't they? It's not distributed yet. Amazon deforestation, is that an all-time nine-year low? Yeah, that one I'd want to look at the graph, though, because at a certain point, you just can't go any further, right? So that's a stat that could be, yeah, yes, I understand you're trying to give me positive things, but that doesn't...
Starting point is 00:12:00 No. I understand being down on the tech industry, and especially some of the tech industry leaders. I want them to be rational, logical, moral, humane human beings. That's a lot to expect, I know. You can be completely rational and logical and inhumane. That's why I needed all of the adjectives. I think that's where most of them are sitting right now, but yes. But I have to feel like I have done good in this world. And I have to feel like I still can. And some of that is project choice. I mean, if I could work on anything, it probably would be educational toys again. Not only was that fun for me, I could see kids learn to read.
Starting point is 00:12:56 And that was just everything I wanted. Medical devices we've worked on have had an impact. Sometimes. Not all of them. Not every time, but... And there were things about at least one of the medical companies.
Starting point is 00:13:17 Both of them. Both of them that were in retrospect very similar issues to everything else. But the product was great, maybe, or helpful, but there was a lot of other problems with the people. You've worked on more than two, so this is confusing, but that's okay. I said two of them. Oh, okay.
Starting point is 00:13:36 Yeah, one of them was fine. I see your point. I'm not trying to convince you of anything. I do not wish this convince you of anything. I don't, I don't, I would, I, I do not wish this mental state on anyone. And you are in a better place, I think, because you haven't had a string of things that, that, have been challenging that way.
Starting point is 00:14:00 Like, you got off one of them way early. And, you got off one of them way early. And, you know. I mean, I go back and forth with ShotSpotter. It did help people. You don't work for ShotSpotter. Oh, you're worried about your current clients. No. I mean, there's nothing I can do about my past clients.
Starting point is 00:14:18 I'm not sitting here stewing about past clients. I'm worrying about future clients. And you don't think that you can work on useful, interesting technology? I think it's difficult to find, A, and it's difficult to find useful, interesting technology that is not funded by people I find reprehensible. Nothing you have worked on fits that. I mean, you've done very well. I haven't. And there's a few things I've done that are fine.
Starting point is 00:14:48 But I've been closer to the VC realm than you ever have in recent years. You've been mostly on research stuff and small little startups and science things. And I haven't. If you, if no matter what you have, you can find a way to make it bad. Like if I think about. That's not what I'm saying.
Starting point is 00:15:17 Leapfrog toys. It's like all the plastic in the environment. So I'm trying to be very careful here and not saying anything specific, which is making it very difficult to have this conversation. You've worked on toys. You have worked on many medical products. You've worked on undersea research. I have mostly worked on consumer products or a couple of medical devices. Three medical devices? Yeah, three medical devices, one of which was fine, one of which was insane, and one of which was maybe fine, but the company was run by insane people. I mean, I've worked on DARPA things.
Starting point is 00:15:54 I've worked on... Anyway, yes. You're not going to fix me on this. I don't need to fix you. I just... This goes back to the mindset. And I don't know that it's fix I just, this goes back to the mindset. And I don't know that it's fixable that way. You're right.
Starting point is 00:16:08 You can't shift me to enjoying things that I'm not enjoying. Oh, but it's an attention economy. If you can pay less attention to the bad parts and more attention to the goodness, then that's... I'm not talking about anything, right? I mean, yeah, what am I trying to say? I mean, you're not talking about your current clients. No. I'm not talking about...
Starting point is 00:16:35 Your frustration is not with your current... No, that's right. It's with some future that you haven't investigated? No, it's with computers. It's with computers as a whole. It's with technology as a whole it's with technology it's with technology i know yeah technology technology right now is dominated by uh a small set of powerful companies that have done something politically in the last month that you and I find distasteful. And you cannot go forward without using those products.
Starting point is 00:17:10 Okay. And I'm not saying anyone should stop doing anything. It just makes it harder for me and less fun. Yeah. Right? I mean, so, yeah, it's a consumption thing more than a you know oh i don't like what this company is doing i would stop using this product but i can't because it's computer fair okay that wasn't very much fun i'm sorry everyone we'll put that to the end of the show uh yeah okay So I do have a listener question from Rene, who is actually the person who helps us with our social media. So he's not just a listener. He's also a friend. And I guess we pay him, so that too. But anyway, in the recent show with Nathan Jones, there was a discussion about the fact that putting
Starting point is 00:18:05 together an embedded system seems to come down to putting together various parts. The Lego bricks approach. Yeah, modular. And I know you have some current data logger things to talk about. Rainey wanted to know what
Starting point is 00:18:21 can he do in the embedded space to distinguish himself from others if we're all reading the same data sheets and using the same techniques? Yeah. Do you have an answer for that? Sure. Sorry, I figured you would answer it. I feel like I always go for those, so you should go first. Systems thinking is a big part of it. Instead of, yes, we have all these Lego blocks, but how do you put them all together?
Starting point is 00:18:53 Experience with the Lego blocks is really important. So the first time you work with an IMU, you're not going to understand how it all works. Accelerometers and gyros are like magnets. They do things you can't see, and it's really cool, but then you start to get confused as to which is which, and until you really have them in your head, you can use them, but you're never going to be quite sure what's happening. And that's true of most things.
Starting point is 00:19:26 You need time and usage to acclimate to what it is they're supposed to do and their most common failure mechanisms. So just try it out. But the system's perspective of where the data comes in, how it gets transformed, and where the data goes out. And that transformation may be data storage, it may be filtering, it may be AI, it may be whatever. And how it goes out could be to the cloud, to the user, to some LEDs. So stop thinking about your system as an accelerometer and a GPS and a data logger and all these individual pieces and start trying to architect it as a view of what you want. So going back to the Lego idea, your goal is to become familiar with all of the possible Legos, or at least the very common ones.
Starting point is 00:20:30 And then to start to understand the language of how those go together. Sure, you can make a 9x9 block out of 2x2 pieces. Actually, I don't even know if that's true, but out of one by one pieces for sure. But it doesn't hold together very well. If you hit it with a hammer, you can do anything with any combination. Yes. So if you want something to be able to hold together,
Starting point is 00:20:56 you don't use one by one pieces in Legos because those just kind of fall apart into columns. So your systems thinking starts going into patterns of how these Legos go together. It's not just what are all of them, but the synthesis of them together. And the way to build that sort of thinking is to sometimes look at the things around you
Starting point is 00:21:24 and say, how would I block diagram this? I know I'm really into block diagrams. But I think it helps to understand your data pathway and how the common vernacular idioms, design patterns, that we use to build the systems. And that requires looking at other systems. I think the short answer is to read. I mean, if I want to actually answer Rainier's question for a change instead of just mumbling about it. Read all the books. I'm not very good at it. I mean, I try to get to one technical book a quarter. I haven't chosen those quarters.
Starting point is 00:22:15 And I usually have a deadline of having a guest on the show, which helps a lot. But if you can read Code Complete, read the design pattern book or read the Java, the headfirst design pattern book, just what those do for you is to tell you how somebody who really thought it through wanted to design stuff. Beautiful Code is another one. It's not an easy read, but this is code that somebody really thought was worth showing off. And they talk about why. And maybe that can influence you
Starting point is 00:22:58 towards more of the architectural thinking, more of the systems design, and more of the how thinking, more of the systems design, and more of the how do I write less code and get more functionality? Okay, that was my answer. Okay, I have a couple thoughts. First of all, I think that's a good conference topic. Going from modules to,
Starting point is 00:23:26 I don't know, I lost it, but that whole thing you just did. Gaining the skills from... Moving from Lego blocks
Starting point is 00:23:33 to systems thinking. So, think about that. Christopher knows that I'm trying desperately to think of a conference topic. I have two thoughts
Starting point is 00:23:41 on this. I have not read many of those books, so I can't comment on those. I do have a question about those in a second. even with the arrival of things like Zephyr which makes some things trivial and many other things non-trivial but just device drivers understanding how device drivers work understanding how data flow works in firmware
Starting point is 00:24:16 from a purely electronic point of view I don't really know how to speak to that but plugging stuff together is no big deal but from a firmware standpoint an embedded software development standpoint being really good at integrating multiple sensors and sensor systems and lego blocks if you want to call them that into a coherent software uh a piece of software that you know takes the data in doesn't have underruns or overruns handles errors and error conditions, is efficient and low power, all that stuff, that's much, I mean, those are the skills.
Starting point is 00:24:53 The rest of it, I don't care what I2C device somebody hands me. I mean, I can read a data sheet and do the stuff, and they're all slightly different, but they're all basically, I mean, you've seen one, you've seen them all, they're all misdocumented in different ways and they do their stuff. But I think that's where the real expertise resides is in knowing how to make any system work efficiently and cleanly and reliably. And that's where you can distinguish yourself because there's tons of, you're right,
Starting point is 00:25:26 there's tons of people out there who can grab an Arduino or whatever and put some modules together and have something do something. But having it be high quality, that's where the distinction comes from. And I don't know how you prove that to someone. Usually in an interview,
Starting point is 00:25:44 they'll ask questions that probe that and they're looking for specific answers. distinction comes from. And I don't know how you prove that to someone. Usually in an interview, they'll ask questions that probe that and, you know, they're looking for specific answers. But I think that's where I would put my emphasis in distinguishing yourself, not in, you know, anything specific about getting better at data sheets or whatever. And maybe some knowledge about the choices of things, too, because once you get enough experience with the Lego blocks, you know some of them are better than others. Yeah. When you talk about data float, do you mean things like DMA,
Starting point is 00:26:16 circular buffers, ping pong buffers, and why you would use each of those? Storage, latency, how to keep pipeline flowing, how to deal with multi-rate systems where you have one thing that's operating at a kilohertz and another thing that's operating at 10 hertz, but they both have to come together in some way that makes sense. And those seem divisible, but never quite are. Buffering and all that stuff. That's all the hard stuff that nobody provides for you.
Starting point is 00:26:46 Even a nice RTOS or a nice HAL don't really provide for you. I mean, at some point, you have the data coming in, and you need to do something with it. And you need to centralize the control of all that and the state management and all that. I mean, the firmwares were, for me, for an embedded systems developer, that's where the expertise is. And the rest of it, I could care less about. I'd like to thank our show sponsor this week, Nordic Semiconductor. Nordic has a vast ecosystem of development tools.
Starting point is 00:27:21 It helps us reduce our development cycles and accelerate the time to market. For example, the NRF Connect for VS Code extension provides the most advanced and user-friendly IoT embedded development experience in the industry. Nordic's Developer Academy online learning platform equips developers with the know-how to build IoT products with the Nordic solutions. Nordics DevZone brings together tech support and a community of customers to provide troubleshooting and assistance on technical topics. Visit these key websites to learn more, nordicsemi.com, academy.nordicsemi.com, and devzone.nordicsemi.com. And to thank you for listening, Nordic Semiconductor has a contest to give away some parts. Fill out the entrance form and you're in the running.
Starting point is 00:28:11 That link is in the newsletter and in the show notes. Do you want to talk about your data log? Yeah. So, I don't know. Speaking of projects that are basically just grab a handful of boards and shake them in a box. Yes, a smaller handful every day.
Starting point is 00:28:32 So, yeah, so I have a project where I need to make basically a GPS data logger that I need it to be fairly high accuracy in time. So beyond what just reading the NMEA messages off the UART would give me.
Starting point is 00:28:48 Beyond the GPS messages. Yeah, which I think a few hundred milliseconds here or there are probably off based on UART timing and code and stuff. So I need something that will also use the PPS signal. Pulse per second. Right, thank you. Which is a GPIO that comes off GPS modules. Wow, there's a lot of GPs in there.
Starting point is 00:29:10 And it's a highly accurate once per second at the start of a second signal. And then software can use that to say, okay, this is where the time happened, and this is how many microseconds at this timestamp and stuff. So I want that. I want to grab that, the time happened, and this is how many microseconds at this timestamp and stuff. So I want that. I want to grab that, the GPS location, timestamp it with a high-precision, high-accuracy timestamp, and store it on an SD card. That's all I want to do. Just put that in the CSV file and continuously do that forever.
Starting point is 00:29:40 Do you have more data to put in there? No, that's it. So it's really just a GPS logger. If there's an IMU, I might throw it in there for kicks, but I don't have any use for it. Why don't you just buy a Garmin? Because I have to put it in a very small
Starting point is 00:29:55 radio-controlled airplane. And also, those don't do that. You don't think this already exists? I have looked. Okay. I mean, yes, I can buy a Garmin or whatever, but they're too big and heavy.
Starting point is 00:30:12 I need something that weighs just a few, ideally 100 grams or something. Sure, if there's something out there that weighs nothing, I'm happy to do it, but everything I found was big and heavy and bulky and for trucking trucks. Right.
Starting point is 00:30:26 Which don't care about weight. Anyway, where was I? Maybe throw in some IMU data. I think you're going to end up with more data in there. At least maybe not right away, but maybe someday. I don't think so. Oh, I'm sorry. I'm on a different project again.
Starting point is 00:30:44 Go ahead. Yeah. That project doesn't have this problem. This project has other problems. I love that project so much. I may hand it to you. All right, so that's all I want. And I've tried to piece it together. I started out with like, okay, I guess DM32, and I'll do this, and I'll do it by NC.
Starting point is 00:31:04 And then I was like, I don't want to make this a big deal. It just needs to do a simple little thing. And I was like, micro Python, micro Python. We talked about this on the last, last show where I was talking to some,
Starting point is 00:31:13 either the one with Nathan or, um, yeah. Anyway, so this is a recap. Uh, so I have a pie board that runs micro Python. It's an STM 32 based thing that runs micro Python.
Starting point is 00:31:24 It's an older board. It looked nice because it had an SD card slot. I have a GPS that does PPS. I did some limited testing and everything worked. But now I need to package it up and write the actual code. And I'm finding that I want to have a little display on it. And now everything's kind of a mess because the PyBoard's sort of old. A lot of stuff's not as supported in MicroPython as it was.
Starting point is 00:31:46 I'm having trouble with power. It's all this mundane stuff that you have to do. Like, yeah, it works great on my desk on a breadboard, but I'd actually like to package it in a compact way and have a battery and make it so that somebody can charge the battery and make it so somebody in the field knows what's happening with this and that it's working or not working, who isn't me. So I need to make it a little you know product uh and it's that where i'm today i was like
Starting point is 00:32:12 piecing starting to piece it together like this is these a lot of wires these pieces are not great so i went on spark fun looked around some more and it's like oh there's more support for the gps stuff i want to do and the display and the raspberry to do, and the display, and the Raspberry Pi 2040, and the ESP32. And I'd already had tried with the Raspberry Pi 2040, but that would mean more wires because they don't have SD card. I'd have to get a breakout board for that. So I found some ESP32 boards from SparkFun that have SD card slot. They have a bunch of other stuff.
Starting point is 00:32:42 They have a quick connector, which I may or may not use. And it has an onboard battery charger and power subsystem. So I'm eliminating a board there. I'm getting better software compatibility. Still using MicroPython, but I think I'm moving to ESP32 ports to save me some time. But yeah, this is definitely,
Starting point is 00:33:02 this is a quick Lego project where I don't necessarily super care about doing a great job on the software. I just need something that works and is as minimal as possible, but also has a red light, green light that says, yeah, I've got GPS. I'm writing stuff. Battery's good. Go fly. You can do that all with one LED? No, I mean, there's a little display.
Starting point is 00:33:24 Oh, you said display. I still translated that to LEDs. No, there are LEDs on the boards, and I don't know how to bring them out. I might have to pop those off and do something. Straws. Straws. I believe they're called light pipes by fancy folk. Oh, okay.
Starting point is 00:33:44 But I call them coffee stirrers. Oh, the solid plastic ones. Yeah. Okay, not an actual straw. Because that would, with a hole in it, that wouldn't do anything. You could do that too? That wouldn't do anything. All right, all right.
Starting point is 00:34:00 I mean, I guess you could look into it. Please hold the straw up to your eye to check the battery level. I want a podcast where people like me, which reminds me. I was on the ChangeLog podcast. Yes. Last week. Let's see. The 15th of January. They have two folks, Adam and Jared, and they were super nice. And they are software folks who were interested in asking questions about firmware and making and
Starting point is 00:34:39 putting together boards and professional development and all that. It was pretty fun. It would have been nice if I had remembered before the morning before, so I could have, you know, prepared a little bit. But suddenly on my calendar, there was a record of the change log. And I was like, what? And you'd had to do it on video. And at the last minute, they told me, we're doing video first. And I was like, okay, then do we do the talky part? But no, they just meant that video was the most important.
Starting point is 00:35:15 And I was like, as long as you don't care that I look half asleep and drunk, we're great. You did fine. So I'll put a link to that in the show notes. Let's see. How about another listener question? Sure. I didn't really read this one ahead of time, so we're going to hope that Grant P. has written this in a way that I won't stumble over too much.
Starting point is 00:35:41 Grant is working with a team of embedded developers trying to make a guide to systematic troubleshooting of returned devices. It could be hardware or software issues on their battery-powered, low-powered IoT device. And do we have any recommendations for resources to help guide the mindset of troubleshooting the returned devices? Grant is leaning into this with the angle of being forensic, that is trying to collect as much important information early on without disturbing the crime scene, such as the download internal and external flash. Huh. I have very little experience with this sort of thing,
Starting point is 00:36:24 except at a distance. I do think that the skill set is sometimes different than the developer skill set. Some of the better testers I've worked with were not developers. Or certainly not the people who are working on the product itself. Because there's some bias there, right? Right. The engineers tend to think about the good path, the intended path. And good testers and good quality control
Starting point is 00:36:58 tend to think more about the how am I going to put things in a semi-random way? What is the worst thing I can do to this thing? You know? Where it's like, oh, I don't want to break it. I made this. Well, and the engineers tend to do the same thing
Starting point is 00:37:17 each way. Each time, it's like I do these set of steps because these are the set of steps that I used to develop the system. And the tester's like I do these set of steps because these are the set of steps that I used to develop the system and and the tester's like huh let's just take those steps and shake them up or even better don't talk to me and I'll develop my own steps yes and when it breaks you'll be like what did you do why didn't you do it my way and I be like, no one should have to do it your way. In terms of techniques and things for being forensic, gosh, I don't know.
Starting point is 00:37:52 I mean, it really helps if your developers are on board. Providing visibility. Providing the debugability. Like, why did the system reboot? How many times did it reboot with this cause of watchdog? Does the system right now as it's booting
Starting point is 00:38:12 have any information in its power on self-test? You're writing core dumps or small core dumps or things like that, backtraces. I think Nordic is sponsoring this show, but I should mention Memfault
Starting point is 00:38:25 because a lot of what they do is trying to get these sorts of crash dumps out of your system in a way that is useful. So if you can get your developers to provide
Starting point is 00:38:42 crime scene tape, that would be awesome. It depends on the kind of device, too. If there's long-term storage, that changes kind of what you can do. If there's... Yeah, it would be nice to read everything out before you modify it.
Starting point is 00:38:57 You don't want a system that you have to flash the firmware in order to figure out what's wrong, because the chances are you just erased what you needed. Yeah, is there stuff you can do from the bootloader that's non-destructive? But it's tricky because... Or even a bed of nails if you're willing to take it apart. But again, that can be difficult if it's only flaky when the board's together. Yeah.
Starting point is 00:39:20 And I think it's a really hard problem because anytime you measure something, you run the risk of altering it. Right. So, yeah, getting as much information at the time of fault and squirreling that away is really helpful. Because trying to reconstruct what happened to something, if it's just not working, you get it, it's not working, and somebody says, blah. You know, sometimes it's, yeah, this component is dead, or, you know, there's a firmware, well, if there's a firmware bug that's causing some strange behavior, that's the hardest to kind of backpropag propagate to the source if there's not a lot of trace data. Right. You kind of need the stack dump. From an electrical perspective, you probably have a way to open your device if the place where you open it could have some test points or pins, not even pins, pads,
Starting point is 00:40:29 so that you can test as much as possible with only removing a very small part of the system, just removing a cover in order to get to those test pins. That will help because then you don't take apart the board. And when you do take apart the board and you find the solder glob, it's, oh, okay, that makes sense. But you want it to fail. I guess, okay, so you get the board and you find the solder glob, it's, oh, okay, that makes sense. But you want it to fail. I guess, okay, so you get the board back. First step, does it fail for me?
Starting point is 00:40:54 That's got to be the first step. I don't know, because that could be very destructive. Actually, you're right. The first step is, do I have any information about how it failed before I try it again? Can I get data from it without running it? Yeah. Which I guess means that if you have an SD card or a flash, you want to be able to power the flash and read it. Which goes back to opening the device with a minimal ramification on the board.
Starting point is 00:41:27 Which I think goes back to if you want to be forensic, you need to have as sophisticated fault handling and logging as you can possibly get in the firmware. Because anything else, you know, if it's electronic, I don't know how to talk about that. Yeah, you probe it until you find something that's not working, I guess. But if it's a software fault or a suspected software fault, your only choices are what logging happened when the fault happened
Starting point is 00:41:56 or, well, I guess we try it again in an environment where we can observe it. Right? Yeah. Yeah. observe it right yeah and i mean as you as you get boards back and you start collecting them into battery failures um battery disconnect failures battery low voltage battery won't charge you know you get all these buckets and then you get these over here where the firmware won't update for some reason or it won't boot. And then you start looking at the buckets and see which bucket has the most in it. And that's where you need to spend more of your time doing the forensic information.
Starting point is 00:42:37 Don't, I mean, I really think it is important to have the basic forensics of why did it crash and why did it boot but don't build too much in until you get an idea of what's likely to go wrong because you can make the best absolute most rock solid subsystem but it turns out that was never going to fail you could have just put in something cheap this is this is about optimization yeah you don't optimize the fast You optimize the slow parts. It's the airplane picture with the holes in the wings. Oh, tell that story. I'm not sure everybody knows that one. So I don't know if it's apocryphal or not. I'm not sure that it is, but... World War II? World War II, yeah. So I'm going to butcher this story, but the picture goes around on the web. And the
Starting point is 00:43:25 picture is a picture of an airplane with a bunch of red circles all over its body in various locations. And the question was, well, we keep getting these planes back from the field for missions, and they've got damage in these areas. And so the first thought from whoever, apocryphally, was doing this work was, well, we need to put more armor in those areas. And the twist in thinking is, no, you don't. You need to put more armor in the areas where there weren't hits because those airplanes did not come back. And that's trotted out on the internet a lot of times for incorrect thinking about fault handling and securing things. You're putting your safety where things don't happen. Which I think what you're saying is don't invest a lot of time in things that are already rock solid.
Starting point is 00:44:26 Yeah. Don't invest in the things that aren't failing or are failing in completely expected ways. Yes, getting bullet holes when you're being shot at. That's actually an okay failure. There's a lot of nuance to that because you don't actually want bullets to go through airframes because people are inside them usually. But, you know, the airplane came back. whether or not the airman came back that's a separate issue but um but yeah but definitely don't don't over engineer areas that you know try not to over engineer areas that don't need it don't need it yeah don't like like like you know, I don't know, you have an SD card that gets used once every two months to write one thing.
Starting point is 00:45:11 Well, don't put a lot of effort into the wearer leveling system or something, right? Or don't get a really expensive card that can handle a billion writes because you're not doing a billion writes. Yeah, that sort of thing. One of the related topics that came up on the Slack was how do you write unit tests? And I was hoping you and I could talk about it a little bit, because this actually is a harder problem than I expected. I mean, a lot of people have very strong feelings about a lot of it, down to the level of methodologies, right? I mean, test-driven development is not unit tests per se, but it is a philosophy around testing. That you write the tests first.
Starting point is 00:45:55 Yeah. Which, I like the thought of that. I don't necessarily do it, but I do always think about what the tests are going to be as I'm writing. Sure. Which was a change for me from the start of my career. To think about, okay, well, how do I test this and how do I write this so it is testable? But no, it wasn't even, or maybe it was, that wasn't what the conversation was about. No, it wasn't. I thought it was about which framework do you like.
Starting point is 00:46:28 No, no, no. Oh, that was a separate one? Okay. This was more what makes a good test. Okay, so let's say we're writing string copy. This is a function everybody kind of knows. You have one string in, you have a bunch of memory in. How do you write a unit test for string copy?
Starting point is 00:46:51 You put in cat, you make sure cat comes out. You realize that a lot of people forget the terminator, so you make sure that the terminator happens in the one you get out. Mm-hmm. But that's, I mean, is that testing stir copy or is that testing the user of stir copy? No, no, that was, did stir copy remember to copy the null? Oh, remember to copy the null. Okay.
Starting point is 00:47:18 Mm-hmm. You test some characters that are not A through Z. Sure. You pass null in. You pass null for the source. You pass null for the destination. Yeah. And then do you get a Monte Carlo simulation to create a thousand different strings
Starting point is 00:47:42 and then verify they all come in and out the same? I wouldn't. Exactly. But this goes back to the conversation about overengineering. I think you test, well, I mean, yeah. You test the good path. You test the good path. You test what you intended to do.
Starting point is 00:48:01 And as an engineer, I tend to try to think, okay, what is the most common or what are the two or three most common errors that are likely? Like failing to put on a null termination inside string copy. And then I have to admit, I'm kind of done at that point. It's kind of the 80-20 thing, right? For something as simple as strcpy, how much effort do you want to put in for how much benefit? And you listed some major things. Does it copy the string? That's like 95% of what it should do, right? Does it also copy the null character?
Starting point is 00:48:38 Yes. Does it test for garbage, you know, bad input, bad pointers or whatever? Sure. Okay, good. I mean, sending null in as the source is really important. So beyond those things, I think you've got your 80-20 benefit, right? You've caught most of the things. And now what the unit test is for at that point is did somebody break this?
Starting point is 00:49:03 Yeah. In the future. Not did it suddenly decide to stop working properly or did it suddenly decide to stop working if i try to copy this line of shakespeare what is actually likely to happen right is and you're allowed to look at the code if you're writing a unit test you're not a black box developer. So, when you're looking at the code, like your Monte Carlo thing, what is that going to catch, looking at the code? Nothing. Right? I mean... Maybe
Starting point is 00:49:31 you also test for a really long string. But what is that testing? If you know the code, what is that testing? That would test... I mean, if I know the code, I'm not sure. Maybe the for loop was written incorrectly.
Starting point is 00:49:48 Maybe it has an artificial limit somewhere. Looking for an artificial limit. And the idea that in the future someone might change it. Yeah. The other... Yeah, see, the white box testing, being able to look in the code,
Starting point is 00:50:04 it's easy for me to just logic away all of the tests at that point, which isn't good. But that's not necessarily bad, because the point of the unit, my feeling about unit tests is you're trying to establish a base level of functionality and check that it doesn't regress. And you're trying to do it, my philosophy has always been do it around the core stuff. Again, finding the things that are likely to break. Make sure it works and then check the most likely to break things. Most likely to break things are the most critical things if they were to break, which is slightly different. Yes. So if you've got something that's your device right and it's
Starting point is 00:50:46 doing some signal processing and there's a filter and the filter is the device like that is the most important part of the signal processing chain if that doesn't work then your outputs are all wrong and the thing doesn't work right a kalman filter or something like that i don't know how you do a test a kalman filter just go with me here something like that this I don't know how you do a test of Kalman filter. Just go with me here. Something like that, this core little building block, that's maybe one function that does a bunch of processing. That's the thing I would spend all my effort doing and maybe do what you're suggesting about have a wide range of inputs and outputs to check from. Not as a exhaustive test, like, okay, we have to put all the real numbers in and check that all real numbers
Starting point is 00:51:25 are processed correctly coming out and then after the heat death of the universe we can say we can ship it but like a broad range of things kinds of inputs and just check those against the expected values and that's again just to catch did somebody come in here and tweak something unexpectedly and now it's not doing a week maybe it it's not doing anything wrong. Maybe it's filtering differently, and it's just shifted a little bit, and maybe that's not a problem. Maybe it's still within normal limits, but you still want to catch that and say, oh, this changed. So that's my philosophy toward it. Less about test every function in your thing and have a unit test for it. Because a lot of those functions never change.
Starting point is 00:52:10 You write them once, you write a unit test, and then nobody ever goes back and looks at either one again. One of the things with unit tests that I have found that I have a strong opinion about is that they are one of the sources of documentation for the code. That's fair. I have a strong opinion about that because I learned about CIFI, which is a Python C runner. So you put in some C code and then Python runs your test. But the C code is in Python, and the headers was actually text in Python.
Starting point is 00:52:50 And it was shocking. I have no idea what you're talking about. I think I'm having an episode. I think I did. I mean, it totally defeated the purpose. It's in Python, but I write C code, which is... In quotes. In quotes, which is interpreted in Python,
Starting point is 00:53:10 or does it go and compile it and then execute it? I mean, it must compile and execute it. Is this like putting an assembly block in C? Yes. Except putting C in Python. Yes. All right. And as far as being able to use it
Starting point is 00:53:25 as a documentation method, I ran screaming. It was used as a documentation? No, no, no. When I write unit tests, part of what I'm doing is making sure... The first thing that I do with string copy is try to copy cat.
Starting point is 00:53:42 And then if somebody comes and looks at that, they're like, oh, this is how I use that function. What's the ostensible purpose of this? Large automated unit tests. Oh, so it's a unit test thing, but you put the C in the Python? Python, and you drink them both up, and you call the doctor in the morning.
Starting point is 00:53:58 Yeah. So the code... I just placed... He just answers the question. Bear with me here. The C code that you're putting into Python is the test or the code under test? The test. And the header. Why?
Starting point is 00:54:21 So the question I have. So many questions. You put the peeps in the chili pot. And it tastes bad. Yes. The question I have. Just the one. Is once you have the unit test in C, why are you in Python?
Starting point is 00:54:41 So that Python can run all of the tests and tell you what went wrong. And so you can do like Monte Carlo things. Do you understand the person I'm not talking to you, I'm talking to whoever made this. Unfortunately, the person we're talking to is probably listening, so I'm going to be in so much trouble, but go ahead. I just can think of eight different ways of doing that
Starting point is 00:55:00 that don't involve embedding C code in Python, that's all. I mean, you could script, have Python run the unit tests and check that's all. I mean, you could script, have Python run the unit tests and check for the output. I mean, Python can execute things and check its output. But the goal was to be able to have a whole bunch of different inputs to the function, like we were saying with the Monte Carlo simulation of inputs. But isn't the C code doing that?
Starting point is 00:55:24 Python is driving the inputs to the unit test? The Python, so you put the C code in, the unit test C code, as opposed to the code under test. Yeah, yeah, yeah. Unit test C code,
Starting point is 00:55:36 Python can update that to have different tweaks. Oh, so it's doing code generation. I think so. It's able to modify the C code. Yeah. Ciffy, C-F-F-I. It is...
Starting point is 00:55:52 It is something. Really something. It's like when my neighbor told me that my octopus art in the library looks like it was really a lot of work. And I was like, all right, I can hear that that's not a compliment. And that's okay. You don't have to love everything I do.
Starting point is 00:56:12 I'm too old for this. I'm sorry, Christopher has retired. Can you put an assembly block inside the C block inside the Python block? No reason I can't. Why don't I just go ahead and do that right now? Let me go type, type, type that in. I'm trying to figure out another level that we could wrap it in somehow.
Starting point is 00:56:33 Can we put Python inside something else? I mean, there's no reason why Python shouldn't run from a shell script. No, but you can't embed it like that, I think. I don't think embedding it is a good idea. Can we put the C code inside MicroPython? Also, weirdly, as I was doing this, I realized that I am totally dependent on color coding now.
Starting point is 00:56:59 Oh, in editors? In editors. I didn't realize how... I mean, because I can type things into Slack or message boards and stuff, and it doesn't really bug me, but. Black and white photography to color. Yeah. Yeah. Wow.
Starting point is 00:57:14 What do you mean you didn't change that to be a variable color versus a keyword color? So you take the C code and you put it in the Python code. You stir them both up. I just, I'm sure that it might make sense if I think about it and see how it's used more.
Starting point is 00:57:33 But my first impression is what? No, I put it in Complaintatorium and somebody immediately said, yes, yes, so much yes.
Starting point is 00:57:40 Or enthusiastically agreed that this was wrong. I just think that not every idea is a good idea. There's a lot of ideas out there. If you wanted to do mass testing on the order of trying all the inputs. Yeah, but I thought there were other frameworks that did all that. There are.
Starting point is 00:58:00 And are driven from Python or whatever you want. I'm leaving parts out of the story. All right. That's fine. There was a discussion of what way was better. That's fine. I don't want to make anybody. I actually agreed to this way.
Starting point is 00:58:17 I don't want to make anybody mad. And I didn't realize about the header. And I don't want to, you know, I don't want to. Tell me about your telescope. So, yeah. So, yeah. So one of the things I've been doing is trying to look less at things on the Earth and more at things that are hundreds to thousands of light years away where no one can bother me. So I've been trying to get back into astronomy.
Starting point is 00:58:38 So it's difficult because astronomy is expensive and it's difficult and hard and a pain in the butt and it's cold. And we don't, I mean, we have light pollution. We can see stars. We have better light pollution than like 90% of people. But we can't see the galaxy, the Milky Way. We can see the Milky Way on a good night, I think. We certainly can see it. I cannot.
Starting point is 00:59:01 We certainly can see it from the beach which is a quarter mile away so it's not like we're in a it's the suburb that's causing light pollution to be through the sky it's that our street has you know there's houses next next and our eyes aren't adjusting properly so we're at what's called portal five portal five a portal fortals this is a good place heavy episode it's a portal five zone which i don't remember what that translates into, minimum magnitude. I think it's like you can see magnitude 6 stars or something like that, but it's the limit. It goes from Bortle 1 to 8, and 1 is the darkest sky on the planet. And that's like you're in the Atacama Desert or something.
Starting point is 00:59:43 And it looks great, but you'll probably be eaten in seconds. Or desiccate. Eaten by what? The chinchillas? The pumas. We watched this great nature show, but he kept saying puma. We're past an hour here, so I'm just going to... You can stop listening because nothing here is going to be serious from now on. But yeah, who was it?
Starting point is 01:00:06 That was, was it Hiddleston? Tom Hiddleston was narrating it? Or was it Bumber Catch? Benedict Cumberbatch? Benadryl Cumberbatch. One of those two guys. No, Cumberbatch was the guy who couldn't say penguin. He says penguin.
Starting point is 01:00:25 Hiddleston is the one who says puma, which may be a perfectly fine. Anyway, Bortle 1 is where the pumas eat you. Okay. And then it goes down from there. Bortle 4 is like you're way out of the city in California somewhere. You can see the Milky Way 3 and it's above. You're way out of the city in California somewhere. You can see the Milky Way, three, and it's above. That's a measure of how dark your sky is most of the time on average.
Starting point is 01:00:54 So for visual observation, that's really important because you simply cannot see stuff if the sky glow is too bright. Your eyes don't work that well. But you've got a telescope to defeat all of that. I like doing astrophotography, and i was never very good at it i've done a little bit in recent years with my regular camera uh for some comets and stuff um and you used to have a pretty good rig i had a pretty good rig yeah so i had a pretty good rig that i bought in the late 90s. It was expensive. It's now very old. And I got rid of that. I got rid of it because it weighed about 75 pounds. And there was just no way. At night, I was taking all that stuff out there and setting it up and polar aligning it and doing all of its crap, hooking a camera to it.
Starting point is 01:01:41 And we've a lot of trees. So polar aligning actually is quite an adventure. Anyway, it's really a pain in the butt. Takes about an hour to set up. I ruined my back doing it. And we have a lot of trees, so polar aligning actually is quite an adventure. Anyway, it's really a pain in the butt. Takes about an hour to set up. I ruin my back doing it. And then I'm cold and don't want to do anything. In the last five years, there's been some advances with telescopes, amateur telescope stuff.
Starting point is 01:01:59 One of the advances has been due to something called plate solving. Tectonic plate solving? No, nobody solved that. Since we have a lot of really capable computers that don't cost anything now, like Raspberry Pi-level stuff, and they can store a lot of data, what you can do for...
Starting point is 01:02:23 I'm all muddled, but what you can do is you can point something somewhere and the telescope can figure out where it's pointed, right? Just by looking. So it says, oh, there's a bunch of stars. I have a vague sense of where I'm pointing based on my compass and that elevation that I'm pointing. And so I'm looking at these stars, what stars are those? And it can go through a database and figure that out and suddenly know where it's looking. So that's very important. So what that has made is a lot of kind of go-to telescopes
Starting point is 01:02:52 where you can say, go find me the M81 galaxy and point at it. They've always been these things, but they've required a lot of calibration to set up. Like you have to point either polar align or point at three. If it's not an equatorial scope where it's rotating about the celestial pole, if it's just pointing
Starting point is 01:03:12 up and left and right, alt azimuthal it's called. He's doing hand motions. It's a duck. Then it has to do, look at some particular stars. You have to calibrate it. And it's kind of a pain.
Starting point is 01:03:23 But now you don't have to do that anymore. You can set a telescope out, level it, and if it has calibrate it. And it's kind of a pain. But now you don't have to do that anymore. You can set a telescope out, level it, and if it has a compass in it, which most of them do, you can just press a button and it figures out where it is, or it will just go wherever you tell it to and look at that object. So that's all gotten really easy. So you can build a system with a camera, a mount,
Starting point is 01:03:44 and one of these little computers that will not only point where it wants, it will run the camera too and take the images and store them. And some of them will stack them and do some processing. And I don't know if I want to get deeply into stacking. It's complicated. But anyway, you can build a system for like that for like $1,500. It'll be very capable of astrophotography and pretty easy to use. It still has
Starting point is 01:04:12 a lot of wires and setup and you have to do some Linux-y things and be an expert. There's something called Stellarmate that runs on Raspberry Pi. There's something called Astroberry which sounds like a breakfast cereal. Astroberry. Start your day off right. And some other stuff.
Starting point is 01:04:27 They run on Raspberry Pi and do all this stuff for you. And you plug your camera into it. You plug your telescope into it. All telescope mounts. You don't plug your telescope into it because they're just optics usually. But the telescope mount is the thing that moves around and points at stuff. And that has a standard interface and has for years for how to plug into things. So those all work.
Starting point is 01:04:47 Lately, companies in the last year or so, maybe two years, but mostly the last, yeah, I think last year too, companies that make some of these parts have started integrating them into little smart telescopes. And the great thing about little smart telescopes is I don't have to spend a lot of time worrying about stuff. So the little smart telescope has the telescope. It has the camera sensor.
Starting point is 01:05:14 It has the mount for moving it. It has the little computer for figuring out where it's going to go and for taking images and storing them. And it came with a tripod, but you weren't into it. It's a fine tripod, but it's very short. So if you need to raise it up a little bit, it's for tabletop kind of stuff. So if you're in an apartment and you've got a view of the sky, you could do that with a balcony.
Starting point is 01:05:37 And it talks, unfortunately or fortunately, to a phone, the Android or iOS. Bluetooth. Wi-Fi for the real data stuff. But Bluetooth to say, I want you to go check out Ryan's belt. No, I think that's all Wi-Fi. It did do Bluetooth, but I thought that was just for discovery. Like, where's my telescope?
Starting point is 01:06:01 And it can run autonomously. So once you've said, go image M81 and have a ball and take a bunch of shots of it for later integration, you can leave and disconnect your phone. And in fact, he did. I think we watched the whole movie. And it just sits out there in images, which is kind of cheating. There's been some people on the telescope forums I'm on who were like, well, back in my day, you had to get a star atlas out and figure out where to point things by hand, and then you had to use film and develop, whatever.
Starting point is 01:06:35 I don't care. I'm old, and I've already done all that stuff and paid my dues. So at this point, I just want to take pretty pictures. So this is getting me back into astrophotography in a really easy way. And the great thing about it, yes, low friction. And that's what I've been trying to do with my life is many of my hobbies I've been trying to make easier so I can enjoy them instead of the apparatus around them. Yeah, when you're talking about building one, I'm like, okay, I've seen you do that with like before we had TiVo-like things. It's not as bad as that now for that.
Starting point is 01:07:10 And it seems like you're partially building a pet, which is great if what you wanted to do was build something to mess with. Those systems are less pets. The telescope system is less pets because the little computer thing just does everything but but yes that's certainly further along the pet direction than this thing which is like just put it out there level it and maybe remember to turn on the dew meter do do do heater yeah which it has an integrated do heater it's got everything it's really cool it's like a dew heater keeps uh condensation from developing on the front lens because it gets cold and then that'll ruin all your images. So it heats it up so that doesn't happen. And it has a battery, so it's not plugged into anything. So it's got a big, big LiPo battery or whatever that can run for six hours, or you can
Starting point is 01:07:56 plug an auxiliary battery into it, but it's got basically no wires. And the problem with the other thing, when I was doing astrophotography before, you had to have a computer plugged into it because the computer had to talk to the camera, which meant you had to be out here in the freezing cold with basically, you know, your work set up with a laptop and wires and the laptop had to survive. And it's dark and it's cold and the laptop's like, it's 28 degrees out here. Why are we here? My screen doesn't work anymore. Anyway, it's 28 degrees out here. Why are we here? My screen doesn't work anymore. Anyway, it's very cool. And the way all this stuff overcomes light pollution, you can do, so you can get one of these smart telescopes
Starting point is 01:08:34 and I've seen fantastic images from people who live in Tokyo, which is probably the worst light pollution thing you can imagine, right? You probably can't see very many stars. But information theory being what it is, the photons from all those objects are getting through. And if you take enough images over enough time and stack them, mathematically average them, sum them, whatever, you need a lot
Starting point is 01:09:03 of overhead if you're going to sum them you have to have a big you know big storage place or you average them and to divide them as over time but uh that signal will eventually overcome the noise and the no and the sky is light pollution yes and the light light pollution is noise whereas the stuff from the stars or nebula or galaxies is not noise, it's signal. And so you take long enough stuff, you average them together, the noise falls, the noise floor falls, and you get your signal. And so I've seen spectacular images from people from Tokyo, big cities and stuff. And so you can actually do some astronomy in places where you normally wouldn't be able to see anything,
Starting point is 01:09:43 even with a big telescope, because your eyes aren't doing that integration and getting the signal-to-noise fixed. So I've started playing with that. It's been a lot of fun because it's very easy. You do get some cool images. You get some cool images quickly, so you can also use this telescope and similar ones for something called EAA, which is electronically assisted astronomy, where you're
Starting point is 01:10:09 not necessarily trying to take pretty pictures. You're trying to just look at an object that you normally wouldn't be able to see easily with an eyepiece in a matter of a minute or two. So there's definitely some nebulae and galaxies that with 30 seconds to a minute of letting this thing integrate, which you can watch it do on your iPad or your iPhone or iPad or Android, as the images come in and it stacks them, it slowly gets better. So you can kind of see it developing over time. So I showed you a couple of things where it was like, you know, the horsehead nebula or something, which is something I'd always wanted to look at visually, which you have to have a really dark sky for, have your eyes dark adapted, a really big telescope to get enough light in, and then
Starting point is 01:10:52 you can kind of see the shape, basically. With this, in my backyard, front yard, with cars driving up, after 45 seconds to a minute, there it was. You know, you could even see some color from it. And from, after an hour of integration, you can see it even see some color from it uh and from after an hour of integration you can see it in full color with lots of contrast and stuff and another nebula that's next to it a bunch of other stuff anyway i'm going on about this randomly but you've been excited about it yeah and again i i wanted to get back into it without too much trouble. Because the trouble makes me not do it. Right. I mean, now you look at the clouds in the late afternoon and shake your fist at them.
Starting point is 01:11:32 But get off my lawn, clouds. But yeah, and it does, it makes, it is very pretty. And it's a toe. And I think it will help us go out and experience more. And it's something so small. That's the thing, I didn't mention how big it is. It weighs five pretty. And it's a toe. And I think it will help us go out and experience more. And it's something so small. That's the thing I didn't mention how big it is. It weighs five pounds. Yeah.
Starting point is 01:11:50 It weighs five pounds. It's tiny. It comes in a little suitcase. That's about the size of a little bigger than a lunchbox, I guess. And you can fit everything in that, including the little tripod. So you could grab that and go, you know, drive off somewhere to a darker sky pretty easily. And yeah, because it's easy, maybe I'll get back into it more. Maybe I'll piece together a system with a better camera at some point with one of these other boxes. Or maybe I won't. Maybe I'll just get... Okay, the other thing, I'm going to talk money here. It was $500. Actually, it was $450.
Starting point is 01:12:26 $450 for anything in astronomy is absolutely insane. I've paid more for an eyepiece for a telescope. And this is a complete system. And I know it's coming from China, whatever, and there's all this scale, whatever. But I mean, a lot of this stuff has gotten cheaper and having it integrated means, you know, they can cut corners in ways that maybe building your own system would be better, but this is really an easy way to go. Five pounds. You just take it out, you plunk it down. And they have a smaller one they just came out with that's got a smaller telescope. So it's not as good at gathering light, but has a wider field of view, so it's better for big nebula and stuff.
Starting point is 01:13:06 And that's only 340. It does all the same stuff. To get into astronomy or astrophotography, it's so friendly and easy to do. So I'm pretty happy with it. Depending on where that
Starting point is 01:13:22 house burnout discussion happens, if it happened before and everybody's heard it or it's coming up and they haven't. I'm going to leave it where it is. This is good technology. Yes. But it's made by a random company in China that I don't know anything about. Okay.
Starting point is 01:13:45 Well, it's not a random company in China. It's a company called ZWO. I don't know if you okay well it's not a random company in china it's a company called zwo i don't know if you pronounce that zwo or something but they make a lot of astronomy stuff they're the one one of the companies that makes the little box that talks to your camera and your telescope um that you can build a system around the people and they make cameras so they've been doing astronomy stuff for a while but they only make astronomy stuff as far as I know. Maybe they make lasers for incinerating puppies. I'm not sure. I haven't, you know. Not everybody has to do something terrible. I know.
Starting point is 01:14:14 I'm saying. I don't think they do. I just don't know why that's where you go. I don't think they do. Zed Woe, if you want to come on the show and defend your telescope I didn't say they did Okay, I think that's it for the show I think you want to get rid of me, so yeah
Starting point is 01:14:35 No, no, I do not want to get rid of you But I do want to thank you for co-hosting and producing the show I want to thank our listeners for listening Our Patreon supporters for supporting thank you for co-hosting and producing the show. I want to thank our listeners for listening, our Patreon supporters for supporting, and Nordic for supporting the show. If you could do us a huge favor and go sign up for Nordic's giveaway,
Starting point is 01:14:54 we want to see what they give away. I think it would be pretty cool. Totally worth your time. If you want to support us and not get a giveaway, why not? Then please leave a review on I was going to say Amazon, but that's not where this show comes from, is it?
Starting point is 01:15:09 Leave a review on Apple or wherever you get this from. The only place you can review podcasts is on iTunes. It's not even called iTunes anymore. Podcasts. Whatever Apple's new app for podcasts. But that's the only place you can review things, really.
Starting point is 01:15:27 Or you can review my book on Amazon. Yeah. But mostly sign up for Nordic's giveaway, please. Yeah. If you want to contact us, it's show at embedded.fm or hit the contact link on Embedded FM. And we might answer your question next time, although we did not get to Embedded Swift, which maybe we'll do a whole show about.
Starting point is 01:15:46 I'd like to read about that some more before I talk about it. And I guess now we have Winnie the Pooh. Are you ready? Yes. Okay, when we left it, there was a plan to, I believe, steal Roo? Yes, the plan to capture baby Roo had been discussed. Rabbit had read out his plan in which he was just going to take Roo and I think put in a loaf of bread. Oh no, Piglet. Piglet was going to go into Kanga's pocket and Rabbit would run away with Rue.
Starting point is 01:16:27 This is a terrible plan. But anyway. Well, Rabbit read this out proudly. And for a little while after he read it, nobody said anything. And then Piglet, who had been opening and shutting his mouth without making any noises, managed to say very huskily, And afterwards? What do you mean? When Kanga does discover the difference, then we all say, aha! All three of us? Yes. Oh. Why? What's the trouble, Piggly? Nothing, said Piggly, as long as we all three say it, as long as we all three say it,
Starting point is 01:17:06 and I don't mind, but I shouldn't care to say aha by myself. It wouldn't sound nearly so well. By the way, he said, you are quite sure about what you said about the winter months? The winter months? Yes, only being fierce in the winter months. Oh, yes, yes, that's all right. Well, Pooh, you see what you have to do? No, said Pooh. Not yet, he said. What do I do? Well, you just have to talk very hard to Kanga so that she doesn't notice anything. Oh, what about? Anything you like. You mean like telling her a bit of poetry or something? That's it, said Rabbit. Splendid. Now come along.
Starting point is 01:17:53 So they all went out to look for Kanga. And Kanga and Roo were spending a quiet afternoon in a sandy part of the forest. Baby Roo was practicing very small jumps in the sand and falling down mouse holes and climbing out of them. And Kanga was fidgeting around saying, just one more jump, dear, and then we'll go home. And at that moment, who should come stumping up the hill but Pooh. Good afternoon, Kanga. Good afternoon, Pooh. Look at me jumping, squeaked Roo, and fell into another mouse hole. Hello, Roo, my little fellow. We were just going home, said Kanga.
Starting point is 01:18:32 Good afternoon, Rabbit. Good afternoon, Piglet. Rabbit and Piglet, who had come up from the other side of the hill, said, Good afternoon, and hello, Roo. And Roo asked them to look at him jumping, so they stayed and looked. And Kanga looked, too. Oh, Kanga, said Pooh, after Rabbit had winked at him twice. I don't know if you are interested in poetry at all? Hardly at all, said Kanga.
Starting point is 01:18:57 Oh, said Pooh. Roo, dear, just one more jump and then we must go home. There was a short silence while Roo fell down another mouse hole. Go on, said Rabbit in a loud whisper behind his paw. Talking of poetry, I made a little piece as I was coming along. It went like this. Let me see. Fancy, said Kanga. Now, Roo, dear, you'll like this piece of poetry, said Rabbit. You'll love it, said Piglet. You must listen very carefully, said Rabbit. So as not to miss it, said Piglet. Oh, yes, said Kanga, but she looked at baby Roo.
Starting point is 01:19:36 How did it go, Pooh, said Rabbit. Pooh gave a little cough and began. Lines written by a bear of very little brain. On Monday, when the sun is hot, I wonder to myself a lot. Lines written by a bear of very little brain. rose that hardly anybody knows if those are these or these are those. On Wednesday, when the sky is blue and I have nothing else to do, I sometimes wonder if it's true that who is what and what is who. On Thursday, when it starts to freeze and hoarfrost twinkles on the trees, how very readily one sees that these are whose and whose are these on Friday.

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