Sprite Graphics Accelerator on an FPGA

A demo running on a FPGA sprite accelerator

Graphics accelerators move operations to hardware, where they can be executed much faster. This is what allows your Raspberry Pi to display high definition video decently. [Andy]‘s latest build is a 2D sprite engine, featuring hardware accelerated graphics on an FPGA.

In the simplest mode, the sprite engine just passes commands through to the LCD. This allows for basic control. The fun part sprite mode, which allows for sprites to be loaded onto the FPGA. At that point, you can show, hide, and move the sprite. By overlapping many sprites, you something like the demo shown above.

The FPGA is from Xilinx, and uses their Block RAM IP to store the state of the sprites. The actual sprite data is contained on a 128 Mb external flash chip, since they require significant space.

The game logic runs on a STM32 Cortex M4 microcontroller which communicates with the FPGA and orders the sprites around. The FPGA then deals with generating frames and sending them to the LCD screen, freeing up the microcontroller.

If you’re wondering about the LCD itself, it’s 3.2″, 640 x 360, and taken from a Ericsson U5 Vivaz cellphone. [Andy] has a detailed writeup on reverse engineering it. After the break, he gives us a video overview of the whole system.

Continue reading “Sprite Graphics Accelerator on an FPGA”

OpenSCAD is for use with 2D machine, not just 3D printing

openscad-for-2d-machining

Here’s an enclosure which was designed with OpenSCAD and cut out on a CNC router. [Matthew Venn] wrote about the project because he sees tons of 3D printing hacks that use the software, but almost never hears about it as a tool for laser cutting or CNC router/mill work. When we read that we thought we must have seen a lot of 2D hacks but a search of Hackaday’s previous offerings proved us wrong. Just this week we heard about the software in use with the Makerbot. Or you could go back about a year and read about creating 3D molds. But nothing on 2D work.

His post is a quick read and shows off the bare bones of the case designs he’s been working with for a few years. By referencing the code itself, and playing with how it changes the render in OpenSCAD he makes a strong case for quick and easy enclosure design. If you use this technique make sure to document your experience because we want to hear about it!

Drag and drop images for 3D printing

This piece of software called OmNomNom works with OpenSCAD to turn 2D images into 3D models. It’s literally a drag-and-drop process that renders almost instantly.

Here the example is a QR code, which is perfect for the software since it’s a well-defined black and white outline in the source image. But the video after the break shows several other examples that don’t rely on this simplicity. For instance, the Superman logo, which uses four different colors, is converted quite easily. There’s also a depth map of [Beethoven's] bust that is converted into a 3D object. The same technique can be used to create terrain from topographic source images.

Once the file has been converted to a model it can still be tweaked like normal. This allows you to customize size and depth to suit your needs. This is where OpenSCD comes into play, but if you don’t use that program you can still export an STL file directly from OmNomNom for use on your 3D printer.

Continue reading “Drag and drop images for 3D printing”

g-speak spatial operating environment

Our fascination with multitouch is fairly well known, but it expands even further to cover all sorts of man machine interaction. Embedded above is a tech demo of g-speak, a spatial operating environment. The user combines gestures and spatial location to interact with on screen objects. If it seems familiar, it’s because one of the company’s founders advised on Minority Report. We doubt all this hand waving is going to catch on very quickly though. Our bet is on someone developing a multitouch Cintiq style device for people to use as a secondary monitor. It would bridge the gap between between our standard 2D interactions and gestures without making a full leap to 3D metaphors.

[via Create Digital Motion]