[Bunnie Huang], creator of the Chumby and artisan of chips and electrons, is building his own completely open source laptop. It’s called the Novena, and is powered by a quad-core ARM CPU, it’s got enough bells and whistles to make any hacker happy including an on-board FPGA, dual Ethernet ports, and enough GPIO pins to do some crazy, crazy stuff.
[Bunnie]’s laptop is an attempt to create a completely open-source laptop capable of some light code development, and web browsing. Every single chip on [Bunnie]’s laptop has a datasheet available (without requiring an NDA, unlike the Raspberry Pi), meaning this laptop might be the beginning of a completely open source laptop.
Officially, this laptop is a one-off project made just for [Bunnie]. He’ll be spending the next few months validating all features on the board and making a proper case. [Bunnie] says a few people may be interested in their own Novena (smart one, that guy), so he might consider a Kickstarter campaign in a few months. Don’t expect it to be cheap, but if you’d like to try your hand at making your own, all the files are up on the Novena wiki.
Sweet as a biscuit, can’t wait to see it working :)
For some reason I don’t think I will be able to etch my own board for this one… =(
thats pretty cool!!
I’m not sure the Raspberry Pi is NDAed to death any more. raspberrypi.org were recently patting themselves on the back for persuading Broadcom to open source the SoC, this being the first SoC chip that Broadcom have OSed. This may be why there’s always an enormous update to Raspbian waiting to be installed nowadays.
Dunno about the other chips though – Not that they should be a problem.
Its not as if the pi is actually intended to be an open source platform though, they even said that themselves. NDA’s on something that isn’t intended to be an open platform, although a bit of a bummer, aren’t exactly unreasonable.
See below.
The Raspberry Pi’s CPU isn’t open until they release programming docs for the GPU and the source for the binary blob that drives it.
You mean like this?
http://www.raspberrypi.org/archives/tag/broadcom
Or to save you some hassle:
As of right now, all of the VideoCore driver code which runs on the ARM is available under a FOSS license (3-Clause BSD to be precise). The source is available from our new userland repository on GitHub. If you’re not familiar with the status of open source drivers on ARM SoCs this announcement may not seem like such a big deal, but it does actually mean that the BCM2835 used in the Raspberry Pi is the first ARM-based multimedia SoC with fully-functional, vendor-provided (as opposed to partial, reverse engineered) fully open-source drivers, and that Broadcom is the first vendor to open their mobile GPU drivers up in this way.
Very misleading. The “driver” that they have released doesn’t really do anything. It just translates requests to a binary blob “firmware” that is not Open Source.
That’s how it usually is…
When I worked on the NetBSD repo years back we actually got legal threats that if we pointed out vendors where just partially opening their code and marketing it to death, we’d be sued…
Any Linux or BSD kernel dev knows this all too well…
GPU’s on ARM hardware always appear to need an NDA, even this board:
From: http://www.bunniestudios.com/blog/?p=2686
… snip …
Vivante GC2000 OpenGL ES2.0 GPU, 200Mtri/s, 1Gpix/s (*)
… snip …
Items marked with an asterisk (*) require a closed-source firmware blob, but the system is functional and bootable without the blob.
… snip …
unless I missed it, it doesn’t have the ultimate geek/hacker request a serial port, ever since they started removing them from laptops admins and hackers alike have had to carry around usb/serial adapters. Surely they could find room for a serial port chip that shouldn’t cost more than a $1 to buy.
I want a freakin’ parallel port. My Lenovo T61 isn’t going to last forever….
Just put an USB to parallel adapter. Saw one today at a chinese shop for €4.
This isn’t suitable for a real time application such as a CNC mill, for instance.
That is right, and that is a reason why I stick with desktop computers.
USB->parallel adapters are not a pretty picture.
USB->serial(while potentially troublesome for very timing sensitive applications, seriously old stuff that only works with ‘real’ com ports in expected locations, and quite possibly not operating at genuine RS-232 voltages, depending on the quality of the adapter) is at least pretty similar in operation to non-USB serial ports.
USB->parallel, by contrast, are almost always designed to be printer adapters only. Assuming your printer isn’t a real drama queen, and the adapter isn’t total crap, it will probably provide a competent enough implementation of the USB Printer Class that your printer driver will be able to talk to your printer. The trouble is that USB PC is essentially a ‘here is a way to encapsulate for USB transport traffic that used to be sent across a parallel connection’ standard( take a look). It has minimal interest in, or utility for, any of the wacky memory-mapped bit-banging that ‘real’ parallel ports are capable of.
The parallel port deserves its obsolescence for most of the common commercial uses cases(it’s slow, ate a lot of CPU time, required beefy cables and big connectors, and there just isn’t any reason why you’d want a printer, scanner, mass-storage device, etc. using one today); but it’s the last port in the Wintel world where you get direct access to some I/O pins that you can bit-bang fast enough to bodge together an approximation of all sorts of things with minimal supporting hardware.
It’s got an FPGA, implement your own parallel port hardware.
With the (by PC standards) luxurious amount of GPIO on offer, most of the stuff you’d want a parallel port for these days can probably be done without pretending.
You have 8 digital IO using the FPGA. Problem solved.
Find a laptop with a spare mini PCIE slot and just throw a parallel port card in it. StarTech has some.
It says it has 3 UART, just gotta check the levels.
if the levels are wrong, a MAX232 will sort it out.
It already has 3 UARTs at the top right, 8 digitial GPIO pins, 8 twelve bit ADC pins, and 8 PWM output pins thanks to the onboard FPGA… I think they’ve got you covered.
one of the points of this device including a FPGA is the fact it doesn’t need a external method of handling devices such as 3D printers and what-not. reducing the number of parts. leaving the only real need for this specific CPU Platform (ARM) to have a Parallel port is for a old ink printer… unless you plan on Jerry-rigging a J-Tag environment. which if you can afford a device like this I’m certain you can squeeze a standard J-Tag adapter out of your budget.
I put the gerbers up for easy viewing:
http://circuitpeople.com/ViewPackage.aspx?id=feefb9c8-021f-4da0-97ee-e27e12b4cbcf&dpi=100
this is a wonderful board
Thank you.
I will be interested to review your layout on Monday. It’s always interesting to see how differently people approach layout. One could make some out of personality test out of it!
Also, I would back this project on Kickstarter, especially if you sent it to fab. and assembly in North America or the EU.
Oh my. How many layers? Bunnie was right when he said this wasn’t going to be cheap. I’m still very tempted though.
I am interested to know how you would go about programming for the FPGA. Is the idea that the Xilinx tools will run under QEMU or similar, or will place & route be done on an x86 server in the cloud? How will debug work? Will there be a Xilinx JTAG dongle on board? What about the host software for that? QEMU again?
I think this is a terrific project, and something I have thought about for a long time, even building a general purpose dev board with an ARM and a Virtex-4 FPGA. But the idea of actually developing on it without a PC in the mix seemed one step beyond what was feasible.
I don’t see a Xilinx Platform Flash, so I suspect it’s loaded via JTAG at boot (see Xilinx appnote xapp058) or uses SPI flash like Papilio.
while i completely agree with his statement
“This is a lengthy project. Fortunately, ARM CPUs are getting fast enough, and Moore’s Law is slowing down, so that even if it took a year or so to complete, I won’t be left with a woefully useless design”
This makes me laugh a bit considering that if you look at almost anywhere people complain to no end about arm stuff being out of date that isn’t even 6 months old yet. However good job on this project and it should be interesting to see the results of it.
Well look at the OpenPandora project, they finally got production stable (took 4 years but more of an issue with the original board manufacture and lack of experience on behalf of the team) but even though it is outdated, it is by no means lacking in power. It is still sufficiently fast enough for a lot of tasks.
Once the team gets better at what they are doing they can cut it down to 2 years, or even 1 year. It is a clear example that it is possible.
Maybe [Bunny] and [Ben Heck] could get together
As far as I know, they’re on a totally different levels. There would be no use in that collaboration.
I’m sure [Ben Heck] could take on the ‘case design’ duties mentioned in the post leaving [Bunnie] more time for hardware testing\developing.
It is billed as ‘Open-Source’… may as well take advantage of high profile hackers with specific expertise to spread project exposure that much further.
I’m not picking on you, Phil. But I have heard variations of this attitude expressed before. And I have to say, it is one of the silliest damn notions I have ever come across. And it makes even less sense when I hear it on a site like this one, given the broad range of experience and expertise of the members discussing… everything. I am relatively new to tinkering with electronics and the like. My background being primarily in Construction and Mechanics. But I’ve learned the following about “collaborations”: They require unity of purpose. There must be trust between collaborators. And there must be a willingness to hear others input, regardless of the “level” they are at. Sometimes the less experienced reveal the paths to solutions precisely because they haven’t learned what can’t be done yet. Having people of “different levels” working together, provided the 3 conditions I mentioned are in play, enhances the chances for successfully solving any problem or overcoming any obstacle IMHO.
I agree with you 100%! Perhaps Phil’s tone wasn’t as negative as it came out on the page. This is the reason I had to leave the hackerspaces I was attending. That, and the second one didn’t have a personal space clause. As they say in the movie Pi “You listen to your wife, it will give you perspective.” It is always good to have someone outside of the box :)
Thanks Bill. Indeed. It wasn’t Phil I took umbrage with, it was the notion ( and if I could just get my meds in balance with my binge drinking I probably would be less apt to such outburst ;). Worry About What’s Right rather than Who’s Right and the Answer will come. AS for wives:A Philosophy question: If a Man utters an opinion, and there isn’t a woman around to hear it, is he still wrong?
He heh. I’ve had a few chemically altered posts too in the past. I’ve had tremendous success breaking a serious tone with eggheads by using the ol Hank Hill “Boy I tell ya what…” lol. Have a good one and keep on tinkering!
Regardless of whether a man’s opinion is heard by a woman or not, and regardless of a woman’s opinion, a man is wrong when he is wrong. He is right when he is right.
It’s no different than the old business slogan: “the customer is always right.”
Sadly, despite the many businesses claiming to practice that motto, I am still waiting for the ten million dollars they owe me. And being that the customer is always right, and I being the customer, they need to stop delaying the payment of said ten million dollars they owe me.
Personally, I have never subscribed to that idiocy, but then, I realized quite early how that notion could come back to kick one right in the pants.
Bunny Heck ??
Why 100Mb Ethernet instead of a second 1Gb Ethernet?
Probably because the SoC has a GbE controller and a 100Mb controller so there’s only a PHY and jack needed to add the other port.
Holly shit! This is definitely a board to rule them all!
An ambitious project for sure, but too ambitious for an open source project? One commenter suggested a possible collaboration, and another commenter mentioned how the suggested individuals operated at different levels. No doubt there will be many who will collaborate on this. However unless the result can’t be mass produce at cost level comparable, to what one gets for their money for the raspi, we aren’t going to see this on the workbench of very many hackers. Amateur Radio operators are thought to be atop of technology, but if I where to bring up FPGA in the groups I’m around most often I’d be asked what I was talking about, not I know much more than what they are and how they are used. Although hams in the physics department of a nearby(25 miles) university may be experimenting with them. As always I wish those who are doing far out things success.
[bunnie]’s working on this project with another engineer ([xobs]), basically as a personal project. They’ve been at it for a while now; this is just the coming out of the board. Those two have, together, gone concept-to-completion on multiple SoC-based embedded linux platforms (multiple chumby revs, NeTV, Kovan); [bunnie] is a bit of a hardware genius (if you couldn’t tell), and [xobs] does a great job of hacking together the kernel and software magic to fill in the gaps. They’re more than ready and qualified to handle this project.
If this was someone trying to rally support for a classic open source, crowd-coordinated project, yeah, I’d say it was a bit ambitious. But with those two on the project, all we as outsiders have to do is wait; they’re gonna do the heavy lifting, and we get to ogle the delicious delicious output.
While interesting I’m not personally interested. Miniaturization and portability have never been attractive to me. The smaller stuff the more of a pain it is to hack.
If iMX6 3D benchs are really as impressive as they seem, this could be a killer-board
Wow, that’s quite an impressive project.
One question – why are there *two* different high-powered ARM CPUs, encompassing up to eight cores? How is the memory shared in a system with up to four ICs that may need simultaneous high-speed access (CPU+CPU+GPU+FPGA)?
Though no pricing estimate was given, this will obviously be an expensive board, not just because of the BOM but the small manufacturing quantities as well.
Which would make me extremely hesitant to use the IO headers directly for any casual experimentation, as the IO is provided directly from the CPU and FPGA; both of which are high-speed, and by necessity have smaller ESD protection structures on their pins than a common MCU. It would really suck to damage a BGA chip you have no reasonable chance of replacing. There will probably be some severe limits on jumper wire length to the IO headers as well, due to the *brutally fast* rise/fall times. And packaging it into an actual laptop with a decent form factor would limit what you could build into the case that utilizes the IO, without requiring long external wires.
Let’s assume that the direct IO is unlikely to be used to any significant extent, in the majority of cases. What then is the FPGA good for? An example was given of Bitcoin mining, but that can be better accomplished on cheaper, non-mobile hardware. And to be perfectly blunt, it’s a fool’s game anyway; a lottery ticket provides better odds and doesn’t waste electricity. Other tasks that a FPGA would excel at (remember we’re excluding IO) might often be adequately accelerated by the GPU, which makes the FPGA somewhat redundant.
Being completely (or mostly) open-source with no binary blobs is certainly a point in its favor. Even though 99% of the people who complain endlessly here about closed source drivers will see no benefit, because they couldn’t hack a driver if their life depended on it, P. T. Barnum says they’ll buy into something like this anyway.
Another example was given about using this in a quadcopter. Now that has potential, talk about some serious processing and interfacing power. Though I wonder if that SO-DIMM socket and all the fragile little lead-free BGA balls will stand up to the vibration.
You’re showing a bit of a lack of imagination there. There is lots of stuff even a small FPGA will excel at. Interfacing to obscure hardware is the obvious one, but combining it with a high speed channel to the host memory opens up a world of possibilities.
Personally I hook stuff up direct to expensive FPGAs without a second thought and have yet to damage one. Their I/Os can take a lot more abuse than your average microcontroller (as you would hope if you had spent multiple $100s per device in some cases) and a simple series resistor will go a long way to making them accident proof.
Heh, you’re right. I am showing a lack of imagination. But I’m sure the few truly imaginative folks that might come up with a killer idea, that requires a high-speed interface between FPGA and CPU/memory will find many other existing options. A standard laptop with an FPGA on a mini-PCI board, for example.
Even though this board is a pretty awesome Swiss Army Knife, reading through the comments I already see so many like “but it should have X and Y, not Z”. That’s always the problem with Swiss Army Knives. It’s undoubtedly [Bunnie’s] dream computer, but I doubt he’s making it just for himself.
Thanks for the info on FPGAs too, I’m glad to hear their pins are more rugged than I expected.
He basically *is* making it just for himself. And [xobs], I suppose. The “offer” of a KickStarter really wasn’t because he thought this was viable as a business proposition; it was more because others might be interested in such a machine. [bunnie] will do what he wants to do with it, create something awesome, and then maybe other people will get their hands on it. I really doubt he’ll go too far out of his way to make it more attractive for others — any money that could be made from marking it up for a KickStarter will pale in comparison to the investment of actually designing the thing in the first place; it’d be silly to think otherwise.
Since this board is essentially a dev platform for Bunnie himself, and not a general-purpose laptop… I think he can handle it in the unlikely event he needs to replace a BGA :)
This is going to be expensive, but they could keep prices down for us by making a rugged case version to be sold to people who have enough money and need a truly trustworthy platform to work on.
I see the firmware is yet to be determined. I hope they at least seriously consider UEFI (making all the secure boot stuff optional since Win8 doesn’t sound like an important OS to support right now). The UEFI EDK at Tianocore.org is open source. As long as the BSD licence is OK, maybe they can use it. If not, I hope they’ll put serious though into firmware that has a standardized interface so any OS can work with it, and provide a good software interface to the hardware. A nice thing about PCs is I can have software with no prior knowledge of the hardware and can tell me what is in a system. And in a number of cases, software can use that hardware without being written for it (though this last part is much less true these days in 32 and 64 bit modes).
First off I want to apologize for accidentally reporting your comment in an attempt to reply. Bad interface FTL.
Secondly, the bootloader is gonna likely be handled as it has been on the chumby boards and NeTV — bootstraps off flash to a microSD card that contains the primary boot image, and then in this case will mount secondary storage if necessary (though a microSD card at this point could be big enough to handle the primary storage for one of these, if they want to get by without a spinning drive or SSD). The nice thing about this design is that you can literally dd to a card and re-write your bootloader on a different computer if it gets corrupted from hackery; nice way to rapidly develop that stuff.
UEFI doesn’t make much sense because ARM anyway.
If this is going to stay an embedded system, then the advantage of going with UEFI is pretty minimal (other than learning about and hacking on it).
When I first read the story, I thought someone might be getting serious about building something based on ARM to challenge the x86 PC, and a generic firmware interface is a part of that.
I know the joys of socketed flash parts and/or in circuit programmers for when I do inevitably brick a board (something that happens quite regularly) :)
It would be nice if this would have multiple SATA ports or a SAS expander port. Then it could be a really nice opensource low power NAS / gateway of your network.
I’m hoping this could be the basis for something suitable for desktop use and someone can hack in a PCI root bridge with a few slots. That would open the door to a LOT of possible projects from a NAS to routers (or maybe even some combination of these things).
awwwwwwwww shiiiiiiiit
Once upon a time, when I was younger, I told a family friend that “I built my own computer!” He was immediately simultaneously exceptionally impressed and in disbelief. As it turns out, his idea of building your own computer was not buying all of the components and connecting them together, but designing your own motherboard and soldering all of the components together yourself.
Bunnie, you are now officially one of the very few people in the world who can say that you have single handedly “built your own computer” from scratch. I wish to someday join your ranks!
I guess the definition of a “computer” is something that people would question these days–if you’re going to call an embedded systems project a “computer” then I guess I have made a computer too =P But really, designing your own laptop? Now that’s pretty impressive. I mean, just the level of expertise to handle the routing and design and the sheer amount of time required to design something at that level of complexity. . .impressive!
But then, “So you started with silicon did you?”. At what point can you take credit for the design :P
Amazing. Sign me up!
Bunnie, please add a trackpoint to your laptop!!!
Add me to the list too, I’d love to have one of these if you get something up and running. No reason you have to be “stingy” with it and keep it all to yourself!!
Seriously, I like it, and would be interested to see it go further, and have one in my hands.
This is WAY more serious than I ever thought about. I’m still trying to get one of the Z380/FPGA boards, but just can’t seem to swing it.
Wow! That is an AMAZING build! Great job!
It’s Françoise Appledehli’s Tomato PC. ;-)
im getting the feeling nobody is paying attention to the fact that this specific board isn’t the final development/laptop board, made obvious by its obscure placement of the microphone next to the monitor cable and the fact that the keyboard/mouse pins are directly inline with the FPGA external access port. the final board is likely to be much larger and much better laid out. (Bunnie is a professional who only releases the best of his work as a final)
Well, if you’re looking for nits to pick, the RPI connector needs to be turned 180 degrees. Any RPI extensions that are designed to be inside the RPI envelope are now hanging outside his board….
I have found my new build project. :D
I have a Dell with 15.4″ WUXGA (1920×1200) screen. Since nobody makes laptops with screens of that size, I’d be happy to remove the lid and attach it to this.
I just wish those ADC’s were better. Eight 12-bit ADC’s at a meagre 200Ksps? What a waste. Spartan 6 LX45T (my guess on the FPGA) should support SERDES, and the latest JEDEC high speed “lane” interface for ADC’s and DAC’s. Even without that, you could get a couple of 14-bit 100Msps ADC’s in there (Think: Digilent Analog Discovery).
Good luck sourcing, stenciling, and fabricating…
There is a reason you don’t see many projects with BGA hardware that competes with the current market.
[bunnie] is experienced with this stuff, and well-connected with factories in China after years of working with them. He knows factory limitations and realistic expectations better than most product EE’s developing for major companies in America, since he’s such a hands-on personality. Also, if you read the article, he’s really not looking to compete with anyone. He’s building a custom laptop project as a PoC of open-source laptop awesomeness, and he’s really basically building it for himself and another engineer ([xobs]). The KickStarter would be a fun aside if enough people were interested to make a run worth the cost of getting tooling for more than one-off productions. It’d be crazy expensive, and not likely to make a lot of money (especially compared to the investment of developing this thing in the first place). [bunnie] and [xobs] aren’t looking to revolutionize the laptop market here, and to most people this thing would be little more than a novelty. You’ve got to be pretty dedicated to run on a self-rolled laptop. It’s kind of like rolling your own Linux distro — an awesome experience, fun, plenty to be learned, but very few people will ever find much advantage to it, relative to the number who are better off running an existing one.
any chance of getting DOSbox running on it?
combined with having all the addons
(serial, gpu, GPIO USB)
accessible under DOS would make
this the most amazing thing ever
to hit the opensource geekcrowd.
EVER
EVEREVEREVEREVER…..
PS: by DOS i meant dualboot linux + windows + DOS/DOSbox
PPS: my friend’s keyboard …. sTilL haS it’s capSLOck kEy
… had to rewrite this twice
It’s ARM, not x86, so it won’t be running x86 windows or DOS without voodoo magic.
There’s an FPGA sitting there. I wonder if you could squish a simple x86 into it…