An Automated Flappy Bird Player

game Flappy Bird has been ported to just about every system imaginable, including but not limited to the Apple II, Commodores, pretty much every version of the Atari, and serves as a really great demonstration of the TI-99’s graphics capabilities. Porting is one thing, but having a computer automate Flappy Bird is another thing entirely. [Ankur], [Sai], and [Ackerly] in [Dr. Bruce Land]‘s advanced microcontroller design class at Cornell have done just that. They’re playing Flappy Bird with a camera, FPGA, and a penny wired up to a GPIO pin to guide the little 8-bit-bird through Mario pipes.

The setup the team is using consists of a webcam that records the screen of a smartphone, an FPGA, and a little bit of circuitry to emulate screen taps. Inside the FPGA, the team is looking at the video stream from the phone to detect the bird, pipes, and gaps. The ‘tapper’ unit is a US penny, placed right above the ‘tap’ button, wired to a GPIO port. This was found to be the ideal contact for a capacitive touch screen – taps that were too small weren’t registered, and taps that were too big registered as two taps.

For spending an entire semester on automating Flappy Bird, the team has a lot of knowledge to show for it, but not the high score: the bird only makes it through the first pipe 10% of the time, and the second pipe 1% of the time. The high score is three. That’s alright – getting the algorithm right to play the game correctly was very, very difficult, and to nail that problem down, they estimate it would take at least another semester.

A Router-Based Dev Board That Isn’t A Router

Here’s somethirouterng that be of interest to anyone looking to hack up a router for their own connected project or IoT implementation: hardware based on a fairly standard router, loaded up with OpenWRT, with a ton of I/O to connect to anything.

It’s called the DPT Board, and it’s basically an hugely improved version of the off-the-shelf routers you can pick up through the usual channels. On board are 20 GPIOs, USB host, 16MB Flash, 64MB RAM, two Ethernet ports, on-board 802.11n and a USB host port. This small system on board is pre-installed with OpenWRT, making it relatively easy to connect this small router-like device to LED strips, sensors, or whatever other project you have in mind.

The board was designed by [Daan Pape], and he’s also working on something he calls breakoutserver There’s a uHTTP server written specifically for the board that allows any Internet connected device to control everything on the board. There’s also an HTML5 app they’re developing which could be pretty interesting.

All in all, it’s a pretty cool little device that fits nicely in between the relatively simplistic ‘Arduino with an Ethernet shield’ and a Raspi or BeagleBone.

Using Surface Mount Devices On A Breadboard

SOIC

[Czar] was working on a project with the Raspberry Pi using the MCP3008 analog to digital converter. The surface mount SOIC version of this chip was slightly cheaper, and there’s always a way to make that work (Portuguese, Google Translation). How [Czar] did it is fairly impressive, as it’s a bit more flexible for breadboard designs than a through-hole version, and done correctly, is an extremely sturdy hack.

A few new leads needed to be soldered onto the SOIC package, and for this [Czar] chose jumper wires. This makes each pin easy to plug into a solderless breadboard, and since [Czar] was extremely clever, all the wires for power, ground, analog, and SPI are color coded.

Simply soldering a few jumper wires onto a chip won’t last for very long. To solve this problem, [Czar] potted the entire chip and its connections with hot glue. Probably not the best solution, and a heavy-duty epoxy would have been better, but the current build is more than enough to stand up to the relatively minor abuse it will receive on the workbench.

Reverse Engineering Unobtanium

font

If you listen to [Bil Herd] and the rest of the Commodore crew, you’ll quickly realize the folks behind Commodore were about 20 years ahead of their time, with their own chip foundries and vertical integration that would make the modern-day Apple jealous. One of the cool chips that came out of the MOS foundry was the 6500/1 – used in the keyboard controller of the Amiga and the 1520 printer/plotter. Basically a microcontroller with a 6502 core, the 6500/1 has seen a lot of talk when it comes to dumping the contents of the ROM, and thus all the code on the Amiga’s keyboard controller and the font for the 1520 plotter – there were ideas on how to get the contents of the ROM, but no one tried building a circuit.

[Jim Brain] looked over the discussions and recently gave it a try. He was completely successful, dumping the ROM of a 6500/1, and allowing for the preservation and analysis of the 1520 plotter, analysis of other devices controlled by a 6500/1, and the possibility of the creation of a drop-in replacement for the unobtanium 6500/1.

The datasheet for the 6500/1 has a few lines describing the test mode, where applying +10 VDC to the /RES line forces the machine to make memory fetches from the external pins. The only problem was, no body knew how to make this work. Ideas were thrown around, but it wasn’t until [Jim Brain] pulled an ATMega32 off the top of his parts bin did anyone create a working circuit.

