Embedded - 123: Banished from Running Linux
Episode Date: October 28, 2015Bob 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)
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
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
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
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.
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.
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.
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?
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.
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
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.
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
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.
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,
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
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
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.
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.
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
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
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
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,
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.
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
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
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.
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.
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.
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
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.
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?
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
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.
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
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.
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
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.
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
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
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.
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.
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
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.
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
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.
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.
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.
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?
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,
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.
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.
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
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
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.
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.
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,
it was nine
to ten
to eleven months.
It trailed off,
the final tweaks.
Oh, and
the pick-and-place machine
runs Windows XP
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,
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.
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.
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,
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,
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.
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
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.
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?
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.
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
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,
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
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
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?
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
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
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
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.
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?
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.
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.
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.
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,
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.
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
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.
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.
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.
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,
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,
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.
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
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,
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.
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.
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.
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,
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.
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
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.
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
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.
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
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
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,
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
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.
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.
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.
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
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?
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.
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.
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?
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
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.
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
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
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.
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
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
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.
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.
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
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
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.
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,
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,
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
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.
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?
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.
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,
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
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.
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.
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
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.
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?
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.
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.
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
for the most part,
they're,
they're all over the place.
Yeah.
So,
no problem.
Well,
Bob,
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.
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.
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.
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.
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.
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.
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.
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.
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.