Blob-less Raspberry Pi Linux Is A Step Closer

The Raspberry Pi single board computer has been an astounding success since its launch nearly five years ago, to the extent that as of last autumn it had sold ten million units with no sign of sales abating. It has delivered an extremely affordable and pretty powerful computer into the hands of hobbyists, youngsters, hackers, engineers and thousands of other groups, and its open-source Raspbian operating system has brought a useful Linux environment to places we might once have thought impossible.

The previous paragraph, we have to admit, is almost true. The Pi has sold a lot, it’s really useful and lots of people use it, but is Raspbian open-source? Not strictly. Because the Broadcom silicon that powers the Pi has a significant amount of proprietary tech that the chipmaker has been unwilling to let us peer too closely at, each and every Raspberry Pi operating system has shipped with a precompiled binary blob containing the proprietary Broadcom code, and of course that’s the bit that isn’t open source. It hasn’t been a problem for most Pi users as it’s understood to be part of the trade-off that enabled the board’s creators to bring it to us at an affordable price back in 2012, but for open-source purists it’s been something of a thorn in the side of the little board from Cambridge.

This is not to say that all is lost on the blob-free Pi front. Aided by a partial pulling back of the curtain of secrecy by Broadcom in 2014, work has quietly been progressing, and we now have the announcement from [Kristina Brooks] that a minimal Linux kernel can boot from her latest open firmware efforts. You won’t be booting a blob-free Raspbian any time soon as there are bugs to fix and USB, DMA, and video hardware has still to receive full support, but it’s a significant step. We won’t pretend to be Broadcom firmware gurus as we’re simply reporting the work, but if it’s your specialty you can find the code in its GitHub repository. Meanwhile, we look forward to future progress on this very interesting project.

We reported on the partial Broadcom release back in 2014. At the time, the Raspberry Pi people offered a prize to the first person running a native Quake III game on their hardware, sadly though they note the competition is closed they haven’t linked to the winning entry.

[Dave’s] Not Just A Member Of The Air Club For Tweezers

We are always surprised how much useful hacking gear is in the typical craft store. You just have to think outside the box. Need a hot air gun? Think embossing tool. A soldering iron? Check the stained glass section. Magnification gear? Sewing department.

We’ve figured out that people who deal with beads use lots of fine tools and have great storage boxes. But [Dave] found out they also use vacuum pickup tweezers. He had been shopping for a set and found that one with all the features he wanted (foot pedal, adjustable air flow, and standard tips) would run about $1000.

By picking up a pump used for bead makers and adding some components, he put together a good-looking system for about $200. You can see a video of the device, below, and there are several other videos detailing the construction.

Continue reading “[Dave’s] Not Just A Member Of The Air Club For Tweezers”

Custom Sensor Head Turns 3D Printer Into Capacitive Scanner

The best thing about owning a 3D printer or CNC router may not just be what you can additively or subtractively create with it. With a little imagination you can turn your machine into a 3D scanner, and using capacitive sensors to image items turns out to be an interesting project.

[Nelson]’s scanner idea came from fiddling with some capacitive sensors at work, and with a high-resolution capacitance-to-digital sensor chip in hand, he set about building a scan head for his printer. In differential mode, the FDC2212 sensor chip uses an external LC tank circuit with two plain sensor plates set close to each other. The sensor plates form an air-dielectric variable capacitor, and the presence of an object can be detected with high sensitivity. [Nelson]’s custom sensor board and controller ride on a 3D-printed bracket and scan over the target on the printer bed. Initial results were fuzzy, but after compensating for room temperature variations and doing a little filtering on the raw data, the scans were… still pretty fuzzy. But there’s an image there, and it’s something to work with.

Need a slightly more approachable project to get your feet wet with capacitive sensors? Maybe you should use your phone’s touchscreen as a 2D-capacitive scanner.

[via r/electronics]

Raspberry Pi Home Automation For The Holidays

When you want to play around with a new technology, do you jump straight to production machinery? Nope. Nothing beats a simplified model as proof of concept. And the only thing better than a good proof of concept is an amusing proof of concept. In that spirit [Eric Tsai], alias [electronichamsters], built the world’s most complicated electronic gingerbread house this Christmas, because a home-automated gingerbread house is still simpler than a home-automated home.

fya59blixaq00y3-largeYeah, there are blinky lights and it’s all controlled by his smartphone. That’s just the basics. The crux of the demo, however, is the Bluetooth-to-MQTT gateway that he built along the way. A Raspberry Pi with a BTLE radio receives local data from BTLE sensors and pushes them off to an MQTT server, where they can in principle be read from anywhere in the world. If you’ve tried to network battery-powered ESP8266 nodes, you know that battery life is the Achilles heel. Swapping over to BTLE for the radio layer makes a lot of sense.

Continue reading “Raspberry Pi Home Automation For The Holidays”

Disposable Drones

How do you deliver medical supplies to a war zone cheaply? The answer, according to this project, might be to make a disposable drone. Created by friends of Hackaday [Star Simpson] and the Sky Machines group at Otherlab, this project is looking to make drones out of cheap biodegradable products like cardboard.

Rather than risk an expensive drone that might never return, the project imagines a drone that flies to the target, delivers its cargo with an accuracy of about 10 meters and then be easily disposed of. The prototype the team is working on is part of a DARPA project called Inbound, Controlled Air-Releasable Unrecoverable Systems (ICARUS) and is a glider designed to be released from a plane or helicopter. Using a cheap GPS receiver and controller, the drone then glides to the destination.

