Machine Learning Lets Micro Decode Your Handwriting

This rig will take the letters you write on the touchpad using a stylus and turn them into digital characters. The system is very fast and displays near-perfect recognition. This is all thanks to a large data set that was gathered through machine learning.

The ATmega644 that powers the system just doesn’t have the speed and horsepower necessary to reliably recognize handwriting on its own. But provide it with a dataset to compare against and you’re in business. [Justin] and [Stephen] designed a neural network algorithm that took a large volume of character handwriting samples, and boiled them down into a set of correlations that can be referenced when encountering a new entry. This set is about 88 kilobytes, too much to store in the microprocessor, but easy to reference from an external flash memory device.

There’s plenty of gritty details in the write up linked above, but you may want to start with the video overview found after the break.

Continue reading “Machine Learning Lets Micro Decode Your Handwriting”

TI Launchpad As AVR ISP Programmer

[Minifloat] is using his TI Launchpad development board as an In-System Programmer for AVR chips (translated). There are a ton of homebrew AVR programmers out there, and using an Arduino for ISP is quite popular. But recently we searched for a way to use the Launchpad as a programmer and didn’t find one. We’d venture to say this is the first.

There is one hardware modification that must be made. An external clock crystal (32.768 kHz) must be populated on the board. But since it was designed with the feature in mind that’s a pretty quick process. [Minifloat] followed Atmel’s ISP app note, and extended some of the code written for a different programmer to get things up and running. At first the device wouldn’t communicate with AVRdude, but that turns out to be a problem with the initialization conversation. AVRdude polls the connected programmer to see if it supports block mode, and the firmware on the MSP430G2211 wasn’t expecting this query. The problem was fixed and it now works.

It sounds like there are a couple of bugs left in the system. The first time AVRdude accesses the programmer after it has been plugged into the USB port it will fail. Subsequent attempts will succeed until the MSP430 chip is reset, or the USB connection is replugged. But if you’re just getting into the AVR line, this will let you figure out if you want to invest in a proper programmer.

BASIC For Some Beefy AVR chips

klBASIC is a BASIC interpreter written in C for AVR microcontrollers. [Karl Lunt] developed the project based on an assembly language BASIC interpreter for 68HC11 chips written by [Gordon Doughman]. The transition from assembly to C bulked up the code, so you’ll need a beefy AVR chip in order to store all of it.

The idea is that one AVR chip can run BASIC with just a serial monitor. But like this Arduino BASIC interpreter build, it would be a snap to run this with a keyboard and small LCD screen. We see binaries available for several different AVR devices including ATmega128, ATmega1284, and Xmega128. They range from 1.5k to 16k of program memory. We didn’t find a link to the source code (just these precompiled files) so we inquired with [Karl] to see if that is available. He’s reluctant to release the code because it’s “pretty much a mess” and doesn’t live up to his normal standards. If he codes for a living we can see how that may be embarrassing. If you’d like to lend a hand cleaning up the code, let him know by leaving a comment here and maybe he’ll release it for that purpose.

We find this interesting, but it’s tough to get excited about building one of our own. If this has inspired you, we’d love to hear some of your plans in the comments after the break. Perhaps we’d be prodded into another programming adventure based on your enthusiasm.

Controlling A Propeller Wirelessly With Bluetooth

[Jeff] from Gadget Gangster sent in a great tutorial on connecting a cheap Bluetooth module to a Parallax microcontroller. In addition to getting a terminal to the Propeller up and running from his computer, [Jeff] was able to toggle IO pins and even control servos and Android devices – perfect for your next wireless robot.

Connecting the Bluetooth module to the Propeller dev board was easy enough – just two wires for power and two for transmitting and receiving. The computer side of the setup was easy as well; just entering a Bluetooth passcode. Once that was done, the Propeller could talk to the computer and vice versa.

Of course, without the ability to control pins on the microcontroller wirelessly the build was for naught. [Jeff] wrote a simple blinking LED demo. After that, a servo was connected and the build finished off by connecting to an Android terminal.

Although it’s a relatively simple build, we’ve noticed the Propeller doesn’t get much love around the Internet. While it may not have won the microcontroller holy war, it’s nice to see an underrated mcu getting some attention.

Hackerspace Intros: Null Space Labs In Los Angeles California

[Charlie] from Null Space Labs in Los Angeles, California sent in this fun little video as an introduction to their hackerspace. Going a bit  askew from the traditional “walk through” method of a tour, they decide to first attempt semi-successfully to fly a quadcopter, film some police commotion, then show off some projects in progress. Don’t worry, you do get to see a fair bit of the space and the copious piles of parts as well.

You may recall seeing some of the previous projects coming from this hackerspace  such as the time red bull sent them a mystery object and how they salvaged a pick and place machine.

Remember, we want to promote all the hackerspaces we can! We don’t care if you’re just 3 hackers in a basement with a single project, a multimillion dollar facility, or anything in between. Send us those video tours!

Continue reading “Hackerspace Intros: Null Space Labs In Los Angeles California”

Reverse Engineering A Plasma Dot Matrix Display

A while back, [DragonMinded] picked up a bunch of old arcade and pinball parts from a guy on Craigslist. These parts sat around for a while until a really neat plasma dot matrix display was found in the corner of a box in his garage. Doing the only reasonable thing, [DragonMinded] figured out how to interface this ancient display with a microcontroller.

After extensive Internet research on his display, [DragonMinded] could only find a one page datasheet for his APD-128G064A-1 display. Luckily, this datasheet had voltage requirements, and since the display only had six input pins he could probe the circuit to see what goes where.

After generating a crude schematic, [DragonMinded] prototyped a driver circuit with an Arduino. When the function of each pin was discovered, the Arduino libraries were discarded and replaced with raw register access.

It was a fair amount of work, but [DragonMinded] eventually got to the point where he could draw anything he wanted on the screen. Next on the to-do list is turning it into a terminal or Twitter machine, as with all good display hacks.

Turning A Light Off Over The Internet

Because reaching over a few feet to turn off a switch is too much to bear for [Bruce], he connected his desk lamp to the Internet. It’s a pretty cool build that’s the perfect tutorial for connecting just about anything to the internet.

For his build, [Bruce] used an Arduino with a relay attached to an output pin. When the Arduino receives a signal on its serial port, a tiny voltage is applied to the relay, turning on the light.

This could have been done with an Arduino Ethernet, but the PHP script [Bruce] went with is a little more versatile. Whenever someone pulls up this digital light switch web page, they can turn [Bruce]’s desk lamp on and off.

For an introduction to connecting bare bones projects to the Internet, we’re really liking [Bruce]’s build. Just try no to go crazy with that link and leave the failure testing to the professionals. You can check out the demo video after the break.

Continue reading “Turning A Light Off Over The Internet”