New Tech And The Old Ways

This week on Hackaday, we featured a project that tickled my nostalgia bone, and proved that there are cool opportunities when bringing new tech to old problems. Let me explain.

[Muth] shared a project with us that combines old-school analog photography printing with modern LCD screens. The basic idea is to use a 4K monochrome screen in place of a negative, making a contact print by placing the screen directly on top of photographic paper and exposing it under a uniform light source. Just like the old ways, but with an LCD instead of film.

LCD exposure animationBut what’s the main difference between a screen and film? You can change the image on the LCD at will, of course. So when [Muth] was calibrating out exposures, it dawned on him that he could create a dynamic, animated version of his image and progressively expose different portions of the paper, extending the available dynamic range and providing him the ability to control the slightest nuances of the resulting image contrast.

As an old photo geek, this is the sort of trick that we would pull off manually in the darkroom all the time. “Dodging” would lighten up a section of the image by covering up the projected light with your hand or a special tool for a part of the exposure time. With [Muth]’s procedure, he can dodge the image programmatically on the per-pixel level. We would have killed for this ability back in the day.

The larger story here is that by trying something out of the box, applying a new tool to an old procedure, [Muth] stumbled on new capabilities. As hackers, we’re playing around with the newest tech we can get our hands on all the time. When you are, it might be that you also stumble on new possibilities simply afforded by new tech. Keep your eyes open!

2022 Sci-Fi Contest: The Winners Are In

The Sci-Fi Contest closed out on Monday, and we put our heads together and picked our favorites. And it was no easy task, because in addition to many of the projects simply looking stellar, many went all-out on the documentation as well, making these stellar examples that we can all learn from, whether you’re into sci-fi or not. But who are we kidding? From the responses we got, you are.

The Winners

[RubenFixit]’s Star Trek Shuttle Console is a Trek themed escape room in a box. The project’s extraordinary attention to detail and exhaustive project logs absolutely won our judges heart. From the LCARS graphics to the 3D printed isolinear chip bays and mimetic crystals, it’s all there. [Ruben] estimates about 300 hours of work went into this one, and it shows.

We had no shortage of robotic projects in the contest, but [RudyAramayo]’s R.O.B. won our judges over. This one is not a joke, weighing in at over 140 lbs of custom metalwork and righteous treads. It’s also made out of some expensive hardware all around, so maybe this isn’t your weekend-build robot. We love the comment on the Arduino test code suite: “For gods sake man, you must test your code when it becomes an autonomous vehicle.”

Finally, [zapwizard]’s Functional Razor Crest Control Lever is a prop and a video game controller in one. We can totally see Grogu playing with this, and we were wowed by the attention to detail in the physical build — with custom gears and a speed limiter — as well as the attention to prop-making detail. Some parts are custom-cut stainless steel plates. 3D printed parts are covered in aluminum tape and chemically aged. Awesome. Oh yeah, it’s also a working USB joystick.

These three winners will be receiving a $150 shopping spree at Digi-Key.

Continue reading “2022 Sci-Fi Contest: The Winners Are In”

2022 Hackaday Prize: Get Your Planet-Friendly Power On!

Time flies! This weekend marks the end of the first stage of the 2022 Hackaday Prize, and your chance to enter your alternative-energy projects. There are ten $500 prizes up for grabs, and there’s still time to whip up a project page over on Hackaday.io to showcase it.

In this round, we’re looking for projects that harvest their own energy — solar, wind, heat, vibration, you name it — or projects that make it easier to collect, store, or use renewable energy. Whether this is microwatts or megawatts, the scale of the project is up to you! As long as it’s using or making it easier to use clean energy, we want to see it.

So far, we’ve seen some great projects, ranging from a optimizes the tilt angle of a home solar installation to a demonstration of using a new type of lithium-ion capacitor to add solar power to smaller projects. We really love [MartMet]’s simple Bluetooth thermometer hack, which adds a supercapacitor and solar cell to an outdoor thermometer, and then uses hacked firmware to log the charge status over a year of use! We’re suckers for good data.

The sun is not the only game in town, though. There are a surprising number of projects based on human energy production in emergency situations, from cranking to shaking. Thermionic converters were new to us, but we love explorations of fringe tech. Other traditional favorites like wind and water may make more sense for larger applications. And don’t forget how you’re going to store all this juice you’ve collected.

