Arduinos (and other AVRs) Write To Own Flash

In this post on the Arduino.cc forums and this blog post, [Majek] announced that he had fooled the AVR microcontroller inside and Arduino into writing user data into its own flash memory during runtime. Wow!

[Majek] has pulled off a very neat hack here. Normally, an AVR microcontroller can’t write to its own flash memory except when it’s in bootloader mode, and you’re stuck using EEPROM when you want to save non-volatile data. But EEPROM is scarce, relative to flash.

Now, under normal circumstances, writing into the flash program memory can get you into trouble. Indeed, the AVR has protections to prevent code that’s not hosted in the bootloader memory block from writing to flash. But of course, the bootloader has to be able to program the chip, so there’s got to be a way in.

The trick is that [Majek] has carefully modified the Arduino’s Optiboot bootloader so that it exposes a flash-write (SPM) command at a known location, so that he can then use this function from outside the bootloader. The AVR doesn’t prevent the SPM from proceeding, because it’s being called from within the bootloader memory, and all is well.

The modified version of the Optiboot bootloader is available on [Majek]’s Github.  If you want to see how he did it, here are the diffs. A particularly nice touch is that this is all wrapped up in easy-to-write code with a working demo. So next time you’ve filled up the EEPROM, you can reach for this hack and log your data into flash program memory.

Thanks [Koepel] for the tip!

Getting Mixed Up with Home Stir Welding

Most processes designed to join two pieces of what-have-you together are consumptive of something, whether it’s some material acting as a third party to work piece and the tool, or the tool itself. In the wonderful world of friction stir welding, the material of the two pieces under union gets swirled together through friction as the tool traverses the join path. There are, of course, professional machines that perform this with relative ease, but with a large amount of beer on the line, [skookum_choocher] was determined to make his own.

In the first video, he machines a friction welding tool by shaping a tungsten carbide button from a drill bit using a diamond grinder. Once he has a rough shoulder and protuberance going, it’s time to let her rip.  Despite issues with clamping and the geometry of his tool, the weld is ultimately successful at the tail end.

Undeterred, he has another go at it after making some adjustments to the tool shoulder, changing the belt on his poor old Bridgeport, and increasing the clamping strength by a factor of four. You clamp sixteen tons, and whaddya get? A slightly better butt weld than the first time, it turns out. Fearing this weld is insufficient to win the bet, he goes for the lap weld with the work pieces stacked together in a sandwich. We prefer pizza with beer, but nevertheless congratulate him.

Continue reading “Getting Mixed Up with Home Stir Welding”

Tiny x86 Systems With Graphics Cards

The Intel Edison is out, and that means there’s someone out there trying to get a postage-stamp sized x86 machine running all those classic mid-90s games that just won’t work with modern hardware. The Edison isn’t the only tiny single board computer with an x86 processor out there; the legends told of another, and you can connect a graphics card to this one.

This build uses the 86Duino Zero, a single board computer stuffed into an Arduino form factor with a CPU that’s just about as capable as a Pentium II or III, loaded up with 128 MB of RAM, a PCI-e bus, and USB. It’s been a while since we’ve seen the 86Duino. We first saw it way back at the beginning of 2013, and since then, barring this build, nothing else has come up.

The 86Duino Zero only has a PCI-e x1 connector, but with an x16 adapter, this tiny board can drive an old nVidia GT230. A patch to the Coreboot image and a resistor for the Reset signal to the VGA was required, but other than that, it’s not terribly difficult to run old games on something the size of an Arduino and a significantly larger graphics card.

Thanks [Rasz] for sending this one in.

Continue reading “Tiny x86 Systems With Graphics Cards”

Hackaday Prize Entry: What To Do With A Bunch Of Old Computer Adapters

Back in the old days of 2014 when Radio Shack still existed, you could drive up to any strip mall in America and buy D-sub connectors that were made all the way back in 1972. Yes, connectors for all those SCSI, serial, parallel, and other weird ports you’d find on old computers could be bought for less than five dollars. For some reason or another, [yesnoio] has a ton of these connectors. Not just the connectors, but also those little plastic shells that clip onto the connectors. What to do with them? Retro Modules! It’s basically LittleBits if LittleBits were invented in 1987.

