Embedded - 117: In as Much as Which

Episode Date: September 9, 2015

Chris and Elecia discuss listener emails and other assorted topics. Preprocessor fun BLE 4.2 writeup from EETimes and the FAQ from Bluetooth.org Drones should follow existing aviation keep out standar...ds (Nick links us to some wiki pages) Automatic dependent surveillance NOTAM Federal Aviation Regulations: Temporary flight restrictions NYT Amazon culture article Cake under a microscope

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to Embedded FM, the show for people who love gadgets. I'm Elysia White, and it is just Christopher White and myself today. We're going to discuss random things. Okay, sounds good. Do you have any place you want to start? Probably not with the gadget discussion. Right, because I did switch up that front because I wanted to talk about a particular super nifty small robot-y gadget. But let's not start there.
Starting point is 00:00:36 Okay. From Chetil in Norway. I'm sorry if I mispronounced that. He emailed about data sheeps. Data sheeps. Sheeps. Apparently, there are actual standards for tracking livestock, and he shared those with me, along with a wonderful picture of data sheeps. Like ISO standards?
Starting point is 00:01:02 ISO 11784, 11785, and 14223. So there's an ISO standard for everything. Yes, yes, yes. There's an ISO standard for everything, but most especially data sheeps are real. That's surprising and terrifying. Yes. I guess that's a good segue to Bluetooth 4.2.
Starting point is 00:01:25 Okay. Nothing further on data chips. I mean, it was just kind of cool. To BLE 4.2, Prithvi emailed and said 4.2 is better for security. And I actually then looked it up because 4.2 isn't on any of my chips yet right that's that's a really new i don't remember how recent that is right uh it was actually announced last december okay so presumably somebody should have started making things that support it before then.
Starting point is 00:02:07 I don't know. They tend to announce them and then the... Oh, it's not like Wi-Fi where they start making devices a year before the standard is finished? No, they had proof of concepts then. The EE Times article I've been looking at, it had some information, but no, they don't make chips until after the Bluetooth spec is published. Okay, so it's probably at least six months out from here. From here? Well, if they got it published in December,
Starting point is 00:02:36 they'd have to actually make the chips and design them. That's usually a year to 18 months from there to parts. I'm hoping it's not too much hardware. I'm hoping it's stack change, actually. Really? Which means they should be coming out right now. For security stuff, they might require hardware. Well, the changes.
Starting point is 00:02:55 That might help. Lower power consumption. Yay! That sounds like hardware. Crowd goes wild. Much faster data transfer. That sounds like hardware. Which means that audio will be able to go over BLE
Starting point is 00:03:07 which we haven't gotten before and that will be wonderful for nifty headsets that sounds like an RF change no I think that's a protocol change higher bandwidth? I don't know you want me to actually have read the spec?
Starting point is 00:03:23 just seems I mean no that seems too much. There's a new mechanism for privacy and a set of government-approved security measures. That's terrifying. That's terrifying. You mean government-approved backdoors and key escrow? Data transfer is 2.5 times faster than previous versions. Oh, using bigger packets, which is just a software change.
Starting point is 00:03:51 The 20-byte packets are going to go. Okay, so presumably some overhead is being removed? Yeah. Okay, well, that's strange that they could have done this all along. I'm always skeptical of hardware, hardware, software, uh, revisions that suddenly reveal a lot of performance that was just sitting
Starting point is 00:04:14 there on the table, but maybe it's not a hard change. I don't know. We'll see. We'll find out soon. And that Micah had a tweet, Micah Elizabeth Scott, had a tweet about telecoms designing protocols related to Bluetooth. And I thought that that was sort of related to what you were saying about,
Starting point is 00:04:37 yeah, they might have left stuff on the table just because time to market being what it is and a lot of varying pressures. ATM was like that. I remember back when the internet was first taking off, there were a lot of high-speed networking protocols and hardware that there was the router side of the world and the telecom side of the world. And they were both trying to make high-speed switches and routers and telecom people came up with atm which was this very switched system where things were locked
Starting point is 00:05:13 into paths and the router side of the world was doing ip switching you know switching packets based on headers and the telecom stuff was always terrible and not scalable. And it was clear they were coming from the idea of the 50s switchboard still. And they couldn't get away from that. So, yes, I agree. Telecoms are terrible. Other emails? Let's see.
Starting point is 00:05:39 What is a masked ROM? Allison asked this from the Tamagotchi show. We threw around the words masked ROM as though everybody just knew what that was. And for sure, I didn't know what it was before LeapFrog. It's a ROM with a little mask over its eyes, so you can't tell who it is. Yep. That's what a masked ROM is. So what's the next question on the list? What's a masked ROM?
Starting point is 00:06:03 It is used when you are building an ASIC. Okay. So let's say I was building a leapfrog toy and I would have a processor and it was the 8051 core and then I would have code that would run on the
Starting point is 00:06:19 processor. And this wouldn't be in a spy flash. It wouldn't be in a flash on the chip like most of the modern processors are it would be actual part of the ASIC and it was a ROM and it was called a masked ROM because that was part of the lithography process of making a chip and they would make the processor parts and then they would bank them and then they would put the code on using this mask, which was actual ones and zeros connections and no connects at transistor levels. And then that would be the code that ran. And if you think about this, they actually had to make a mask, which is expensive. They had to do silicon-y things, you know, semiconductor things, chip things,
Starting point is 00:07:11 and that's going to be super expensive. And so you can't change a masked ROM very easily. You can't update the code. You cannot do field update firmware. And so a masked ROM is a very slow process. It's something you use when you're going to make millions of something, which fits with the Tamagotchi. But it doesn't fit with a lot of other things we work with, especially the high-end embedded systems.
Starting point is 00:07:39 It's for when you want to get the price per chip down in the pennies to tens of cents, right? And you can't do that unless your scales are huge with things we're used to using, like Flash. Right. Its main advantage is cost, and it is also smaller. Right. Because you really are just using, those bits are ones and zeros. They're never allowed to be anything else after the mask.
Starting point is 00:08:10 All right. So, yeah. So, not useful to anybody except people making billions of things. And yet, for the people who are like, well, how do I get my product cheaper? Let's use an ASIC. Okay, now what do we do? A mask ROM does allow you to decrease the price more, but it means that your design is fixed.
Starting point is 00:08:34 Right. And maybe that's okay for a bootloader. Some of the chips that we buy now have bootloaders on board that are unchangeable. And those are part of the ASIC itself, and that's a ROM. Okay. I think it's a weird piece of terminology. That's probably...
Starting point is 00:08:53 When I think of ROM, I think of... That's what I think of. If you don't add a P or a double E, P in front of it, it's a fixed thing. But sometimes when I hear people talk of ROM, they mean the onboard flash, which is so not ROM because you can update that. That's not read-only memory.
Starting point is 00:09:12 That's read-write memory with a little bit of effort. That's their mistake. Well, and yet when you put together a block diagram and you talk about RAM. I think even the Android firmware updates are called ROMs for some dumb reason it's read-only memory which if you're dealing with code that should be read-only memory on the other hand we should remember read only to whom yeah and uh and it's nice to say ram
Starting point is 00:09:38 and rom as though they're equivalent things one that's variable one that's variable, one that's not. Yeah, they really mean code and data. Yeah. Now we should talk about Von Neumann machines, but we're not going to. Let's see, more emails. Thank you to Arthur and Mark for offers to tour your facilities. We probably will take you up on that someday, probably after the move. Yes, we are still moving. But Christopher doesn't want me to talk about it because we have yet to sign all of the papers. It's also boring. It's also boring.
Starting point is 00:10:16 Yes. And you guys all should be jealous. Also, thank you to Patrick at Planet Labs for letting me look around there. Speaking of tours, I actually did go on. It was super cool. Can you talk about that at all? Yeah, I think so. I think I can remember what he told me not to say and what I was allowed to say. So Planet Labs is a satellite company.
Starting point is 00:10:38 Yeah, the idea is they make relatively cheap satellites, relatively being a very key word there. And they send up whole swarms of them. And they're called doves because the idea is that they're used for peaceful applications. Looking at earthquake changes, looking at... Earthquake changes? Oh, like when Nepal had that huge earthquake? Right.
Starting point is 00:11:07 Planet Labs coughed up all the data they had so that you could see what changed over a really short amount of time. Okay, so it's just normal visual imagery? No, I don't think they're quite a standard visual spectrum. I think they went a little off visual. Okay. I don't remember.
Starting point is 00:11:24 Something. It was less to look at people and cars and stuff happening and more to look at environmental things. Okay. Rainforest, deforestation problems. And it wasn't super fast. I mean, it wasn't like you see on silly TV shows where they can task a satellite and you can follow somebody around.
Starting point is 00:11:46 It wasn't like that at all. Right. They were somewhat motionless satellites, but then they could use their solar to kind of turn themselves just by angling things a little bit. And then since they're in low Earth orbit, they have just enough atmosphere to be able to turn themselves. That part was really cool. I wanted to see more videos of that. That sounds really cool. But Planet also opens all their data, and so you can get beautiful pictures of all over the world.
Starting point is 00:12:17 Deserts and neat impact craters. So you should go look at that. Cool. If they're in low Earth orbit where they have atmosphere that can aid them in orientation, presumably they don't stay up for very long. That's true. I mean, that's true for all of the small satellites that are going up, the CubeSats. The goal is that they auto-deorbit, which is to say they die a fiery death, much to
Starting point is 00:12:42 the sadness of their creators. Okay. So they must be pretty small too, though. Well, that was, yes, yes, indeed, they are very small. Three units, which is 30 centimeters by 10 centimeters by 10 centimeters. And they, you know, they had a lot of neat stuff, radios and cameras and processors, and I don't know what I could say about those.
Starting point is 00:13:06 But it was neat to think of satellites not being million-dollar things anymore. These still weren't cheap, but you can see the approach towards cheaper. Yeah, and filling up low-Earth orbit with lots of tiny things to run into. It'll all be fine, I'm sure it'll all be fine. So, oh, and yeah, I think they're still looking for people to hire.
Starting point is 00:13:34 So, they were fun, and they had a neat emphasis on art that I can't quite explain, except that it was very, very neat. On art? Yeah. quite explain except that it was very very neat on art yeah not kind of elucidate that further well they they had a lot of art around the building they um hire they have an artist in residence they actually do what well you know a lot of those pictures they get from the Earth are really quite pretty. And the artists in residence can highlight those and find them. They also do paintings and other things. What did Patrick say? Oh, they're space hippies.
Starting point is 00:14:18 That's what the Planet Labs community is, is that they're space hippies. And they really hide good art on the walls. And they even put art on the satellites when they can. Like, they'll decorate the satellites before they go. Are they going to do a space art installation? I bet they will someday. Yeah, I recommend that tour as well. And I suspect working there would be one of those,
Starting point is 00:14:45 I can't quite believe this, it's so cool adventures. If you were in San Francisco already. Let's see. And I have another email asking about the volatile keyword in C. I thought we did this. Yeah, we did a whole show about C keywords. But it was episode 10 with Jen and it was called
Starting point is 00:15:08 hands off baby so maybe people haven't gotten quite that far into our backlog so the volatile keyword yeah it's cool I don't know what do you say about it
Starting point is 00:15:22 it keeps the compiler from messing with stuff. Right. And so if you have, say, a while loop, a register, where you want to find out if this GPIO has changed, you're going to poll this, which is wrong for all sorts of reasons, but let's go with it. You're polling to see if GPIO pin 2 changed. And so you ask the register, you know, what is the current status? Is it the same as the previous? What is the current status? And you go
Starting point is 00:15:51 over and over again. Well, the compiler is going to look at this and say, your variable, it isn't changing. So I'm just going to compile this out and make it into a while one loop and poof, we're off. Because it doesn't know that memory location corresponds to a hardware register. Right. From the compiler's perspective. It's just another hint. It's just another hint. Right. And so the volatile keyword says, despite what it looks like right here, this variable may change outside this code. And so you use it on registers, but you also use it on global variables
Starting point is 00:16:25 you're modifying in interrupts. Right. Where else do you use volatiles? I've used it on occasion to force the compiler to stop optimizing things, even things that aren't registers or hardware,
Starting point is 00:16:42 because I want to look at it and I want it not to be optimized out when I'm debugging. And so that's a temporary change. Yeah. Yeah. I use static for that as well because static makes it essentially
Starting point is 00:16:53 a global variable hidden inside my function or inside my file. Yeah. That's probably better. No, I use volatile for that sometimes too because sometimes it'll optimize statics or my namespace will be bad for it.
Starting point is 00:17:06 I usually just pound define int to int volatile or volatile int. Yeah, everywhere. Yeah. Just the start of a project. So last week we talked to Glenn. I was going to say. No, actually that was a transition.
Starting point is 00:17:20 You're going to be surprised here. Not particularly thrilled I bet. We talked to Glenn Scott from Park about making good software. Okay. And afterwards, you mentioned that it made you feel a bit like an imposter. Yeah. That's because you pound a fine int to volatile int. No, no, no.
Starting point is 00:17:44 That doesn't make me an imposter. That makes me an archvillain. I see. I have a whole file of evil pound defines that somebody sent last week that we need to put in the show notes if I can dig it back up. Oh, yes. Pound define true to zero. Oh, much worse. Much, much, much worse.
Starting point is 00:18:06 All right. Well, that'll be an interesting exercise in how well do you know C macros. Pound to find open parentheses to close parentheses. Now, you want to make it so it still compiles. Yeah, that's true. And so your code just does nefarious things,
Starting point is 00:18:24 but it looks fine. Pound to find float to cast to int star. Ooh. So I wanted to talk a little bit about that because Glenn's method of development is different than most people's. And I asked about schedule because that is what most people ask me when I say you should do it properly. You should be more effortful. You should have more intentionality with your designs and development. And I recognize that it's not it's not easy. It goes back to Jack Ansell saying it's not easy. It goes back to Jack Ansell saying, it's not easy.
Starting point is 00:19:08 That's why they pay you. Be a grown up. And yet I want to also say that I understand both sides here. Because I definitely did some debugging last week where I knew something was wrong and I didn't know what it was. So I just kept moving the line that worked down until it stopped working so that I could figure out where in the world this bug actually lived. And I'm sort of embarrassed. I felt very, I'm just pounding on my keyboard like there is a way to try to get better yeah um taking this outside coding i'm going to talk about my posture which has never been particularly good and i started trying to get better by thinking about my posture when i brush my teeth okay it's two minutes a day. I can do this and I'm not doing anything else.
Starting point is 00:20:06 And then every time I got a glass of water. So now it was sort of like when I was in the bathroom or when I was in the kitchen and I get a lot of glasses of water. I just tend to, it tend to, once they get warm or once they get cold, I toss them and get new water. And so I do this a lot. And, you know, I think about, okay, now my posture is going to be good for the next five seconds and then I'm not going to worry about it. And I keep adding little things. You know, now whenever I'm in the kitchen, I try to remember to make my posture better. Whenever I'm near the bathroom, I try to make my posture better.
Starting point is 00:20:40 And it actually has been working. But this has been like a two-year thing and it's still still you come up to me and i'm working and you see me slumped over like a troll but it takes time and effort and acceptance that you're not going to have linear benefit from this it is a long-term thing and that's the same approach I've been using for my coding. You code when you brush your teeth. Right. Sorry.
Starting point is 00:21:12 No. But to try to be better, to try to use more unit tests, to try to be more intentional about what I'm doing, to recognize when I'm debugging in a way that is unsatisfying because I'm just going to kill the bug. I'm not going to solve the problem. All of what you're talking about is mindfulness. Yes.
Starting point is 00:21:33 And this is going to sound spacey, new agey, but what you're talking about with doing stuff while you brush your teeth or while you... That's kind of very close to what the informal mindfulness practice is where you pay attention to mundane things. You brush your teeth for two minutes and you pay attention to brushing your teeth. You pay attention to what you're doing when you're doing some little tasks. And that kind of can help train your mind to focus better.
Starting point is 00:21:56 And you're taking a step further and using it to focus on a particular thing while you do those other things. But focus and intentionality are really difficult things for all of us. And exhausting. And like you're saying, it is something you do have to practice. You can't just decide one day, I'm going to be more careful. I'm just going to say I'm going to be more careful and I'm going to do these things you have to practice them and that goes for test driven development that goes for uh just having clear code thinking about your names thinking about your variables thinking about structure it's not something that just happens and it's one of those things that feels a bit painful the first time you do it because and pointless
Starting point is 00:22:41 sometimes it's easier to do a bad job yeah or to do not as careful a job so doing them and trying to remember okay for this function i'm gonna do i'm gonna try this out today and then maybe i won't pay as much attention the rest of the day but for this function i'm gonna spend the time and then building up from there there. I think that's kind of an interesting way to look at it. And I like Keen, where I have one task and it reminds me to be mindful about a different thing. Particularly Keen off of rewards.
Starting point is 00:23:23 So, you know, for me, if I try to improve my code every time I check Twitter, that would go badly because I check Twitter far too often. Well, and Twitter is inherently a mindless operation. But it's sort of a reward. So that would sort of work. And it's also a distraction, which means that I'm in my, you're right, it's mindless. It's my least mindful time. And instead, I sometimes think about, okay, Tuesday at 10, I'm going to spend half an
Starting point is 00:23:56 hour thinking about what I could do better. That's sort of the Agile retrospective, but they never use it that way. The Agile retrospective. I'm not going to give them credit for anything like that. Well, okay, that's fine. Anyway, if you can key it off of something, whether it's five minutes after I get a cup of coffee, I'm going to spend just a little bit longer trying to figure out if the names of my variables are what I want.
Starting point is 00:24:23 And just spend a couple of minutes. Yeah, don't try to spend hours and hours refactoring your code. Yeah, and that's how it's practiced. You do things for a period of time that seems comfortable because that encourages you to keep doing it. If you do something too long or you get frustrated with it because, ah, I'm really trying to do this and i'm failing that's when you give up yeah and sometimes people talk about the code uh
Starting point is 00:24:54 kata's the uh practice code where you is it kata or kata i know either. I'll have to look it up. I wish I knew more martial arts. I would know then. Kata sounds better, but probably only because it sounds like a better word. Let's say small somethings. So it comes from martial arts, and it's the practices you do that are not against an opponent. They're the practice. It's like etudes in piano. Right. And you don't want to do that for 12 hours a day.
Starting point is 00:25:35 You would hurt yourself. So just little practices. And I like the idea of doing those after work, but I haven't. That's a terrible time to do anything. I am tired. That is exercising dangerously when I'm exhausted. I think it's best to do it first. First, yes.
Starting point is 00:25:53 Come in and say, well, let me look at this function. Let me pick a function today, and I'm going to see what I could improve. And I wouldn't do it after meetings that were frustrating. Yeah. Well, it's an interesting way to take a little bit of the mindfulness approach and apply it to to coding um you were talking about being a grown-up to start this all off and i think i think people can be a little glib with this and i think we have
Starting point is 00:26:21 occasionally been a little glib with this because it's all well and good to say be a grown-up, but when you're surrounded by people who outrank you, who are not, or who can fire you or affect your performance review, there's not much you can often do. I'm reminded of the Amazon thing that was a big deal a couple weeks ago where they were talking about Amazon's culture in the New York Times. And it sounds like a company that has kept sort of the startup culture even though they've become huge, which is not necessarily to anybody's benefit. But the thing that seems to persist in cultures like that is the idea that you just need to work hard constantly and continually overwork yourself work many many hours until everybody's ground up and they just replace them um and it was unclear to me in the
Starting point is 00:27:19 article you know what whether they were talking about sales people or engineers or everybody or the blue collar people doing uh shipping and that kind of stuff. Probably a little bit of everything. On the last Accidental Tech podcast, John Siracusa was actually talking about this. And he said that was interesting. You do end up in a situation where you have junior people who are just told to do things and they have to do it. And there's no real recourse for you to be a grown-up if you're not in charge.
Starting point is 00:27:57 If somebody says, you need to do this by this trade show in two weeks, or you need to do this and get it done in a month or you're gone. What's your alternative? I guess you leave. Well, that isn't even an alternative for everyone. We have been, you and I have been extremely privileged in being able to walk away from jobs we hated. Having dual income, both engineer, makes it much easier for one of us to be out of work. And that isn't true for everybody. Not everybody lives in Silicon Valley where coming
Starting point is 00:28:37 by a new job is easy. And if you're at the start of your career, you don't have the network that helps you get the additional jobs. And so just saying, this company is stupid. I'm out of here. Wow. That's dangerous for a lot of people. And I don't like to offer that as the best solution. Sometimes there are better solutions if you can figure them out. And one of them is, okay, you're a junior programmer. Don't try to do it all just take a little bit make your code as good as it can be and maybe tomorrow as you're practicing think okay he asked me for this i bet what he's going to want next is what that's the sort of looking ahead thing that will make you from junior to senior engineer yeah and and and they mentioned that on the Axe Film Tech podcast where because of time constraints, you often skip over the part where you think ahead and you try to lay a foundation so that next time it will be easier and so that you won't have to kill yourself and so that you can make a deadline without pulling all-nighters and writing lots of bad code. And sometimes if the
Starting point is 00:29:48 timelines get compressed enough, you just can't do that. And so there is a bit of a give and take, but if you do spend some time planning ahead yourself, you can make it easier on yourself, even if somebody else is pushing a deadline up. And it lets you ask the questions, which I can always tell when my interns and co- coworkers are not working on the thing they said they were going to work with me on. And that's when they don't ask the questions. So thinking ahead lets you say, okay, so you want this accelerometer driver written with a spy interface. I wonder if you're going to want a tilt sensor out of that, or I wonder if you're going to want a gyro next, and I should be planning on making the spy driver reusable or designing an overarching sensor thing.
Starting point is 00:30:47 It's the, okay, I can do this. And while I'm doing it, what are you going to want next so that I can do the most efficient job here and reuse what I want? And it's not necessarily making your code reusable for everybody, although I think that you can go on that path. I think that's a good path to be on. It's making your code reusable for you first. And that makes you more efficient, makes you faster. It means you get to sleep. Yeah. I don't think there are any good answers. I mean, there's some, lots of answers,
Starting point is 00:31:17 but I don't think they all apply in all situations. Oh, absolutely not. And I think, you know, I would advise people to at a minimum stand up for yourself and you know push back I've done this in the past and even as a junior engineer sometimes saying no is valuable you know this is too much we're not going to finish
Starting point is 00:31:41 or it's going to be bad we need to look at this. I mean, it won't always work, necessarily in all situations, but if you don't ever stand up for yourself, then you can expect to just continue to be exploited. And you can say, no, I'm sorry, I can't commit to this. I will do the best job, I will try, but I'm afraid you've asked me to do too much,
Starting point is 00:32:09 and so I don't want you to rely on this deadline. That's not a big wimp out. That's a, my skills don't match what you think they are. Maybe you should use my skills differently. Or maybe I have different skills. And there's certainly some places where that's not going to work. And they're just going to grind you out and replace you with some other college grad. And that's unfortunate.
Starting point is 00:32:33 But I would say try not to get into those places to start with. I'm looking at you, games industry. Is that my new name? Because you're looking at me. It's sort of weird. Switching on to other depressing topics. Andre and we talked about hitchhiking. Right.
Starting point is 00:32:56 And I'm not going to cover Hitchbot again. But we may have alluded to the fear, uncertainty, and doubt about hitchhiking. And you know, it is truly dangerous. It was why I was so annoyed by that Mike McIntyre book about hitchhiking across the US. Hitchhiking is a bad idea for humans. Apparently it's a bad idea for robots as well. I am fully aware and happy that people are usually kinder than we give them credit for. But risking your life to prove that point or even to get from here to there, not everyone is as kind. So, little PSA, thank you for the reminder I got an email that it's not all about fear. Okay.
Starting point is 00:33:48 I got another email from Nick about keep out zones for drones, and they already exist. There are a whole bunch of standards that already are in place, and we should use them. I will link these standards. Okay, cool. Standards from whom? Federal aviation regulations. There's NOTAM, which was a different thing. That's a normal flight thing. Right, and so those same things should be being used for drones. Okay.
Starting point is 00:34:24 And he's a ham, and so he had a lot of discussion about why you shouldn't generate this for drones. You should use the stuff that is in place. Yes, but who's you should use it? The drone developers? The drone operators? It's all well and good to say there are rules, but if they aren't implemented in a way that people know about and can be enforced, then that doesn't do much for anybody.
Starting point is 00:34:54 And for drones that are smart, that are commercial, those should be listening to these things and being able to interpret them. For people who are just having a good time, I don't know. Now the drones are getting so cheap. It is very hard to say you could have this platform for $100 and then you need to put $1,000 worth of gear on it in order to make it legal. I don't like that direction. Well, and again, drones aren't appreciably different from RC planes.
Starting point is 00:35:32 True. The difference is people haven't historically been flying RC planes near where other aircraft fly. So I think it must be just the ease of takeoff and landing in the stupid drones. Because RC planes, you need a runway of some kind, a field or something. So you aren't taking them off next to an airport. They're too easy. And that's cool.
Starting point is 00:35:55 And it's going to be great for us in the long term. Maybe. Yeah. I think they should just get rid of all aviation. So it's just drones. That way it wouldn't be a problem. That is, as usual, one creative solution. Let's see, bypass capacitors.
Starting point is 00:36:16 Yes, please, okay, I get it. Please, stop with the bypass capacitors, okay? Just stop. I really appreciate it. I'm not a fan of the plumbing model of bypass capacitor explanations. I really prefer the traffic model. But nonetheless, my emails, thank you to everyone who explained it in more thorough detail. Please stop. But still, thank you. Do you want to talk about my current projects, my current and recent projects,
Starting point is 00:36:46 or do you want to talk about my very current little rolliest droid? I think you should mention your recent projects first. You're doing... Have we talked about the mice thing already? I don't think so. I posted it on Element 14 this week in my linker post, where I asked people for suggestions on Wi-Fi platforms with all of the requirements that I have for said platform. So you're doing a project for the NIH to feed mice or to monitor feeding of mice or to feed mice two things.
Starting point is 00:37:20 No, it's to a precision feeder for mice. And I'm working with a team who's looking at obesity research, and they wanted cheaper precision mice feeders. And so they had an Arduino plan, but they found that it didn't last battery-wise. And so they brought it to me, and I got to play with it. And they did not give me any mice, so that's good. Or if they gave me mice, they didn't. They escaped before they got.
Starting point is 00:37:54 Well, anyway, there were probably no mice. Probably. Maybe. You didn't look in the box thoroughly. No, I did look in the box. They definitely weren't there. Anyway, so precision mice feeders and sort of cool. And they're going to make it wireless.
Starting point is 00:38:08 And I'm having a good time with it. It's all public. It's all, they want it easily rebuilt. They want it to last a while. Price is not as important. So it's a weird criteria for projects. I'm so used to price is king and time to market is queen
Starting point is 00:38:28 or maybe the other way around and all the rest is not as important, but it's time documentation. And they aren't the first people to bring Arduino projects and ask me to fix them. That seems to be happening a lot.
Starting point is 00:38:43 It is happening more and more. For better or for worse. I worked on a bike light project where it would give directions while you're on your bike so you don't have to have your phone out. And it also acted as an actual light to light your way. Okay. Headlight.
Starting point is 00:39:03 Right. And they had some trinkets, the Arduino sort of platform. And they had some WS2812s. And it was neat. It was fun to look at their system and optimize it for lower power. And for them, they had no idea how to manufacture it. They'd been to China and worked with manufacturers and they had this five minute long programming method and I couldn't get through the programming method. So I said, well, why don't I just tuck that processor's code into this
Starting point is 00:39:45 processor's flash and have it load it? And that was magic. And I loved it. It was awesome. But I don't worry too much about Arduino people shipping products. Arduino makes it easy, but it doesn't make it always possible for consumer stuff. I don't see why that would be a worry. Why did you say that? Oh, somebody said to me about how the simplification of embedded systems means that we'll all be out of a job soon. Huh? Yeah.
Starting point is 00:40:17 That's fine. As long as you only want the battery to last an hour, we'll be out of a job. No, everything always gets simplified, but there's always more complex stuff shoved on the other end. I don't find that to be a problem, and I think giving access to people to build more things is the way to improve the world.
Starting point is 00:40:35 That's a very protectionist... It's kind of like keeping people from importing products. We don't know if that would work on this, because that's unfair to us. Put me out of a job. Fine. I'll find something else to do.
Starting point is 00:40:52 And these are so fun because they have their ideas and they have their prototypes and they it's really neat. So, yeah. Hammerhead is the bike light people. I'll put a link on because I'm pretty happy with how it came out.
Starting point is 00:41:09 So that was that one. And then the mice one came to Arduino base as well. Yes. And so that needs to be... You're not de-Arduinoing that one. The first instance I kept Arduino, although if you have an Arduino project and you want to eliminate a whole bunch of current right away, go to Arduino Pro. It's made by SparkFun, and what they did was take off the USB chip, and then you use an FTDI cable to program it.
Starting point is 00:41:41 So that's all pretty simple and straightforward, but you don't have to power that stupid USB chip all the time. So it just sits there, drawing power? Yeah. And it's a lot. I mean, it's tens of milliamps. It was really silly. Ouch. Yeah. And then you're going to make it wireless. And then I'm going to make it wireless. Wi-Fi.
Starting point is 00:42:00 They hadn't chosen BLE or ZigBee or Wi-Fi, and I'm headed towards getting to play with the ESP8266, which I've been wanting to play with for a long time, but it seems cool. So you're changing to Wi-Fi, you took the USB chip off, you're doing anything else for power? Oh, I did a whole bunch of little things for power.
Starting point is 00:42:23 Looked at their motor circuit and looked at their display and generally turned things off that needed turning off. They had used a way to put the processor to sleep and actually done a good job with that. That was all they wanted from me was to look at that. And I said, no, no, no, you have to give me the whole schematic. And I didn't find any additional power from that processor. I found all my power savings from other things. Okay. So are there ways to make standard Arduino more power efficient? Obviously, you know, writing good code that isn't sitting in a loop or something, but are there things, are there hooks from the Arduino language to, to do sleep modes and stuff?
Starting point is 00:43:10 I haven't looked at this. So, but if you had a standard Arduino project, are there things, like a few things you can do to, to make it more power efficient? Yes. And there are websites that describe them in great detail. But mostly you send the processor to sleep when you don't need it, either time-based to go to sleep or interrupt wake up. Okay. And yet you are still powering that other USB processor all the time. Right. So it's a big waste.
Starting point is 00:43:40 And if you use the Arduino Pro, you can go down to sub-milliamp current draw, depending on what else you've got. I've also got a whole bunch of other stuff I'm driving at that, so I'm more on the 30 milliamps right now. But it is not hard. That shift was really, really easy. Okay. Yeah, I tend to think of it as a prototyping platform.
Starting point is 00:44:05 So I wouldn't even assume that you could do anything hardware-wise to put it to sleep. So nice to know that you can. I don't know anything. You know lots of things. So what next? That looks like everything on the list. I guess we have to talk about the thing. The thing.
Starting point is 00:44:28 So if you're our accountant, you should know that we purchased two BB-8 robots in order to disassemble one and to do competitive analysis on the BLE of the other. Okay. For those of you who are not our accountant, oh my God, we got BB-8s. They're so fun.
Starting point is 00:44:53 They're so cool. Is there supposed to be more? I mean, I could just go on like this for a good long time. No, that's probably enough for that. I mean, I don't want to gloat, but we got BB-8. You done? No, I'm never going to be done with that. Well, actually, I forgot a subject, so let's go back.
Starting point is 00:45:17 I am speaking at the Hardware Developers Didactic Galactic in San Francisco on Thursday night, which is the day after this goes up. Thursday the what? The 10th? Yeah. Of September. Of September. And so I don't think most of you can come, but if you want to, there's already a wait list, but I have some,
Starting point is 00:45:42 I've heard that the wait list might get cleared. We'll see, depending on how long it gets. There's already a wait list, but I have some, I've heard that the wait list might get cleared. We'll see, depending on how long it gets. Anyway, I'm supposed to be talking about my solid talk when math meets inertial sensors. And it was pretty much going to be my solid talk stripped of a couple of intro things at the beginning and a little bit more Kalman filter at the end. Yeah. That sounds thrilling. That sounds thrilling. That sounds thrilling.
Starting point is 00:46:11 Yeah, I think I'm going to switch it from math and inertial systems to applications of inertial systems. And then I'm going to just give up on the whole inertial part and I'm disassembling the BB-8. All right. And I'm showing it off. So you've already done some disassembly, I hear. You hear? You hear because you took pictures as I did it.
Starting point is 00:46:29 Right. Yeah. It's pretty neat. It's really funny how the expectation mechanical drawings that I saw online are nothing like what's inside. Yeah. What's inside is so much more cost-produced. Right.
Starting point is 00:46:50 Than the four or six motor version I saw speculated. And the processors are neat. Even though it's cost-produced, though, the board is not jam-packed. Things are well-labeled. Mostly. I was surprised at actually how much info was available on the PCB. And how much it wasn't potted and how many test points there still are. Labeled test points.
Starting point is 00:47:19 I know. Spy label, I squared C. I'm attaching wires to those this afternoon and then I'm going to salient them and logic analyze them. Oh God, it'll be so cool. We got BB-8s. Did I tell you that? I, you know, after we talked to Dan at Rheingold Heavy,
Starting point is 00:47:42 I got to thinking about how I don't do a lot of disassembly. Right. I tend to take things and build them. I tend to build up and not tear down. But there is a lot of information and learning to be done by tearing things apart and looking at how they're done. So I decided, okay, I'm going to try a project. And then BB-8 came up and I'm like, I'm going to try it on that. And it is pretty fascinating.
Starting point is 00:48:10 I still don't understand how certain things work. You mean with the motors? Yeah. Me neither. We're still at the beginning of this process. I know that there is a gyro in there, and I know that there is an accelerro in there and i know that there is an accelerometer in there and i have three chips that i haven't identified and it can only be
Starting point is 00:48:31 well it could be one of them is both right there's one that is totally unmarked that's killing me and there are two one that doesn't have enough pins to be that chip and one that is marked and I don't know what it is. I think it's time to stick the salier on the pins of the unmarked chip and move it around. You can't, I don't want to lift the pins. So I'm going to stop worrying about the markings on the board and then just look at the I squared C and spy and try to figure out from there. But that won't point you back to a chip.
Starting point is 00:49:09 That won't point me back to a chip, but then I can, like if I find out there's a, I don't know, InvenSense accelerometer gyro pack on the board, then I can count the pins and make some estimates and say that maybe this unmarked one is probably that chip because somewhere that chip has to exist on the system. All right. So that's my next plan.
Starting point is 00:49:36 I also plan to play some with the BLE because I did pick up all of its characteristics and look at the read-write and all that. I wonder how open that is because the app it comes with, you can put it in patrol mode and it runs around like one of those toys from the 70s that bounces off the door, turns around. But it communicates a lot during that time. It shows you all the accelerometer and gyro.
Starting point is 00:49:58 Right, right, right. What I'm saying is the app has a bunch of readouts and it shows you the accelerometer, absolute value. It actually decodes the gyro and gives you a 3D image of the orientation of the whole thing, which is correct. It's kind of amazing. And then it tries to track its trajectory as it's rolling around, which does a kind of... Well, it doesn't do a terrible job, but it clearly is just integrating. It's not doing really fancy filtering.
Starting point is 00:50:30 It has speeds and it has a shock sensor for when it runs into stuff. So it'll tell you how hard its collisions were. And it claims to detect life forms as those IR. And I think that's just a prologue thing. I do think it has a wheel speed sensor. Yeah, I think so too. Which we haven't quite figured out. No, that's in the little ball on the bottom
Starting point is 00:50:54 of the head. It's buried in the plastic. And there are test points for that too that are a lot easier to get to. I just haven't. It'd be interesting to see if that was a quadrature detector or something cheap and even simpler. Well, if I go tear apart some headers, I can probably... Well, I'll show you later.
Starting point is 00:51:11 Anyway, there's a good chance that hardware meetup, I am not going to be talking about inertial sensors at all. Really good chance. Did I tell you we've got a BB-8? They're so cool. Yeah, if you come across one, I would, for $150, which is their list price, I would go ahead and buy it because at Christmas time,
Starting point is 00:51:35 those puppies are going to be worth a lot more. That is a good investment. They are definitely the Tickle Me Elmo of the year. We'll see. They are definitely the Tickle Me Elmo of the year. We'll see. They are quite compelling and adorable. Still disappointed they didn't put an audio chip in the device.
Starting point is 00:51:54 Makes all of its sounds from the phone instead of the actual device. It's a cop-out. And they really don't run without the phone. No, they don't do anything without a phone. Did you tell me there are cheaper versions that are remote control instead of I saw that
Starting point is 00:52:09 I think so, but I'm not sure if it was made by Sphero. I think there was an $80 something, RC BB-8, but it wouldn't be hard. I mean, the mechanicals in the motor drive would work with remote control. I think, actually, I don't know. I don't know how much it depends on that being doing all of its inertial stuff
Starting point is 00:52:29 to actually work. I think there's a lot, actually. Maybe not. I don't think there's that much. I think the counterweight is enough to keep its head upward. Yeah. Yeah. So, yeah, that's what we're doing these days.
Starting point is 00:52:46 Playing with the BB-8s. If you wonder why we're not getting any work done or why we need to cut this podcast short, that's why. We covered everything? We did. It wasn't a long list and it's been a busy week. All right. Did you want to add anything? No, I guess not.
Starting point is 00:53:04 I'm sure that there are emails that I probably haven't quite looked at. Hackaday Prize is coming up soon, right? It is. Actually, that is a good thing to mention because if you are a Hackaday semifinalist, please do not email me. Please do not talk to me. Please do not talk to me. Please do not talk to me. We can talk in November. We can be besties in November.
Starting point is 00:53:30 Once it's announced, we can talk again. I'm sorry. I have to tell you I'm a semifinalist. No, you're not. You didn't even enter. I did. I entered my Snoopy snow cone machine. Advanced Arduino controlled Snoopy snow cone machine. Advanced Arduino controlled Snoopy snow cone machine.
Starting point is 00:53:49 Yeah. Anyway, I am excited for those of you who did enter, but since I'm a judge, I'm trying to ward off any impropriety. But I am excited and the semi-finalists have been announced and soon I will be deep into judging, but before that we will actually be talking to Ben Krasnow about his judging plan and my judging experience. He's terrifying. He has an electron microscope.
Starting point is 00:54:20 And the flea pictures? I don't have an electron microscope. What would you do with an electron microscope what wouldn't i do with an electron microscope is the better question there are so many things you can't do with an electronic microscope you can't drive a car you can't bake a cake but you could you could look at the individual molecules of a cake. All right, not that far, but you could look at the aggregate little structures in cake. I bet that's fascinating. I bet nobody's ever looked at a cake with an electron microscope. Excuse me while I Google cake and electron microscope.
Starting point is 00:54:59 You need to tell jokes now while I do this. I only know the one pirate joke that you told last week. Really? That's the only joke you know? I don't remember jokes. I have no memory for jokes. It's like chess. I can't see more than one move ahead, and I can't remember any jokes.
Starting point is 00:55:18 An electron microscope reveals the hidden horrors of processed food. No, no, no, no. I don't want hidden horrors. Wow. I don't want hidden horrors. That. I don't want hidden horrors. That's not what I asked for. Sprinkles are beautiful when they're... Okay.
Starting point is 00:55:30 That's what I'm looking for. Ooh, Pop-Tarts. That's not... They're crawling with little bacteria, aren't they? Maybe. We'll put that in the show notes for your nighttime. Yeah. We'll put that next to the giant spider pictures.
Starting point is 00:55:49 All right. I want to go play with the little robot. All right. I'll talk to you later. You'll probably talk to me in five minutes about what we're going to have for lunch. But I guess that means this is the time when I get to say thank you for listening, and thank you to Christopher for co-hosting, guesting, guesting is guesting a verb, and producing. I often guest.
Starting point is 00:56:17 I often guest at all sorts of things. And let's see, we already said thank you for listening. I should have written these out if you would like to contact us unless you are a Hackaday semifinalist you can email show at embedded.fm or hit the contact link on embedded.fm I will talk to you next week
Starting point is 00:56:41 my final thought for this week is totally irrelevant to everything we talked about. And yet, when Christopher and I are alone, I often do Winnie the Pooh quotes. So here you go. What? The old, great, I didn't mean when we were alone, like alone. I meant when it was just us on the show. Right.
Starting point is 00:57:03 Only the best for you, podcast listeners. The old grey donkey, Eeyore, stood by himself in a thistly corner of the forest, his front feet well apart, his head on one side and thought about things. Sometimes he thought sadly to himself, why? And sometimes he thought, wherefore? And sometimes he thought, inasmuch as which? And sometimes he thought wherefore, and sometimes he thought inasmuch as which, and sometimes he didn't quite know what he was thinking about.

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