In short, we’ve got a bunch of great entries, but we’re still missing yours! There’s no minute like the last minute: if you’ve done some work in clean or renewable energy, set yourself up a Hackaday.io project page now. You’ll help make all our projects cleaner, and stand a good chance of taking home some real money to boot!

Once we’ve handled power, the next round is “Reuse, Recycle, Revamp” where any tech that uses recycled parts or facilitates reuse, repair, or recycling is fair game!

Research: It’s Like Cheating, But Fair

My niece’s two favorite classes in high school this year are “Intro to AI” and “Ethical Hacking”. (She goes to a much cooler high school than I did!) In “Hacking”, she had an assignment to figure out some bug in some body of code. She was staring and staring, figuring and figuring. She went to her teacher and said she couldn’t figure it out, and he asked her if she’d tried to search for the right keywords on the Internet.

My niece responded “this is homework, and that’d be cheating”, a line she surely must have learned in her previous not-so-cool high school. When the teacher responded with “but doing research is how you learn to do stuff”, my niece was hooked. The class wasn’t abstract or academic any more; it became real. No arbitrary rules. Game on!

But I know how she feels. Whether it’s stubborn independence, or a feeling that I’m cheating, I sometimes don’t do my research first. But attend any hacker talk, where they talk about how they broke some obscure system or pulled off an epic trick. What is the first step? “I looked all over the Internet for the datasheet.” (Video) “I found the SDK and that made it possible.” (Video) “Would you believe this protocol is already documented?” In any serious hack, there’s always ample room for your creativity and curiosity later on. If others have laid the groundwork for you, get on it.

If you have trouble overcoming your pride, or NIH syndrome, or whatever, bear this in mind: the reason we share information with other hackers is to give them a leg up. Whoever documented that protocol did it to help you. Not only is there no shame in cribbing from them, you’re essentially morally obliged to do so. And to say thanks along the way!

Easy, Extensible, Open

I’m a huge DIY’er. I don’t like to buy things when I can build them myself. But honestly, that doesn’t always end up in the optimal allocation of my time, when viewed from a getting-stuff-done perspective. Sometimes, if you’ve got a bigger project in mind, the right way is the quick way, and the quick way is buying something that already works. But when that something is itself not hackable, you’d better be darn sure that it does what you need, and what you could reasonably expect to need in the future, out of the box. And that’s where extensibility comes in.

It’s rare to find products out there that are designed to be both easy to use for the newbie, but extensible for the advanced user. For one, it’s hard work to tick either one of these boxes alone, so it’s twice as hard to nail both. But my other sinking suspicion is that designers tend to have an end user in mind, and maybe only one end user, and that’s the problem. When designing for the newbie, convenience is king. Or if targeting the pro, you maximize flexibility, but perhaps at the expense of designed-in complexity.

There’s a way out, a cheat code, if you will. And that’s making the project open source. Go ahead and hide the complexity from the new user if you want — as long as the pro is able to dive into the schematics or the source code, she’ll figure out how to extend it herself. Openness frees the designers up to worry about making it easy to use, without compromising its flexibility.

I think that this blend of easy and extensible, through openness, is what fundamentally drove the success of Arduino. On the surface layer, there are libraries that just do what you want and drop-down menus with examples to access them. But when you needed to actually use the chip’s hardware peripherals directly, there was nothing stopping you. For the community at large, the fact that all of the code was openly available meant that extending the base was easy — and let’s not beat around the bush, the community’s libraries, tutorials, and example projects are the real reason for the success of the platform.

Look around you, and look out when you’re making that next non-DIY shortcut purchase. Is it easy to use? Can you make it do the things that it doesn’t yet do? Just two simple requirements, yet they seem to knock out so many products if you want both. Then look at those that are both simple and flexible — are they also open? At least in my little world, the answer is almost always “yes”.

Remoticon 2021 // Jeroen Domburg [Sprite_tm] Hacks The Buddah Flower

Nobody likes opening up a hacking target and finding a black epoxy blob inside, but all hope is not lost. At least not if you’ve got the dedication and skills of [Jeroen Domburg] alias [Sprite_tm].

