Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

Bunnie Huang is both a hardware and software hacker, but that's greatly understating the case: renaissance man is more like it. Bunnie doesn't just tinker with one-off system modifications or console mods (though he's done that, too) -- he creates and repurposes at scale. (He's also an author, respected researcher with interesting thoughts on a wide range of topics, like how to think of the H1N1 flu from the point of view of a security researcher.) Bunnie's latest long-term project has been mentioneda few timeson Slashdot: It's an open-source laptop computer that goes much farther than some other open-source hardware projects, and as a bonus includes an FPGA as well as a conventional -- but unusual -- processor. (Bunnie grants that there are still bits that aren't quite open source, but points out that we also don't have the software that runs the fabs; there's a point of diminishing returns.) A crowd funding campaign (via CrowdSupply) was successful enough to also fund several stretch goals, including a general purpose breakout board. I talked with Bunnie at the recent Bay Area Maker Faire. (Expect more from that show in coming weeks.) He walked us through the state of the hardware, and talked about some of the design decisions that go into making a computer that is of, by, and for hackers. (Alternate video link)

Tim:
So Bunnie, we are here at Maker Faire and you are showing off an
early version of the open source laptop you have been working on. Can
you talk about that project?

Bunnie:
Yes. So we started this about a year and a half ago as a hobby
project. We wanted to build our own laptop from scratch, to the
circuit boards, to the case to all the bits and pieces. And we want
to open source it as well. So we are very happy that the laptops are
basically working. They are over there on the table. We gave our talk
today using the laptops. I use it as my primary when I am traveling.
So it is feeling very real.

Tim:
When you talk about open source hardware it has a lot of
different meanings to different people. How open source do you mean?

Bunnie:
Right. So the rule that we have is everything I can touch is
open. Like everything I can touch is open. And everything else that I
can as much as possible source in when we make decisions becomes
open. So for example, all the schematics, the board layouts for all
the boards are things that we have open sourced as we design those.
The case design is open source, you can go ahead and download that.
The software of course is open source. There are of course parts that
are closed source. Like for example, every chip on the board is made
by a foundry and we don’t have access to the mass files for all
those chips. We don’t know where the plastic is mined from,
where the copper is mined from. Like all the subrecipes of all the
pieces. So generally, in the open hardware community, we have been
talking about notions of layers of openness, right? Because at some
point in time, you can say, “Where does the tantalum come
from?” “What is the design of the capacitor itself—is
that open?” , “Where is the process geometry of the
fab—is the fab itself open?”, “Can we actually open
source” Like we even talked about doing our own chips.
Well, we can do our own chips but then it doesn’t do anyone any
good because you can’t get the design kits for the fab, because
that’s all proprietary and blah blah blah So there are
these layers you have to go through. So we are kind of hoping that we
are peeling back one layer, right? Before it has been sort of a kind
of a theoretical thing to have an open source laptop, so now we are
just pushing one layer down. We are going to settle in that layer, we
are going to get comfortable there, and then hopefully we can peel
back another layer later on, layer by layer.

Tim:
Some people have done things like taken Raspberry Pi mother
boards and made their own laptops. What is the difference between
going from one-off to things that are meant for multiple people?

Bunnie:
Yeah, there are a lot of design decisions you have to make, when
you are putting together when you know you are going to have to
manufacture it. So a lot of the design decisions that went into
this—we tried to take parts that are sourceable. Like it is not
like you go and find this old VHS or Betamax thing, and pull this
motor and we are going to use this. A lot of people say, “Why
don’t you use a case from an existing ThinkPad or something?.
Well,

Tim:
You can’t be doing one thing.

Bunnie:
Yeah, one thing. But I can’t really develop off IBM or
Lenovo saying, “Hey, I’d like to buy a bunch of the old
ThinkPad cases”, right? If I want to scale this up, I can’t
really do that. So we have to design in mind that we have to
manufacture them later on. And when you do the design right, and
you’ve actually designed for manufacturability, it is actually
not as bad to go ahead and produce an arbitrary amount for people who
need it. This here is a wireless keyboard it can work with number of
device. we are actually using a ThinkPad just because we like this
one. And it goes ahead and you can slide it right in on the front. It
actually forms a combination screen protector/mount for the keyboard.
These are 3D printed. And they are just hanging off the bezel here if
you can see. One of the great things about aluminum is that it is
super easy to machine. So we are able to go ahead and just drill
holes into it, cap the threads, screw these on, and add them to the
front of the bezel. We tried to use them on a regular laptop—that’s
nearly impossible. This here is the classic case design, right? The
case itself, when it is closed, it looks like a semi-tablet like.
When you go ahead and pull the slider, it has an air piston on the
inside, which goes ahead and pushes the screen open. It has an array
of mounting boxes on the inside. These are m2.5 threaded nuts. So
basically, if you don’t want to have the battery or something
like that, you can go ahead and fab your own things, stick in there a
bigger speaker box, you want to put your cables in here, you want to
put your power supply in here

Tim:
There is room for a much bigger battery?

Bunnie:
Yeah, there is room for a much bigger battery. So this is
actually one of the laptops where rarely, speaking is, more wide
space on the inside than there is lot of wide space. The main board
is here. That is the Freescale i.MX6 CPU. We got memory on a DDR3
DIMM slot. This is an adapter that goes from LVDS to Embedded
DisplayPort which is assay for driving this nice display. This here
is the battery board. It has a gas gauge on the inside and a smart IC
that goes ahead and runs its own OS in fact to go ahead and manage
the power for the system.

Tim:
And on the other side, among the things that are open source
about it, the case design and the layout, so are the cases something
that someone could really make themselves or, what is the complexity
seems like?

Bunnie:
Right. So the case is a fairly complex piece. When you get the
design file, it is a full 3D model, all the surfaces are there. You
could go if you found a big enough 3D printer, 3D print it and have a
version of your case, but again we are talking about atoms not bits,
and not all atoms are the same, there are compounds that are most
suited for building case materials, and they require techniques and
tools to go ahead and do them. So part of the complexity of actually
doing the design, is how do we minimize the amount of specialty
tooling required so that people can hack it. So if you look at the
design, we use an aluminum bezel which is actually quite easy for
people to machine at home, without a lot of specialty tooling or
upfront costs. It’s a very intentional decision to go ahead and
try to make the thing a little more hackable a little more
acceptable.

Tim:
I know I notice that you are using the bezel as a way to help the
keyboard as well.

Bunnie:
That’s right. That’s right. So we have the keyboard
attached from the design overall, and then we go ahead and just drop
the keyboard over the bezel with these 3D printed keyboard holders,
and we actually really liked it if users can be able to pick the
keyboard that they would prefer. Like everyone has an argument: “Oh,
we don’t like the track point”, “We don’t
like track pads”. Or, “We don’t like this, or
this.” It is kind of a holy war. “We want Chiclet keys”.
Or “We want regular keys.” You know what? It is like take
your keyboard, you can attach it to the bezel because the bezel is
hackable right.

Tim:
And it also frees you from having to manufacture other parts?

Bunnie:
That’s right. Yeah, the keyboard is actually very very
difficult to manufacture, with all the moving pieces and parts. And
keyboards really need to have a feel just the right feel to it. So
the investment to manufacture a really good feeling keyboard is as
big as the project of building the laptop itself.

Tim:
As a subtle point, it really is important?

Bunnie:
Yeah, it is.

Tim:
So what is the actual work environment that iterates your design
it. What is it like? Do you take apart a new laptop every day and
iterate some small piece of it?

Bunnie:
You know, that’s interesting because when we first started
the project, we did go to some scrap yards and picked up some
laptops; then we would take them apart and see what things they did
like and they didn’t like, and learn basically how to build my
laptop looking at other people’s designs. So we are undesigning
to figure out how to do the design. The actual work environment does
use proprietary tools, they use LCM, they use SolidWorks. I mean, I
would love to use some of the open source tools but they don’t
have quite the power they need to go ahead and design circuits of
this complexity. But generally the workflow design is a very small
part of it. We probably finish all the schematics and all the board
layouts in a matter of month or two, right? But then we spend like
twelve months of validation and testing and iteration like testing,
testing, testing. Really there is so much testing that goes into it,
during factory tests, costing things down, pushing through all the
corners of the process, making sure it is manufacturable. The same
thing is going to go for the case, like it took us a couple of weeks
to go ahead and grind out the core case design. We have gone ahead
and built these samples using CNC cut plastic, and so forth, and
walking around with them and testing them, seeing how they handle,
how much flexure there is, where the seams are coming apart, and we
have to tweak the design, modify things and then finally move it to
tooling.

Tim:
Things like regulation and import laws; the US and Europe have
pretty stringent laws?

Bunnie:
Yes, they do.

Tim:
What do you find, how does that affect your process?

Bunnie:
It does affect the process a lot. One of the things about the
laptop is it is a DIY project, right. So there is the last screw rule
around the law or the regulation where the person who puts the last
screw in is responsible for certifying the product to be compliant.
And so one of the great things about it is as we actually
ship those, we plan of shipping the device with a selections of
bezels. You can pick one bezel or another bezel. So actually as an
user, you are participating in the construction of your last piece,
it is not just like the last screw literally but you are making a
decision. No two laptops will be exactly the same. And so therefore
it is kind of up to the user to go ahead and declare or actually
understand if it is going to be okay for use in their environment.

Tim:
So you are shipping a kit?

Bunnie:
Yeah, basically we are shipping a kit, right, the way it boils
down.

His standard of open source is very different from the IBM BIOS rewrite:Novena PVT HW Design Source [kosagi.com]if you go there you can download all board design files to go make the PCBs and get them populated at your favorite board shop. (mechanical sources for the case are also available). This allows anyone to make improvements to the hardware as well as the software and feed it back into the community.

He also made component selections that further the open source accessibility: the CPU does not require an NDA to get the full documentation (unlike, say, the Broadcom chip in the Pi, or any Marvell chip ever), and the same goes for the rest of the chips on the board. No Bluetooth since ALL BT chips require a blob driver, but he can include a WiFi card that has open source firmware so he does.

The campaign was successful enough that they have also partnered with Jon Nettleton to create an open source driver for the 2d/3d graphics blocks inside the CPU which only has a proprietary driver now, this will help every Linux distro and user that has an i.MX6 board from any vendor run a completely open stack.

Feel free to correct my impression that after someone rewrote the IBM BIOS not everyone could go download IBMs design files (note: this is different than having "PC/AT compatible" designs)

The IBM PC/XT and PC/AT used entirely commercial off-the-shelf chips on the original motherboards. The Intel 82xx family of peripheral chips, to be exact. There were no ASIC or custom chips. The full schematics were published in the Technical Reference Manuals, including peripheral schematics. Yes, the floppy drive and hard drive included. All the commented BIOS source code was published in the TRM as well. This fact actually 'hurt' the BIOS re-write effort as anybody interested could read the source, and most people's view at the time this action 'contaminated' them from being able to write a clone BIOS.

If you want the schematic diagram for a Hard Drive, or the source code for the firmware of a Hard Disc controller card, you just had to buy the Technical Reference Manual from IBM. Which wasn't cheap, but it was obtainable by anybody with a few hundred dollars.

Really? I'm pretty nearly 100% sure that's not accurate, since the bluetooth HCI spec defines a command protocol over several interfaces (USB, RS232 and a couple of others) for controlling a bluetooth host. This is the case for Bluetooth 4, perhaps not earlier versions, but it does mean that you can plug in any random bluetooth 4 USB dongle and it just works.

It's somewhere in the spec, but I didn't read it in detail since I was more after the ATT protoco

Simple. He got an idea, and developed it into convincing customers to give him $ 750 000 in less than two years.Some consequences are- it may be that his idea is interesting- he certainly is more geek than you and me- he also is most probably better organized.I for one have tried to follow him for one year, but I completely missed the crowdfunding campaign, which incidentally tells a lot about my inconsistancy...