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!

Step Up To The 1 KB Challenge

1 kilobyte. Today it sounds like an infinitesimally small number. Computers come with tens of gigabytes of ram, and multiple terabytes of storage space. You can buy a Linux computer with 1 gig of RAM and secondary storage as big as the SD card you throw at it. Even microcontrollers have stepped up their game, with megabytes of flash often available for program storage.

Rapidly growing memory and storage are a great testament to technology marching forward to the beat of Moore’s law. But, we should be careful not to forget the techniques of past hackers who didn’t have so much breathing room. Those were the days when code was written in assembly. Debugging was accomplished with an expensive ICE (an In Circuit Emulator… if you were working for a big company), or a few LEDs if you were hacking away in your basement.

To keep these skills and techniques in play, we’ve created The 1 kB Challenge, a contest where the only limit is what you can do with 1 kB of program memory. Many Hackaday contests are rather loose with constraints — anyone can enter and at least make the judging rounds. This time 1 kB is a hard limit. If your program doesn’t fit, you’re disqualified, and that is a challenge worth stepping up to.

That said, this is Hackaday, we want people to be creative and work around the rules. The important thing to remember is the spirit of the design constraints: this is about doing all you can with 1 kB of program space. Search out the old and wise tricks, like compressing your code and including a decompression program in your 1 kB. Crafty hacks to squeeze more into less is fine. Using the 1 kB as a bootloader to load more code from an SD card is not fine.

Prizes

Any Hackaday contest needs some awesome prizes, and this one is no different.

Continue reading “Step Up To The 1 KB Challenge”

Enlightened Raspberry Pi Contest Winners

The Enlightened Raspberry Pi Contest wrapped up last week. As soon as the contest closed, Hackaday’s crack team of judges jumped on the case. Every entrant was carefully reviewed.  This was no easy feat! The field of 168 projects included both new concepts and old favorites. All of them were designed, built and documented with care. After all the votes were counted, 8 finalists rose to the top and were sent to [Matt Richadrson], [Ken Shirriff], and [Alvaro Prieto], our VIP judges, for the final ranking.

Each and every project creator deserves recognition for not only building an awesome project, but documenting it on Hackaday.io so others can build, modify, and enjoy their own versions. Without further ado, here are the winners of the Enlightened Raspberry Pi Contest!

Continue reading “Enlightened Raspberry Pi Contest Winners”

Hackaday Links Column Banner

Hackaday Links: October 30, 2016

Diablo. Mech Warrior. Every LucasArts game. There are reasons to build an old PC, and no, emulation cannot completely capture the experience of playing these old games. [Drygol] set out to create a retro PC and succeeded brilliantly. The built features an old desktop AT case (when is the last time you saw one of them?), a 233MHz Pentium with MMX technology, an ancient PCI video card, and an old ISA Ethernet card (with AUI connector). Incoming upgrades will be an ATI 3D Rage PRO, PCI SoundBlaster, and hopefully Windows 98SE.

Right now, we’re gearing up for the Hackaday Superconference next weekend. It’s going to be awesome, and we’re going to announce the winner of the Hackaday Prize. We have another contest going on right now – the Enlightened Raspberry Pi Contest. The name of the game here is documentation. Build something, document it on hackaday.io, and you get some cool prizes.

Continue reading “Hackaday Links: October 30, 2016”

Win Loot With The Enlightened Raspberry Pi Contest

Have an awesome Raspberry Pi project in mind (or maybe sitting on your bench right now)? Show it off for the Enlightened Raspberry Pi contest and you can score some excellent loot.

The Raspberry Pi has changed the face of experimental computers. These little $35 Linux powered boards can do incredible things. An active community has sprung up around the Pi. With it have come thousands of projects published on the web, in books, and in magazines. Many of the best Raspberry Pi projects are seen right here on Hackaday and published on Hackaday.io, which boasts over 1000 user created Pi powered projects (yes, we counted). Show us how you pull off those projects and you’ll be eligible to win.

Prizes and Judges

One thing we’d like to see more are really well documented projects — showing off everything anyone with an average skill set needs to perform the cool hack themselves. Do that and you’re well on your way to claiming one of eight great prizes! The grand prize winner gets a Pi-top Raspberry Pi laptop. First prize is the new Pi-top Ceed all in one. Second place is a 32×32 RGB Matrix kit. And the list goes on.

