Optimizing AVR LCD Libraries

A while ago, [Paul Stoffregen], the creator of the Teensy family of microcontrollers dug into the most popular Arduino library for driving TFT LCDs. The Teensy isn’t an Arduino – it’s much faster – but [Paul]’s library does everything more efficiently.

Even when using a standard Arduino, there are still speed and efficiency gains to be made when driving a TFT. [Xark] recently released his re-mix of the Adafruit GFX library and LCD drivers. It’s several times faster than the Adafruit library, so just in case you haven’t moved on the Teensy platform yet, this is the way to use one of these repurposed cell phone displays.

After reading about [Paul]’s experience with improving the TFT library for the Teensy, [Xark] grabbed an Arduino, an LCD, and an Open Workbench Logic Sniffer to see where the inefficiencies in the Adafruit library were. These displays are driven via SPI, where the clock signal goes low for every byte shifted out over the data line. With the Adafruit library, there was a lot of wasted time in between each clock signal, and with the right code the performance could be improved dramatically.

The writeup on how [Xark] improved the code for these displays is fantastic, and the results are impressive; he can fill a screen with pixels at about 13FPS, making games that don’t redraw too much of the screen at any one time a real possibility.

Mimimalist Arduino Gaming Platform

A pretty color LCD screen, an Arduino, a buzzer and a joystick is all you need for a minimalist gaming console for under $20. At least, that’s all [João Vilaça] needed to get this sweet version of Tetris up and running. He’s working on Breakout right now. His Breakout looks even better. See the postscript below for details.

It’s a testament to the current state of the hardware hacking scene that [João] could put this device together in an afternoon for so cheap, presumably after waiting a while for shipments from China. The 320×240 SPI color TFT LCD screen used to cost twice as much as this whole project did. And wiring it up is a simple matter of connecting this pin to that pin. Almost child’s play.

Equally impressive is the state of open source software. A TFT library from Seeed Studios makes the screen interface a piece of cake. [João] wrote his own sound and joystick code, and of course the Tetris gameplay itself, but it’d be much more than a few weeks’ work without standing on the shoulders of giants. Check out [João]’s Github for the project code and stick with us after the break for a demo video and some of our other favorite Arduino gaming hacks.

Continue reading “Mimimalist Arduino Gaming Platform”

Excruciating Quest Turns Chromebook Pixel IPS Into Exquisite Extra Monitor

[Shen] wanted an extra monitor at his desk, but not just any monitor. He wanted something particularly special and unquestionably refined. Like any super-power-possessing engineer he set out to scratch his hacking itch and was sucked into a multi-year extravaganza. For the love of everything hardware we’re glad this one came in on the weekend. If we had spent all that time drooling during a weekday we’d be so far behind.

The final product is a desktop monitor on an articulated arm. It features a Chromebook Pixel’s IPS display in a custom-crafted case everything. The journey started out with two different LCD units, the first from a Dell L502x replacement display using a generic LVDS board. The results were meh; washed out colors and obvious pixellation, with display adjustments that left [Shen] with a grimace on his mug. Installment two was an iPad Retina display. This iteration required spinning his own boards (resulting in [Shen’s] discovery of OSH Park). Alas, 9.7″ was too small coupled with short-cable-requirements making this version a no-go.

chromebook-pixel-ips-driver-boardAnd so we arrive at the meat and potatoes of this one. [Shen] identified the IPS LCD display on Google’s first Chromebook Pixel laptop as the object of his desire. The hack takes him through sourcing custom display cables, spinning rev after rev of his own board, and following Alice down the rabbit hole of mechanical design. Nothing marginal is good enough for [Shen], we discovered this with his project to get real audio out of a computer. He grinds away at the driver board, the case design, the control presentation, and everything else in the project until perfection was reached. This work of art will stand the test of time as a life fixture and not just an unappreciated workhorse.

This one is not to me missed. Head over to [Shen’s] project entry on Hackaday.io (don’t forget to give him a skull for this) and his blog linked at the top. We need to celebrate not only the people who can pull off such amazing work. But also the ones who do such a great job of sharing the story both for our enjoyment, and to inspire us.

A Simple And Inexpensive GPS Navigation Device

There are plenty of GPS navigation units on the market today, but it’s always fun to build something yourself. That’s what [middelbeek] did with his $25 GPS device. He managed to find a few good deals on electronics components online, including and Arduino Uno, a GPS module, and a TFT display.

In order to get the map images on the device, [middelbeek] has to go through a manual process. First he has to download a GEOTIFF of the area he wants mapped. A GEOTIFF is a metadata standard that allows georeferencing information to be embedded into a TIFF image file.  [middelbeek] then has to convert the GEOTIFF into an 8-bit BMP image file. The BMP images get stored on an SD card along with a .dat file that describes the boundaries of each BMP. The .dat file was also manually created.

