Making it Easier to Build Firmware

OSHW Logo

Most microcontroller manufacturers give you some kind of free development toolchain or IDE with their silicon products. Often it’s crippled, closed source, and a large download. This is pretty inconvenient when you want to have firmware that’s easy to build and distribute. I’ve found many of these toolchains to be annoying to use, and requiring closed source software to build open source firmware seems less than desirable.

It’s possible to build code for most microcontrollers using command line tools. You’ll need a compiler, the device manufacturer’s libraries and header files, and some method of flashing the device. A lot of these tools are open source, which lets you have an open source toolchain that builds your project.

Setting up these tools can be a bit tricky, so I’m building a set of templates to make it easier. Each template has instructions on setting up the toolchain, a Makefile to build the firmware, and sample code to get up and running quickly. It’s all public domain, so you can use it for whatever you’d like.

Currently there’s support for AVR, MSP430, Stellaris ARM, and STM32L1. More devices are in the works, and suggestions are welcome. Hopefully this helps people get started building firmware that’s easy to build and distribute with projects.

[Bunnie] builds a laptop for himself, hopefully us

Click to embiggen

 

[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.

 

ARM powered rack mount USB test equipment

developing-rack-mount-pcb-testing-tools

This is a device which [Limpkin] has been developing at his day job. It’s a high-speed testing interface for use with Physics experiments. We find it interesting because it uses an ARM microcontroller to implement CDC and MSD over USB.

The design is in two parts to make it work in a rack-mount situation. That big white connector allows cards to be swapped out. You can see the board on the right has a USB-A connector. When plugged in this enumerates as a control device (CDC) and a mass storage device (MSD) using fat32 as a file system.

The platform is being developed with open hardware and open source software in mind. If you’re working on a project that uses either of these USB functionalities this makes a swell reference. The ARM Cortex-M3 chip that he’s using is an AT91SAM3U but it should not be too hard to port the code for other similarly-capable ARM processors.

Rasperry Pi: Now mostly open source

If you’ve been following the developments of building Android, Chromium, and other OSes for the Raspberry Pi, you’ll come across a common theme. The drivers for the Raspi’s chip are closed source and protected by Broadcom with an NDA. This limits the ability of devs to take on projects that involve messing around deep inside the CPU.

Today, this is no longer the case. The CPU on the Raspberry Pi is now the first ARM-based system with fully functional, vendor-provided drivers.

Previously, the drivers for OpenGL ES, OpenMax, and other goodies inside the ARM chip have been closed source, available only to the Raspberry Pi foundation and those willing to sign a non-disclosure agreement with Broadcom. With this release, the drivers are open source, allowing the devs behind the Android, Chromium, Haiku, *BSD, and the RISC OS to dig deep into the Broadcom drivers and get their projects working.

The new files are available in the Raspberry Pi git, just waiting for devs to take a look at it.

Sparkfun recognized for their growth

The Denver Business Journal has recognized Sparkfun Electronics as the 2nd fastest growing company in the Denver area (in the $17.5-$46million class). This is fantastic news, not only for Sparkfun, but for Open Source Hardware.  Sparkfun is the worlds largest manufacturer of open source hardware, located right in the middle of the country, Boulder Colorado.

Not only has Sparkfun grown immensely in open source hardware products, they’ve also put together several educational systems like their tutorial section as well as their “learn at sparkfun” system. Way to go sparkfun!

Parallax shows love for open source: GCC + Propeller

Parallax has done something that is unthinkable for most microcontroller manufacturing companies. They’ve decided to throw their support behind an open source toolchain based on GCC. That’s right, instead of fighting to get your code compiling on a platform whose example code uses crippleware, you can actually download, compile, and start using this toolchain without code size restrictions or other unfavorable limitations.

Why does this matter? One example that comes to mind is ChibiOS and the STM32F0-Discovery board. We’ve been playing around with that board recently and found out that the Atollic 8k code-size limitation prevents you from debugging ChibiOS. So you either pony up the registration fee, or go though at least a little pain (a lot depending on your skill level) to move to an open source solution. Here that’s not going to happen because you start with a GCC option from the word ‘Go’.

So join us in a round of applause for good decisions. Bravo Parallax! This Beta test targets the P8X32A Propeller chip but we hope it’s so popular that the rest of the line gets its own support.

[Thanks Devlin via Adafruit]

Open source graphics card

Even though NVidia and ATI have been open-source friendly for a while now, there still isn’t a true open-source graphics card. [Anton] and [Per] are trying to fix that by building his own graphics card around an FPGA. The project is called ORSoC, and it’s available on opencores.com.

The guys are building the ORSoC graphics card around a Digilent Atlys FPGA dev board. So far, he can draw lines, textured triangles, bitmap or vector fonts, and throw a few 3D meshes up on the screen. This project isn’t intended to run advanced OpenGL or Steam on Linux, but for all the work that into this graphics accelerator, it’s an amazing piece of work.

There are a few demos after the break; a cube rotating in 3D and a demo drawing and translating polygons and a few textures. The ORSoC is a bit slow, but that’s an artifact of the build not being optimized for the FPGA the team is using. If you’d like to test this graphics card, there’s a Git available. As a bonus you don’t even need an FPGA to play around with this project. There’s also a software emulation of all the functions. Very neat.

[Read more...]

Follow

Get every new post delivered to your Inbox.

Join 92,114 other followers