Submit your entry as a project on Hackaday.io and use the “Submit Project To…” option on the left sidebar of your project page to add it to the Enlightened Raspberry Pi contest. When entries close on November 9th, the Hackaday Staff will begin judging, bringing in some help to choose the top winners. This help comes in the form of a few VIP judges!

[Alvaro Prieto] is a Firmware/Electrical engineer who works on electronics for work and for fun. He previously worked at TI, Apple, and Planet. You’ve seen him hacking micro quadcopters, and as a presenter at the 2015 Hackaday SuperCon,

[Matt Richardson] is a Product Evangelist for the Raspberry Pi Foundation and the co-author of Getting Started with Raspberry Pi. We’ve seen [Matt] building heads up displays for bicycles, and removing celebrity gossip from our TV’s.

[Ken Shirriff] writes a popular blog (righto.com) on reverse engineering everything from chargers to microprocessors. Ken was formerly a programmer at Google and has a PhD in computer science from UC Berkeley. We’ve covered his microprocessor work as well as his teardowns of knockoff laptop chargers.

It’s All in the Details:

Entries are open now, show us the details that make great Raspberry Pi projects happen! The full rules can be found on the Enlightened Raspberry Pi Contest page. Fire up your soldering irons, warm up your 3D printers, and load up your favorite code editor. It’s time to start hacking!

enlightenpi

ESP8266 MicroPython Contest Gives You The Excuse You Need

As if the prospect of having everyone’s favorite scripting language ported over weren’t enough to get you to install MicroPython on a spare ESP8266, there is now a contest for that. Over on Hackaday.io the MicroPython on ESP8266 contest is under way and you’ve only got until the end of August to submit your creation.

The prizes? First place gets an OpenMV camera board because [Radomir], who’s running the contest, has an extra one. OK, it’s not as lush as the corporate-sponsored goody-bag that we’ve got running in the Hackaday Prize, but there’s no reason that you can’t enter both. And if anyone wants to throw some more goodies into the pot, I’m sure they’d be welcome.

The rules are simple: use an ESP8266 or ESP8285 with MicroPython and post the project up on Hackaday.io. Bonus points are given for creating new libraries or hardware drivers. Basically, this just gives you an extra reason to get in there and play around. How cool is that?

If you need a start-up on MicroPython on the ESP8266, the official tutorial is great. We wrote up a first-look review of running MicroPython on the WeMos D1 hardware, but were plagued with (re-)flashing difficulties, so we’re going to have to give it another go.

Hack The Hackaday Demoscene From Your Own Home

We are just two weeks away from the Hackaday | Belgrade conference, and tickets have completely sold out. That means you can’t get your hands on one of these sweet hardware badges, but you can still take home some prizes for pulling off a gnarly hack with the badge firmware.

What we’re talking about is the Hackaday Belgrade Badge Demoscene – which includes a surrogate presenter program for anyone who wants to send in their own code for the device. You have two weeks to work on and submit your code — and we’ve made it really easy for anyone who has a working knowledge of C.

The day of the conference we will download all entries, and have a surrogate at the conference load it onto their badge and present it on your behalf. There is a separate pool of prizes for online entries, so hackers not at the con will win. And of course we’ll be celebrating the awesome demos with some posts on the front page.

No Hardware Needed

Badge emulator scrolling the word "Hackaday"
Badge emulator scrolling the word “Hackaday”

Hack in C for Abstracted Bliss or Be Hardcore:

You can use the emulator shown here to write your code for this badge. It comes with a set of basic functions that abstracts away the low-level hardware functions, and launches a demo window on your computer to test out your code. Check out this barebones C framework to get started.

For those that want more control, we have published the official assembly code that the badges will ship with (including a user manual). We’ll be squashing bugs right up to the day of the con). You can alter and compile this code yourself, or just start from scratch using the design spec if you prefer to travel the hardcore bit-monkey path.

Either way, you have an 8×16 display and 4 buttons to work with. Exercise your creativity and amaze us by doing a lot on a rather modest canvas. That’s what demoscene is all about.

How to Enter

Entry is easy, just start a project on Hackaday.io and submit it to the Belgrade Badge Demoscene contest using the “Submit Project To…” menu on your project page. You need to upload .C and .H files, or a precompiled .HEX to the file hosting part of your project page by Saturday, April 9th.

That’s the extent of the requirements. But it would be super fun if you recorded the software emulator playing your demo for all to see. The easiest way to do this is to record a video of your computer screen using your smartphone. Good luck to all!