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!

USB Arduino Into AVR TPI Programmer

Turning an Arduino of virtually any sort into a simple AVR 6-pin ISP programmer is old hat. But when Atmel came out with a series of really tiny AVR chips, the ATtiny10 and friends with only six pins total, they needed a new programming standard. Enter TPI (tiny programming interface), and exit all of your previously useful DIY AVR programmers.

[Kimio Kosaka] wrote a dual-purpose TPI and ISP firmware for the ATmegaxxUn chips that are used as a USB-serial bridge on the Unos, and constitute the only chip on board a Leonardo or Micro. The catch? You’re going to have to do a little bit of fine-pitch soldering. Specifically, [Kosaka-san] wants you to get access to an otherwise obscured signal by drilling out a via. We’d do it just for that alone.

Continue reading “USB Arduino Into AVR TPI Programmer”

2016: As The Hardware World Turns

Soon, the ball will drop in Times Square, someone will realize you can turn ‘2018’ into a pair of novelty sunglasses, and the forgotten mumbled lyrics of Auld Lang Syne will echo through New Year’s Eve parties. It’s time once again to recount the last 366 days, and what a year it’s been.

Arduino got into an argument with Arduino and Arduino won. We got new Raspberry Pis. Video cards are finally getting to the point where VR is practical. The FCC inadvertently killed security in home routers before fixing the problem. All of this is small potatoes and really doesn’t capture the essence of 2016. It’s been a weird year.

Want proof 2016 was different? This year, Microsoft announced they would provide a Linux ‘shim’ with every version of Windows. By definition, 2016 was the year of the Linux desktop. That’s how weird things have been in 2016.

Continue reading “2016: As The Hardware World Turns”

Hackaday Links Column Banner

Hackaday Links: December 18, 2016

You can fly a brick if it has offset mass and you can fly a microwave because it breaks the law of the conservation of momentum. A paper on the EM Drive was recently published by the Eagleworks team, and the results basically say, ‘if this works, it’s a terrible thruster that shouldn’t work’. Experts have weighed in, but now we might not have to wait for another test in the Eagleworks lab: China will fly an EM Drive on their space station. Will it work? Who knows.

The ESP32 is just now landing on workbenches around the globe, and already a few people are diving into promiscuous mode and WiFi packet injection.

The Large Hadron Collider is the most advanced piece of scientific apparatus ever built. It produces tons of data, and classifying this data is a challenge. The best pattern recognition unit is between your ears, so CERN is crowdsourcing the categorization of LHC data.

Holy crap this is cyberpunk. [SexyCyborg] created a makeup palette pen testing device thing out of a Rasberry Pi and a few bits and bobs sitting around in a parts drawer. The project is cool, but the photolog of the finished project is awesome. It’s exactly what you would use to break into the Weyland-Yutani database while evading government operatives on the rooftops of Kowloon Walled City before escaping via grappling hook shot into the belly of a spaceplane taking off.

The Mini NES is Nintendo’s most successful hardware offering since the N64. This tiny device, importantly packaged in a minified retro NES enclosure, is out of stock everywhere. That doesn’t matter because now there’s a mini Genesis. The cool kids had a Genesis. You want to be a cool kid, right? Mortal Kombat was better on the Genesis.

The Arduino (what once was two is again one) launched a new vowel-hating model: MKRZero. The narrow board is powered by USB or LiPo, centers around an Atmel SAMD21 Cortex-M0+ chip, and sports both an I2C breakout header and a microSD card slot. Just watch those levels as these pins are not 5v tolerant.

The American Association for the Advancement of Science is holding a Scientific Maker Exhibit during its annual meeting. This type of exhibit isn’t a poster or presentation — it’s just some table space and a chance to show off a 3D printed apparatus, a new type of sensor, equipment, or some other physical thing. Details in this PDF. This is actually cooler than it sounds, and a significant departure from the traditional poster or presentation found at every other scientific conference.

Did you know Hackaday has a retro edition made specifically for old computers connected to the Internet? That’s my baby, and it’s time for a refresh. If you have any feature requests you’d like to see, leave a note in the comments.

Mini Retro PET Computer

There was a time that the Commodore PET was the standard computer at North American schools. It’s all-in-one, rugged construction made it ideal for the education market and for some of us, the PET started a life-long love affair with computers. [Ruiz Brothers] at Adafruit has come up with a miniature PET model run on a microcontroller and loaded up with a green LED matrix for a true vintage look.

While not a working model of a PET, the model runs on an Adafruit Feather M0 Basic Proto which is an Atmel ATSAMD21 Cortex M0 microcontroller and can display graphics on Adafruit’s 16×9 charlieplexed led matrix.The ATSAMD21 is the chip used in the Arduino Zero, so I’m sure we’ll see more of this chip in the future. Like all of the tutorials at Adafruit, this one is very detailed with step-by-step animated pictures to help you along. Obviously, you don’t need the exact hardware that they’re using, but if you’re putting in an order from Adafruit anyway, why not?

The plans for the 3D printed PET are available for free, so even if you don’t want to put their LED matrix and microcontroller in it, you can still print yourself out a great looking prop and 3D printing the PET will only use about a dollar’s worth of filament. Of course, while this is a cool retro model, if you have a Commodore PET lying around, you could probably do something else with it. We don’t, so that sound you hear is the sound of our 3D printer printing up the past.

Continue reading “Mini Retro PET Computer”

Awarding The 2016 Hackaday Prize

Saturday evening at the Hackaday SuperConference is reserved for the Hackaday Prize Party. Our engineering initiative each year, The Hackaday Prize, starts in the spring and ends in the fall. What happens in between is magic: thousands of engineers and engineering enthusiasts focus their skills on building something that matters. The top entries take home some pretty amazing prizes. At this year’s prize ceremony (seen below) we announced the five top entries which took home $200,000 in addition to the $100,000 already awarded to 100 final projects.

Check out the presentation which includes appearances by several of our amazing judges, then join us after the break for a bit more about this year’s Hackaday Prize.

Continue reading “Awarding The 2016 Hackaday Prize”

Build Your Own YouTube Play Button

The only thing that matters in this world is the likes you get on social media platforms. To that end, YouTube has been sending out silver and gold play buttons to their most valuable creators. [Sean] hasn’t screamed into a microphone while playing Minecraft long enough to earn one of these play buttons, so he decided to build his own.

This play button isn’t just a bit of pot metal ensconced in a frame brought to you by Audible dot com; this YouTube play button actually does something useful. It’s a PCB with 144 LEDs working together as a display. There’s an Atmel SAMD21 microcontroller on board to drive the LEDs, and an ESP8266 to pull data down from the Internet. What data is worthy enough to go on an Arduinofied YouTube play button? The subscriber count for [Sean]’s channel, of course. Go subscribe, it might crash his Play button.

Admittedly, there were a few problems with this Play button PCB. Firstly, the ESP8266 can’t directly communicate with the YouTube API to pull down the subscriber count. That problem was fixed with a Raspberry Pi that could connect to the API, and programming the ESP to pull the data from the Pi. Second, this was [Sean]’s first experiment with double-sided SMD boards reflowed in a toaster oven. The first side to be assembled was easy, but to get the second side on, [Sean] turned to low-temp bismuth solder paste. Except for a small error in assembling the board, everything worked as planned.

It’s a great project, and if you want to check out what the better parts of YouTube look like, check out [Sean]’s video below. Don’t forget to rate, comment, like, unlike, or subscribe.

Continue reading “Build Your Own YouTube Play Button”