Embedded - 146: The Loyal Opposition
Episode Date: April 7, 2016Philip Freidin (@PhilipFreidin) spoke with us about his BLE platform OSHChip, debuggers, and consulting. Planet Labs is sponsoring a contest! Hit the contact link to enter. Also check out their caree...rs page and apply to embeddedfm@planet.com. Both the OSHChip and the CMSIS-DAP SWD programming module are on Philip's Tindie store. While Keil is the suggested compiler for now,  you can also use mbed (tutorial). The system is wholly open source, you can find everything at github.com/oshchip. (Philip gave anHDDG talk about OSHChip; we didn't talk about it but I thought it was interesting.) Philip's company is Fliptronics. Under Tips and Tricks, that site has his advice on consulting.
Transcript
Discussion (0)
Welcome to Embedded, a show about the many aspects of engineering.
I'm Elysia White. My co-host is Christopher White.
This week, we are talking to hardware and software engineer Philip Frieden about his OSH chip,
a way to make the Internet of Things easier.
Before we get started, Planet Labs.
You remember them? We talked about them last year. They make satellites that image the entire earth
daily. They're looking for embedded engineers to work on their onboard software for their newest
flock of satellites. Your code can go to space. I went to Planet. I got a tour so I can say some things from experience. These
are people you'd want to work with. We had Alvaro on the show not too long ago and Sean was on the
amp hour with his robot pet. That was hilarious. You should check that one out. They are both
really nice people. In fact, everyone I met there, I wanted to talk to more in the tour. It was all
satellites and art, space and beauty. It was really kind of cool. It made me want to work
there, though the commute to San Francisco is not in the cards for me. But for you, well,
now's your chance. Go get your foot in the door. Take a tour. Apply. Check out their careers page, planet.com slash careers. Email them. Email them
with embeddedfm at planet.com and I get credit. Yay. Don't be shy. And for putting their job
advertisement in the show, Planet is letting me give away their stuff. Two copies of my book and
two t-shirts will be awarded. They may also send some of those Planet emblazoned laser-edged
coasters, but I'm
going to skim them for myself so I shouldn't have mentioned them. To enter, email, tell me where you
would put your satellites, where you'd point them. Would you check out the glaciation and monitor
global warming? Would you look at river mouths and how their pretty sedimentary patterns go and try to work out what that means for shipping.
Weekly images to curb illegal deforestation?
Hmm.
Daily pictures of sun-drenched white sand beaches?
That'd get you through the afternoon doldrums.
The winner will of course be chosen randomly,
so these are all just for my amusement.
Get your answer in by April 22nd and go over to planet.com slash careers and apply for a job.
Oh, email us show at embedded.fm, you know, you know, or hit the
contact link, whatever. Hi, Philip. It's great to see you today. Hi, really glad
to be here. Ah, could you tell us about yourself?
So, I'm an engineer
that I do a mix of hardware design, software design and systems architecture
I've lived here in the Bay Area for about 31 years
I've worked for Advanced Micro Devices as a CPU architect
I worked at Xilinx doing architecture of FPGAs for about five years.
And for the last 20 years, I've been doing engineering, both writing firmware and designing hardware for various companies in the Bay Area.
Cool.
Well, let's get to lightning round. And I know you know what that is, where we ask you questions and we
ask for short answers and then we all blow it because we ask for explanations.
I'm totally unprepared.
Philip is in the studio with us and he went through the list of questions.
So, he may actually be prepared.
Should we bring back the dinosaurs?
No.
It's the first no we've gotten.
Makes you want to ask for more, but I'm going to go on instead.
Kyle or I-A-R?
Kyle.
What programming language should be taught in CS 101?
C.
Really? C.
Really?
Absolutely.
You listen to podcasts all the time.
And which one is your favorite?
No ingratiation required.
So I'd say I have two favorites.
It's this podcast and the Amp Hour.
Nice, nice.
Very diplomatic.
Yes. Yes.
Well.
Favorite processor, living or dead?
AMD 29000, and a close second is AMD 2900.
Okay, I don't know what either of those are, so.
So, brief.
So, back in the bad old days,
when people were trying to design CPUs and they didn't have just everything on a single chip, they used something called a shifter, and maybe some IO control,
bit slice is a four-bit slice vertically through that architecture.
And then if you want to build a 16-bit CPU, you put four of them side by side.
If you want to build a 32-bit CPU, you put eight of them side by side.
Okay.
So, you know, I mean, eventually the ability to put more transistors on a microcoded architecture and so you wrote you know
so if you wanted to build something like a pdp 11 or a deck vax or a data General MV8000, there'd be a row of bit-sliced chips, some memory that held
the microcode, and that then customized it to be a specific architecture. Cool. I'm glad you asked.
Yeah, me too. The other processor, just as much a favorite for me is the AMD 29000,
which was the first commercial RISC CPU. And I was one of the architects for that processor.
And it pretty much nailed the lid on the coffin of the bit-sliced products.
So the bit-sliced products and their killer. Yeah. I was actually brought into the 29,000 team as the loyal opposition because I was
a born again user of 2,900 and microcoded architectures and that's antithesis for risk.
And so I was brought in as the loyal opposition, but I'm more faithful to doing the right engineering than being tied
to a specific architecture and I could see the writing on the wall.
And I was given a fairly responsible position within that team and did quite a lot of very
interesting stuff on that architecture.
And yet that's not what we're going to talk about today.
Why?
Why not?
Yeah, yeah, I understand.
Right, I have un-lightning, lightning round.
Is FPGA design hardware or software?
Definitely hardware.
All right.
Are you hardware or software?
50-50.
I'm not asking this. Is Australia up or software? 50-50. I'm not asking this.
Is Australia up or down?
Australia is down.
Oh, I thought with that accent we'd get a different answer.
Maybe that's just a forecast.
I left Australia for Silicon Valley.
I've never regretted it.
Hacking or making?
Making. Okay.
That was a lot of fun doing the lightning round, but I have a surprise for you. I brought a few of my lightning round questions today.
Uh-oh. Okay, you ready? Yep.
Okay, one word answers, no discussion.
I don't think that ever happens.
Favorite brace style?
For functions or for conditionals?
I'm inconsistent.
Open brace should always be on a new line, except for else's.
And if's.
I go back and forth.
My current client.
You know that brace styles have names.
I know they have names, but I don't remember what the names are.
There's Josh and there's Katrina.
Big Indian brace style, little Indian brace style.
There's wrong and there's right.
Yes.
We prefer the right method.
Not one true brace style, one tbs generally conform to
conform to uh surrounding code yeah okay hexadecimal or octal hexadecimal okay
no question how many copies of knr in your household
at least three do you have any down here? No. Alright.
What was your first computer? Apple 2 Plus.
I want to say an Apple when I was little, but it was never my computer.
So my first computer was an HP
Omni book in college that I bought with my own money.
Christopher went to pick it up
with me, didn't you? I have no idea.
First
oscilloscope.
It was an HP, and it was an
HP oscilloscope, and it remains my
favorite. First oscilloscope used or
owned? Oh, good
question. Used would be some
very old CRT thing in
college. HP probably.
Can't remember.
No names.
No Tektronix?
Tektronix was later.
First programming language?
Basic.
AppleSoft Basic
with a close second 6502 assembly.
Favorite
Pentamino? Is that a horse? It's a horse, right? Close second 6502 assembly. Favorite pentomino.
Is that a horse?
It's a horse, right?
I think it's a horse with five legs.
The correct answer is R, as in the letter R.
Okay, we're going to need some background on what a pentomino is.
Are you sure it's not a pirate?
I mean...
Yeah, a pentomino is the most wonderful Pantomino in the game of life.
Right, right.
Conway's game of life.
Yeah.
Okay.
Is there a compelling reason to use C++ in an embedded system?
Are you trying to get me in trouble?
I desperately wanted C++ last week. It wasn't even with a screened system,
but we were doing three different kinds of memory,
and we needed to track things in all three kinds,
and they were only subtly different.
And I found myself truly annoyed to be copying code,
and I didn't have a good way to interface them separately.
So I really wanted to use a class last week.
And after talking with Dan Saxmore about type checking and some of the simpler ways to get into C++
I am starting to find myself annoyed to be stuck in C.
So, yeah. Good answer.
Yes, compelling. No, it's not a requirement okay i did i did nudge my client
and and say this would be better in c++ and uh they don't care so i did not stamp my tiny feet
and say you have to do it in c++ is that that it? Yep, good round. Alright, so let's go into the
question, what is a day in your life
like? I sleep in.
Eventually I get my act together and I'll
go set up, get to the computer and look at
what's on my list of things
to do. And I'll just, you know, start working. I often, I'm very much a night owl. So I sometimes
won't start work until six or seven o'clock in the evening and work till maybe four or 5am in
the morning. And I really like that because I don't get any interruptions that I can get in
the zone and just really, you know,
just soldier through whatever technical challenge I'm fighting with.
Okay.
So what is in these boxes that you've brought?
So I brought, since we're talking about OSH chip,
I thought it might be worthwhile to bring an OSH chip with me
and give you one to have a look at.
So I will now hand it to you.
It's hard to reach across the room with these boxes.
We're all in corners so that we can cover mics separate.
But look, you get to hear me unboxing things.
Isn't that cool?
Tell us about the OSH chip.
Okay.
So OSH chip is an idea that came to me on the 4th of November in 2014.
I'd been just doing general hobbyist type electronics, putting stuff together on proto boards, sending designs off to OSHsh park to you know create pcbs and um i'd been thinking for some time about
uh how electronic hobbyist type stuff has changed over the years um you know i started as an
electronic hobbyist uh in the late 60s early 70ss. And it's certainly served as a wonderful education along
the way. I mean, that's been my career now. But there's been some dark times when the hobby seemed
to just sort of fade away, and then it came back. And I was looking at the types of technologies that I use as a professional
and some of those which are not really accessible to hobbyists things like
fine pitch circuit boards many of the surface mount components you know when I grew up all
the electronics was through hole and you know you the stuff. Nowadays, when I drop a resistor on the floor, I don't even bother looking for it because I'll never find it. maybe just out of reach for hobbyists certainly the smallest of the surface mount parts any of
the bga or you know no lead type packages are pretty difficult to work with let's see oh the
other one is rf design since i've done a lot of work with 2.4 gigahertz RF. The actual design of circuit boards, antennas built in, etc.,
can be quite difficult.
And so what I wanted to do is come up with a product
that basically encapsulated the stuff that was difficult
but still exposed all the exciting capabilities to a hobbyist.
And in the process, I also came up with this idea of making it like an integrated circuit, just as a packaged device.
And so that was the origin of the OS chip idea.
And so it's a BLE chip.
Right.
That looks like a DIP package
Yes
And so it looks like one of those old style
Where old is like 19
It's called a 16-pin DIP
Alright
DIP stands for Dual Inline Package
Kind of like the basic stamp
Very similar
It's a breadboard compatible device
Yes
Did a bunch of things but inside this
chip looking thing um there's actually a board and lots of other pieces that allow
programming and um all kinds of ble sorts of things right so. So I'd like to just take a step back.
So when I started working with electronics,
14-pin and 16-pin dips were standard technology,
so I came in at the point where the dip package was standard.
And typically you got something between four and a hundred gates
worth of logic per package so if there's a four input at four and gates you got four gates the
most complex thing you could get in a 16 pin package was a four bit counter with preload which
might be equivalent to a hundred gates uh osh chip is physically the same size as that,
and it's probably got more than a million gates in it.
It has a quarter of a megabyte of flash memory and 32K of RAM.
And, you know, something that I always do is, you know,
I reflect back on my history.
When I had my first personal computer, which was the size of a tower PC these days, maybe a bit bigger, it had 4K of 12-bit memory, and the processor had one register called the accumulator whereas OSH chip which easily I could hold a handful of them
right I mean it's a 16 pin dip is a 32-bit processor as I said with a quarter of meg of
flash memory I mean that was the size of our disk drives back then if we had a disk drive
so it's a massive amount of processing power in a tiny package. And the company that makes the chip, Nordic Semiconductor, also puts on a normal, broad selection of peripherals, just as Atmel or Microchip does. is a general purpose processor board, you could not even turn on the Bluetooth radio and it's still
an amazing amount of technology packaged really into a tiny package. Now, lots of other companies
make products with the same processor chip I'm using, but almost all of them are surface mount packages in themselves. So, you still need to go off and make a PC board
before you can use any of the other modules. There are a few breakout boards, but I have to
admit the DIP package is very alluring. It's one throwback to simpler times, but more than that, it is encapsulated in a way that looks finished, not like a breakout boards have these 25 thou square rectangular pins. And those actually damage those breadboards. Plus, they're difficult to push into the breadboard because of the size. The breadboards are designed for IC pins. And so a major part of the engineering effort,
way more than I ever expected,
was the effort to actually design the pins that OSH chip uses.
That's very surprising.
When we talked, when Philip and I talked about OSH chip,
and he said this breakout board thing,
and you're not supposed to just
shove pins in i'm sitting here going you're not but i do that all the time yeah yeah i think we
probably have some severely damaged boards yeah well if you push it in and just leave it there
yeah forever you're fine but if you're plugging and unplugging those types of connectors it's
probably a limited cycle count.
Right, yeah.
Because the pins get sprung apart.
And in fact, the real problem is when you put something else in like a normal IC.
Oh, and that's going to be loose.
Right.
Yeah.
Or you'll just have, yeah, you'll have faulty connections.
But one of the problems with the DIP packages is you have to have the grippers to pull them out or you bend them.
Yeah, you've got to be really careful.
I usually just go in with a small flat blade screwdriver at each end.
That's okay.
That is what I do, but I figured that was wrong.
I have done that incorrectly.
You have to go in from both ends.
Yeah, you have to go in from both ends.
Otherwise, you just bend the back ones back
yeah the normal thing that goes wrong if you try to just pull chips out with your with your fingers
is you'll manage it'll be stuck and then it'll suddenly come through free it'll flip up and
you'll end up with a row of inline holes in your thumb never done that one no i've done that one
and and so it's painful.
And the pins on OSH chip, I'm sorry to tell you, are actually pretty sharp.
And so if you're not careful, you can get a row of precision-placed 100,000 spacing holes in your thumb if you're not careful.
I'm sure in California we'll have a warning label for that soon.
Great.
Yes.
But inside this is a Cortex-M0, is that right?
Yeah, 32-bit ARM processor.
Okay.
And when you send it to people, how do they program it?
What is their unboxing experience like?
So, I'm embarrassed to say that this is far from finished in terms of where I want to be with
OSH chip so for someone who already understands how to work with the Nordic chip and has already
worked with other eval boards for Nordic then they'll unbox it and they'll know what to do
which is probably just connected up to their Kyle or GCC compiler and off they go.
For people who haven't got that experience, I'm working diligently to make that experience better.
But at the moment, there's not a lot of help and there's a lot of placeholders on my website
that are tutorials coming soon, but not there yet.
So, my long-term goal is to actually have a very large range of compiler options all with their own tutorials, etc., so that someone can work with it
regardless of what their environment is.
My go-to design environment is the Kyle compiler,
which has a eval version that you can download for free
from Kyle's website.
And it has a restriction of 32K of compiled code which means you're only going to use
a small part of what host chip potentially has to offer but i've been working with these nordic
chips for i don't know four or five years and i've yet to write an application that blew the 32k limit
so on the nordic chips do they have i know on some of
them you have to download bluetooth you have to have the bluetooth firmware as part of your code
this is not the case no okay so so yeah so nordic has this very interesting concept called soft
device so normally you think about devices like a uart or a counter timer and it's just part of the hardware built in. The Bluetooth hardware and software combination
is their way of delivering
a flexible and evolving implementation
of their Bluetooth standard. So the chip
has the critical hardware that you can't
get by without, but the rest of it is software
which gets loaded into part of that flash memory.
And they have several different versions of soft device depending what you want to do.
So if you wanted to do just a Bluetooth device, they have one soft device. If you want to do a Bluetooth central,
which is typically done by a phone,
that's a different soft device.
They now seem to be merging towards a single,
somewhat larger soft device that does both functions.
So that can be as big as, I think somewhere between 80 and 100k bytes and you'd load that in
to the low end of memory of the 256k and then your 32k of your code then sits above that so in fact
you know all of the overhead of the code space that the soft device takes up doesn't cut into the 32K of what you're allowed to do.
And that soft device seems to run at least a basic scheduler, not a full RTOS, but it has a lot of RTOS features, timers and whatnot. So some of that stuff is actually just the general resources of the
processor that it needs as part of implementing the Bluetooth standard,
right?
There are scheduling type things that Bluetooth has to do to maintain a
link.
So it uses some of those resources as well.
And I think you can do other soft devices that are in the 2.4 gigahertz range. I think
was the other big one that works with heart monitors.
So the actual 2.4 gig radio
that's in OSH chip, well it's in Nordics chip, is
able to do four different protocols.
There's the Bluetooth low-energy protocol,
which is very much targeted at the health and fitness market.
Wearables.
Right, wearables.
There's Ant, which is the precursor to this,
and Nordic has always been a primary supplier of the silicon
for the AMP protocol.
So it made sense for them to continue supporting it with the chip that I'm using.
So that's a different soft device.
It turns out, actually, you can't run that protocol, though,
on OSH chip because Nordea actually sells two different variants
of the same piece of silicon,
one that allows the AMP protocol to run and the other one doesn't, right?
And it's like 20 cents more expensive for the Ant one,
and that 20 cents goes back to the Ant company, I guess.
Licensing.
Right, as licensing, right?
So there's a mystery bit somewhere in flash memory that the Ant soft device will check to see if it's on the right piece of silicon that caused 20 cents to go back to Ant, Ant Central.
So anyway, that's the second protocol.
And as I said, the Nordic chips can handle it if you buy the right variant.
I've had only one customer ask for it.
And so my choice not to include it doesn't seem to have been a bad decision at this point.
It meant 20 cents less for my cost of goods.
The other two protocols are something called Gazelle and Enhanced Shock Burst.
So these are both proprietary protocols that Nordic has had in their previous generation of products that used 8051 microprocessors, the 24L01 and 24LE1. le one and those protocols actually they use the same band as bluetooth low energy and wi-fi etc
but they actually run significantly lower power if if you're careful with what you're doing and
those protocols are actually used by companies like logitech and microsoft in their wireless
keyboards and mice so you know there are millions of chips out there running this either
enhanced shock burst or gazelle protocol.
That is a marketing coup, enhanced shock burst.
Well, there was the less enhanced one.
The regular shock burst.
It's less painful, but slower.
Okay.
Who is the audience for Oshchip?
So very much my goal has always been for the hobbyist.
So I've never had the idea that this would be a high-volume product.
It was really designed, as I said, to do several things.
The main one was just encapsulating technologies
that are difficult for hobbyists to work with but i would say almost as important to me was i've been
frustrated watching uh hobbyists working with environments like uh arduino and you know other Arduino and other environments where the only debug they had available to them
was flash a LED or do a printf.
And the technologies of proper being able to single step through your source code,
set breakpoints, watch variables while the processor is running at full speed.
That whole environment just doesn't exist for hobbyists.
And so very much from the beginning of this project was I wanted to enable all of that
for hobbyists as well.
So I would say that my goal is still I want to serve hobbyists, but I want to try and give them access to tools that they are not being offered by other people.
So I don't think you'll go out and find any other processor boards for hobbyists where the recommendation is go use the Kyle compiler.
It is a bit of a big step to start with.
Kyle is not entirely obvious,
and both Kyle and Nordic have a huge number of examples,
which is fantastic for a professional engineer,
but a little overwhelming.
Right.
So on my to-do list will be the tutorials aimed at.
So the problem is the Nordic stuff is not,
their documentation and whatever is not designed for hobbyists, right?
It's designed for professionals.
So I'm going to take it upon myself to create the tutorials
to introduce hobbyists into that environment.
How about the open source tool chain, GCC Eclipse?
So that's also something I want to support.
Fortunately, several of my early customers are actually already taking that part of the
problem on because I haven't had time to do it.
So for OSChip, there is obviously a website, which is OSHChip.org,
but there's also OSHChip on GitHub, right?
And so just GitHub slash OSHChip.
And there you will find not only all of the design files, schematics,
gerbers, et cetera, for OSchip because it's open source.
But you'll also find some projects done by some other people
other than me that are hosted now within that directory structure.
So one of them has gone off and worked out how to get the Yotta compiler
system, which is based on GCC going.
Another person is, I guess, doing an Ubuntu, just bringing it up under Ubuntu.
And my contribution in that area is I've done the minimal to bring it up within the embed
system.
Oh, okay.
I was going to ask about embed.
Of course, that has the problem that you were mentioning,
that it's Blink-a-Light or do printf.
You don't get to look at the registers or any of the things you might really want to do.
Right.
So the embed people are working on that, but they have different goals from me.
The embed system has a very broad range of products that are all licensed as embed enabled.
Well, it's ARM.
ARM does embed, and so it's ARM chips, basically.
Right.
So there is a certification process to go through to be tagged as an ARM bit-enabled product.
And OSH chip has all the resources to do that other than me having the time.
And so I know what needs to be done.
I just haven't done it yet. But as an interim thing, because OSH chip uses exactly the same chip as Nordic's primary development board, which is an embed enabled board,
you can basically go to the embed site and just says here is the new pin assignments.
I mean, that's really all that's changed.
Right.
So it's a bunch of pin assignments.
Oh, and there's a trivial startup function that reassigns the UART to a different pair of pins.
And there's an example program that blinks LEDs, unfortunately. But it does show, you know, you can
basically just go to the embed site and within five minutes you can have
it compiled and building a project that downloads into
Wastachip. And so that one's not space limited, but it is
sort of debug limited. Right, yeah, it doesn't have the debug stuff.
The other thing that the embed environment has
is a very good tutorial and set of libraries
for Bluetooth Low Energy.
It also has a lack of dependence
on what operating system you're running.
Right.
I mean, people ask why do I suggest embed
when it has so many disadvantages, and it's because I don't have to ask you what operating system you're running. Right. I mean, people ask why do I suggest embed when it has so many disadvantages,
and it's because I don't have to ask you what operating system you're running. Right. If you
have a browser, you can run embed. And sure, your code is on their site, but if your code is open
source, what do you care? Right. You just have to download it occasionally so you have a backup.
So, yeah. Yes. I think that's good. One of my questions for you was marketing and being embed enabled, you at least get on their page.
You said you have customers.
Yeah, surprising.
And I know you have a TV store.
How are you selling it?
How are you doing the marketing?
So, I'm doing very little marketing myself.
There's obviously getting onto a podcast like this with you is wonderful.
And the Amp Hour had you on not too long ago, a little bit.
They briefly mentioned my product last year.
I actually was on the Amp Hour and if people want to hear
a very strange podcast, it's number 103,
which was I think two or three years ago.
Um,
but,
uh,
I would say that the bulk of my,
uh,
marketing help came without my asking for it from,
uh,
the hackaday site,
basically around middle of last year,
I started a mediocre job of documenting my Ostchip project.
I realized I was just doing a lot of stuff that might be interesting in
particular, just the design process, getting the pins designed, et cetera.
And so I started documenting it on the Hackaday IO site.
I entered it into the Hackaday prize.
I'm amazed I didn't win.
I don't know.
There was some other project that had value to humanity,
which somehow eclipsed my little project.
But right around the time that I was about to release OSH chip for sale, the Hackaday site went and made my project a featured project on their editorial site, hackaday.com.
And they left it up there for about a week. So for about a week, whenever people went to hackaday.com on their homepage,
there was a link over to my project on Hackaday.io.
And then a week or two later, Sophie Kravitz, I don't know if you know her.
Oh, yeah, Sophie.
Yeah, yeah.
So she started a new, I guess, monthly newsletter.
This is in late January of this year, which goes out to 110,000 Hackaday members.
And she went and put OSH chip on the front page of that. And basically, with no effort or even request on my part, several people at either Hackaday.com or Hackaday.io basically got the message out about the product to 100,000 hobbyists.
Well, it's gratifying, too, because that in and of itself is kind of a validation that somebody finds this interesting enough that they want to tell somebody else about it on your behalf without you even prompting.
Yeah, it was, I could not have dreamed
of having a product launch that good.
It was just phenomenal.
So, you know, that was kind of the initial burst.
At the time that that happened,
I did not have a proper storefront.
So I had a website that said, here's the product, and it said, send me an email if you want to buy some.
But the actual exercise of setting up a storefront was yet another web exercise I hadn't yet committed myself to.
But I'd always had in the back of my mind that Tindy might be a good option.
And so I spent some time staring at the options available to me. So sell on Tindy, sell via Amazon,
sell directly on my website or sell on eBay. Those seem to be the ones that most people sort of pick and choose between. And I ended up going with Tindy for several reasons.
Amazon, I just couldn't make my way through all the rules and regulations and complexity.
I'm sure for people who have lots of products to sell and are doing high volume stuff, it
makes a load of sense.
But there was just too much for me to understand to make sure that I picked the right options.
Selling on eBay, it's certainly a sales site, but there was no clear way that people would ever find it unless they already knew about it.
Doing my own storefront was, again, too hard.
And Tindy, I'd be sharing space with a bunch of friends, right? All those other Tindy people selling product, and my product, I think, fits into that environment perfectly.
And the actual, now that I've been on Tindy for slightly over a month, not any massive sales.
I think I've had like 40 or so sales.
So I've been getting typically one or two sales a day.
And that was one or two sales a day I wasn't getting when I was relying on send me an email.
Well, and Tindy has advantages for the buyer as well. A little bit of reassurance that you're not
fly-by-night. Right. And
you know, now if you end up with the
I want to say the eye of Hackaday as that was the eye of Sauron.
If you end up with some media excitement
it's a little easier to say you go here and here's a standard way to do it.
Oh, yeah.
Well, and now Hackaday bought Tindy, so it's nice to be in the same community.
Yeah, this company supply frame, I don't understand them, but just about every time I turn the corner and I pick something new to do, along comes supply frame and it's like, oh, I'm working with supply frame again.
So, although my praise there was for Hackaday.io, Hackaday.com, right?
I mean, in the end, the people that have helped me, Sophie, Adam, Chris Gamble, they all work for SupplyFrame.
Everybody works for SupplyFrame.
Any day now, I'm going to work for SupplyFrame.
No, that's not true.
Apparently so.
You already do, you just don't know.
Oh, that's true.
Yeah, so it's been an interesting exercise of getting into making a product for sale
and learning all about the challenges of managing
a supply chain and a sales path.
And Tinti doesn't do a lot of things.
It basically is a storefront and payment processing.
I'm still left with manufacturing the product, doing quality control, writing the
documentation, tutorials, oh, and fulfillment, right? Putting things in little anti-stat bags
and putting them in a box and putting them- Taking them to the post office.
Taking them to the post office. And initially that took a lot of time, but I'm getting good
at it now. And so it now takes less amount of my day now.
Is this an important part of your, I don't want to say career plan, job, job, work?
It's all I do now.
That's pretty cool. But...
I've stopped doing consulting because clients were driving me nuts
do you think that's a break or do you think this is how you're going that once once osh chip is is
i've done it she'll go on to something else i'm not expecting osh chip to ever be generating sufficient revenue to sustain life.
But I have enough savings that it's time for me to take a break from having to deal with clients.
You know, I've had some, I had a pretty rough experience with my last client.
And so OSHCIP is a very welcome change from that.
And, you know, I'm getting on in years.
So I may just slide into just no longer calling myself a consultant
and just do OSH chip because it's a lot of fun.
You know, you can change your title from consultant to inventor.
I mean, you've got plenty of patents. You can back it up. That's true.
Yeah, I could.
I don't know. Undecided. It's so funny how people
are very attached to their identities. You've been a consultant
for 40 years. Fliptronics has been
around for 41 years. Yeah, Fliptronics has been around 41 years, but some of those years
I worked for real companies, but consulting for 20.
Yeah, and so we've been consulting for a while now.
A little while, comparatively. Christopher leaned forward
as though he was going to come up with a number, and then he didn't.
Seven things. Babes! You were a number and then he didn't. Seven. Seven things.
Babes! You were a little longer, but you took a break.
Yeah. And we get a lot of questions about people wanting to do consulting, asking for advice on how to get started.
Do you have any? Yeah, I also, when I
got established as a consultant, got lots of questions, you know, via email of, you know, about consulting.
And so I actually wrote up a page on the topic titled, So You Want to Be a Consultant?
And it's on my Fliptronics website, which is an absolute embarrassment.
I created it back around 2002 or 2003, and I haven't been back.
But the site is still there, I know, because I keep paying for it. And so-
Not so you want to be a consultant, not so you want to be a web designer.
Yeah, there you go. So, yeah, so at fliptronics.com, in the tips and tricks area, there's a section titled, So You Want to Be a Consultant.
And it talks about my experience as a consultant.
It talks about how to set rates.
It talks about how to select clients, in particular, how to avoid drowning victims and it says here are the things to recognize
if you see any of these characteristics
you have a drowning victim client
and you need to walk away because you don't want to be taken
down with them. So anyway it's somewhat dated
but the last time I looked at it a few years ago, I didn't
feel any need to update it.
So most of the rules still basically stay the same.
In my consulting career, I have focused on always doing something different.
So if I've done a project where I was say doing a medical imaging application if that client asked me to do another one of the same i'd tell them i'm sorry i've got another
client now and i'm moving on or if a different client came to me with a similar project i'd
turn it down so every client every project i've taken has been different because I want to continue learning. And so there's the skills that I bring as a consultant where I know my domain, which typically was FPGA design. And so that's my value added to them. selecting the client because of the domain they're in is something I haven't worked on before. So I've worked
and that gave me a lot of flexibility that I
didn't have when I worked at AMD or Xilinx where all I did was
basically the next generation of whatever it was
I was working on over and over again. As a consultant
I got to work on very varied projects.
That's one of the things I like best, is the different applications
and being able to get into a different world.
Even if I'm still doing embedded systems or signal processing,
that part's pretty consistent. But whether I'm doing medical or industrial or trying to optimize for power or try to
optimize for speed, it's just, I like, yeah, I like to learn the different things.
Absolutely.
That's one way not to get too burnt out with it.
But it is still, I find that I do get a little bored.
Because companies sometimes will hire me to do things they can't do internally.
But sometimes they're willing to pay me just to do things they don't want to do internally.
How do you balance that?
Oh, so that's interesting.
It took me a while to come up with, I don't know if the word understanding, trying to word this nicely.
I don't believe that there's any such thing as a consulting job that you don't want to do.
There are just consulting jobs where you didn't pick the right hourly rate.
There is some truth to that.
Yes.
Right.
All you have to do is adjust the rate to the point where you don't mind doing that thing that you actually don't want to do.
There is a limit.
There were some that no rate,
no rate in the universe. Absolutely. And I have a list
of those too, right? For instance, I won't work, I've been offered
jobs several times that I've turned down working for patent
trolls. I refuse to do that.
There were some jobs that were
basically expert witness type things.
And I just didn't want to get pulled into the adversarial environment of being an expert witness
and arguing with other expert witnesses who have the opposite view of something.
Some people love those jobs.
They want to know how to do them.
They want to get into that field.
And I'm like, that sounds awful. Well, Some people love those jobs. They want to know how to do them. They want to get into that field. And I'm like,
that sounds awful.
Well,
some people thrive in that.
And,
you know, and I know quite a few people like that.
And,
you know,
some of them wanted,
you know,
to offer me jobs,
you know,
to bring some of my expertise.
And,
you know,
I had enough other options that,
you know,
it was easy to say no.
In the consulting work that I've done, my clients typically bring me in for expert skills in a very small domain.
Typically DSP, highly parallel DSP on an FPGA.
And my clients typically had a significant number
of other very competent engineers that I would work with.
So I always enjoyed working with other smart engineers
and I had just my narrow field where I was brought in.
What you were referring to of sort of where they just use you as another body,
I try to not call that consulting.
I call that contracting.
That's the way I differentiate between the two.
And so I was very careful that when I saw something that looked like contracting
rather than consulting, I didn't get involved. That's smart. I mean, to some extent, the
contracting is a retainer for the consulting. I mean, for the project I'm working on,
they need my skills for a little bit of it, but they don't know when that is and they're willing
to pay me to do other stuff just to keep me around and I'm amused but not enthused.
And yeah, so it's a dicey proposition and there's a good chance that I will wander off
and try something else soonish, but sorry if you're listening to this.
I hope you don't recognize yourself.
Wow.
Ways not to quit a client,
number one. Tell them on your podcast.
This will never air.
Yeah, do it on the air. The other thing that I think I came late to the game to recognize in consulting was make sure you're not the smartest person in the room.
Yes. Yes.
Yeah.
I love working with really smart people.
Right.
So, well, but it's, yes, there's the fun of working with other smart people
and bouncing ideas backwards and forwards,
especially if you've got a really good client,
they bring you in at the early part of the project when the architecture is still undecided or not yet fixed because that's when your domain experience may help make the architecture better.
Whereas if they don't bring you in until the architecture is fixed and now they need you to do your bit, then if they didn't create the right foundation, right, it's difficult to do the right thing. But the other reason to make sure you're
not the smartest person in the room is there needs to be someone to hand off your deliverable to
who can actually understand it. Otherwise, you will be on the hook supporting it forever.
I've even had that happen when I've quit full-time jobs where a couple months later,
somebody would say, oh, yeah, would you mind coming back and helping us with this?
Because you were the only person who wrote it and knew anything about it, and they had
a small team.
Right.
Which is an opportunity to do consulting if you feel like it, but it's also an opportunity
to be drawn back
into something you've previously escaped.
Yeah.
How has consulting changed over the last 20 years?
Not at all.
Really?
Not for me.
Bay Area being Bay Area.
Yeah, I mean, my clients are all,
almost all what I would call large capital equipment companies.
So they're typically companies that are building boxes that cost a million bucks or more for a machine that gets stuck in a fab, row after row of that machine, right, doing some silicon processing step. And so I will have worked on something deep within that machine.
There were probably 10 or 20 other engineers who also worked on the project.
I did the vision FPGAs or some DSP function or something that's in the middle of it.
But yeah, so my clients typically have been big companies.
And that's the silicon stuff,
but the medical imaging company I worked with,
again, had a lot of very smart people.
And the same can be said of almost all of my clients.
So what do you do with your downtime?
Electronics and software.
OshChip isn't your first project like this, is it?
This is the first one that specifically targeted hobbyists.
The previous project I did also used Nordic chips,
and that was a sad failure.
Technically it worked, the software worked, the hardware worked,
but the cost of the end product didn't warrant the additional functionality
it had over what it was supposed to replace.
So it was definitely a marketing failure.
What other ones have you worked on?
Those are the only two products that I've tried to bring to market in recent times.
I did some stuff 30 plus years ago, which I barely remember.
One of the things with OSH chip is that it's not only the platform we talked about.
That's correct. You had to make it easy to program.
And that's one of the things Arduino and some of the embed boards have done very well is
you just hook them up to UART and they are both programmed that way through
usually some drive-like interface to put the code on and then there's a serial terminal
that you can debug on and so it's a very self-contained thing.
Sure.
But with the chip form factor, you had to build something else?
Yes.
So OS chip, as I said, is a 16-pin DIP-sized product.
It doesn't quite look like a DIP because there's an obvious PC board,
but it's pretty close.
It has a little four-pin connector on top. That was the smallest connector i could find and four pins is the minimum you need to
implement uh the arm swd debug protocol and so there's that little connector on top and then
there's a companion board that you need to buy uh to go with os chip which is the programmer and
debugger which i'm just holding this up right it's that
little board and it connects with that cable to the top of OS chip for doing debug and programming
and then when you're finished you can unplug it and you're left with just the program chip
the interface that it presents to your computer is over a USB cable,
and it shows up as a USB memory stick.
And so when you run your compiler,
the final thing that comes out of your compiler is a compile
and link process is a.hex file,
and you just drag and drop that file onto the virtual USB drive and it then automatically
goes through the process of getting it into the chip. So unlike some other products where you
have to have a special download program running on your PC or Mac or whatever.
That would be OpenOCD for those of you trying out GCC. Right.
Or, you know, AVRJUDE or other type stuff.
For OSH chip, you don't need anything like that. All you do is just drag and drop the hex file onto the virtual disk drive.
And that's more like embed.
It's exactly like embed.
In fact, it is embed.
So what about connecting Kyle to it?
Do I have to have my own?
Nope.
So Kyle compiles to a hex file.
And so you can just copy that hex file over when the compile finishes.
And you can make that copy.
Part of the Kyle compile environment is you can set up automatic operating system commands that run when the compile finishes.
And so you can just make that copy part of the single button click to do a compile link and then copy to the target drive. Another thing, which is their debug API, which supports many different types of programmer debuggers.
The most common ones people know about are Microlink from Kyle themselves or Jlink from a company called Sega.
Now, those debuggers are very sophisticated and have some really amazing capabilities and they are priced to match you
know starting at about 300 bucks and going up to a few thousand dollars for those debuggers
but that api for doing debug includes something called cmsis-dap cmsis is Cortex, Micropos, something, something, something,
diagnostic and access port, DAP.
So the OS chip programmer debugger
implements that SimSys DAP interface.
And so within the Kyle environment,
instead of selecting Microlink or Jlink,
you select SimSys DAP,
and then my debugger programmer board will show up in that environment. And that then lets you do
downloading, but also downloading and then running within the
debug. How much more can the other debuggers
do? I mean, when we talked earlier about... Real-time trace
at full speed,
tracking power in parallel with execution at full speed.
There's something called SWO, single wire output,
which allows you to monitor some internal stuff at the processor
without hitting breakpoints or slowing it down.
Isn't that just called a GPIO?
That's under program control and requires you to write code.
And it does slow down the processor a little bit.
Yeah, just a bit.
But those are seriously, like you said, advanced features.
I hardly use those or haven't used those very often.
I don't think I've ever had a compiler and a debugger
that could both do them.
I've got some of the more expensive
debuggers, but my compiler...
Right, the tools, the software tools to
fully utilize Trace cost another
megabuck for licenses.
But the cool
thing about the Kyle
eval version is
providing you can sit your program within 32k. It'll do
all that. Right. You get the full experience
right of what the best in class tools are.
You know, I've used that Kyle compiler for
a serious development and didn't even realize
I mean, I figured none of those super features came along.
I just used it to compile to my 32K and I didn't really care because my product was small
and I wanted to use the other flashes, logging space, which you can do.
And you weren't making any mistakes, so you didn't need a debugger.
No, no, no.
There was the debugger.
I mean, there was the step through.
Although once you put on that soft device, it's not trivial
because you can't stay in a breakpoint for very long.
Right. Yeah, cool.
So that seems like a feature.
The debugger alone seems sellable.
Are people buying that part without the OSH chip?
Sure, because the output side is the standard SWD,
which is an ARM standard for all the processes that run the SWD.
Well, I guess it's a circular argument there.
So the Cortex-M0s, M m3s some of the m4s not not all the cortex presses but
all the new ones all i believe use swd because it ties up less pins than j tag and can and can run
faster so uh this is uh you know it's an swd debugger if you you already own a J-Link or a MicroLink debugger from Kyle or Sega,
then you don't need to buy mine, right?
Conversely, if you don't need all the performance that theirs offers,
but you do want the basic Simpsons DAP debug capability,
you could use mine with either other Nordic boards or with
even non-Nordic products. The drag and drop
programming only works for the processor I've used
because that's kind of built in. In this box you brought me. Yes, I did.
There's one of those. Yes, there is. I wonder if it will work with some of my
other processors. Yes, it will.
My other compilers.
I have plenty of JTAG boards, or soft SWD boards.
But sometimes people ask, you know, and it's hard for me to say,
go buy this $500 thing.
It's just not, and these are $25?
$35.
$35.
I think even the cheapest J-Link stuff is 150 somewhere.
There's an educational one, which I think is like.
I have it up here.
It is 60 US, 42 euros.
Then I remember getting a J-Link sort of a weird board from a Nordic kit.
Right.
So that's J-Link.
Yeah.
So that was J-Link Lite.
Yeah.
And you can only get that from a licensed seller of dev boards.
Yeah.
Yeah.
Sometimes the dev boards embed it too.
Right.
And then so if you're doing a commercial product as opposed to a hobbyist product,
so you shouldn't be using the educational version,
which you can also get from, I think, like Adafruit and SparkFun
may sell the educational version of the Sega J-Link Lite.
I think the commercial version is maybe around $300,
and it probably performs better than my product,
but not 10 times better.
Actually, the J-Link base is 378 US.
So it is just over 10 times.
Yeah, and I can assure you that the difference isn't a factor of 10.
By the way, the design for my debugger is open source, and I didn't do the design.
It's actually from ARM.
And yet, we're all still wandering around trying to figure out how to ask people to buy us $1,000.
And the problem is they did this lovely open source design, but they didn't want to manufacture it.
Wimps.
Well, no, they've got other priorities, right?
And so, you know, I talked to them and I said,
so can I just copy this design and sell them?
They said, knock yourself out.
I was shocked nobody had done it before.
Right.
And so I looked at it and I made some minor tweaks, nothing significant. In fact, the actual firmware that runs on mine, I didn't write it.
I mean, Arm wrote a version of it, but the variant that I'm working from was written by someone at Seed Studio.
Yeah, I don't think this is the only one.
I mean, I think there have been others.
Oh, yeah, there are a few others.
There's no one else using, I don't think there's anyone else using the most recent firmware that I'm using and selling it as a separate product.
The firmware I'm using, as I said, it boards from Seed Studio that have the same processor that I'm using, but it's embedded on that board,
and the board is two inches by three inches, right,
versus my board, which is, you know, a third of a square inch.
All right.
Well, let's see.
What else should I ask you about?
So there's a second what I call view for OSH chip.
So I'd like to at least just drift off into talking about the name of the product.
So OSH stands for open source hardware.
And so I have published everything that I can about my product on and you can find it all on github so
schematics design files gerbers etc if someone wanted to copy it all and put me out of business
I'd be sad but I'm committed to this being open source but the second part, chip, is really there for two reasons. One is I've packaged the thing to physically look like a chip.
But this is described not nearly well enough yet on my website,
is I'd like to start the process of teaching or enabling hobbyists to become chip designers.
And this is very different from anything that I've seen anyone else do
because everyone is like, go find an application
and then go write the embedded design to match it.
I'd like to take a step back and talk about one of the ways
that chips are sometimes designed,
which is you have a generic processor product,
maybe with some specialized
hardware, and then you customize it to be a saleable product by putting custom firmware in it,
and you put a label on the top, and to the end user, it's not even apparent that you're buying
a generic part. This is not a new approach to designing chips. It's been done, I guess I first saw it
back in the late 70s, where there were companies that were buying the early generation single chip
micros, the 8048s and 8051s, and they'd load in special firmware and then, know silkscreen a new label on the top and call it a
product right this is the same idea with the same constraints right if you want to build a four input
you know sorry four nand gates os chip isn't going to be a suitable platform because it's not
fast enough because you're limited to what a processor can do but if you can think up a chip that has no more than 14 io
has a 32-bit processor with quarter of a mega flash and a whole pile of a to d's and counter
timers and all sorts of other bits and pieces. If you can dream up a chip that might use those resources,
then you could write the firmware, document it with a data sheet,
and then put it in a catalog for other people to use.
And so my long-term goal for OSHChip, the website,
is to be the infrastructure to support a community of hobbyists designing chips and making them available to other people.
So the website will do things, not now, but in the future, where it will help you create the data sheet by automatically formatting it for you, filling in all the electrical specs
because I already know what those are, guide you to how to write the front page,
the bullet list, make sure you've got some worked examples, et cetera.
But at the end of the day, a hobbyist could come up with a design,
submit it to the site there's a validation process
that is not yet in place but at the end of at the end of that list the design would be accepted and
put into a catalog for anyone else to be able to look at the source code for the chip, but also just download the hex file and use it directly.
And so if I made a chip that was a BLE motor controller to be used in a standard robot platform.
Perfect example.
Okay.
So you take your skill of specifying that project.
You go talk to some of your friends and brainstorm about what the feature set should
be. You make sure it fits into 14 pins and the available resources. Create the design and upload
it to the site. The benevolent dictator will then review your design, critique your source code, tell you to comment it better.
It'll guide you to a section of the website where it'll let you create the data sheet.
So it'll give you an online text editor with formatting, et cetera.
At the end of the day, you'll hit the submit button, right?
It says, okay, I've now uploaded the design.
There'll be a bit of a back and forth to get it approved, right?
That is, I will have exacting requirements of, you know,
what your design needs, how well you document it,
both your source code and the data sheet.
But if, you know, I mean, I want this to succeed,
so I will help the end user get to that goal.
Then what happens is the design will be allocated a part number.
So as a badge of honor, right, your design will be given a part number, which will read something like 74 RF BLE 1234 and forever that unique part number will be associated with Alicia White's BLE stepper motor robot controller chip right and then anyone can go find that chip
download the hex file they can download the source code and create a derivative product and upload it to create
a derivative part.
And if that other person creates that derivative part and it goes through the approval process
with its own modified data sheet, it'll get its own unique part number.
Okay. sheet it'll get its own unique part number okay um just as you've seen on some uh forum sites
there's a reputation system associated with people on forums there'll be a reputation system
associated with being a chip designer okay so as you design chips you'll get reputation points for
you know i've designed three or four chips or whatever.
Over in the forum area where people are going to be hopefully helping each other with these chips, if someone submits a question and someone else answers it and it gets accepted, then the person who wrote the answer will get a reputation point, not as a chip designer, but as an applications
engineer. So what I want to do is actually take all the common roles within a chip company
and have them exist in this open source environment with OSH chip as the delivery platform.
Do you envision more OSH chips with different hardware in them? Absolutely.
This is a pretty grand scheme. Yeah. I'm looking for
people who want to help.
Volunteers, I imagine. Volunteers.
It is pretty neat. And where, have you heard
of any uses of OSH chip so far?
So I can't talk about specific cases.
The biggest surprise for me was that more than half of my OSH chip sales haven't been to hobbyists.
They've been to professional developers who see OSH chip
as a way to trim two or three weeks out of getting their prototype started.
Well, that makes a lot of sense. I mean, you have a limited time to market
if somebody's already done all this work for you and made it open source.
Might as well try it out.
And if it works...
I've used dev kits and prototypes.
So yeah, that's definitely nice.
Yeah.
Right.
I should actually mention,
I gave a lot of kudos to Hackaday
and the various people there that helped me.
The other people who really surprised me
in that I figured I was too small a customer to matter was Nordic Semiconductor.
So they put an editor and a graphic artist on a project and did a press announcement for OSHCIP that they then sent out to 20 or 30 magazines in Europe.
And so.
That's exciting.
Yeah.
And in fact, some people have commented on the,
I guess I would call it the banner photo on,
it's actually the best version of it is on the Tindy site,
not on my, I guess it's on my own site as well.
It's the really nice picture of the OSH chip,
and that actually was done by the people at Nordic.
It makes sense.
What you're doing makes their chip so much easier for other people to just try.
Yeah, so that was a surprise.
So it was late last year, one of my primary contact at Nordic, when he saw this product, got all excited. I said, I told him, this is for hobbyists. He says, oh, no, no, no, no. I's a hobbyist thing, but because it gets people working on that.
And once it's compiled and running on this chip, you might as well continue because it's working.
Right.
So, yeah.
So, he actually saw my product being successful with commercial customers way ahead of me.
I mean, I certainly have spoken to him since and congratulated him on understanding my
product better than me.
But about half of my customers are commercial companies.
The reason that I'm even getting traction here is that everybody else who's making
modules.
So there are lots of people who make breakout boards, which are
two or three inches on a side and have the square pins.
But for all the miniature variants, the things that
are under an inch by an inch, those modules are all surface mount,
which means you've still got to make a board
before you can turn them on.
I did something with the BLE Nano that was sort of cool.
Yeah, so the BLE Nano is a module sitting on a board.
By the way, when you search in Google for BLE Nano and you misspell it,
Nana, it gives you bananas.
Oh.
I just thought you should know that.
Good to know.
That banana meme is really getting tired.
Yeah.
Okay, so the BLE Nano, it's small, and it has a secondary programmer.
I'd forgotten about that.
Yeah.
Oh. Yeah, I believe they use firmware that is very similar to mine,
except it runs on a Freescale M20K.
The programmer piece? Yeah, on their programmer piece.
I don't see this.
Because the firmware that I use, I'm running it on an NXP LPC11U35,
but this is the stuff that was originally written by ARM,
but it has at least three different target processors,
and one of the other ones is the M20K.
It is the M20K.
Yeah.
MK20.
MK20, yeah, close enough.
Yeah. Which is now part of NXP. MK20. MK20. Yeah, close enough. Yeah.
Which is now part of NXP.
I don't understand what's going on.
Companies are swallowing companies.
Yeah, consolidation.
And then we're going to.
And then products that you desperately depend on will be taken out of the data book.
I have one more question for you.
Sure.
If you were in college right now, what would you focus on?
Or what would you advise someone in college to focus on?
Well, that's two very different questions.
Say whichever one you want.
For college. say whichever one you want um for college so what i'd focus on really i think only matters to me so
that's irrelevant um for someone who's in college now have fun that's important so i think for
someone in college i think that spending putting a lot of effort and focus on projects, assignments
that are done as teams and figuring out how to work in teams is probably a very valuable
skill to hone in your career as soon as possible.
As painful as that is. As painful as that is.
Or can be. Maybe you've got a great team. No, you should work on teams that aren't great.
Because if you work on exclusively teams that aren't great, then you're going to
be in for a rude awakening. Yeah. But yeah, I think that's
the learning how to partition
projects, figuring out interfaces in large projects so that people can work on their part independently and still glue them all together.
I am a very strong advocate for test-driven development for both hardware and software.
I am disgusted and outraged at the number of FPGA designs where they believe the way you check it is by loading the bitstream
and turning it on, as opposed to writing exhaustive test vectors
and running simulations and static timing analysis.
So, yeah, if you're doing electronics engineering and digital design,
a very heavy focus on test-driven development in that environment,
I think is worthwhile.
Yeah, especially if you're doing FPGAs in preparation for doing a mass ROM
or AC.
I don't think you need to make that qualification.
Just any?
Yeah.
Okay.
Yeah.
I am being IM'd that we have run a little long.
Sorry.
No, no.
I've totally enjoyed speaking with you.
Yeah, just trim out the stuff I said.
No.
Do you have any last thoughts you'd like to leave us with?
It's been a delight chatting with you, and I really enjoy your podcasts.
Thank you.
Thanks.
My guest has been Philip Frieden, creator of OshChip, which you can get on Tindy.
There'll be links in the show notes, but I'm sure you can find it. He is also the
hardware, software, and system architecture consultant at Fliptronics. Thank you for being
here. Thank you also to Christopher for producing and co-hosting. And of course, thank you for
listening. Please also check out our blog and newsletter. You can find it all on embedded.fm,
the website,
along with a contact link if you'd like to say hello. Or enter the Planet Labs contest. Don't forget about that. Show at Embedded will help you enter. And if you would rather apply,
embeddedfm at planet.com. So I know that's a lot. It'll all be in the show notes. Just go to the website. And that really is enough for this week.
A final thought to leave you with.
This one is from Robert Heinlein.
A human being should be able to change a diaper, plan an invasion, butcher a hog, con a ship,
design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort
the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new Embedded FM is an independently produced radio show that focuses on the many aspects of engineering.
It is a production of Logical Elegance, an embedded software consulting company in California.
If there are advertisements in the show, we did not put them there and do not receive any revenue from them.
At this time, our sole sponsor remains Logical Elegance.