Micro:bit — BBC Gets A Million Kids Into Embedded Dev

In the Early 1980s, the BBC launched a project to teach computer literacy to a generation of British schoolchildren. This project resulted in the BBC Micro, a very capable home computer that showed a generation exactly what a computer could do. These children then went home, turned on their ZX Spectrums, and became a generation of software engineers. Still, the BBC Micro is remembered fondly.

The computer revolution is long over, but today we suffer a sea change of embedded processors and microcontrollers. With Arduinos and Raspberry Pis, the BBC has decided it’s time to put the power of an ARM microcontroller into the hands of a million 11- and 12-year olds. The result is the Micro:bit. It’s a small microcontroller board with an ARM processor, an IMU, buttons, Bluetooth and a 5×5 LED array – exactly what you need if you’re teaching a million kids how to blink an LED.

Although the BBC has finalized the design for the Micro:bit, there are no specs at all. However, a few educated guesses can be made. The USB controller is provided by Freescale, who also provide the digital compass and magnetometer. Programming is done through a web-based, Arduino-like IDE with what appears to be a decent Micro:bit specific library. The board is also mbed compatible. Bluetooth, and apparently the ARM Cortex M0 core, is provided by a Nordic nRF51822. There are only three alligator clip-compatible I/Os, and its doubtful any student will be building anything that would be too complex for an entry level ARM. It’s also 3V logic; finally, the tyranny of 5V has fallen.

The Micro:bit is best seen as a tool that enables the relatively recent addition of a computer science curriculum in UK schools. There is now a requirement for seven-year-olds to understand algorithms and create simple programs. Previously computer education in the UK has consisted of PowerPoint. Now, secondary school students will be learning Boolean logic.

While the Micro:bit is utterly useless as a tool for doing real work, education is not real work. For blinking a few LEDs, having a device react to movement, playing with Bluetooth, and other lesser evils of electronics, the Micro:bit is great. Not everyone will become the digital technologists this initiative is trying to create, but for those who have an inclination towards semicolons and electrons, this is a great introduction to technology.

2048: Embedded Edition

Embedded touch version of 2048 tile gameHow ’bout that 2048 game? Pretty addictive, huh? Almost as addictive as embedded systems are, at least if you’re [Andrew]. Armed (pun intended) with a Nucleo F4 and a Gameduino 2 shield, he decided to have a go at making an embedded version of the popular tile pusher web game.

If you’re unfamiliar with the Nucleo boards from STMicroelectronics, check out our post on the Nucleo family from a couple of months ago. The Gameduino 2 shield ships with a 4.3″ touchscreen driven by an FT800 GPU EVE. [Andrew] wrote his own driver for it and his blog post goes into great detail about its programming model and the SPI read, write, and command functions he wrote. Full code is available from [Andrew]’s repo.

He started by generating a blank screen based on clues found in the Gameduino 2 source. Pretty soon he had rendered a rectangle and then a full 2048 board. A minor difference between [Andrew]’s creation and the original is that his always creates new tiles as ‘2’ while the web game cranks out the occasional ‘4’.

We were unable to embed [Andrew]’s gameplay videos, but you’ll find two on his blog.


Discrete 6502 processor sucked into Linux by a BeagleBone

Often when we see projects using embedded Linux we think of them as not being hardware hacks. But this is a horse of an entirely different color. [Matt Porter] is leveraging a little known feature to directly access a 6502 processor from inside a Linux environment. In other words, this hack lets you write code for a 6502 processor, then load and execute it all from the same Linux shell.

The project leverages the best parts of the BeagleBone, which is an ARM development board running embedded Linux. It’s got a lot of GPIO pins that are easy to get via the boards pin sockets. And the design of the processor makes it fast enough to work well as a host for the 6502 chip. Which brings us back to how this is done. The Linux kernel has support for Remote Processors and that’s the route [Matt] traveled. With everything wired up and a fair amount of kernel tweaking he’s able to map the chip to the /dev/bvuart directory. If you want all the details the best resource is this set of slides (PDF) from his talk at Embedded Linux Conference – Europe.

This is one way to get out of all that hardware work [Quinn Dunki] has been doing to build her own computer around a 6502 chip.

[Thanks Andrew via Dangerous Prototypes]

Disco isn’t dead: diy dance floor spotted at student parties

Your party is lame if it doesn’t include interactive blinking lights on the dance floor. [Mario] and [Lukas] didn’t want to have lame parties, so they enlisted some fellow students to build an interactive dance floor (translated). The finished party-piece is 4 meters by 2.5 meters (that’s about 13’x8′ for us yanks) and includes 160 lighted squares. But it’s the electronics that really make this a heavy project.

Milled into the underside of the pressboard base are a series of pockets and channels to hold various components. If you look hard enough, you’re going to find eight AVR microcontrollers which control the LEDs, 8 CPLDs to manage the weight sensors which make the floor interactive, and an FPGA and embedded computer to tie everything together. It’s movable, a hit at parties, and so far it seems to hold up to the occasional spilled beverage.

You can’t share a project like this without some video. See it after the break.

Continue reading “Disco isn’t dead: diy dance floor spotted at student parties”

Another approach to power meter data harvesting

[Dodgy] wrote in to talk about his power meter data harvesting programs. This uses the same hardware by CurrentCost as the hack we looked at over the weekend but [Dodgy’s] implementation is different. It’s separated into two parts, the first is a webserver written in C that harvests the data and makes it available at an address on the network, the second is written in Perl to format and upload data to Google PowerMeter.

The C program serves data on a configurable port, defaulting to 3090. All of the data can be accessed in one line of code by loading, or individually with subdirectories like /watts, /time, or /tempr. From there you can do what you want with the data. The second part of [Dodgy’s] suite is a Perl script that polls the C server and sends the data to your Google account.

One thing that interests us is his comment that you should be able to compile the server side C code for an embedded device. It would be a nice energy savings to be able to upload data regularly without a PC running constantly.

Report from ESC Silicon Valley 2010

Ah, the heady aroma of damp engineers! It’s raining in Silicon Valley, where the 2010 Embedded Systems Conference is getting off the ground at San Jose’s McEnery Convention Center.

ESC is primarily an industry event. In the past there’s been some lighter fare such as Parallax, Inc. representing the hobbyist market and giant robot giraffes walking the expo. With the economy now turned sour, the show floor lately is just a bit smaller and the focus more businesslike. Still, nestled between components intended to sell by the millions and oscilloscopes costing more than some cars, one can still find a few nifty technology products well within the budget of most Hack a Day readers, along with a few good classic hacks and tech demos…

Continue reading “Report from ESC Silicon Valley 2010″

Augmented Network Interfaces


Here’s an interesting bit of research to come out of Microsoft and UCSD. The Somniloquy project is a new type of network interface. It’s a USB device that allows a computer to continue network communications after being put to sleep. By offloading these tasks, machines that would normally stay awake for RDP and file transfers are only powered up when absolutely necessary. The device uses a Gumstix board like the one used in the Tor hardware adapter. The device pictured above has two USB interfaces, but the second is just for debugging and not needed for proper operation. The board runs BSD and creates a USBNet bridge to the Vista host. When the host daemon detects the computer going to sleep, it hands off active communication to the gumstix. They developed “stub” applications to handle the various types of communication. For downloads, they used wget to download only the portion of the data that was still left. For bittorrent, they customized the command line client ctorrent to manage the download. Both programs wake up the PC upon completion and transfer the file off of the SD card.

[via Engadget]