Better VGA On The STM32F4

[Cliff] is pushing VGA video out of a microcontroller at 800×600 resolution and 60 frames per second. This microcontroller has no video hardware. Before we get to the technical overview, here’s the very impressive demo.

The microcontroller in question is the STM32F4, a fairly powerful ARM that we’ve seen a lot of use in some pretty interesting applications. We’ve seen 800×600 VGA on the STM32F4 before, with a circles and text demo and the Bitbox console. [Cliff]’s build is much more capable, though; he’s running 800×600 @ 60FPS with an underclocked CPU and most (90%) of the microcontroller’s resources free.

This isn’t just a demo, though; [Cliff] is writing up a complete tutorial for generating VGA on this chip. It begins with an introduction to pushing pixels, and soon he’ll have a walkthrough on timing and his rasterization framework.

Just because [Cliff] has gone through the trouble of putting together these tutorials doesn’t mean you can’t pull out an STM Discovery board and make your own microcontroller video hacks. [Cliff] has an entire library of for graphics to allow others to build snazzy video apps.

LayerOne Demoscene Demoboard Party

The LayerOne conference is over, and that means this last weekend saw one of the biggest demoscene parties in the USA. Who won? A European team. We should have seen this coming.

There were two categories for the LayerOne demo compo, the first using only the LayerOne Demoscene Board. It’s a board with a PIC24F microcontroller, VGA out, and a 1/8″ mono audio out. That’s it; everything that comes out of this board is hand coded on the PIC. A few months ago, [JKing] wrote a demo to demonstrate what this demoboard can do. According to him, it’s the only reason Hackaday sold a single Demoboard in the Hackaday store:

First place for the Demoscene Board competition went to a remote entry – a team called COINE. The video and initial reactions of everyone in the room:

No one in the idea had any idea how this was possible. The hardware should not be able to do that. The resolution and number of colors are too high. It was, by far, the most impressive demo at LayerOne. That doesn’t mean the other submissions to the Demoscene board competition were overlooked. [jamisnemo]’s entry was well received, even though he ran out of time writing it:

The second category for the LayerOne demo competition was the ‘Secret’ Board. There were only 10 or 12 of these boards ever made , but there were still some impressive entries. The board itself is built around an ATMega88 – 8k of Flash, 1K of RAM, and 512 Bytes of EEPROM. If using an ATMega88 as a demo platform sounds familiar, you’d be right. [lft] built the Craft demo way back in 2008 around this chip. The Secret Board is designed to run this demo, and serve as a platform for a demo that implemented a framebuffer on the ‘Mega88:

In all, an excellent competition. It was well received by all attendees, and next year’s compo is sure to be even bigger. If anyone has any idea on how the big European capture these demos to video, please leave a note in the comments. No one at LayerOne could figure it out.

Demoing an 8088

The demoscene usually revolves around the Commodore 64, and when you compare the C64 hardware to other computers of a similar vintage, it’s easy to see why. There’s a complete three-voice synthesizer on a chip, the hardware allows for sprites, a ton of video pages, and there are an astounding sixteen colors, most of which look good. You’re not going to find many demos for the Apple II, because the graphics and sound are terrible. You’re also not going to find many demos for an original IBM PC from 1981, because for thirty years, the graphics and audio have been terrible.

8088 MPH by [Hornet], [CRTC], and [DESire], the winner of the recent 2015 Revision Demo compo just turned conventional wisdom on its head. It ran on a 4.77 MHz 8088 CPU – the same found in the original IBM PC. Graphics were provided via composite output by a particular IBM CGA card, and sound was a PC speaker beeper, beeping sixty times a second. Here’s a capture of the video.

Because of the extreme nature of this demo, it is unable to run on any emulator. While the initial development happened on modern machines with DOSbox, finishing the demo needed to happen on an IBM 5160, equivalent to the 5150, but much easier to find.

Despite the meager hardware and a CPU that reads a single byte in four cycles, effectively making this a 1.19 MHz CPU, the team produced all the usual demoscene visuals. There are moire patterns, bobbing text, rotated and scaled bitmaps, and an astonishing 1024-color mode that’s an amazing abuse of 80×25 text mode with NTSC colorburst turned on.

Below you can find a video of the demo, and another video of the audience reaction at the Revision compo.

Continue reading “Demoing an 8088″

Revive The Demoscene with a LayerOne Demoscene Board

Demos, the demoscene, and all the other offshoots of computer arts had their beginning as intros for cracked Apple II, Speccy, and Commodore 64 games. Give it a few years, and these simple splash screens would evolve into a technological audio-visual experience. This is the birth of the demoscene, where groups of programmers would compete to create the best demonstration of computer graphics and audio.

For one reason or another, this demoscene was mostly confined to Europe; even today, 30 years after the Commodore 64, the North American demoscene is just a fraction of the size of the European scene. A very cool guy named [Arko] would like to change that, and to that end he built the LayerOne Demoscene Board.

If there is a problem with the modern demo scene, it’s that the hardware that’s usually used – C64s, Ataris, Spectrums, and Amigas – are old, somewhat rare, and dying. There’s also the fact that artists have been working on these old machines for decades now, and every single ounce of processing power and software trickery has been squeezed out of these CPUs. [Arko]’s board is a ground-up redesign of what a board that plays demos should be. There’s only one chip on the board – a PIC24F with three graphics acceleration units, color lookup tables, and the ability to output 16-bit VGA video up to 640×480 with 8-bit audio.

The first official competition with the LayerOne Demoscene Board will be at the 2015 LayerOne conference in Monrovia, CA on May 23. There are a few categories, including 4k and 64k JavaScript, Raspberry Pi, the LayerOne board, and a ‘Wild’ category. If you want to take a processor out of a toaster and make a demo, this is the category you’ll be entering. Of course Hackaday will be there, and we’ll be recording all the demos.