It all started when [Big Clive] ordered a chintzy Chinese musical meditation flower and found a black blob. But tantalizingly, the shiny plastic mess also included a 2 MB flash EEPROM. The questions then is: can one replace the contents with your own music? Spoiler: yes, you can! [Sprite_tm] and a team of Buddha Chip Hackers distributed across the globe got to work. (Slides here.)

[Jeroen] started off with binwalk and gets, well, not much. The data that [Big Clive] dumped had high enough entropy that it looks either random or encrypted, with the exception of a couple tiny sections. Taking a look at the data, there was some structure, though. [Jeroen] smelled shitty encryption. Now in principle, there are millions of bad encryption methods out there for every good one. But in practice, naive cryptographers tend to gravitate to a handful of bad patterns.

Bad pattern number one is XOR. Used correctly, XORing can be a force for good, but if you XOR your key with zeros, naturally, you get the key back as your ciphertext. And this data had a lot of zeros in it. That means that there were many long strings that started out the same, but they seemed to go on forever, as if they were pseudo-random. Bad crypto pattern number two is using a linear-feedback shift register for your pseudo-random numbers, because the parameter space is small enough that [Sprite_tm] could just brute-force it. At the end, he points out their third mistake — making the encryption so fun to hack on that it kept him motivated!

Decrypted, the EEPROM data was a filesystem. And the machine language turned out to be for an 8051, but there was still the issue of the code resident on the microcontroller’s ROM. So [Sprite_tm] bought one of these flowers, and started probing around the black blob itself. He wrote a dumper program that output the internal ROM’s contents over SPI. Ghidra did some good disassembling, and that let him figure out how the memory was laid out, and how the flow worked. He also discovered a “secret” ROM area in the chip’s flash, which he got by trying some random functions and looking for side effects. The first hit turned out to be a memcpy. Sweet.

[Neil555]’s Rosetta Stone
Meanwhile, the Internet was still working on this device, and [Neil555] bought a flower too. But this one had a chip, rather than a blob, and IDing this part lead them to an SDK, and that has an audio suite that uses a derivative of WMA audio encoding. And that was enough to get music loaded into the flower. (Cue a short rick-rolling.) Victory!

Well, victory if all you wanted to do was hack your music onto the chip. As a last final fillip, [Sprite_tm] mashed the reverse-engineered schematic of the Buddha Flower together with [Thomas Flummer]’s very nice DIY Remoticon badge, and uploaded our very own intro theme music into the device on a badge. Bonus points? He added LEDs that blinked out the LSFR that were responsible for the “encryption”. Sick burn!

Editor’s Note: This is the last of the Remoticon 2 videos we’ve got. Thanks to all who gave presentations, to all who attended and participated in the lively Discord back channel, and to all you out there who keep the hacking flame alive. We couldn’t do it without you, and we look forward to a return to “normal” Supercon sometime soon.

Mindblowing Graphics From An ATtiny85

[Görg Pflug] wrote in with his really nice graphics library. It’s got multiple layers, two text consoles, greyscale, internal halftoning, and sprites. It can pull off a number of classic graphics tricks and demos. Oh yeah, and did we mention it runs on a freaking ATtiny85 and an I2C OLED screen?!

This is an amazing piece of work — if you’d asked us if this was possible, we would have probably said “no”. And now it’s yours to use in your own projects. The GitHub repo is full of demos showing off everything from switching between multiple layers, extremely rapid text scrolls, animations, boing balls, and even a Wolfenstein-style raycaster. On an ATtiny85.

There’s a demo video, embedded below, that shows it all off, but honestly you have to think about what’s going to to be suitably wowed. The first demo just seems to have a graphic wave over static text, for instance. No big deal? It’s blending the greyscale layers together and dithering them out to black and white for the OLED in real time! On an ATtiny85.

While the library is written in straight C++, there are even a couple examples of how you’d integrate this with Arduino’s Wire library if you so wished. We don’t know about you, but this makes us want to whip together an ATtiny85 and SSD1306 OLED demo board just to start playing around. This isn’t just an amazing hack, but it would also be a useful way to add graphics and a nice console to any project you’re working on.

Did we mention it’s all done on an ATtiny85?  Over I2C? Kudos!

Continue reading “Mindblowing Graphics From An ATtiny85”