Recently, the Make: blog ran an article on our laptop project, Novena. You can now follow @novenakosagi for updates on the project. I’d also like to reiterate here that the photos shown in the article are just an early prototype, and the final forms of the machine are going to be different — quite different — from what’s shown.
Below is a copy of the article text for your convenient reading. And, as a reminder, specs and source files can be downloaded at our wiki.
Building an Open Source Laptop
About a year and a half ago, I engaged on an admittedly quixotic project to build my own laptop. By I, I mean we, namely Sean “xobs” Cross and me, bunnie. Building your own laptop makes about as much sense as retrofitting a Honda Civic with a 1000hp motor, but the lack of practicality never stopped the latter activity, nor ours.
My primary goal in building a laptop was to build something I would use every day. I had previously spent several years at chumby building hardware platforms that I’m ashamed to admit I rarely used. My parents and siblings loved those little boxes, but they weren’t powerful enough for a geek like me. I try to allocate my discretionary funds towards things based on how often I use them. Hence, I have a nice bed, as I spend a third of my life in it. The other two thirds of my life is spent tapping at a laptop (I refuse to downgrade to a phone or tablet as my primary platform), and so when picking a thing to build that I can use every day, a laptop is a good candidate.
The project was also motivated by my desire to learn all things hardware. Before this project, I had never designed with Gigabit Ethernet (RGMII), SATA, PCI-express, DDR3, gas gauges, eDP, or even a power converter capable of handling 35 watts – my typical power envelope is under 10 watts, so I was always able to get away with converters that had integrated switches. Building my own laptop would be a great way for me to stretch my legs a bit without the cost and schedule constraints normally associated with commercial projects.
The final bit of motivation is my passion for Open hardware. I’m a big fan of opening up the blueprints for the hardware you run – if you can’t Hack it, you don’t Own it.
Back when I started the project, it was me and a few hard core Open ecosystem enthusiasts pushing this point, but Edward Snowden changed the world with revelations that the NSA has in fact taken advantage of the black-box nature of the closed hardware ecosystem to implement spying measures (“good news, we weren’t crazy paranoids after all”).
Our Novena Project is of course still vulnerable to techniques such as silicon poisoning, but at least it pushes openness and disclosure down a layer, which is tangible progress in the right direction.
While these heady principles are great for motivating the journey, actual execution needs a set of focused requirements. And so, the above principles boiled down to the following requirements for the design:
- All the components should have a reasonably complete set of NDA-free documentation. This single requirement alone culled many choices. For example, Freescale is the only SoC vendor in this performance class where you can simply go to their website, click a link, and download a mostly complete 6,000-page programming manual. It’s a ballsy move on their part and I commend them for the effort.
- Low cost is not an objective. I’m not looking to build a crippled platform based on some entry-level single-core SoC just so I can compete price-wise with the likes of Broadcom’s non-profit Raspberry Pi platform.
- On the other hand, I can’t spec in unicorn hair, although I come close to that by making the outer case from genuine leather (I love that my laptop smells of leather when it runs). All the chips are ideally available off the shelf from distributors like Digi-Key and have at least a five year production lifetime.
- Batteries are based off of cheap and commonly available packs used in RC hobby circles, enabling users to make the choice between battery pack size, runtime, and mass. This makes answering the question of “what’s the battery life” a bit hard to answer – it’s really up to you – although one planned scenario is the trans-Siberian railroad trek, which is a week-long trip with no power outlets.
- The display should also be user-configurable. The US supply chain is weak when it comes to raw high-end LCD panels, and also to address the aforementioned trans-Siberian scenario, we’d need the ability to drive a low-power display like a Pixel Qi, but not make it a permanent choice. So, I designed the main board to work with a cheap LCD adapter board for maximum flexibility.
- No binary blobs should be required to boot and operate the system for the scenarios I care about. This one is a bit tricky, as it heavily limits the wifi card selection, I don’t use the GPU, and I rely on software-only decoders for video. But overall, the bet paid off; the laptop is still very usable in a binary-blob free state. We prepared and gave a talk recently at 30C3 using only the laptops.
- The physical design should be accessible – no need to remove a dozen screws just to pull off the keyboard. This design requires removing just two screws.
- The design doesn’t have to be particularly thin or light; I’d be happy if it was on par with the 3cm-thick Thinkpads or Inspirons I would use back in the mid 2000’s.
- The machine must be useful as a hardware hacking platform. This drives the rather unique inclusion of an FPGA into the mainboard.
- The machine must be useful as a security hacking platform. This drives the other unusual inclusion of two Ethernet interfaces, a USB OTG port, and the addition of 256 MiB DDR3 RAM and a high-speed expansion connector off of the FPGA.
- The machine must be able to build its own firmware from source. This drives certain minimum performance specs and mandates the inclusion of a SATA interface for running off of an SSD.
After over a year and a half of hard work, I’m happy to say our machines are in a usable form. The motherboards are very reliable, the display is a 13” 2560×1700 (239ppi) LED-backlit panel, and the cases have an endoskeleton made of 5052 and 7075 aluminum alloys, an exterior wrapping of genuine leather, an interior laminate of paper (I also love books and papercraft), and cosmetic panels 3D printed on a Form 1. The design is no Thinkpad Carbon X1, but they’ve held together through a couple of rough international trips, and we use our machines almost every day.
Laptop parked in front of the Form1 3D printer used to make its body panels.
I was surprised to find the laptop was well-received by hackers, given its homebrew appearance, relatively meager specs and high price. The positive response has encouraged us to plan a crowd funding campaign around a substantially simplified (think “all in one PC” with a battery) case design. We think it may be reasonable to kick off the campaign shortly after Chinese New Year, maybe late February or March. Follow @novenakosagi for updates on our progress!
The first two prototypes are wrapped in red sheepskin leather, and green pig suede leather.
Detail view of the business half of the laptop.
Tags: make, novena, open hardware
Love it, very cool.
Feel free to head over to “schneier.com”, in the “Friday Squid Blog” section; where we’re brainstorming ideas of secure Open Source hardware (and software, everything). Any friendly vendors to the cause or individual engineers w/ access to fabs is also good information to know. Think you’d have some good points to offer for discussion if you have the time. If not, I’m definitely following this project anyways.
Cheers.
Have any of the prototypes been subject to impacts or falls? The lcd looks secure, and ssd should be fine. I have been impressed by the survivability of recent cheap laptops subjected to needless.. “mis-handling”.
Do you have any examples of alternate displays in use? I would be amused to mount a low power display directly overtop of the primary. Then you could literally page-turn.
Also noticed the length of the displays signal cable. Portrait mode would be interesting.
How often do you find yourself under the hood? Or is most of what’s needed already exposed at the edges?
Any difficulties travelling with it? Funny looks, etc?
As always, thanks for the interesting read. Watching this space closely.
The protos have been through a couple of international trips now. We haven’t tried to drop test any of them yet(!), but I don’t think they’d survive it very well. otoh, “there’s nothing I can’t fix” on these laptops. ;)
We’ve connected the mainboard up to a small 7″ LCD for use as UI for equipment; nothing very impressive, but it does demonstrate the ability to drive other LCDs.
I’m under the hood to upgrade and fix things mostly. Still a lot of tweaking and improvements to make; but on a day to day basis I rarely have to take the keyboard off. The lower right keyboard panel is meant to be taken off frequently, as it covers the expansion slot on the FPGA. There is a hole there for a cable to exit, but every time I want to slot in a different card I take the panel off.
Funny story about travel – I was on my way back from 30C3, going through securty in Frankfurt. The security agent looked at my laptop and asked me what I do. I said “computer engineer”. He then asks, “did you make it yourself?” and I sheepishly say yes. His face lights up and he says, “ah, so you can trust what’s in it! Now that’s taking it seriously.” I was amazed, the guy totally got it. Wish we had more folks like him working airplane security.
Aside from that, Singapore and Hong Kong security generally don’t bat an eye — under an x-ray, it looks like a regular laptop. Haven’t been to the US with it yet…the only country where they make you take off your shoes, jacket and belt. :-/ land of the free, home of the thoroughly inspected and surveilled.
Well, it’s definitely a conversation-starter, for better or for worse…
Hey, I stumbled over the talk at 30C3 you gave on the laptop. This whole project is impressive to say the least. I just now got the connection that it was you who did the “Factory Floor” guide to China manufacturing … now everything makes a lot more sense. If you want some ridiculously expensive but higher-quality casing, maybe we could work something out. Keep hacking!
I’m guessing you weren’t allowed to use these on an airplane. That will be an interesting (cosmetic) hurdle to cross in the future. Like everything on this blog, awesome work.
heiko, I don’t suppose you have a link to the 30C3 talk?
I think it’s this talk – it shows the laptop when they do the live demo:
http://www.youtube.com/watch?v=CPEzLNh5YIo
The CCC conference videos are mirrored on several FTP site. This one’s for 30C3:
http://ftp.uni-erlangen.de/CCC/30C3/mp4-hd/
We were sitting on the floor in some corner behind the main hall. So there is no recording of that talk (in case you expected any video documentation of it..).
I wonder how many people would support it if they actually had experience using it. I also wonder how many of them would be willing to put the money where their mouth is.
I for one like that someone is actually going out to build their own laptop. Although I am unlikely to ever buy one. ( unless someone is selling their old one for cheap; of course assuming it will exist at some point )
Very excited to see this project progressing. I’ve been following the development closely and the device looks fantastic. Great work.
I *WILL* buy one regardless of the cost. I will buy one regardless of the funding platform chosen, and even if no platform is chosen and we put cash in an envelope.
Purchasing one and using it would be a great conversation starter, get you off Windows and onto Linux (if you aren’t already), and put your money in the hands of people who will make other great devices that are open.
Cost is not a driver for me on something like this.
What’s the current state of Open Source FPGA programming? Will that hardware be usable with an open toolchain, or are specs available?
I’ve been watching this project – I want one too – I’ve been working on my own on again/off again iMX6 project -it’s about the same size but has, um, a tad more CPUs
http://www.taniwha.com/~paul/total.png
I got boards back yesterday, they look good, we’ll see how it builds …..
Now, that’s a nicely ratioed and DPIed screen.
What I don’t understand is how such a hi-res decent IPS panel costs about the same as my super-lousy 15.6″ TN with about 0 degrees vertical viewing angle (and not the greatest horizontally either).
I’m very happy to see that you decided to do a production run.
This board sounded very interesting when I first took knowledge about it couple of months ago.
It was your 30C3 presentation reminding me about this board.
The FPGA in notebook with a powerful iMX6 plus second NIC was a very great combo – too bad the second NIC is USB based making is only slightly better than external USB hooked up ethernet.
In the meantime I saw an iMX6 based Wandboard booting FreeBSD (my fav over Linux).
It is also very pleasing that you’ve found a way to hook up a high resolution display., although it will take some time until FreeBSD will support displays.
I hope for a low price, but being in electronic business myself I’m realistic and if it turns out to become a low volume production I’m willing to pay the price for that as well.
Neat! I wonder how well leather will hold up over time compared to more conventional materials (considering that my laptop case is slowly being replaced with structural gaffer tape…). I have to wonder about the use of eDP for the panel, and how much cost that adds, but a “smart” panel protocol is probably worth it in making the panel that much easier to replace with something else without mucking about with hardcoded values in the kernel and bootloader and such. Speaking of which, what bootloader is used on this thing?
I think the solution is to follow Bunny’s lead and start with a gaffer tape (rather than leather) case that way as time passes it will simply continue to become more authentic
Cool!!! I’ll be following your progress. I like your addition of the FPGA and it’s high speed bus. For better security you may wish to add a write protect jumper for the boot memory. Also the sound, mic, and WIFI need switches to allow them to be hardware disabled.
I was thinking it would be good to make an open expandable tablet architecture, but this NSA thing has me sidetracked. Have a core CPU/memory/video/touch screen board with expansion slots for peripherals or more memory, camera, surround sound, etc.. Electrically the expansion would ideally be some high speed serial bus already in use, but the physical would be a flat flexible PCB ribbon cable connector. This is to allow for flex in the system, and to allow the boards to be designed to fit an XYZ sized cavity. It will allow the PCBs to be at different mounting heights to better fit available components. Also components can be placed in odd orientations to the main PCB to take advantage of unused areas in the case. I’m expecting the display, touch screen, and case would be a unit. Then a compatible CPU, memory, video motherboard added. Expansion for networking, phone card, etc is added as well as power supply, and battery. Thicker case backs for bigger batteries or more expansion. External IO would be handled with fittings to hold the connectors.
I am dying to get one of these. If the final version has as much flexibility as the version presented in the wiki, sign me up!
[…] may also be interested to hear that, following a lot of praise from hackers, Bunnie and Xobs are planning to build and sell a simplified version of Novena via a crowdfunding campaign. We’ll keep you […]
I am looking forward to being able to invest in one of these machines. A great successor to my current thinkpad x200
Hey Bunnie, I’m glad to see an update on Novena.
I’m curious how you manage to connect and interface with the keyboard.
I’ve been looking around to hack some laptop keyboards and make them usable. Do you have any suggestions?
USB works in a pinch. I have a device that consists of an ARM board stuffed into a netbook case, with the case having a built-in USB keyboard and trackpad (and I think a USB hub as well, to connect the two). Alternatively, if you just have the keyboard matrix and no controller, you can try wiring it up to the GPIOs directly. There are also open source keyboard controller projects that use a microcontroller to drive the scan matrix and let you interface to them in some more convenient format (probably USB).
The only thing missing from my wish list is usb3 – I also don’t know if it supports sd/mmc,some of which are also fast, and it is easier to hide a 64g micro SD than a SSD (yes, I saw the hacking talk – but you can also write-protect or password protect sd cards).
It will be cool create FREE aluminium CASE! :-)
That’s nice! It will be helpful for my DIY projects.
I want and need one so badly too.
you say that it’s usable blob-free for your use case.
But is it possible to debug/develop for it blob-free too ?
The sdma firmware seems not mandatory:
if you loose the CPU dai, it’s not a concern at all, an USB sound card will do the trick(I’ve even got one already).
However the serial port seems to depend on the SDMA firmware, is there any way to debug this laptop without that?
Without it how would I:
* get the kernel logs
* get the bootloader logs and interact with it
* Get the init logs and have getty-like interface
* use kgdb over serial port
I’m totally aware that the GPU driver can be avoided, but I wonder if imx-drm is able to drive a so big resolution display without issues?
For instance with a slow omap3 at 500Mhz, It worked fine with the on-device display, but watching videos on dekstop display at 1024×768 required xv, which hopefully was in xf86-video-omapfb.
Is there also some Xorg driver that provides some more features than xf86-video-fbdev for it ? like for instance rotation, some 2d acceleration, xv, resolution changes(like to be able to switch to lower resolution than the native LCD resolution) etc…
Beside that I guess that the imx6 quad is fast enough to compile some packages on this laptop.
The 4GB of RAM are a bit limiting but I can live with it, I already do on my Lenovo T60.
I’ll also look if there is some virtualisation support for Imx.6 but I doubt it.
I guess that only the aarch64 have it, which makes more sense.
Denis.
We run the system all the time without SDMA firmware. It’s only really needed for smooth sound support. Even then, the SDMA engine is fully documented (it’s not too complicated) and there’s a project to build an assembler for it, so that problem will be solved with time.
System runs fine driving high resolutions and no acceleration. Scrolling a web page feels a little laggy but it doesn’t really hurt the usability, it’s more cosmetic imo, unless you really require slick transition animations to be happy with your computer (which is admittedly most of the world). More importantly for me, a vi or emacs window at full res scrolls perfectly, which is what I really care about.
“I refuse to downgrade to a phone or tablet as my primary platform”
STANDING OVATION!!!!!
About the price: i am ready to pay biggerm money for this after comared to a”colse” and commercial mainstream laptop, but you can’t ask me half liver and one testicle…
Please, start the crowdfunding project ASAP! I REALLY want to have one of those.
[…] away on the project and have finally offered a glimpse of the progress so far in an update on his official blog. ‘After over a year and a half of hard work, I’m happy to say our machines are in a usable […]
Looks great! I really want something like this, for at least the reason that with off-the-shelf laptops I always have to buy an OS with it that I don’t want (but I do have to pay for it, and I do get counted as a “user” of the darn thing). Since my OS of choice is NetBSD, I’m wondering if anyone has tried to run NetBSD/evbarm on the Novena? Here is a possibly useful link for people who are in a position to try: http://wiki.netbsd.org/ports/evbarm/
Hi
I really like your project and I’m following it for a while now and I must ask – why did you use leather? it really bothers me. Don’t you think you should reconsider it?
I like leather, and it’s a laptop for me. :)
[…] Make: Article on Novena […]
That was amusing. Is that a Thinkpad keyboard?
Yes!
I’ve been looking at building my own laptop too, not so much for speed but because I want a slimmer thing than a notebook, but I really require a thinkpad keyboard with the red “nub” for navigation when programming.
Haven’t been able to find anyone who actually could interface and have drivers for the thinkpad keyboards, they are super easy to find for little money all ove r HK (where I live) and markets in SZ as well as BJ/Shanghai.
You have figured out specs and drivers? Did you have to write specialized software drivers to support them?
/Jonas
Hello
Saw it on the Make blog…I want one, too! One or two things ‘bother’ me:
you’ve said it has 256 MiB of DDR3 on board. I suspect you meant Megabytes, not millibytes. (No problem…I’ve maid Miss Steaks, two :-) Can that be upgraded? Ubuntu needs at least that much to run on the command line. That and the Pi Model A comes with that much RAM.
Second, any hints on your crowdfunding plans?
Thank you for your consideration.
…Okay, if I had gone to the Novena main page first, I would’ve seen that it could accept a 4 gig DDR. Yeah, memory enough for me, and Ubuntu.
Likewise, February or March. That means real soon. No longer bothered… just embarrassed. And still interested.
Ahhhhh, YES bunnie!
supreme sharpness = supreme readability
touch-typing is better that multi-touching -> yes, you got rid of touchpad
I am not even commenting on the awesomeness of the project details just: Get it rolling guys!!!
About blob-free:
How exactly did you define it, what are the restrictions on that?
I guess there are some controllers, like the SD-Card \o/ you boot from? keyboard?
I guess there are no ways around these?
it’s not a laptop, it’s a labtop!
Any chance of you releasing/producing just the controller board for that sweet Chromebook Pixel screen? There are similar things on eBay that will convert a laptop screen into an external monitor, but none are compatible with that screen. I’m building a computer into a Pelican/Duratool style travel case, and that screen, or a folded array of them, would be perfect.
can’t wait for the announcement to get one, I’m stoked!
Hey Bunnie,
It seems from the first photo that not only you got yourself a mouth watering laptop, but also a nice pair of breasts. And you’ve shaven your legs ! :)
ROFL
The open source laptop looks great!
An idea for when you start working down to components, particularly the hard drive is to use a handful of micro SD cards and a FPGA or microcontroller in some RAID configuration and an alternate firmware for the SD cards. And having all of those microcontrollers available would be interesting, and could be used for experiments or for flock firmware tampering monitoring or a (slow) encryption key generator. The cost can be comparable to SSD drives, especially if the SD cards are bought in bulk, as can the speed.
How about being more modular so that some components can be upgraded easily. http://elinux.org/Embedded_Open_Modular_Architecture/EOMA-68
>making the outer case from genuine leather
Check for ahead for chemical compatibility of leather with components. On one of past projects, tanning chemicals from leather were leaching and depositing on chip legs corroding them.
wat price ? when will retail ? where ? please please make it available in india or it possible for us to make it on our own in ones own country !
Seems http://bunniefoo.com/ is dead. Can u fix it?
[…] Just over a year ago, [Bunnie Huang] announced he was working on a very ambitious personal project: a completely open source laptop. Now, with help from his hardware hacker compatriot [xobs], this laptop named Novena is nearly complete. […]