Neural Networks And MarI/O

Minecraft wizard, and record holder for the Super Mario World speedrun [SethBling] is experimenting with machine learning. He built a program that will get Mario through an entire level of Super Mario World – Donut Plains 1 – using neural networks and genetic algorithms.

A neural network simply takes an input, in this case a small graphic representing the sprites in the game it’s playing, sends that input through a series of artificial neurons, and turns that into commands for the controller. It’s an exceedingly simple neural network – the network that can get Mario through an entire level is less than a dozen neurons – but with enough training, even simple networks can accomplish very complex tasks.

To train the network, or weighting the connections between inputs, neurons, and outputs, [SethBling] is using an evolutionary algorithm. This algorithm first generates a few random neural networks, watches Mario’s progress across Donut Plains 1, and assigns a fitness value to each net. The best networks of each generation are combined, and the process continues for the next generation. It took 34 generations before MarI/O could finish the level without dying.

A few members of the Internet’s peanut gallery have pointed to a paper/YouTube video by [Tom Murphy] that generalized a completely different technique to play a whole bunch of different NES games. While both [SethBling]’s and [Tom Murphy]’s algorithms use certain variables to determine its own success, [Tom Murphy]’s technique works nearly automatically; it will play about as well as the training data it is given. [SethBling]’s algorithm requires no training data – that’s the entire point of using a genetic algorithm.

Continue reading “Neural Networks And MarI/O”

A Different Kind Of Plastic Shredder For 3D Filament Making

Haven’t you heard? You can make your own 3D filament nowadays from plastic granules (10X cheaper than filament), or even by recycling old plastic! Except if you’re recycling plastic you will have to shred it first…

[David Watkins] came up with a different way of shredding plastic. Typically we’ve seen shrunken versions of giant metal shredders used to dice up plastic into granules that can be melted down and then extruded back into filament. These work with a series of sharp toothed gears that kind of look like a stack of circular saw blades put together inside of a housing.

But that can be rather pricey. [David’s] method is super cheap, and you can do it at home with minimal tools, and maybe $10 or less worth of parts?

Continue reading “A Different Kind Of Plastic Shredder For 3D Filament Making”

Hackaday Prize Entry: A DIY Smartphone

It may not change the world, but [Tyler]’s DIY smartphone is a great example of what you can do with off-the-shelf parts. He built a complete, working cell phone using a Raspberry Pi, a few parts from Adafruit, and a 3D printed enclosure.

Inside the Tyfone is a Raspberry Pi Model A, an Adafruit FONA cellular module, a PiTFT, and not much else. There’s a 1200 mAh battery in there, and a 3D printed case keeps everything together.

For the OS, [Tyler] isn’t running Android; that’s only for the Raspi 2, and the Raspberry Pi 2 Model A isn’t out yet. Instead, [Tyler] wrote his own not-OS in Python. It can send and receive SMS messages, make calls, take pictures, connect to WiFi networks, and do just about everything else a Nokia from 2003 can do.

[Tyler] put together a video going over all of the features of his Tyfone. You can check that out below.


The 2015 Hackaday Prize is sponsored by:

Continue reading “Hackaday Prize Entry: A DIY Smartphone”

An Oven Controlled Crystal Oscillator Replacement

The HP 5328 Universal Counter is all the counter you’ll ever need. It’s rugged, does its job well, and like all old HP gear, keeps on going. When it breaks, though, that’s a problem.

[Tom] had an 5328 Universal Counter with a broken Oven Controlled Crystal Oscillator. This is the HP 10544 OCXO and replacements are pretty spendy. Instead of buying a vintage unit, [Tom] decided to make a replacement.

The OXCO in the HP 5328 is just an option. If the frequency counter has this option installed, a 30-pin edge connector in the counter is stuffed with a little PCB. Like all HP gear, the schematics are readily available, and the original OXCO can be quickly reverse engineered.

