Video playback on Nokia 6100 display

Using a XMOS processor and a FTDI vinculum embedded USB host chip i have managed to play video on a nokia 6100 (knockoff) display with a frame rate of 16.66 FPS.

Playing 2012 trailer at 16.66FPS (the RAW file was created for 12FPS and thus the movie plays a little bit too fast):

Playing Family Guy at 16.66FPS

I have converted the video to still images and converted them to a 12 bit RAW format.
The RAW file is uploaded to an USB stick with FAT16 file system.

The FTDI vinculum chip can reads from the USB stick and also implements the FAT16 file system, so the XMOS processor can easily open and read/write files without having to take care of the file system or USB stack.

The concept of the FTDI vinculum is very good, only the implementation could be a lot better.
The vinculum chip is in fact just a microcontroller with special USB hardware and runs a firmware.
There are several firmwares available for somewhat different functionality.

Unfortunately these firmwares (I only used the VDAP firmware though) aren’t that stable.
For example the SPI interface seems to have a bug which makes it totally unusable.
I have been able to read from the SPI interfaces but when i try to write to it the device locks up.
How do i know that the device locks up? Normally if you remove or add an USB device (USB stick) it will write a message to the transfer buffer that can be read. However when it locks up it does not responds to removing/adding a device and you will not read any new data.

Luckily the chip has two more interfaces: UART and parallel.
They both seem to work as expected. I have used the parallel interface because it can have higher transfer rates (The UART is limited to 3Mbit/sec).

Now the vinculum chip has two different protocols: a human optimized ASCII protocol (extended command set) and a machine optimized ‘binary’ protocol (short command set). Unfortunately this machine optimized protocol isn’t that machine friendly at all and in fact is just a shortened ASCII protocol.

Unfortunately my code is nowhere near mature so i won’t publish it at this moment.
Besides that the vinculum chips is limited to about 400KB/sec (good for 16FPS with 25KB RAW frames).
I think a SD card will be a better solution to play video from a RAW format.

Leave a Reply