High Speed SSD1306 Library

[Lewin] wrote in to tell us about a high speed library for Arduino Due that he helped develop which allows interfacing OLED displays that use the SSD1306 display controller, using DMA routines for faster display refresh time.

Typically, displays such as the Monochrome 1.3″ 128×64 OLED graphic display , are interfaced with an Arduino board via the SPI or I2C bus. The Adafruit_SSD1306 library written by [Limor Fried] makes it simple to use these displays with a variety of Arduinos, using either software or hardware SPI. With standard settings using hardware SPI, calls to display() take about 2ms on the Due.

[Lewin] wanted to make it faster, and the SAM3X8E on the Due seemed like it could deliver. He first did a search to find out if this was already done, but came up blank. He did find [Marek Buriak]’s library for ILI9341-based TFT screens. [Marek] used code from [William Greiman], who developed SD card libraries for the Arduino. [William] had taken advantage of the SAM3X8E’s DMA capabilities to enable faster SD card transfers, and [Marek] then adapted this code to allow faster writes to ILI9341-based screens. All [Lewin] had to do was to find the code that sent a buffer out over SPI using DMA in Marek’s code, and adapt that to the Adafruit library for the SSD1306.

There is a caveat though: using this library will likely cause trouble if you are also using SPI to interface to other hardware, since the regular SPI.h library will no longer work in tandem with [Lewin]’s library. He offers some tips on how to overcome these issues, and would welcome any feedback or testing to help improve the code. The speed improvement is substantial. Up to 4 times quicker using standard SPI clock, or 8 times if you increase SPI clock speed. The code is available on his Github repo.

IoT Chameleon Lamp Does It with Python

If this Internet of Things thing is gonna leave the launchpad, it will need the help of practical and semi-practical project ideas for smartifying everyday items. Part of getting those projects off the ground is overcoming the language barrier between humans that want to easily prototype complex ideas and hardware that wants specific instructions. A company called Things on Internet [TOI] has created a system called VIPER to easily program any Spark Core, UDOO or Arduino Due with Python by creating a virtual machine on the board.

The suite includes a shield, an IDE, and the app. By modifying a simple goose neck IKEA lamp, [TOI] demonstrates VIPER (Viper Is Python Embedded in Realtime). They opened the lamp and added an 24-LED Adafruit NeoPixel ring, which can be controlled remotely by smartphone using the VIPER app. To demonstrate the capacitive sensing capabilities of the VIPER shield, they lined the head of the lamp with foil. This code example will change the NeoPixels to a random color each time the button is pressed in the app.

Check out the lamp demonstration after the break and stay for the RC car.

Continue reading “IoT Chameleon Lamp Does It with Python”

Z80, CP/M, And FAT File Formats

[Gary Kildall] and CP/M are the great ‘also ran’ of the computing world; CP/M could run on thousands of different 1980s computers, and [Gary] saw a few million in revenue each year thanks to CP/M’s popularity. Microsoft, DOS, and circumstances have relegated [Kildall] and CP/M to a rather long footnote in the history of microcomputers, but that doesn’t mean CP/M is completely dead yet. [Marcelo] wrote a Z80 emulator running CP/M inside an Arduino Due, and he did it in such a way that it’s actually convenient and useful to use.

Instead of using CP/M disk images, [Marcelo]’s emulator emulates CP/M disk drives on top of a regular FAT file system. Drives are mapped to folders in the FAT file system, so a folder named ‘A’ will show up as the A: disk in CP/M. Drives up to P: are supported, the maximum number of drives available under CP/M. The BIOS resides in the root directory of the SD card, and so far Microsoft Basic, Turbo Pascal, UCD Micromumps, and Wordstar work just fine.

The Arduino project was built upon one of [Marcelo]’s earlier projects that put the CP/M emulator on Windows. The version for the Due works exactly how you think it would, with a serial connection and terminal emulator providing the IO, and the huge amount of processing power and RAM available on the Due doing all the heavy lifting.

Drawing On Glow In The Dark Surfaces With Lasers

What do you get when you have a computer-controlled laser pointer and a big sheet of glow in the dark material? Something very cool, apparently. [Riley] put together a great build that goes far beyond a simple laser diode and servo build. He’s using stepper motors and a proper motion control software for this one.

The theory behind the device is simple – point a laser at some glow in the dark surface – but [Riley] is doing this project right. Instead of jittery servos, the X and Y axes of the laser pointer are stepper motors. These are controlled by an Arduino Due and TinyG motion control software. This isn’t [Riley]’s first rodeo with TinyG; we saw him at Maker Faire NYC with a pendulum demonstration that was absolutely phenomenal.

