(hide navigation)
  • Swedish content
Fund my projects
Don't miss
Page thumbnail
Pushing Onwards: Return of the Chipophone
Log in
Latest comments
RSS feed
Music downloads
Video clips
Scene productions
Hardware projects


Turbulence is the successor of craft. It's a microcontroller demo based on the Propeller chip from Parallax. External I/O consists of stereo sound (at line level) and a VGA signal.

It was my contribution to the console / real wild competition at Breakpoint 2009. Also check out the pouët page.


The reverse engineering challenge

(The complete source code for Turbulence will be released when somebody has reverse engineered the binary enough to provide a detailed description of the techniques used in the greetings part (rotating face with text overlays). That's because I want to encourage reverse engineering in general, and because I think it will be a fun challenge.)


Greetings to kuroneko at the Propeller forum who finally cracked the reverse engineering challenge, and to Shazz who also worked hard on it. The source code is hereby released.

The propeller

Having worked extensively with the propeller for a while now, I have to say that it's a very unique and enjoyable platform to work with on the assembly language level. It's very cleverly designed, and you often get to be clever and creative yourself while coding for it. It may not lend itself to regular microcontroller applications, where you just want to get some C code up and running and work in the traditional interrupt-based paradigm, but it's the perfect environment for demo programming!

Posted Monday 13-Apr-2009 13:09

Discuss this page

Disclaimer: I am not responsible for what people (other than myself) write in the forums. Please report any abuse, such as insults, slander, spam and illegal material, and I will take appropriate actions. Don't feed the trolls.

Jag tar inget ansvar för det som skrivs i forumet, förutom mina egna inlägg. Vänligen rapportera alla inlägg som bryter mot reglerna, så ska jag se vad jag kan göra. Som regelbrott räknas till exempel förolämpningar, förtal, spam och olagligt material. Mata inte trålarna.

Mon 13-Apr-2009 13:47
it's going to take time :) As I really wonder how you did that, especially the video modes used with so few RAM, I tried to disassemble your eeprom using PropList but the result is... unreadable :)
And if you have mixed spin and pasm... going to be very tough...

by the way, give me a clue, tile mode ? 16x16, 4 colors per tile ?
Mon 13-Apr-2009 14:23
seek and ye shall find.... :)
Mon 13-Apr-2009 15:02
is it normal that the eeprom header is that strange ? the 1st long should give the Clk frequence and 00007C5C => 1551 MHz !?!? (instead of 8O MHz as you said it is demo board compatible : 00B4C404)
And the image checksum in not verified...

Did you upload the good image ??? Not sure I'd like to test it on my demo board...
Tue 14-Apr-2009 03:02
the 1st long should give the Clk frequence and 00007C5C => 1551 MHz !?!? ...

00007c5c is an assembly instruction.
Tue 14-Apr-2009 11:57
5C7C0000 =>
010111 0001 1111 000000000 000000000
RET ????
Return to which address ?

Why do the eeprom starts like that and not as a standard image ?
Wed 15-Apr-2009 06:48
Everything else in the first 16 bytes of the header is standard. The important stuff starts at 0x18 (as suggested in the header) where you see some interpreter bytecodes that are used to launch the program. To understand the rest, you'll have to dig it in the parallax propeller forum.
Mon 4-May-2009 19:57

This is a very nice piece of hardware! Respect!
I also built a graphic card together with a colleague, but we have full 1024x768 resolution at 60Hz and 65.536 colours. At this resolution calculating big animated objects is a lot more difficult though, and we only use a PIC 33F with 40MIPS for the calculation.
If anyone is interessted you can contact me on ICQ: 64691047

Tue 5-May-2009 05:32
Why do the eeprom starts like that and not as a standard image ?

FWIW, it *is* a standard image. The long at address 0 is the operating frequency only by convention. It has no effect on the hardware. The most important byte is at offset 4 which indicates XTAL1+PLL16X which is perfectly OK for the demo board.

As for checksum, it's correct. You wouldn't be able to flash an image with a wrong checksum anyway. If your disassembler can't cope get a new one.
Tue 5-May-2009 09:11
yep :) I wrote mine !
PASMDisassembler on the forums... ;-)
Thu 7-May-2009 18:07
You should offer a kit. I'm looking at building a "Ybox2", or a "Make Controller 2.0" Interface Board Kit. The Make Controller seems much more useful though. Neither are designed with VGA output on board though which I'd like to have, or some way of driving old scrap laptop panels. If I could write a driver to drive some cheap USB webcam on the Make Controller through its USB port, and have soem kind of video out and voice synthesizer chip attached, you could darn near well do anything with it. A microcontroller that could control a pile of devices/appliances via relays, display fees/info from a webserver on the web, be controlled by the web using its tiny internal webserver, and output speach alerts or information (new email! from: blank, etc). CHOPPERGIRL http://choppergirl.air-war.org
Gerardo G-Trejo
Tue 19-May-2009 12:50
Hi! I believe that you have done an incredible work with the Parallax Propeller!! It´s the best thing I have seen done with this chip. A shame that the propeller has only 32KB of HUB RAM... Have You evaluated the possibility of adding an external memory (like FRAM -SPI BUS- or similar SRAM) to your " demo board"?


Sun 21-Jun-2009 13:12
There is a german project building a retro-style computer with three propeller chips. It´s called the HIVE-Project.

You can watch a demo on youtube:
Mon 26-Oct-2009 17:47
I've got only one question: are you God?
Fri 15-Jan-2010 23:29
You make some really nice things!

Wed 2-Jun-2010 17:45
Congratulation, at work, available here.
What would be best choice for a VGA terminal (80 col x 50 row), Atmega or Propeller?

Fausto Oliveira / Brazil
Linus Åkesson
Wed 2-Jun-2010 20:27
Congratulation, at work, available here.
What would be best choice for a VGA terminal (80 col x 50 row), Atmega or Propeller?

Fausto Oliveira / Brazil

Definitely the propeller. You'd have to store 80 x 50 random characters along with colour information, for a total of 8000 bytes of RAM.
Mon 26-Jul-2010 19:02
Fantastic, what a great job, I'm astonished!
Sat 28-Aug-2010 07:47
I've would like to run this demo on my propeller demo board. Can you indicate me what should I do to load the eeprom with the binary you provide ?
Tue 9-Nov-2010 14:21
It would be interesting if someone wrote a Propeller emulator. And then, they could demonstrate your demo working on the emulator.

I've been looking at the page you linked to for the propeller, and it interests me greatly, as does the demo. I'm thinking of starting a project actually..

Not sure if I should do it in C or C++ though. Thoughts?
Fri 11-Dec-2020 23:24
Oh, I just realized that I should probably post this here:
I converted the demo to output NTSC video instead of VGA.

Youtube (60 FPS!): https://www.youtube.com/watch?v=JG8ai-OkMeQ

Forum post: https://forums.parallax.com/discussion/170304/ntsc-version-of-lfts-turbulence-demo
Linus Åkesson
Mon 11-Jan-2021 13:02
I converted the demo to output NTSC video instead of VGA.

Very cool!