The design of the replacement is fairly straightforward. A 10MHz OXCO from Oscilloquartz is used, powered from the 28V rail in the 5328 with a simple switching regulator. Apart from that, it’s just an inverter to get the logic levels correct, and a small, multi-turn pot to calibrate the new OXCO. The completed unit is much smaller than the original OXCO option, so it can be plugged directly into the 30-pin card edge slot, leaving the gigantic standoff inside the frequency counter as a reminder of days gone by.

Hacking An Android Laptop To Run Linux

A few years ago, someone at Lenovo realized they could take an Android tablet, add a keyboard, and sell a cheap netbook that’s slightly more useful than a YouTube and Facebook machine. Since then, Lenovo has stopped making the A10 notebook and has moved on to manufacturing Chromebooks. That doesn’t mean this little Laptop doesn’t have some life left in it: it still has a Cortex A9 Quad core CPU, is reasonably priced on the ‘defective’ market, and can now run a full-blown Linux.

When the A10 notebook was released, there was a statement going around saying it was impossible to install Linux on it. For [Steffen] that was a challenge. He cracked open this netbook and took a look around the Flash chips. There were two tiny pads that could be shorted to put the device in recovery mode, and the entire thing can be booted from a USB stick.

[Steffen] ran into a problem while putting a new kernel on the netbook: there was a null pointer reference in some device during boot. The usual way of diagnosing this problem is to look at the console to see what device failed. This netbook doesn’t have a UART, though, and [Steffen] had to use an FTDI chip and set the console to USB to see why this device failed.

Just about everything on this tiny laptop works right now, with a few problems with WiFi, webcam, and standby mode – all normal stuff for a putting Linux on a random machine. It’s worth it, though: the quad-core ARM is a very good chip, and [Steffen] is running x86 apps with qemu. Not bad for something that can be found very, very cheap.

Two New Dev Boards That Won’t Make Your Wallet Hurt-So-Good

If you’ve been keeping up with the hobbyist FPGA community, you’ll recognize the DE0 Nano as “that small form-factor FPGA” with a deep history of projects from Oldland cpu cores to synthesizable Parallax Propeller processors. After more than four years in the field though, it’s about time for a reboot.

Its successor, the DE0 Nano SoC, is a complete redesign from multiples perspectives while doing it’s best to preserve the bite-size form factor and price that made the first model so appealing. First, the dev board boasts a Cyclone V with 40,000 logical elements (up from the DE0’s 22K) and an integrated dual-core Arm Cortex A9 Processor. The PCB layout also brings us  3.3V Arduino shield compatibility via female headers, 1 Gig of external DDR3 SDRAM and gigabit ethernet support via two onboard ASICs to handle the protocol. The folks at Terasic also seem to be tipping their hats towards the “Duino-Pi” hobbyist community, given that they’ve kindly provided both Linux and Arduino images to get you started a few steps above your classic finite-state machines and everyday combinational logic.

And while the new SoC model sports a slightly larger form factor at 68.59mm x 96mm (as opposed to the original’s 49mm x 75.2mm), we’d say it’s a small price to pay in footprint for a whirlwind of new possibilities on the logic level. The board hits online shelves now at a respectable $100.

Next, as a heads-up, the aforementioned Arduino Zero finally makes it’s release on June 15. If you’ve ever considered taking the leap from an 8-bit to a 32-bit processor without having to hassle through the setup of an ARM toolchain, now might be a great time to get started.

via [the Arduino Blog]

MX3D Printing a Bridge

6-Axis Robot Arm 3D Prints A Metal Bridge

Do you remember the MX3D metal printing robot? It’s now capable of 3D printing a metal bridge. Here’s the news release, but it’s in Dutch (translated).

Over one year ago we covered the beginning of the MX3D project, which was a rather ambitious foray into 3D printing in metal with a industrial six-axis ABB robot arm. They had previously done a version using resin (MX3D Resin Printer), but then upgraded the system to use a heavy duty welding machine to deposit various metals.

One year later, they’ve tuned it even more. To show it off they printed a free form standing bridge that people can actually walk across.

Continue reading “6-Axis Robot Arm 3D Prints A Metal Bridge”