Right now, [Riley] is taking SVG images, converting them to Gcode, and putting them up on some glow in the dark vinyl. Since the Hackaday Skull ‘n Wrenches is available in SVG format, that was an easy call to make on what to display in weird phosphorescent green. You can see a video of that along with a few others below.

Continue reading “Drawing On Glow In The Dark Surfaces With Lasers”

The Tale of Two Wearable Game Boys

We’re well past the time when Halloween costume submissions stop hitting the tip line, but like ever year we’re expecting a few to trickle in until at least Thanksgiving. Remember, kids: documentation is the worst part of any project.

[Troy] sent us a link to his wearable Game Boy costume. It’s exactly what you think it is: an old-school brick Game Boy that [Troy] wore around to a few parties last weekend. This one has a twist, though. There’s a laptop in there, making this Game Boy playable.

The build started off as a large cardboard box [Troy] covered with a scaled-up image of everyone’s favorite use of AA batteries. The D-pad and buttons were printed out at a local hackerspace, secured to a piece of plywood, and connected to an Arduino Due. The screen, in all its green and black glory, was taken from an old netbook. It was a widescreen display, but with a bezel around the display the only way to tell it’s not original is from the backlight.

Loaded up with Pokemon Blue, the large-scale Game Boy works like it should, enthralling guests at wherever [Troy] ended up last Friday. It also looks like a rather quick build, and something we could easily put together when we remember it next October 30th.

[Troy] wasn’t the only person with this idea. A few hours before he sent in a link to his wearable Game Boy costume, [Shawn] sent in his completely unrelated but extremely similar project. It’s a wearable brick Game Boy, a bit bigger, playing Tetris instead of Pokemon.

[Shawn]’s build uses a cardboard box overlaid with a printout of a scaled-up Game Boy. Again, a laptop serves as the emulator and screen, input is handled by a ‘duino clone, and the buttons are slightly similar, but made out of cardboard.

Both are brilliant builds, adding a huge Game Boy to next year’s list of possible Halloween costume ideas. Videos of both below.

Continue reading “The Tale of Two Wearable Game Boys”

TiLDA MKe: the EMF 2014 Badge

The TiLDA badge from EMF 2014


Hardware conference badges keep getting more complex, adding features that are sometimes useful, and sometimes just cool. The Electromagnetic Field (EMF) 2014 badge, TiLDA MKe, is no exception.

This badge displays the conference schedule, which can be updated over an RF link with base stations. It even notifies you when an event you’re interested in is about to start. Since we’ve missed many a talk by losing track of the time, this seems like a very useful feature.

Beyond the schedule, the device has a dedicated torch button to turn it into a flashlight. A rather helpful feature seeing as EMF takes place outdoors, in a field of the non-electromagnetic sort. They’re also working on porting some classic games to the system.

The badge is compatible with the Arduino Due, and is powered by an ARM Cortex M3. It’s rechargeable over USB, which is a nice change from AA powered badges. It also touts a radio transceiver, joystick, accelerometer, gyroscope, speaker, infrared, and is compatible with Arduino shields.

For more technical details, you can check out the EMF wiki. EMF 2014 takes place from August 29th to the 31st in Bletchley, UK, and you can still purchase tickets to score one of these badges.

HammerPong Game Takes Pong to New Heights

large scoreboard with lots of flashy lights

[Jason] is back at it again with another new twist on the technically sophisticated and advanced game of Pong. Fashioned in a ‘Chuck E. Cheese’ style platform, the two players stand side by side each other with large foam hammers. A wack sends the 32 bit ARM powered dot skyward and then back down to the other player, where another wack will send the dot back whence it came. A brightly lit scoreboard keeps track of how many dots slip by.

[Jason] is a veteran of pong inspired games, but putting the HammerPong game together brought with it some new challenges. After being unable to squeeze a few MDF panels into his car, and fighting off flies, yard debris and pet dander that were trying to attach themselves to his freshly painted artwork, [Jason] managed to get his project completed.

The HammerPong is powered by an Arduino Due that controls six WS2812 LED strips and runs the background code. Various latches, shift registers and power transistors control the lights and scoreboard. Be sure to check out the linked project for more detail, and take a look at the video demonstration after the break.

Continue reading “HammerPong Game Takes Pong to New Heights”