The goal of Retro Modules is to be able to put prototypes into your backpack without tearing a wire or two out of a breadboard. The basic foundation is to have a specification that outlines the pinout of DB-25 and DE-9 connectors, using these signals for power, an I²C bus,. analog lines, and SPI lines. Put a microcontroller in one of these plastic shells, a sensor in another, and a display in a third; you have an electronics prototyping platform that was designed in the backroom of a Radio Shack.

[yesnoio] has a Getting Started guide that takes you through the creation of the first three Retro Modules. The first is an Arduino nano or micro stuffed into a plastic shell with one female DA-15 connector. The second module is just a LED and resistor, and the third is just a servo. These can be connected together, and controlled because of the specification lined out. It’s brilliant, a little bit crazy, and something that has the potential to be much, much cooler than any electronics prototyping platform you’ll find at Maker Faire.

The 2015 Hackaday Prize is sponsored by:

Optics Laboratory Made From LEGO

16A lot of engineers, scientists, builders, makers, and hackers got their start as children with LEGO. Putting those bricks together, whether following the instructions or not, really brings out the imagination. It’s not surprising that some people grow up and still use LEGO in their projects, like [Steve] who has used LEGO to build an optics lab with a laser beam splitter.

[Steve] started this project by salvaging parts from a broken computer projector. Some of the parts were scorched beyond repair, but he did find some lenses and mirrors and a mystery glass cube. It turns out that this cube is a dichroic prism which is used for combining images from the different LCD screens in the projector, but with the right LEGO bricks it can also be used for splitting a laser beam.

The cube was set on a LEGO rotating piece to demonstrate how it can split the laser at certain angles. LEGO purists might be upset at the Erector set that was snuck into this project, but this was necessary to hold up the laser pointer. This is a great use of these building blocks though, and [Steve] finally has his optics lab that he’s wanted to build for a while. If that doesn’t scratch your LEGO itch, we’ve also featured this LEGO lab which was built to measure the Planck constant.

15 Quadcopters Up for Grabs in Wings, Wheels, and Propellers Contest

Have a project that moves? Then get it entered this week for your chance at one of 15 quadcopters. We’ll award a Crazyflie 2.0 to each of 15 fantastic examples of projects that move with wings, wheels, or propellers (the kind on boats or on flying things). Here’s what you need to do before Thursday, 7/9/15:

That’s all you need to do to be considered. But there’s a lot you can do to help improve your chances of winning. We love to see images, so make sure you have a least one picture in the main gallery. Start your project documentation with a clear and concise description of what you’re doing with the project and how you plan to accomplish that. And a components lists is always helpful!

We had a great time judging the manufacturer sponsor contests this week. We’ll be announcing the 200 winners of those contests over the next few days.

Oh yeah, one last time… you’re going to want to make sure you VOTE right away, because someone’s going to win big this week. [Brian] will tell you more about that tomorrow ;-)

The 2015 Hackaday Prize is sponsored by:

Solar-Cell Laser Communication System

Forget the soup cans connected by a piece of string. There’s now a way to communicate wirelessly that doesn’t rely on a physical connection… or radio. It’s a communications platform that uses lasers to send data, and it’s done in a way that virtually anyone could build.

This method for sending information isn’t exactly new, but this project is one of the best we’ve seen that makes it doable for the average tinkerer. A standard microphone and audio amplifier are used to send the signals to the transmitter, which is just a typical garden-variety laser that anyone could find for a few dollars. A few LEDs prevent the laser from receiving too much power, and a solar cell at the receiving end decodes the message and outputs it through another amplifier and a speaker.

Of course you will need line-of-sight to get this communications system up and running, but as long as you have that taken care of the sky’s the limit. You can find incredibly powerful lasers lying around if you want to try to increase the communication distance, and there are surprisingly few restrictions on purchasing others that are 1W or higher. You could easily increase the range, but be careful not to set your receiving station (or any animals, plants, buildings, etc) on fire!

Continue reading “Solar-Cell Laser Communication System”