The Arduino loads this data and displays the correct map onto the 320×240 TFT display. [middelbeek] explains on his github page that he is currently unable to display data from two map files at once, which can lead to problems when the position moves to the edge of the map. We suspect that with some more work and tuning this system could be improved and made easier to use, of course for under $25 you can’t expect too much.

Strapping an Apple II to Your Body

Now that the Apple wristwatch is on its way, some people are clamoring with excitement and anticipation. Rather than wait around for the commercial product, Instructables user [Aleator777] decided to build his own wearable Apple watch. His is a bit different though. Rather than look sleek with all kinds of modern features, he decided to build a watch based on the 37-year-old Apple II.

The most obvious thing you’ll notice about this creation is the case. It really does look like something that would have been created in the 70’s or 80’s. The rectangular shape combined with the faded beige plastic case really sells the vintage electronic look. It’s only missing wood paneling. The case also includes the old rainbow-colored Apple logo and a huge (by today’s standards) control knob on the side. The case was designed on a computer and 3D printed. The .stl files are available in the Instructable.

This watch runs on a Teensy 3.1, so it’s a bit faster than its 1977 counterpart. The screen is a 1.8″ TFT LCD display that appears to only be using the color green. This gives the vintage monochromatic look and really sells the 70’s vibe. There is also a SOMO II sound module and speaker to allow audio feedback. The watch does tell time but unfortunately does not run BASIC. The project is open source though, so if you’re up to the challenge then by all means add some more functionality.

As silly as this project is, it really helps to show how far technology has come since the Apple II. In 1977 a wristwatch like this one would have been the stuff of science fiction. In 2015 a single person can build this at their kitchen table using parts ordered from the Internet and a 3D printer. We can’t wait to see what kinds of things people will be making in another 35 years.

Continue reading “Strapping an Apple II to Your Body”

Rocket Controls Fit for a Kerbal

Kerbal Space Program is a space simulation game. You design spacecraft for a fictional race called Kerbals, then blast those brave Kerbals into space. Sometimes they don’t make it home.

If controlling spacecraft with your WASD keys isn’t immersive enough for you, [marzubus] has created a fully featured KSP control console. It sports a joystick, multiple displays, and an array of buttons and switches for all your flight control needs. The console was built using a modular approach, so different controls can be swapped in and out as needed.

Under the hood, three Arduinos provide the interface between the game and the controls. One Arduino Mega runs HoodLoader2 to provide joystick data over HID. A second Mega uses KSPSerialIO to communicate with the game over a standard COM port interface. Finally, a Due interfaces with the displays, which provide information on the current status of your spacecraft.

All of the parts are housed in an off the shelf enclosure, which has a certain Apollo Mission Control feel to it. All [marzubus] needs now is a white vest with a Kerbal badge on it.

New Part Day: Really, Really Wide Screens

Once again my inbox runneth over with press releases, Kickstarter announcements, unsolicited emails, and a bunch of product announcements. Most of these, of course, are never to be seen again. Once in a great while – statistically insignificant, really – there’s a product announcement that’s just interesting enough to take a closer look at. This time, it’s a really, really wide screen.

LCDs are curious beasts when it comes to display interfaces. Back in the bad old days of gigantic tube TVs, the aspect ratio of these displays was fairly limited. You could get a 4:3 display, and with the rare exception of o-scopes, vector displays, and other weird devices, that was it. Since then we’ve moved to LCDs, a promising technology if you want a display in the shape of a car dashboard, or as a thin strip to put on some rackmount modules. It took this long for a sliver of an LCD to appear.

This display produced by EarthLCD is a 10.4 inch display, about ten inches wide and one inch tall. The resolution is 1024 by 100. It is, by far, the skinniest LCD ever produced. The closest you’re going to get to a display with this kind of aspect ratio are old character LCDs, and even then you’re not going to address individual pixels.

If you’re struggling to figure out what this would be used for, this product makes it somewhat obvious. It’s a 1U rack with a beautiful 1024×100 display embedded in the front. You’ve never seen a server that cool.

Interestingly, the 1U display is driven by a single Raspberry Pi, and looking at the datasheet for the display (PDF) tells you pretty much everything. The display is driven by a regular old parallel interface, with six bits of color for R, G, and B. That means it can be driven with a Raspberry Pi without an adapter board, a BeagleBone, or even smaller ARM micros with the obvious reduction in color depth.

While the display isn’t a game changer or something that will knock your socks off, it is, interesting and something that could find its way into some interesting projects. If you have any idea what those projects would be, drop a note in the comments.

Continue reading “New Part Day: Really, Really Wide Screens”