Embedded - 123: Banished from Running Linux

Episode Date: October 28, 2015

Bob Coggeshall (@BobCoggeshall) runs a boutique assembly house. And he co-wrote sudo. There are sandwich jokes.  Bob's business is Small Batch Assembly (@SmallBatchA). (There might be a discount on ...your first order near the end of the show. Maybe.) His pick and place machine is a Mancorp MC400.  Octopart's Common Parts Library We mentioned OSHPark a few times, Laen has been on Embedded.fm: 92: Everybody Behave, Please Boldport makes nonlinear traces (SEAHORSE!!) Relevant XKCD panel My Date with Drew How did we not know about Astromech.net? Bob's Wifi Nixie driver board (also: how Nixie tubes work)

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to Embedded FM. I'm Elysia White, here with Christopher White. And we're excited to have on the show the guy who wrote our favorite Unix command, Bob Cogshaw. Hi, Bob. Good afternoon, morning, evening, whatever. Hi, guys. How's it going? Good, good. Could you tell us a bit about yourself? Well, I guess I'm just another product of obsessive behavior involving taking things apart and wanting to know how they work. And that started when I was a kid and slowly but
Starting point is 00:00:44 surely the ratio of things that I took apart and put back together again improved until I was employable. And then I went to college and I professionally have been an embedded systems developer most of my career, but I've done a lot of other kinds
Starting point is 00:01:00 of programming and I've always kept one foot in the hardware world. And I'm internet famous for co-authoring that Unix command. You can say what it is, it's all right. Oh, sudo. I always wanted to make sure you said it first because that is how I say it, but I've heard it said other ways. Yeah, there's sudo, uh i don't correct people you know it's all about uh
Starting point is 00:01:28 being understood and uh not being persnickety about how to pronounce stuff like my last name or or vi vi people uh i've heard people call that uh um vi or or, as in Roman. Six. Oh, that's awesome. I'm adopting that. No, I only use the five editor. They really screwed it up in six. Yeah, yeah, yeah.
Starting point is 00:01:54 It all went to heck in a handbasket. Anyway. Yeah, you co-authored SUDU, which I thought was really cool. It wasn't around when we did sysadmin in the 90s. Was it? Yeah, maybe not. I mean, we SU'd all the time, and I always wondered what I was going to RM-RF. Well, that's because we had the power.
Starting point is 00:02:19 I know. It was so much power. Yeah, well, it was making its way into distros in the latter half of the 80s and the early 90s. So I don't know. There's a lot of different interesting aspects of it. But basically, Unix in a nutshell, history in a nutshell, is that it came out of Bell Labs and became accessible to people like me at colleges and around 78, 79 or so. And that was version six. And quickly version seven came out and it was it was very, very austere. And, you know, you had LS and I think actually you had DIR and then RM and MV and that sort of thing. But at any rate, also at the same time, digital equipment came out with their VaxLine, which was the big improvement was virtual memory.
Starting point is 00:03:20 So you didn't have to partition everything anymore. And so Unix went to Berkeley, and Berkeley Unix was created by people like Bill Joy, who then started Sun, and I think he did the first version of the VI Editor. But anyway, so now you're... The Sixth Editor. What's that?
Starting point is 00:03:39 The Sixth Editor. Yeah, the Sixth Editor. And actually, if you find the source code, he put haiku in the comments. That's just one thing I remember about sifting through the source code. But anyway, it was, of course, an open source distro. And we'd get it on mag tape. And colleges were buying VAXs at the department level. And so I was hired as my first job to take care of the computer science department's VACs.
Starting point is 00:04:09 And it still, when Berkeley Unix arrived, 4.2 BSD, it still did not have, there was nothing like sudo. There was just SU. And so my job was computer technician. They had not invented the word sysadmin or network admin or desktop maintainer, help desk, any of that. It was just the guys that are the wires to the dumb terminals. And so that was primarily my job, was a hardware jockey. But I was supposed to learn as much as I could about the machine and administer it. And so I was there learning as fast as I could, but I still wasn't as good a software developer
Starting point is 00:05:02 as some of my friends. And, of course, I came from this cohort of people who had been going to school there. This is State University of New York at Buffalo at the same time. try to get access to these cool machines that had just arrived in exchange for tuition waivers or credit hours or both. And so I had, at any rate, gotten my first job taking care of the VACs. And I had my friend Cliff Spencer, who is the other co-author of it. He basically came in to wanted access. He just said, come on, Bob, give me access to the computer science department. So he started just poring over it. And he had been writing in force and 8086 assembly language.
Starting point is 00:06:04 And he basically got to the point where, Bob, give me something to do. Tell me something that you need that I should write. And I'm like, well, you know, the CS professors, they keep asking me for the root password, and I'm not going to give it to them. And so what we really need is a command that'll double down
Starting point is 00:06:29 on a per command basis. And, oh, by the way, I think if you set a root-owned file, the setUID bit of a root-owned file of a shell, you'll of a root own file of a shell, you'll get a root shell. So we want something like that, but not that lame. So we've skipped over something important here.
Starting point is 00:06:56 You keep saying VACs, and VACs are supposed to run VMS. Did you just kick that to the curb? Yeah. Heck yeah. It was a fine operating system once you figured out. I never figured it out. Yeah. Before that, of course, there was a PDP-11,
Starting point is 00:07:18 and we ran RT-11 on the little ones and RSX11 on the big ones. But always, I was the outlier who came in with these tapes. And I said, I want to load this other operating system while you aren't using it. I'll come in at night and I'll run it. And this is the clandestine running of the Unix. I would come in and run it for several hours and play with it. And then I would unload it. And then I would reboot machines and then into RSX or VMS or something awful and go home. And I was working at a monkey lab. They did research on monkeys and they would actually put little
Starting point is 00:08:06 probes in their brains and and um so you put bsd on them yeah well i had a kim one i was supposed to actually uh um wire up to a feeder and they would get they were supposed to focus on a light on a blank screen and that would allow the scientists to get a baseline of their visual cortex and so i was uh wait that is so cool because i i'm working with mice that have little probes in their brains uh where i'm working with is it's happening in maryland and i'm in california and have nothing to do with actual mice but it's's still really cool. Yeah. Well, it's fun to have a monkey just kind of walk down the hall in front of your office door and have its own. I mean, they were very nonchalant about the monkeys were like, okay, I'm going to go into
Starting point is 00:08:57 the lab now. I'm going to sit there. And when I press this little button, because I've been fixated on the LED properly, I'll get a treat. And so I was writing the code for the Kim 1 to give them the treat. But anyway, I was banished from running Unix on that machine because one morning they came in and it wouldn't boot. And of course you call the field service tech and they came out and they replaced a core memory board. And that was it.
Starting point is 00:09:31 And then I ran Unix again and the same thing happened. Core memory. Now that could have been a coincidence or could have been actually Unix was running a very tight loop and burned up a location in the core memory. We don't know. But yeah, PDPs and I was always the one who would not run the DEC OS from a very early time unless coerced.
Starting point is 00:10:08 We were getting to why did you need to do, I mean, you didn't want the professors to have the password, which I totally remember from my sysadmin days in the computer science department. And you worked with Cliff to get it written. And then, I mean, I've written a few programs for my local system. Where did it go from there? How did it end up ubiquitous? Well, so this is the prehistoric days now. And the only thing we have hooked up is Usenet. So this was
Starting point is 00:10:45 modems and software and the VAXs and other types of machines but mostly VAXs running Berkeley would call up each other at night and exchange news articles, net news. And it was sort of like a sponge
Starting point is 00:11:01 where an article would basically try to go everywhere and get a copy of itself on every machine until everyone had the news article. So there were special news groups for publishing source, comp.sources.unix. So after a couple of years, we spread it around, you know, to our buddies on campus. And Cliff went on to other things, I went on to other things and other people became the custodians of it and they
Starting point is 00:11:32 published it by just putting it out on comp.sources.unix and copies went everywhere and people started using it on their faxes running Berkeley. And also there was other things like Pyramid 90Xs, mainframes, just before mainframes died. a power that you log into, you become super user,
Starting point is 00:12:10 to having an atomic thing that happens as super user. Yes. And of course, people cheat by just giving themselves a root shell. You know, say, sudo bash or sudo su. You know, we've all done that. Sometimes it's prescriptive to do that. And I don't personally have a problem with it. But the dole it out on a per-user basis, know who was using it, and have them use it on a per-command basis.
Starting point is 00:12:51 And at least, even if they were just going to do a sudo su, it would be in the logs. Hopefully they didn't immediately go to the logs and erase them. Which is an option. So I've had one of my products mocked on The Simpsons, and Christopher recently had one of the brother products to the thing he worked on mocked on The Big Bang Theory. You've been mocked in XKCD. How was that? Again, that was like a total honor to be have something we created
Starting point is 00:13:29 become kind of part of tech culture to the point where it's in a cartoon and everybody knows Sudu make me a sandwich what that means. And I don't know. I think that I would send I would be very happy to send Randall Munro
Starting point is 00:13:48 a signed copy of the Sudu Man page, but I think I would be getting a much better deal by getting a signed copy of that cartoon. Hint, hint. And Randall, if you're loosening, you're welcome to come on the show anytime. More likely, if anyone knows someone who knows someone who knows someone who knows Randall, suggest it to them. This is like that movie where they try to date that movie star.
Starting point is 00:14:20 What? The Molly Ringwald movie star. Nope. No? The Endegwald movie star. Nope. No. The Endegrees of Kevin Bacon? Wow. I don't know. No, no.
Starting point is 00:14:33 We'll cut this out. Really? This is the high point, man. We watched a movie. It was a documentary. It was very silly. A documentary? It was Drew Barrymore. He was trying documentary. It was very silly. A documentary? It was Drew Barrymore.
Starting point is 00:14:46 He was trying to get a date with Drew Barrymore. And yeah, some people out there are like, this is a stupid conversation. The other people are like, it's this movie. And I'm like, okay. Well, let's go on. So having done Sudu, how much did it help you in your future career or was it always
Starting point is 00:15:08 something that happened and now i want to have a real job um no one knew it's only in the recent couple of years that anybody actually cared or asked and I actually don't bring it up unless I'm asked and I put it down under professional accomplishments.
Starting point is 00:15:37 It's one of them now, but there's patents and there's decades of writing code. So, I mean, it, you know, it basically, you know, I haven't had been offered a free drink or anything in bars. Or, oh, look, here comes Bob Coggeshall. Everybody, you know, run. Still waiting for the ticker tape parade, huh?
Starting point is 00:16:07 Yeah. No, no, no. And it's just, you don't know. We didn't know that it was going to have any, it was going to make it into distributions and everybody was going to use it. And so, I mean that here's other ideas for podcast guests I mean some of the old Bell Labs people before they
Starting point is 00:16:35 actually are gone would be awesome to talk to like you know a ho Weinberger Karen a hand the the AUC fame. But anyway, yeah, that's just, I don't know. Yeah, it's one of those things that's fun to talk about and doesn't really buy you that much. You mean being the author of something like that? Yeah, yeah. Not working at Bell Labs.
Starting point is 00:17:03 No, that's different. That's different. Yes, sorry. Not working at Bell Labs. No, that's different. That's different. Yes, sorry. I thought I was clear. Oh, I got up so early this morning. We'll see. Okay, so, but this is not what you do now. You do something entirely different
Starting point is 00:17:21 from writing Linux commands or Unix commands. What are you up to? Well, a little while ago, I was looking at this whole maker movement thing. And I was having a lot of fun doing my own projects, the NixieTube clocks. And my day jobs often involved microcontrollers, and I would just come home and keep working on microcontrollers. So that was one of the funnest kinds of programming that I've been able to do, and I've always done it, whether I was getting paid to or not.
Starting point is 00:18:05 And so once the maker movement started to define itself I started to think to myself, well, maybe if there's a way to actually make
Starting point is 00:18:20 an honest living out of the maker movement. How to monetize the maker movement, that was my thought. That's a very honest sentiment. Yeah, I just didn't want to go work for the man again. Just preferably work for myself. And everybody, most people kind of would prefer to do that, I think. And so I was looking at the different businesses that were being created. And kind of quickly came to the conclusion that the big winners were like the winners during the Yukon Gold Rush. So Seattle really grew rapidly during the Yukon Gold Rush.
Starting point is 00:19:08 And it was because they put down a law that said you can't come into Canada unless you have so many months' worth of supplies because people, you know, it really was environmentally hazardous. You couldn't go up there and And people were just going up there any way they can to stake a claim. So it was the retailers who were selling the boots and the blankets and the pickaxes to the gold rushers that
Starting point is 00:19:38 really were making the money. And so the analogy in the maker movement is it's the widget builders and distributors like the Adafruits and the Spark Funds of the world. Maker Shed is more of a pure, just a pure reseller of stuff. And Adafruit kind of do it in combination of building their own stuff and uh um reselling stuff uh and i thought well well they've got that all sewn up um besides i that's not that interesting and the building part is interesting the the reselling stuff isn't
Starting point is 00:20:19 that interesting and um so uh i was of course building these Nixie tube clocks and had moved to surface mount and learned how to become as efficient as possible doing them by hand. But still, building them really wasn't that interesting and prone to error and takes a lot of time. So, of course, I yearned for a pick-and-place machine. Doesn't everybody. Yeah, it is one of those classic nerd lusts, machine to have. Glowforge laser cutter, 3D printer. Check, check. And pick-and-place machine.
Starting point is 00:21:02 Check. And a mill. Oh, and the other mill. Yeah. Yeah. I don't know where I'd put that on the priority list, but it would be high. Yeah. So I started thinking to myself, well, and I also had some boards built by traditional contract manufacturers. And I, at all at this point, kind of it congealed in my head.
Starting point is 00:21:31 I had this epiphany. There's always this fatal step in any project. And it starts with, how hard could it be? And so I said to myself, how myself, That's always a dangerous question. Yes. It's almost worth, hey, watch this. How hard could it be
Starting point is 00:21:53 to start a low-volume electronics assembly business for people just like me, because there were all these widget makers out there that were evident on Hackaday and then later on Tindy and then all these other places. And I just kind of embarked on this mental exercise initially and decided that, hmm, yeah, okay.
Starting point is 00:22:30 I think I want to do this. And so I went to my wife and said, hey, can I, you know, peel off a few bucks from the savings account? And she's like, what? You want to spend $50,000? Write a business plan. Yeah, there's the amount of money you can spend without asking your spouse. Then there's the amount of money you can spend
Starting point is 00:22:59 without your spouse flipping out. And then there's the amount of money where your spouse is like, no, honey, this is bad. Exactly. Exactly. But my spouse is a perfect foil and she complements my shortcomings perfectly. So the write a business plan order was a direct manifestation of that. So, and it was a good exercise too.
Starting point is 00:23:27 You go, you sit down and you look at who's your market and what do you intend to do? And what are the risks and blah, blah, blah. And so I succeeded in getting the approvals. And so then I bought a pick and place machine in January 2013, I think. ManCorp MC400, also known as the Autotronic BS281, not outside of North America.
Starting point is 00:24:00 I think that ManCorp said, we are not selling a product that starts with a BS. So it's called the MC400 by Mancorp. But Mancorp doesn't make it. They resell it, but they support it in North America and also South America, I believe. So at any rate, so I basically got the machine, learned its care and feeding and what it needed as far as how to fit it into a workflow. And then I embarked on writing a website to automate and make it as easy as possible for people to submit their jobs and ask as few as questions as possible.
Starting point is 00:24:50 And, you know, Osh Park at this point was a very big influence, and I knew Lane, and, you know, I was looking at his website and talking to him. And now what he does and what I do are pretty different from the implementation standpoint. But philosophically, I think the whole venture shares a lot with Osh Park. And they do send me lots of customers. Well, yes, because once you make a board at Osh Park, your next question is, how do I get this stuffed?
Starting point is 00:25:24 Right, right. So at any rate, I basically, and this is kind of a thing that we might go into a little bit, is about in your career, when you're, well, there's this 5,000-hour rule that they say, if you want to be an expert, you've got to at least do 5,000 hours of whatever that is. And I think programming is similar to that. A couple of years into actually writing code professionally, you're going to get good at whatever that is. But after 10 or 20, 25 years,
Starting point is 00:26:07 you are going to write in a lot of different languages. And so that was true for my career. And it went from, you know, Punch Cards and Fortran and then seeing C++. And then there was Perl. But I didn't know to write this website. I said, well, you know, I got to pick a language and an approach. And I looked at Python and looked at using Django, the Python framework, and chunks of it are written in Python.
Starting point is 00:26:55 And I did teach myself Python, but I just decided that was not the right approach. I wanted something that was, when I Google my problem, I want 10 answers on Stack Overflow to show up. And if I had done that with Django, it wouldn't have been, not as many people would be out there with the same problem. So I chose PHP, the language people. I'm sorry. Love to hate.
Starting point is 00:27:28 Yeah. And I knew I would get guff from people about that. But really, and it's fun to be a snob about languages. Like, for instance, I loathe jQuery. And I think JavaScript is the alien, then jQuery is the head burster. And it shouldn't
Starting point is 00:27:54 things, it should, I only learned it because I had to get certain behaviors out of the browser. But now, of course, there's things like Node, and everybody's running around, and then there's embedded targets that will run JavaScript. And I have to get off, you know, my snob throne and say, really, you know what, it's just another block structured language loosely typed and all the languages are at least 80% similar. And
Starting point is 00:28:29 once you've written two or three or four of them, then the next one really isn't that big a deal. So, at any rate, that's what it's written. Sorry. It's a bunch of WordPress plugins because WordPress was just out there and that gave me 90% of my solution for a framework.
Starting point is 00:28:50 And so, yeah, so that's someday when I can afford it, I'll foist that off on some poor, undeserving person. So you're looking for an intern already? Yeah, yeah. person ah so you're looking for an intern already yeah yeah um but i think that the interesting thing is that you've done i mean you built a entire business with a lot of disparate elements by yourself from the the website the marketing side the actual physical assembly side um interfacing to that man corp mc 400 is not going to be a trivial let's just bang this up with php so i i kind of want to know how long it took you to go from i bought the machine to i'm taking orders and did you plan for that or did you just sort of, okay, I have this, now I have to do this.
Starting point is 00:29:45 Okay, now I have this. How did that work? I had, of course, I'm no better than anybody else in estimating how long it takes to write code. And so it was probably nine or ten months before I first got the machine to when I went off and wrote all the support code and the workflow and came back to the machine and said, okay. And I had inquiries. Lane was sending me people that wanted to try the service. And so, yeah,
Starting point is 00:30:25 it was nine to ten to eleven months. It trailed off, the final tweaks. Oh, and the pick-and-place machine runs Windows XP
Starting point is 00:30:41 and the whole code, all the software is written in runs Windows XP and the whole code, the whole, all the software is written in Microsoft Visual C++ version 6. I'm crying. And the,
Starting point is 00:30:53 and it's all written using the Visual Fox Pro DBMS. Oh my God. I was okay until that. Actually, I mean, it's the most secure computer on the planet probably.
Starting point is 00:31:10 Nobody's bothering to attack any of that. No. So the software has not been refactored. Versions of these machines have been coming out for at least 15 years. And so they've just added incrementally and said, okay, well, we're not going to use laser machine based alignment. We're going to use machine vision with a little camera. And so we're going to add that.
Starting point is 00:31:37 And we're going to add more, make the feeders faster or things like that. And, or it's going to be closed loop and we're going to add more, make the feeders faster or things like that. Or it's going to be closed loop and we're going to make the machine more accurate. But all those were incremental changes. So, yeah, it's pretty awful. But if you look, like I went to SparkFun for a visit and saw their manufacturing and, um, you know, their, their $300,000 pick and place machine is running this, this thing that, uh,
Starting point is 00:32:09 software, just the, the sophistication level of the screens is, uh, nothing more fancy than you would find on, on a DOS machine. It's just very much, um,
Starting point is 00:32:21 um, terminal, um, um, curses, um, um, single font. Uh, so yeah it's that's that's not its job yeah you know that that part works okay we're done with that yep yep yep it does seem to me like that's another area that is ripe for somebody to come in and do you know, a low-cost laser cutter slash low-cost 3D printer style disruption.
Starting point is 00:32:48 Yes, yes. So there are a number of different desktop pick-and-place initiatives. When you go to any Maker Faire, you see two or three or four. And there is one person, I think they're in Seattle, I forget the name of their
Starting point is 00:33:03 project, but they had a very nice, brand new, written from scratch user interface to their pick-and-place machine. And I kind of just wished that they would go take one of the Chinese machines that are not coming out with machine vision and just, you know, you've got chocolate, my peanut butter.
Starting point is 00:33:30 Put their software on those Chinese ones, which are getting more and more solid. And so that's my prediction of what will happen. I'll be out of a job. Well, there'll be a different job then. I did note that, as with Lane of Osh Park, as you're doing very hardware things, your job is software. Are you a hardware guy doing software?
Starting point is 00:34:02 Are you a software guy who is helping build hardware? Which way do you see yourself? historically employed me as a software guy that has some knowledge of hardware. It was really the whole summation of that. So if you were, but I continuously do my own designs, and now I have a pick-and-place machine and I can build them. And maybe that was the secret agenda all along, doing small batches, And now I have a pick-and-place machine, and I can build them. And maybe that was the secret agenda all along, doing small batches, just having a way to build my own designs. But it really is now I'm a service provider. There's not much for the software.
Starting point is 00:35:02 There's lots of improvements to do on the small batch website and I need to get back to them. But all in all, really, my day job is now getting parts in the mail from people and putting them in the machine and putting paste on the boards and picking them and placing them and putting them in the reflow people and putting them in the machine and putting paste on the boards and
Starting point is 00:35:25 picking them and placing them, putting them in the reflow oven and setting them back. So you said small batch, and I'm not sure you've said the name of your company yet. Oh, Small Batch Assembly. Okay. And that's smallbatchassembly.com. And so how is what you do different than a contract manufacturer? Well, I am a boutique, I guess. I'm a contract manufacturer boutique. Contract manufacturers do assembly services,
Starting point is 00:35:55 and my spin on it is to do it at a more of a, well, first of all all make a better take a better stab at the customer relationship and to automate the job submission because regular traditional contract manufacturers
Starting point is 00:36:20 just work with zips over email and people look at it and kind of eyeball it and say, yeah, okay, we can do that and we can do it for this much and then send back a quote. And it was kind of, I wanted to, you know, I wanted to take a better stab at it and improve that and automate that
Starting point is 00:36:46 and hopefully pass on some of the efficiencies that were realized and reflect that back in what I charge the customer. That is sort of the whole goal. And focusing on the maker market means you're okay with building five boards you don't have a minimum order quantity of a hundred which some of the cms they don't really want to talk to you unless you're building a lot of these no no the old model that's correct the old model um their model is um so uh what you get what you're building and uh're, of course, going to build a thousand of them, right?
Starting point is 00:37:26 And a month, right? And so just send me your zips and we will just figure out what we need to do to work together. And that's the level of automation. When they're looking for an ongoing relationship, bread and butter every month. Right, right. And so they will basically eat their NREs, their non-recurring engineering costs in their pre-sales with you
Starting point is 00:37:57 while you're doing your prototype in low volume in exchange for the knowledge that they're going to get the volume business. But now we're in this world where there is no volume business for a lot of small niche markets. The Tindies, builders of the world, for instance, they typically have day jobs and other income, and they're building their little boards because they just can't turn their brains off like all of us. And they are just looking to build a residual income doing these little businesses on the side. And they may grow. and hopefully my best customers are the ones that I have to fire because my pick and place machine isn't big enough to handle
Starting point is 00:38:48 or fast enough to handle the volumes they're doing. It does seem like you could be taken over by a single customer quite easily. It is, it is. And in the couple of years that I've been doing this, now I see a couple of different classes of customers. And the maker ones are the Tindy types are the largest. But there are those that are local, like some labs that just say, oh, hey, I'm in Virginia too. And just can I come over and just deliver the parts to you
Starting point is 00:39:31 and see your pick and place machine and chat with you. And so there's kind of local high touch kind of a customer that is fine too. That's great. And CMs are everywhere too. You know, any major city is going to have, even if it's not the Valley, is going to have a number of contract manufacturers that, but they're going to be of this larger variety.
Starting point is 00:39:58 There's a couple that, you know, try to do lower, high mix, low volume, which is what you call the style of contract manufacturing and so how do people so if i want to make a board and i send a board off and i get it done at osh park and i build a couple and i realized this really was what I wanted, but hand soldering them is beyond me. Or I just had somebody ask me for a couple for themselves and I decided I want to make 20 so that I don't have to hand build them anymore. What do I do? I mean, right now what I would do is stare at them and then wait for people to go away. But with what you do, what should my next step be?
Starting point is 00:40:48 Well, so you've got some boards that you've put together and gotten to work, right? Yeah. Okay. And so you would just basically go look, get some more boards. You know, you're happy with your design. There's no cut traces or jumpers anymore. And you look at your bill of materials, look at how much they cost, think about how many you want to make, can afford to make, should make. And that might be a very low number. Still, you know, 25 is not unusual. But as you go up in number, then the unit cost goes down.
Starting point is 00:41:38 And so your next step would be to, after that, figuring out what your volume, how big a run you want to do. If you want to use my service, you would go onto the website, and there's a pricing engine. You don't even have to interact with me. It'll just give you the prices for assembly.
Starting point is 00:42:02 If you key in the number of placements you have and the number of um of unique part types you have and then how many boards you want that's pretty much all all i need all the python script needs to give you back a price and then you decide, well, okay, this is the assembly cost and this is my BOM cost. Is my quantity still right? Do I want to build more? Do I want to build less? The price goes down if I build more. Unit cost.
Starting point is 00:42:36 You iterate a little on that. And then if you want to go forward with it, you would then submit your CAD files. And my system requires two files, basically. A CSV, which is sometimes called the Placement Bill of Materials, or the XYRS, or the Centroid file. Basically, it's one row per placement, and each field is going to have the reference, Y, R, S, or the centroid file. Basically, it's one row per placement, and each field is going to have the reference designator for that part,
Starting point is 00:43:10 R1, R2, C1, Q1. Then it's going to have manufacturer part number, and then X and Y coordinate in inches, and then rotation in degrees. And that's it. And that file is generated by most EDA tools. So KiCad or Eagle or Altium or whatever I have. Correct, correct.
Starting point is 00:43:39 So there would be specific instructions, like Dan at Rheingold Heavy has instructions for KiCad and I've got instructions for Eagle. Or you can just read my FAQ and figure out how to do it with your EDA tool. And then the only other file I need is the paste layer, the Gerber paste layer, which gives me a picture of the layout of the board and allows me to create the stencil to apply the paste to your boards. So you mentioned a Python script that does pricing. That is fascinating to me because that sounds like something that would take a lot of iteration to get right. pricing and um and i was also in parallels um um basically saying goodbye to pearl which i had written used as my my um glue language for many many years and um uh committing to learning python
Starting point is 00:45:00 so it really the pricing the the job of pricing really is to plug in, know how long it takes to perform each step of the process, and what your labor rates are. And so when the customer inputs the number of placements and the the number of items that can get computed. So it's just really a bunch of tables. The BOM size is the number one thing which affects assembly cost when you're doing low volume. So if you have like 10 different kinds of parts, it's going to cost less to build, to assemble, and take less time because then it would be for 30 parts, 30 unique part types.
Starting point is 00:45:56 The pricing is less sensitive with respect to placements because really all the labor and time is in dealing with each part type, making sure it's the right one, barcoding it, getting it onto a feeder, mounting it on the machine, teaching the machine vision about the part, doing a test pick to make sure it's right. And that can be, for a part that's strange, it could be up to 10 or 15 minutes per part.
Starting point is 00:46:32 If it's just a 0603 resistor, it's usually about seven minutes or so, somewhere around in there. So at any rate, that's the key kind of price drivers in doing an assembly service. And you have some parts in stock. Yeah, I do. But that's kind of a, I don't want to say I call it a failed experiment.
Starting point is 00:46:57 It's kind of just an out there thing that is probably going to change. So when I started, there was no such thing as Common Parts Library. And I was just... Okay, what is the Common Parts Library? Yes, Common Parts Library was created by Octopart. And there's a consortium of people like Adafruit and SparkFun and small batch assembly and a bunch of others that have, um,
Starting point is 00:47:30 uh, that support it. And it is just a list, a sub list out of the millions of parts, electronic components out there. They've, they've said, okay,
Starting point is 00:47:41 um, here is the most common set. And so if you Google common parts library, you should get that OctoPART thing. So they basically just kind of put a stake in the ground and said, okay, if we all use these parts, it'll simplify matters. And so I had created my list before Comic Parts Library.
Starting point is 00:48:20 And I have since improved the site by using Octoparts RESTful API to look up and fill in information for parts. That's why I only need the manufacturer part number anymore. I used to ask for a lot more information. My goal is to ask as few questions as possible
Starting point is 00:48:39 to the user of the service. My parts library really is just, it's there. You can use it. But it is, I don't stock those parts. And if someone, say, wants to order them 75 at mega three 28s. I might have a reel of, you know, 150 at mega three 28s, or I might decide, oh,
Starting point is 00:49:11 I will go ahead and buy a reel and pass the savings on to that customer. But in the future it's probably going to be EOL. My, my, my little list is going to go away and it's just going to be um eol'd my my my little list is going to go away and it's just going to be the common parts library list that makes sense although that brings up the other part when i have made a small batch of boards kidding is one of the hardest things i think that is an area where people are going to be like, oh, how do I do this? Yeah, well, they do.
Starting point is 00:49:52 The rest of my workflow would be once you've entered the CAD and submitted it, then I send a price back, and then you pay on PayPal. And then I would send you a kit, some PDFs of labels. And this isn't uncommon. This is not uncommon. And the way people attack it is usually, sometimes they will just submit their BOM to a distributor like Newark or Mouser or DigiKey.
Starting point is 00:50:28 And those distributors have tools which will just take your BOM all in one go and then create an order for you. And you will get a list of, you will get the parts all kitted up for you by your distributor. Yeah, if you manage to find them all at one distributor, which never happens for me. No, and that's true. In practice, you will end up with a bunch of little plastic bags full of parts that you're going to have to sort through. And that is just one of those chores that you have to get through. And there's lots of efficiencies that you can apply around it.
Starting point is 00:51:17 But right now, I don't offer. Some people will just send me the stuff. If they ask me, they say, okay, can I just send the parts from Digi-Key to you? And I'm like, yeah, sure. That's fine. Drop ship. Yeah. They can do that. How is running this small business different from your years of consulting? Is it better? Is it worse? More lucrative? More fun? Well, it's more fun to be able to just directly run something that you've created from scratch. There's a lot of gratification in that. Now, on the other hand, it's a small business, so I'm chief bottle washer and everything else. So it is, I think the fun outweighs any disadvantages there are. It is, you do have to have the flexibility to work when there's, if there's a lot of orders coming in, you have to work a there's,
Starting point is 00:52:25 if there's a lot of orders coming in, you have to work a lot of hours if there's not a lot of orders and you don't have to work a lot of hours. In consulting, the relationship also is usually longer, for a longer period, you know, an engagement.
Starting point is 00:52:42 You know, the software engagements, software consulting engagements might be, you know, a few months or a bigger. Crunch times with the consulting, they happen, but I imagine they aren't as crunchy. They aren't as hard as they are with orders. Because you don't know if a giant order is coming in until it comes in. No. And also my orders are, you know, I restrict myself to low volume
Starting point is 00:53:15 just by virtue of the fact that my machinery isn't that big and fast. So there is an upper bound to the size of a job. So no single, no job is going to take me more than on the calendar a week to get in and out of the shop. That would be a big job. That'd be thousands of boards for me. Everything is smaller than that. it's i'll spend um on the count on the on the calendar maybe four business days um working on a job and so the the the the relationship is with the customers there's many more of them and the and the engagement period is much shorter. Lane mentioned his boards are colored purple, so he could see them in projects.
Starting point is 00:54:14 He could walk by and say, oh, they must have used my service. Do you have an identifier? Are you giving out stickers or somehow making a mark so that you can see when oh i ask people if they will um uh if it's okay to to tweet uh their boards pictures of their boards um and but sometimes they um they prefer not to sometimes they're completely proprietary and i can't um and um so i try to maintain, I try to do that. And I can only spot them sometimes. Like I did a big, a huge number of LED boards for the R2, what are they called? Astromech.net people and they buy and sell parts to each other to make um um astromechs um you know um anatomically correct life size uh make noise bleep and bloop and um so i made an led board for r2d2s for one of these um uh people who resell them to their
Starting point is 00:55:23 buddies making other r2D2s. So whenever I go to a Maker Faire, I will hunt down the R2D2s and I will look into their little LED sensors and try to determine whether my board's in there or not. Gaze into the eyes of R2D2. No. No, he's only got one eye, I think. Well, he's got that little one down there.
Starting point is 00:55:47 Yeah. And then also, there's one guy who does that has a board that SparkFun resells. So a board that I build is in SparkFun. SparkFun doesn't build it themselves because
Starting point is 00:56:03 it's not a high-volume thing. They just order from him, and I build them for him. So I don't have any really systematic way of knowing where all these boards go, unless somebody contacts me later. You need to put special parts on them, secret little resistors. Yeah. Oh, yeah, specially colored resistors yeah oh yeah especially colored resistors that would be cool it would order i'd like to do one in patterns um you know there's
Starting point is 00:56:32 nothing that says you can't lay down your layout has to be all rectilinear you could sort of uh i don't know perturb the um all the, the layout like a wave or something. It made it look like that whoever was designing the board was drunk. I saw a board like that recently where they did all curves for the lines. It was cool. Boldport does it. If you look at Boldport on theater webs, he's the guy who does the boards that are just beautiful,
Starting point is 00:57:08 are curvy traces. Neat. So let's go on to a couple of other questions. You mentioned Nixie tubes, and I know you've done a lot of work with them, a lot of kits. But before we jump into those, can you describe a Nixie tube as though
Starting point is 00:57:27 I'd never seen one? Well, a Nixie tube is a device for displaying information, typically, information typically most commonly the numbers zero through nine in each tube and it was in the heyday of the 60s this was in fact the best and only way to indicate numbers on displays it was before seven segmentsegment displays, before semiconductors. And it consists of a glass enclosure with a number of metallic elements inside. And the enclosure is evacuated, air is removed, and a little bit of neon is put in there. And sometimes a little trace amount of other stuff, gases.
Starting point is 00:58:30 And then the behavior, when you pass electricity through the wires that are adjacent to each other, they will glow. Where the electrons are coming off, if you apply negative on one piece of metal and positive on the other, the negative one, the cathode, will glow orange. And people think it's very pretty. And so Nixie tubes are, each little piece of metal is shaped like a discrete digit. And it has a wire, its own wire coming out the bottom or the end. And so you're going to have 10 little wires.
Starting point is 00:59:21 Each one is a digit, zero through nine. And then you're going to have another one, which is usually going to be grid, like a screen. It's going to be in the front. So when you look at the tube, you're going to see the numbers stacked. You're going to see this grid, and then you're going to see the numbers stacked. And so now you can, with proper drive circuitry, you can then light up any individual number and indicate any individual digit. So a display would consist of a number of these Nixie tubes, and then you could have as many as you need to display whatever you want.
Starting point is 01:00:05 So lots of people make clocks. So you need four typically for hours and minutes. I make one with seven. So I have hours, minutes, seconds, and tenths of seconds. I went on to design a driver board that can drive up to eight and really has a variety, separates the tube board from the driver board. So my driver board can drive a variety
Starting point is 01:00:40 of different types of Nixie tubes. Nixie tubes are no longer made um it's just new old stock uh and they are um the price has been going up steadily but not not not um exponentially some of the rare ones some of the larger ones will go for many hundreds of dollars each. But there's still lots of ones out. If you go on eBay and type Nixie, N-I-X-I-E, you'll see tons and tons of smaller ones. Many of them come from the former Soviet Union. Yeah, like all vacuum tubes, right?
Starting point is 01:01:20 Yeah, I wonder when the price gets high enough that somebody will start manufacturing them again. Yeah yeah that's a very commonly posed question uh and they do build vacuum tubes now uh again um but uh but so far no one has um uh announced that they're going to be building nixie tube clocks nixie tubes again now you can't just hook these up to the logic outputs of your microcontroller and away you go. These are difficult to drive. No, it's just a higher voltage, that's all. So you need some drive circuitry.
Starting point is 01:01:57 So basically, it's typically done, you find a source of the voltage that NEON ionizes at, which is 170 volts. That's a little higher than 3.3. Yeah. And so you don't want to hook that up directly. So you get a supply, 170 volts supply, and those are also available on eBay. And you run it through typically a P-channel MOSFET, a little transistor or FET, which has been rated at 200, 250 volts.
Starting point is 01:02:41 And then the gate is where you drive, attach your microcontroller. So the microcontroller can now just wiggle the signal at microcontroller levels, you know, zero to two and a half volts, and then that will do the job of switching the high voltage on and off. So that's how you do it. Okay. Why? Why?
Starting point is 01:03:16 I mean, they're cool looking. Why not? Yeah, why not? So many of these things that people do, it's kind of a why not sort of thing. You know, just, you know, my story was that I was, just got interested in them. And I discovered eBay. So eBay became kind of this opiate of reliving, buying old junk from my, you know, that I hadn't been, first became acquainted with as a kid, and Nixie tubes were one of them. And so I just kind of started buying Nixie tubes. And then of course, you're confronted with, oh, how do I activate it? So then I started
Starting point is 01:03:59 perfecting high voltage drivers, and then the whole controller board thing. And that really just started out as something to entertain myself. And so that's kind of how it got started. And now it's gone on through, oh, it started pre-Arduino days. So I was using a PIC back then. And when Arduino started becoming popular, I thought, okay, oh, it started pre-Arduino days. So I was using a PIC back then. And when Arduino started becoming popular, I thought, okay, well, I'm an embedded developer for a living.
Starting point is 01:04:34 And so I need to check out this Atmega328 thing and see it would be probably cool if I made a Nixie Tube clock driver board, which people could then use and modify the code via the Arduino IDE. Although I personally load the Arduino IDE, but I found ways to just not conform with it. You know, you have stick your stuff down
Starting point is 01:05:04 in the libraries in a file directory called libraries. And then you can just sit there in your choice of editors and then just hit build in the IDE
Starting point is 01:05:18 and it will take care of compiling it and downloading it via AVR dude. Oh yeah, there are many ways to avoid that IDE which is not. Take care of compiling it and downloading it via AVR Dude. Oh, yeah. There are many ways to avoid that IDE, which is not pretty. Now, there are other things that are happening that I'm kind of, we could segue off into, but that's probably under future things.
Starting point is 01:05:41 So, I don't know. I don't want to go deviate from your script there. Oh, well, you know, I have no idea where we are in our script, so it's fine. Okay. Well, so while we're talking about that, I kind of was looking for a new microcontroller to start using because 320-its are, well, I'm out of flash, basically. You know, 32K isn't cutting it. And, you know, the software, the whole software itself
Starting point is 01:06:14 is kind of if-deft beyond reason to have it all fit for all the different versions of tubes. And so I've been looking at uh the new atmel cortex m zeros um i'm not a shell for atmel um i just am looking at them objectively and it did help that they were kind of just giving these away like candy at the last hackaday event i went to um so they um what are they called the mail um um explained x letter x planed boards so i'm looking at the d ml d20 which is the uh cortex m0 and the id super low power or the D20s? Yeah, and Arduino has their zero, which is based on it. And they're taking a little bit of a different spin
Starting point is 01:07:12 in that they put the debugging hardware on the board. And your target, of course, is not going to have it, but the zero, your target, of course, is not going to have it, but the Arduino Zero and the Explained D20 has it on there. And I was thinking, what are they doing this for? that the writing, the people really like to have source level debuggers and be able to set breakpoints. And I have to admit that comes in handy. So that is why they did that.
Starting point is 01:07:57 And now I'm looking at the at Mega Studio 7, the latest piece, their IDE, which is based on Microsoft Studio, and they're giving that away for free, so the price is right, so I'm giving that a shot for future designs. Cool.
Starting point is 01:08:19 I think that also is supported by the embed online compiler, which is good and bad. It doesn't have source level debugging, but it does mean that if you ever need to run a class with a whole bunch of them, you don't have to deal with everyone's computers. It's all online. You do have to deal with everybody's computers not getting to the internet. That's a separate issue. Yeah, more and more stuff is like that. So you, speaking of classes, wasn't that like a seamless
Starting point is 01:08:48 transition until I started talking about it being a seamless transition? You do teach some classes. Yes, so I'm co-located with the Nova Labs Makerspace in Reston, Virginia. And the way I contribute is
Starting point is 01:09:04 to hold classes. And I do recent ones. I've done our surface mount assembly. So I take people in. And in about two and a half hours, they walk out with a completely assembled little display board. And the goal there is to make people completely unafraid of surface mount, because that's kind of now a prerequisite to working with stuff if you're ever going to design your own circuit boards.
Starting point is 01:09:38 And if you're ever going to do them in any volume, it's going to be surface mount. So that's one. And then I have an Eagle CAD class, and that kind of uses the same boards. These boards are all AtTiny85 based. And in that class,
Starting point is 01:09:58 it's, again, a three-hour class, and basically people come in with Eagle running on their laptops and then i give them a bag of parts like in the surface mount class but they're through hull um you know just not to freak them out and then they design their own we all design sit there and step there we design the same little a tiny circuit which links to LEDs and it's hooked up to a battery. And it's going to be another one that's going to be Eagle 102,
Starting point is 01:10:32 which is going to be the surface mount, a surface mount version of the same thing. And we'll go get into designing libraries, parts, pad designs, land patterns for parts, because that's kind of an intermediate task everyone needs to master in any
Starting point is 01:10:53 CAD design. And I just, I teach Eagle because I know it. I catch a lot of guff from people for not using KiCad. It's not online. It's not free.
Starting point is 01:11:08 It's not open source. It's not. It's actually quite functional. So I can see why you would do it. Yeah, you've got to go with what you know, and you have so many hours in the day to teach yourself new stuff. And maybe down the road I will start using KiCad and start teaching it. Well, I am about to wrap up. Christopher, do you have any questions?
Starting point is 01:11:37 Why am I always stumped on this? I don't know. I mean, we didn't get very far through our outline, so there are plenty there. I just realized it's lunchtime and my brain sugar went like, oh. Your brain sugar? You have no sugar in your brain and now you're toast. Caffeine is not enough.
Starting point is 01:11:57 The brain sugar. Brain sugar baby. You look, I'll ask another question. Okay. We'll pretend like we're professional or something. Yeah, I'll ask another question. Okay. We'll pretend like we're professional or something. Yeah, yeah. We're all over this. So we've talked about makers,
Starting point is 01:12:11 and we've talked about your engineering career. What do you see as the difference between a maker and an engineer? Well, makers, many, many engineers are makers, and many, many off-the-street people are makers. So it's people who, I think, see the commonality as people who want to learn. They are self-motivating in that they want to know more about all these different technologically-driven skills and learning the tools. And it may be a rebellion against everything becoming all shrink-wrapped
Starting point is 01:12:51 and nothing's repairable anymore. So an engineer is really a professional maker that's been doing a specialty for many, many years, or at least has that aspiration when they're starting out to do the same kind of thing. So makers can just be anybody. All you have to do is come with a positive attitude and want to learn. That's kind of the fun thing of hanging around makers, because everybody is kind of up that open-minded ilk.
Starting point is 01:13:27 Fair enough. All right, I thought of something. Okay. So you're in Virginia. That's not considered the epicenter of technology, is it? Or is there a big community there? I have a follow-on question.
Starting point is 01:13:42 Oh, well, in fact, I thought the same thing. When I moved here in 2008, I didn't know anybody, I have a follow-on question. needed your clearance. So I kind of went through this funk of not knowing anybody. And then once a couple years elapsed and things like Meetup got created and the NovoLabs makerspace got created, there's now no problem. It's very evident that
Starting point is 01:14:18 there's lots and lots of people doing techie stuff. And the Beltway is full of people doing all kinds stuff. And the Beltway is full of people doing all kinds of different sorts of software. A lot of it's security-related. A lot of people in the maker space are doing security-related stuff.
Starting point is 01:14:38 When you go to a dinner party here, you kind of just don't walk up and say, so what do you do? And you might be able to ask that, but you basically, you'll get a What's your clearance? Yeah, I work for the agency. Right. Which agency?
Starting point is 01:14:56 Best you not know. Do you feel like things have, I mean, it's kind of obvious that things have changed, but it used to be that if you wanted to work in tech, you were either in the valley or perhaps in seattle and now you can run a business like small batch assembly and be pretty much anywhere because of just the internet and and uh the way we communicate now i mean, people don't even probably know where you are necessarily. Yeah, that's true.
Starting point is 01:15:27 It's like in a box, right? Yeah, that's true. Absolutely. I mean, it's a nice, I think that it's nice that we're kind of within a few time zones of each other. But really the internet and UPS and FedEx and even DHL internationally is basically commoditized to working with physical stuff pretty easy.
Starting point is 01:15:53 And so it is really less and less important where you are. So like all the Hackaday people live, for instance, they live in, they don't even, I don't think any of them live in the same state. But they all run Hackaday and they get together physically sometimes, but
Starting point is 01:16:14 for the most part, they're, they're all over the place. Yeah. So, no problem. Well, Bob,
Starting point is 01:16:23 do you have any last thoughts you'd like to leave us with? Oh, I don't know. Follow your passion. If you're basically not happy, you've got to figure out what you're good at and what you like doing. And it's okay to change your mind. It's okay to take a really long time. Sometimes I think I'm still trying to figure that out.
Starting point is 01:16:52 Do a wide variety of things. You know, take little tastes of experiences from all sorts of things. And don't settle down too early you know don't get yourself all encumbered with responsibility um and uh be kind it doesn't cost a damn thing i appreciate those words of wisdom, all of them. Those are great. You also had a coupon for listeners of Embedded FM if they were going to try out the Small Batch Assembly. Do you want to tell us about it? Oh, yes. Very simple.
Starting point is 01:17:36 Mention that you are a big fan and you listen to all the Embedded FM podcasts and you sat to all the Embedded FM podcasts, and you sat patiently through this one to hear that you'll get a 20% discount on your order. On your first order. On your first order.
Starting point is 01:17:55 Cool. And so just go to them and, well, it'll be in the show notes, right? Oh, I wasn't, no, no. They have to listen. Oh, smallbatchassembly.com? Oh, I wasn't going to. No, no. They have to listen. Oh. Smallbatchassembly.com.
Starting point is 01:18:09 Oh, no, no, no, no. The website will be in the show notes. Yes. Yes, of course. The coupon will only be here. Oh, yeah, okay. That's cool. Yeah, because I guess the websites live forever, and they'll read that in three years.
Starting point is 01:18:21 Like, oh, where's my discount? You can turn it off. We have the power, the editor. All right. Maybe I'll mention that there might be a discount at the end of the show. That's probably better. All right. Okay.
Starting point is 01:18:34 We have a plan. Just do suitor VI, the PHP. My guest has been Bob Cogshaw of Small Batch Assembly. The coupon is that you mention Embedded FM and get a 20% discount on your first order with Small Batch Assembly. So, it's even cheaper to try out. The website is www.smallbatchassembly.com. And thank you so much for being on the show, Bob. Oh, thank you.
Starting point is 01:19:07 It was fun. Thank you also to Christopher for producing and co-hosting. And of course, thank you for listening. We do like our listeners. If you'd like to say hello or send us robots, do hit the contact link on Embedded FM.
Starting point is 01:19:27 Our email, alternatively, is link on Embedded FM. Our email, alternatively, is show at Embedded FM, although that contact link is safer, so do that if you can. I do have a final thought. This one from Norman Rockwell. Isn't that sort of weird? And he says, the secret to so many artists living so long is that every painting is a new adventure. So you see, they're always looking ahead to something new and exciting. The secret is not to look back. That didn't work for Mozart.

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