Below are a few examples of what the LayerOne Demoscene board can do, and you can also see a talk [Arko] gave at the Hackaday 10th anniversary party here. You can buy the Layerone Demoscene Board on the Hackaday Store

Continue reading “Revive The Demoscene with a LayerOne Demoscene Board”

Unlock Your Demo Kindle Paperwhite

If you’ve been holding off on upgrading your kindle, this project might inspire you to finally bite the bullet. [WarriorRocker] recently saved quite a few dollars on his Kindle upgrade by using a demo unit. Of course, it’s not as simple as just finding a demo unit and booting it up. There’s some hacking involved.

[WarriorRocker] found his Kindle Paperwhite demo unit on an online auction site for just $20. Kindles are great for reading but also make popular displays for your own projects. This used display model was much less expensive than a new unit, which makes sense considering it had probably received its share of abuse from the consumers of some retail store. The problem with a demo unit is that the firmware that comes with it is very limited, and can’t be used to sync up with your Amazon account. That’s where the hacking comes in.

pwdu-01The first step was to crack open the case and locate the serial port. [WarriorRocker] soldered a small three pin header to the pads to make it easier to work on his device as needed. He then connected the Kindle to his PC using a small serial to USB adapter. Pulling up the command prompt was as simple as running Putty and connecting to the correct COM port. If the wires are hooked up correctly, then it just takes a press of the enter key to pull up the login prompt.

The next step requires root access. The root password for each unit is related to the unit’s serial number. [WarriorRocker] obtained the serial number by rebooting the Kindle while the Serial connection was still open. The boot sequence will spit out the number. This number can then be entered in to an online tool to generate possible root passwords. The tool is available on [WarriorRocker’s] project page linked above.

Next, the Kindle needs to be rebooted into diagnostic mode. This is because root logins are not allowed while the device is booted to the system partition. To enter diagnostic mode, [WarriorRocker] had to press enter over and over during the boot sequence in order to kill the automatic boot process. Then he checked some environment variables to locate the memory address where the diagnostic mode is stored. One more command tells the system to boot to that address and into diagnostic mode.

The last step of the process begins by mounting the Kindle as a USB storage device and copying over the stock Kindle firmware image. Next [WarriorRocker] had to exit the diagnostic menu and return to a root command prompt. Finally, he used the dd command to copy the image to the Kindle’s partition bit by bit. Fifteen minutes and one reboot later and the Kindle was working just as it should. [WarriorRocker] even notes that the 3G connection still works. Not bad for $20 and an hour or two of work.

Beams of Light: An Oscilloscope Demo

beamsoflight

The demoscene is alive and well, with new demos coming out on a multitude of platforms, including oscilloscopes. Beams of Light is a new demo released at @party in Boston by [TRSi]. Beams isn’t the usual .EXE file format for PC based demos. It’s distributed as a 4 channel wave file. The rear left and right channels are stereo audio. The front channels, however, are vector video to be displayed on an oscilloscope in XY mode.

Beams of Light isn’t the first demo to use an oscilloscope. Youscope and Oscillofun preceded it. Still, you can see [TRSi] pushed the envelope a bit with his creation. He used Processing and Audacity to create the vector video, and his own line tracing algorithm to reduce flyback lines.

[TRSi] included an updated copy of a python based oscilloscope emulator so you can play the demo even if you don’t have the necessary hardware. We wanted to run this the right way, so we powered up our trusty Tektronix 465 and hooked it up to a 1/8″ stereo plug.

Sure enough, the demo played, and it was glorious. We did see a few more retrace lines than the video shows. This could be due to our scope having a higher bandwidth than the 10MHz scope used in the YouTube video. XY demos are one of those rare cases where an analog scope works much better than a low-cost digital scope. Trying the demo on our Rigol ds1052e didn’t yield very good results to say the least. Sometimes good old phosphor just beats an analog to digital converter.

Continue reading “Beams of Light: An Oscilloscope Demo”

(Better) Full Motion Video On The First PC

Ladies

Ten years ago, [Trixter] created 8088 Corruption, a demo for the original PC, the IBM 5150, that displayed full motion video using a CGA card and a SoundBlaster. It was hailed as a marvel of the demoscene at the time, garnered tons of hits when it was eventually uploaded to Google Video, and was even picked up by the nascent Hackaday.Now, ten years later, and seven years after [Trixter] said full motion video using the graphics mode of a CGA adapter was impossible, he’s improved on his earlier work. Now, it’s possible to display video at 640×200 resolution at 30 frames per second on a 30-year-old computer.

[Trixter]’s earlier work used the text mode of the CGA adapter, only because the 40×25 character, 16 color mode was the only graphics mode that could be entirely updated every single frame. It’s still one of the high points of the PC demoscene, but from the original video, it’s easy to see the limitations.

A while back, [Trixter] said displaying video using his computer’s graphics mode was impossible. He’s had years to think about this statement, and eventually realized he was wrong. Like the developers of modern video codecs, [Trixter] realized you don’t need to change every pixel for every frame: you only need to change the pixels that are different from frame to frame. Obvious, if you think about it, and all [Trixter] needed to do was encode the video in a format that would only change dissimilar pixels from frame to frame, and manage the disk and memory bandwidth.

After reencoding the 10-year-old demo for graphics mode, [Trixter] turned toward his most ambitious demo to date: playing the ‘Bad Apple’ animation on an 8088. As you can see in the video below, it was a complete success.

Continue reading “(Better) Full Motion Video On The First PC”