The code for the AVR puts the 6500/1 into it’s test mode, loads a single memory location from ROM, stores the data in PORTA, where the AVR reads it and prints it out over a serial connection to a computer. Repeat for every location in the 6500/1 ROM, and you have a firmware dump. This is probably the first time this code has been seen in 20 years.

Now the race is on to create a drop-in replacement of what is basically a 6502-based microcontroller. That probably won’t be used for much outside of the classic and retro scene, but at least it would be a fun device to play around with.

Pinoccio: Mesh All The (Internet Of) Things

PinnThere’s a problem with products geared towards building the Internet of Things. Everyone building hardware needs investors, and thus some way to monetize their platform. This means all your data is pushed to ‘the cloud’, i.e. a server you don’t own. This is obviously not ideal for the Hackaday crowd. Yes, IoT can be done with a few cheap radios and a hacked router, but then you don’t get all the cool features of a real Things project – mesh networking and a well designed network. Pinoccio is the first Thing we’ve seen that puts a proper mesh network together with a server you can own. The Pinoccio team were kind enough to let us drop in while we were in Rock City last weekend, and we were able to get the scoop on these tiny boards from [Sally] and [Eric], along with a really cool demo of what they can do.

The hardware on the Pinoccio is basically an Arduino Mega with a LiPo battery and an 802.15.4 radio provided by an ATmega256RFR2. The base board – technically called a ‘field scout’ – can be equipped with a WiFi backpack that serves as a bridge for the WiFi network. It’s a pretty clever solution to putting a whole lot of Things on a network, without having all the Things directly connected to the Internet.

Programming these scouts can be done through Arduino, of course, but the folks at Pinoccio also came up with something called ScoutScript that allows you to send commands directly to any or all of the scouts on the mesh network. There’s a neat web-based GUI called HQ that allows you to command, control, and query all the little nodules remotely as well.

In the video below, [Sally] goes over the basic functions of the hardware and what it’s capable of. [Eric] was in Reno when we visited, but he was kind enough to get on a video chat and show off what a network of Pinoccios are capable of by emblazoning their web page with Hackaday logos whenever he presses a button.

[Read more...]

DIY Circuit Boards Look Professional

Professional Looking DIY PCB Boards

Making PCBs at home is a great means to get your prototype up and running without having to wait weeks for a professionally made board. Regardless if these prototype boards are milled or etched, they are easily identified as ‘home brew’ due to their ‘unfinished’ appearance. [HomeDIY&Stuff] has put together a little how-to on the process for making DIY PCBs look a little closer to a professionally manufactured board.

The process starts out with designing the board in a PCB program. There are a lot of these programs available. Eagle is a popular choice and has a free version available. Once the layout it finalized, the design is printed out on a transparent sheet of plastic. A blank copper-clad PCB board that already has a UV sensitive coating applied are available for purchase and is what is used in this example. The transparency is placed over the PCB blank and then exposed to UV light. The coating on the PCB cures where ever the UV light passes through the open areas of the transparency.

Once the transparency is removed, there is a noticeable difference in coating color where it has cured. This board is now placed in a developer solution that removes the un-cured UV sensitive coating. A Ferric Chloride acid bath then etches away at the now-exposed copper. The cured coating from the previous step protects the copper at the trace locations during the etch process. The result is a board with copper where you want it and none where you don’t. If the board has any through-hole components, this would be the time to drill those holes.

Up to this point the process has been pretty standard for homemade PCBs and the next part is certainly the most interesting but, unfortunately, is also the worst documented step; the solder mask and silk screening. It appears that two silk screens are produced, one for the solder mask and one for the silk screen. The artwork for making the silk screens can be output from the PCB design software. There is no mention of the solder mask material used but oil-based silk screen ink is specified. Although the details are lacking, the photos show that it works pretty well. If you have had any experience with silk screening DIY PCBs, let us know in the comments.

Mains Power Detector For A Thing For Internet

inductor The Internet of Things is fast approaching, and although no one can tell us what that actually is, we do know it has something to do with being able to control appliances and lights or something. Being able to control something is nice, but being able to tell if a mains-connected appliance is on or not is just as valuable. [Shane] has a really simple circuit he’s been working on to do just that: tell if something connected to mains is on or not, and relay that information over a wireless link.

There are two basic parts of [Shane]‘s circuit – an RLC circuit that detects current flowing through a wire, This circuit is then fed into an instrumentation amplifier constructed from three op-amps. The output of this goes through a diode and straight to the ADC of a microcontroller, ready for transmission to whatever radio setup your local thingnet will have.

It’s an extremely simple circuit and something that could probably be made with less than a dollar’s worth of parts you could find in a component drawer. [Shane] has a great demo of this circuit connected to a microcontroller, you can check that out below.

[Read more...]