Turbulence
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.
Download
- lft_turbulence_h264_capture_720x576 (Presentation video and high quality capture, 720x576, 139.0 MB)
- lft_turbulence_h264_presentation_and_cam_1280x720 (Presentation video and low quality capture, 1280x720, 144.0 MB)
- lft_turbulence_h264_presentation_and_cam_640x360 (Presentation video and low quality capture, 640x360, 45.7 MB)
- turbulence (Binary EEPROM image, 32.0 kB)
- Linus Akesson - Turbulence soundtrack (Soundtrack, MP3, 4.9 MB)
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.)
Solved!
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
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
Mon 13-Apr-2009 15:02
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
00007c5c is an assembly instruction.
Tue 14-Apr-2009 11:57
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
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
Ciao
Tue 5-May-2009 05:32
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
PASMDisassembler on the forums... ;-)
Thu 7-May-2009 18:07
Gerardo G-Trejo
Tue 19-May-2009 12:50
http://www.ramtron.com/products/nonvolatile-memory/serial.aspx
Cheers!
Sun 21-Jun-2009 13:12
http://hive-project.de/
You can watch a demo on youtube:
http://www.youtube.com/watch?v=n_-kjd8uOjM
Mon 26-Oct-2009 17:47
Anders
Fri 15-Jan-2010 23:29
Wed 2-Jun-2010 17:45
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
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
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 ?
Thanks
Laurent
Tue 9-Nov-2010 14:21
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
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
Very cool!
Sun 2-Jun-2024 13:36
Linus Åkesson
Thu 13-Jun-2024 12:05
Supposed is a strong word. =) On these limited platforms I have to take shortcuts, sometimes at the cost of increased noise. You'll find a cleaner version of the song on Music For Microcontrollers (available for free on this site and on Spotify etc). It would be interesting to hear if you get the same noise in that version.