• Featured User: kurt


    Open-source hardware project hosting is my passion. I spend most of my free time building neat gadgets or planning what I'll build next. I love building things, and I want to make Open Hardware Hub a place that inspires others to build, ...

    Learn More

  • Updates 2013 February 18

    It's been a while, hasn't it? Well, that's ok because we've got a lot of updates to talk about. Most of these have been effective on the site fora couple weeks now. A few may or may not be active when this article gets posted, but they'll certainly be applied in the ...

    Find Out More

Remote Video Display

Download this project


By: itake

This project allows a user to remotely control a video player on an eBox. It features the ability to:


video files and you can upload files to the remote eBox via ethernet for playing. The files loop through a list of filenames and plays them all. You can remotely control multiple devices through a media controller application written in Windows Forms C#.net.

Technology used:
Windows CE 6.0
TCP/IP Sockets
Windows Forms
Visual Studio 2005

Download project description w/o images
Download project description w/ images


Download all project files

Bill of Materials

Qty Part # Description Schematic ID Source
1 B604acf84d0542625025f1a9898c642a5d4e11bd eBox-3300/3310 Runs Windows CE 6.0 Source
1 78334942f3e3caccf8505bb287ebf2c35625ab51 Analog Monitor Used to display the video for the eBox-3300/3310 Source
loading total from bomfire.com...

Download BOM w/o images
Download BOM w/ images


1. Build the OS

Build the attached OS. Make sure you have a license for windows CE 6.0.

2. Run the media server application

Move the Media Server application to the eBox via a USB flash drive and run the program.

This will start up the server application used for displaying the videos and managing the file uploads.

How this works is:

//File Server Side//
Opens a port on the eBox for accepting files. It expects a TCP/IP packet with this format:

[------4 bytes-----][-------X-bytes-----][--Y-bytes--]
[ file name length ][ encoded file name ][ file data ]

Data is sent in buffer of 1024 bytes. Each time a file is sent, it overwrites the existing file. It writes it to the /Temp/ directory.
After it receives a file, it appends the file name to a data.txt file which is used to manage the queue of movies.

//Command Server Side//
This operates by accepting TCP/IP connection on a different port. The format is:

[-----4 bytes----][-----X-bytes-----]
[ command length ][ encoded command ]

The first 4 bytes determine the number of characters the command is and the bytes after that are the actual command.

Commands are:

This retrieves the list of video files in the queue in the order that the files will be played for displaying on the client screen. The client, after issuing this cmd, will need to expect more data back.

This tells the eBox to start playing a specified file name. The eBox will jump to that filename in the queue and start playing it. No response is returned from the server after this command.

This stops the current video from playing. No response is returned from the server after this command.

This stops the current video and starts playing the next video in the queue. This command does not return any additional information to the client.

File I/O is extremely slow on the eBox . Large files take an extremely long time to transfer and write to the hard drive. So you may need to verify on the eBox that a file has completely transferred before sending additional commands.

3. Run the client application

The client application loads a hard coded list of IP address that the user can select an eBox from.

Once an IP has been selected, the client will try to connect to the client using the "get" command discussed in step 2.

The client will receive packet by packet file name by file name in the order that they are to be played from the server and it puts this list in the queue list box on the display.

This list can be re-arranged and sent back to the server. Because the data.txt file is stored with the other media files, when a new arrangement of videos is sent to the server, the client uses the send file protocol to overwrite the existing list with the new one.

The play, stop, and next commands use the protocols described above to accomplish their tasks.

The status window at the bottom informs the user what is going on in the background.

Download steps w/o images
Download steps w/ images


2 -
1 - Initial project release Added photo of eBox

blog comments powered by Disqus