It’s an interesting take on the drone: making it so simple and cheap that you can use it once and throw it away. And if you want to get a feel for how [Star] and Otherlabs approach problems like this, check out the awesome talk that [Star] gave at our recent SuperConference on making beautiful circuit boards.

Thanks for the tip, [Adrian]!

TruffleHog Sniffs Github For Secret Keys

Secret keys are quite literally the key to security in software development. If a malicious actor gains access to the keys securing your data, you’re toast. The problem is, to use keys, you’ve got to write them down somewhere – oftentimes in the source code itself. TruffleHog has come along to sniff out those secret keys in your Github repository.

It’s an ingenious trick — a Python script goes through the commit history of a repository, looking at every string of text greater than 20 characters, and analyzing its Shannon entropy. This is a mathematical way of determining if it looks like a relatively random string of numbers and letters. If it has high entropy, it’s probably a key of some sort.

Sharing source code is always a double-edged sword for security. Any flaws are out for all to see, and there are both those who will exploit the flaws and those who will help fix them. It’s a matter of opinion if the benefits outweigh the gains, but it’s hard to argue with the labor benefits of getting more eyes on the code to hunt for bugs. It’s our guess though, that a lot of readers have accidentally committed secret keys in a git repository and had to revert before pushing. This tool can crawl any publicly posted git repo, but might be just as useful in security audits of your own codebase to ensure accidentally viewable keys are invalidated and replaced.

For a real world example of stolen secret keys, read up on this HDMI breakout that sniffs HDCP keys.

1 KB Challenge: And The Winners Are…

The 1 kB Challenge deadline has come and gone. The judges have done their work, and we’re ready to announce the winners. Before you jump down to find out who won, I’d like to take a moment to say thanks to everyone who participated. We had some incredible entries. To say that judging was hard is quite an understatement. Even [Eben Upton], father of the Raspberry Pi got in on the action. He created a new helicopter game for the classic BBC Micro. Look for writeups on the winners and many of the other entries in the coming weeks.

Grand Prize

brainfckThe grand prize goes to [Jaromir Sukuba] for Brainf*cktor. [Jaromir] went above and beyond this time. He created a computer which can be programmed in everyone’s favorite esoteric programming language. Brainf*cktor uses 1019 bytes of program memory in [Jaromir’s] PIC18F26K22. You can write, execute and edit programs. [Jaromir] ran into a bit of a problem with his LCD. The character tables would have thrown him over the 1 kB limit. Not a problem – he designed his own compressed character set, which is included in the 1019 bytes mentioned above. All the clever software takes physical form with a homemade PCB, and a case built from blank PCB material. Best of all, [Jaromir] has explained his software tricks, as well as included a full build log for anyone who wants to replicate his project. All that hard work will be rewarded with a Digi-Comp II kit from EMSL.

First Prize

mosFirst prize goes to [Dumitru Stama] with M0S – CortexM0 RTOS in 1024 bytes. Operating systems are complex beasts. Many of our readers have toyed with the Linux Kernel. But writing a real-time OS from scratch? That’s quite an undertaking.  [Dumitru] didn’t shy away from the challenge. He designed a Real-Time Operating System (RTOS) for ARM processors, written completely in ARM thumb assembly instructions. This is no bare-bones executive. M0S has a rich list of features, including preemptive task scheduling, mutexes, and inter-process communication. [Dumitru] even gave us memory allocation with an implementation of malloc() and free(). The OS was demonstrated with a NUCLEO-F072RB board from ST-Micro.

[Dumitru] didn’t just drop a GitHub link and run. He documented M0S with seven project logs and a 37-minute long video. The video uses electronic whiteboard drawings to clearly explain all the internal workings of the operating system, as well as how to use it.

[Dumitru] is the proud new owner of a Maker Select 3D printer V2!

Second Prize

1klaserSecond prize goes to [Cyrille Gindreau] with 1K Challange Laser. Vector lasers generally take lots of memory. You have to manage galvanometers, laser drive, and perform all the magic it takes to convert a set of vectors to lines drawn in space. The project uses 912 bytes of program and initialized data memory to command an MSP430 to draw an image.

Proving that flattery will get you everywhere, [Cyrille] picked the Hackaday logo as the subject. The Jolly Wrencher is not exactly simple to convert to vector format, though. It took some careful optimizations to come up with an image that fit within 1 kB. [Cyrille] wins a Bulbdial Clock kit from EMSL.

Third Prize

tinygamesThird prize goes to [Mark Sherman] with tinygames. Video games have been around for awhile, but they are never quite this small. [Mark] coaxed the minuscule Atmel ATtiny84 to play Centipede with only 1024 bytes of program memory. Even the BOM is kept small, with just a few support components. Control is handled by an Atari 2600 compatible joystick. Video is black and white NTSC, which is demonstrated on a period accurate CRT. [Mark] generates his video by racing the electron beam, exactly the same way the Atari 2600 did it.

[Mark] will take home a Blinkytile kit from Blinkinlabs.

Final thoughts

First of all, I’d like to thank the judges. Our own [Jenny List], [Gerrit Coetzee], [Pedro Umbelino], [Bil Herd], and [Brian Benchoff] worked hard with me in judging this contest. I’d also like to thank our community for creating some amazing projects. The contest may be over, but these projects are now out there for others to build, enjoy, and learn from.

I’ve wanted to organize this contest since [Jeri Ellsworth] and [Chris Gammell] took on the 555 contest way back in 2011. The problem is creating a set of rules that would be relatively fair to every architecture. I think 133 entries to this contest proves that we found a very fair set of constraints. It is safe to say this won’t be the last 1 kB Challenge here at Hackaday, so if you have ideas for future editions, share them in the comments!