Artistic project - EMX based video player

Hello,

I’m an artist working in various installations - a mixture of technology (not visibile) and art (visible).
My current project involves building a very compact device, which plays a video sequence depending
on RFID tag scanned. So basically I have some video sequences (could be just images - I don’t need
very high framrate - 10/12FPS is enough) stored on SD card, which I would like to send to 320x240
LCD TFT display.

I have limited experience working with electronics, but have solid software developing background
(C,C++, Java…). I hope to get prototype working myself using existing libraries and then use professional
help to build the actual board.

  1. Am I in the right place ?

  2. Should I get GHI-EMXDEV-129 (EMX Development System) kit ?

  3. The supplied screen (3.5") is way too big for my project. Can I use different screen and if so,
    what are the requirements ? 8bit interface ? SPI ? Any particular Driver IC ? Any particular resoluton?

  4. Ideally I also would like also to send a ZigBee message to outside PC to play corresponding soundtrack when video is played. I already have ZigBee modules (by TagSense Inc). Or is it better
    to use “XBee Adapter Module” sold here ?

Thank you in advance,

Sincerely M
Paris, France

Take a look at gadgeteer category in catalog. It had everything you need and no experience is needed.

Welcome to the community.

Well almost no experience needed, except C# :wink: which i don’t see in your post…

hello,

Yes, Gadgeteers looks perfect. Unfortunatelly even the smallest board (spider) is 7mm too large to
fit into my casing. (I have 50mm x 50mm space) But for prototype its ok.

Now what about the display ? What kind of LCD I can use with the kit ? Any ?
Please advice me on this part before I go ahead…

Thanks
M

ps: ok for C#… I remember doing some project with it - looked very similar to java :slight_smile:

The OLED display might work for you.

Hydra is smaller than Spider I think, but it is less mature than the Spider; Cerberus is smaller again but is not something you should consider at this stage because it’s still something I would say is a work in progress rather than something you could just jump on now.

Hello,

OLED display has only 128x128 resolution. 4D systems has module with 128x160 resolution, which
is still too low for my purpose. What I need to build is a system with at least 320x240 display, which
is smaller than 2" in diagonal.

I did find this perfect screen for my project. Its an LCD module for Sony W880 mobile phone…

TFT, 256K colors
Size 240 x 320 pixels, 1.8 inches (~222 ppi pixel density)

But how to connect it … so far I didn’t manage to find a spec for it.

Thanks
M

Which video format will you be playing? I don’t know of anyone that has managed to play video on EMX at 10/12 FPS.

Hmm… 12FPS is too high ??
I thought ARM processor has enough power to play video at higher rate… no ?
As for format…either some compressed format (MPEG4?) or just raw
sequence of images.
(4D Goldelox processor, which I think is more weak than ARM, gives around 10FPS at 128x160)

The 4D Goldelox processor you’re mentioning is optimised to do graphics. The EMX is not. The fastest way I see is to setup a DMA transfer that transfers raw image data from the SD card directly to video memory, if that is possible. Say that is possible, I still do not have any idea what framerate you will get.

I guess that with the normal way (NETMF) of reading a frame from SD card and displaying it on the screen, you will not get 10FPS. I have an FEZ Cobra with EMX, so I can do this test for you if you like.

Reading from SD card on EMX has a speed around 200/300 KB/sec. Say an image is 320x240x2 = 150KB/image. That would make you read max 2 images/second.

I suggest you take a look at Beaglebone or Raspberry Pi.

Maybe you can use a WIMM One for you project: http://www.wimm.com/platform.html

BeagleBone or raspberry will not fit into 50x50mm, a WIMM is only 36x32mm, runs Android and already has a screen. It has no RFID though.

So… EMX is not a solution for my project. But how all those mobile phones and small video
players manage to play video at 320x240 without problems… and they use ARM!

Wouter:

thanks for making this test for me! … yes… so 2FPS is a way too low… not good.
But how the fact that 4D processors optimized for graphics makes them read
SD card faster ? And if I use some sort of compression like MPEG4… then I could
load video to RAM and play it from there ?

Farsa:

Ok. I will take a look at those things. Thanks for the suggestion…

Wouter:

Yes, I already looked at WIMM some time ago. The problem is that it doesn’t support
external data feeds (no serial port)… and its screen is square. If there were some compact
android platform - that would be perfect indeed…

There currently is no MPEG4 decoding in NETMF. Maybe it is possible to do it in native RLP code.

How long is a video in your project?

Since it’s an art project: maybe you can buy an Archos video player with 1.8inch screen and take it apart: http://www.archos.com/products/mp3_players/archos_18d_vision/index.html?country=be&lang=en

or maybe this 2inch one: http://www.archos.com/products/mp3_players/archos_20d_vision/specs.html?country=be&lang=en

You can add an additional microcontroller that controls the Archos buttons as it receives serial data.

Wouter:

Yes. Using ARCOS could be a solution… but again - their screen is only 128x160…

The videos are rather small. Maybe 30 seconds max…

I was very excited to find EMX product - thought that maybe this is finally the solution.
Seems like not.

With 4D systems it’s rather complicated, because I need a custom firmware
to accomodate a custom LCD module. And only 4D systems engineers can do that.

Basically I’m pretty much out of ideas…

Maybe hacking Sony phone ? :slight_smile:

I did an other calculation: my computer screen of 23inch has a resolution of 1920x1080, it is very sharp and as you can calculate (SQRT(19201920 + 10801080) / 23) it has almost 96 pixels per inch. The archos 2inch screen has a resolution of 176x220 and has almost 141 pixels per inch. That is 1.4 times sharper then my screen.

What I want to say is that 320x240 on a 1.8 or 2 inch screen is like overkill :slight_smile: Anything more then 96pixels per inch is nice to have but for playing video unnecessary if you ask me.

Wouter:

thanks for your advices!
you are correct about pixel denisty, but this depends on viewing distance.
In my case the viewer is located very close to the screen.

I have a small PDF with project description, which will clarify why I need a higher pixel density.
I’m going to put it online tonight…

176x220 is acceptable, by the way.

Wouter:

here is a link with enclosure dimensions

so here is a link to PDF file (where I try to adapt 4D modules)

depending on the slide you put in the machine a video is played on
the lcd screen behind it. The slide window is 35mm x 23mm. So the closer
I get to this dimension, the less pixels I loose.

I tested the system with 128x160 module and pixels are very-very visible.
I tested with mobile phone at 320x240 and you get much better feeling
when you look at it. So I think the goal is 320x240, but I can live with 270x176 …

Nice concept, but very little space. And the LCD flat cable must come out at the perfect position… Seems like you’ll need a custom board. EMX would have been perfect for this.

I’m looking at the datasheet of the EMX, and maybe there is a small chance to make this work in native code. The SD/MMC controller clocks bits at 25MHz (with 4 bits databus), this would mean 12,5MByte/second (without command overhead). Say that you don’t use a file system on it, only raw image data, you can directly copy to the LCD buffer through DMA transfer. A single 320x240x2 frame would take 150K, so 1 second at 10FPS would need a throughput of 1.5MByte/second. Maybe there is a chance that this can be reached.

On the other hand that would be 5 to 7 times the speed NETMF is reaching, so I might be dreaming here :slight_smile:

The man on this forum: http://dics.voicecontrol.ro/process_mails/arata_discutia/139681/LPC2478_-_JPEG_and_or_PNG_decoding.html claims that he gets a read speed of 7MByte/s on the LPC2478 (which is the chip used on EMX)…