What’s better than an ordinary end table? How about an end table that can serve you beer? [Sam] had this exact idea and used his skills to make it a reality. The first step of the build was to acquire an end table that was big enough to hold all of the components for a functional kegerator. This proved to be a bit tricky, but [Sam] got lucky and scored a proper end table from a garage sale for only $5.00.
Next, [Sam] used bathroom sealant to seal up all of the cracks in the end table. This step is important to keep the inside cold. Good insulation will keep the beer colder, while using less electricity. Next, a hole was cut into the top of the table for the draft tower.
The draft tower is mounted to a couple of drawer slides. This allows the tower to raise up and down, keeping it out of sight when you don’t want it. The tower raises and lowers using a simple pulley system. A thin, high strength rope is attached to the tower. The other end is attached to a spool and a small motor. The motor can wind or unwind the spool in order to raise and lower the tower.
The table houses an Arduino, which controls the motor via a homemade H bridge. The Arduino is hooked up to a temperature sensor and a small LCD screen. This way, the users can see how cold their beer will be before they drink it.
To actually keep the beer cold, [Sam] ripped apart a mini fridge. He moved the compressor and condenser coils to the new table. He had to bend the coils to fit, taking care not to kink them. Finally he threw in the small keg, co2 tank and regulator. The final product is a livingroom gem that provides beer on demand.
Demo video (which is going the wrong way) can be found after the break.
Continue reading “End Table Kegerator Hides the Tap when You’re Not Looking”
[Paul Stoffregen], known as father of the Teensy, has leveraged the Teensy 3.1’s hardware to obtain some serious speed gains with SPI driven TFT LCDs. Low cost serial TFT LCDs have become commonplace these days. Many of us have used Adafruit’s TFT LCD library to drive these displays on an Arduino. The Adafruit library gives us a simple API to work with these LCDs, and saves us from having to learn the intricacies of various driver chips.
[Paul] has turbocharged the library by using hardware available on Teensy 3.1’s 32 Freescale Kinetis K20 microcontroller. The first bump is raw speed. The Arduino’s ATmega328 can drive the SPI bus at 8MHz, while the Teensy’s Kinetis can ramp things up to 24MHz.
Speed isn’t everything though. [Paul] also used the Freescale’s 4 level FIFO to buffer transfers. By using a “Write first, then block until the FIFO isn’t full” algorithm, [Paul] ensured that new data always gets to the LCD as fast as possible.
Another huge bump was SPI chip select. The Kinetis can drive up to 5 SPI chip select pins from hardware. The ATmega328 doesn’t support chip selects. so they must be implemented with GPIO pins, which takes even more time.
The final result is rather impressive. Click past the break to see the ATmega based Arduno race against the Kinetis K20 powered Teensy 3.1.
Paul’s library is open source and available on Github.
Continue reading “TFT LCDs Hit Warp Speed with Teensy 3.1″
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”
[Herp] just shared a nice 1MHz Arbitrary Waveform Generator (right click -> translate to English as google translation links don’t work) with a well designed user interface. His platform is based around a PIC32, a TFT module with its touchscreen and the 75MHz AD9834 Direct Digital Synthesizer (DDS). Of course the latter could generate signals with frequencies up to 37.5MHz… but that’s only if two output points are good enough for you.
As you can see in the video embedded below, the ‘tiny dds’ can generate many different kinds of periodic signals and even ones that are directly drawn on the touchscreen. The offset and signal amplitude can be adjusted using several operational amplifiers after the DDS ouput and a separate SMA TTL output is available to use a PIC32 PWM signal. The platform can read WAV audio files stored on microSD cards and also has an analog input for signal monitoring. Follow us after the break for the video.
Continue reading “An Open Source 1MHz Arbitrary Waveform Generator with an Awesome UI”
[Colin], AKA [Domipheus], was working on a project to monitor a thermostat with a wall mounted Raspberry Pi and a touchscreen. Simple enough, but the Pi has a problem: The plugs are all around the perimeter of the board, and with a TFT touch screen shield, it’s a bit too thick to be wall mounted. What followed is a hack in the purest sense: [Domipheus] removed and relocated components on the Pi until the entire Pi/display stack was just a hair over 10mm tall.
A Raspberry Pi Model A was used for this build, meaning the Ethernet jack was gone, and there was only a single USB port to deal with. Still, the highest components – the RCA and audio jacks – were too tall and needed to be removed; they weren’t going to be used anyway.
After these components were gone, [Domipheus] turned his attention to the next tallest parts on the board: fuses, caps, and the HDMI port. For fear of damaging the surrounding components when removing the HDMI connector the right way, this part was simply hacked off. The large tantalum cap near the USB power connector was removed (it’s just a filter cap) and the large protection diode was moved elsewhere.
Slimming down a Pi is no good without a display, and for that [Domipheus] used this touchscreen thing from Adafruit. Things got a little complicated when the project required the ability to remove the LCD, but you can do amazing things with a DIP socket and a file.
The end result is a Raspberry Pi with touchscreen display that’s just a smidgen thicker than a CD case. It’ll fit right up against a wall in its repurposed enclosure, and the end result looks very professional.
[Thanks Luke via reddit]
These days, it’s easy enough to play games on the go. If you have a smart phone, you are pretty much set. That doesn’t mean you can’t still have fun designing and building your own portable gaming system, though.
[randrews] did just that. He started out by purchasing a small memory LCD display from Adafruit. The screen he chose is low power as far as screens go, so it would be a good fit for this project. After testing the screen with a quick demo program, it was time to start designing the circuit board.
[randrews] used Eagle to design the circuit. He hand routed all of the traces to avoid any weird issues that the auto router can sometimes cause. He made an efficient use of the space on the board by mounting the screen over top of the ATMega chip and the other supporting components. The screen is designed to plug in and out of the socket, this way it can be removed to get to the chip. [randrews] needs to be able to reach the chip in order to reprogram it for different games.
Once the board design was finished, [randrews] used his Shapeoko CNC mill to cut it out of a copper clad board. He warns that you need to be careful doing this, since breathing fiberglass dust is detrimental to living a long and healthy life. Once the board was milled out, [randrews] used a small Dremel drill press to drill all of the holes.
The final piece of the puzzle was to figure out the power situation. [randrews] designed a second smaller PCB for this. The power board holds two 3V coin cell batteries. The Arduino expects 5V, so [randrews] had to use a voltage regulator. This power board also contains the power switch for the whole system.
The power board was milled and populated. Then it was time to do some measurements. [randrews] measured the current draw and calculates that he should be able to get around 15 hours of play time using the two 3V coin cell batteries. Not bad considering the size.
Over at DorkbotPDX in Portland, a member showed up with a stack of large LCD displays from point of sale terminals. [Paul] took it upon himself to reverse engineer the displays so that they can be recycled in future projects.
The control circuit for this LCD resides on a rather large PCB with quite a variety of components. The board was reduced to three main components: an MSM6255 display controller, a 32k RAM chip which is used as the framebuffer, and a tri-state driver.
With all the unneeded components out of the way, a custom board based around an ATmega88 MCU was added. This board was soldered in to interface with the LCD controller’s bus. This allows data to be written from the 128k flash ROM on the custom board into the frame buffer. Once this is done, the display controller will display the data on the LCD.
Now that data could be written, [Paul] figured out the correct configuration for the display controller. That was the final piece in getting images to show up correctly on the display. If you happen to find some old Micros 2700 POS terminals, [Paul]’s detailed write-up will help you scavenge the displays.