VideoCentre is the name given to the custom built PC based video/media player which I am currently working on. I set out with the intention of creating such a device which would be dedicated to
playing back many types of media formats, and would be situated in someone's living room or bedroom, which is much like Microsoft's intention with their 'MediaCenter'. However, unlike MediaCenter,
where you have to run a full blown operating system and wait minutes for it to boot, mine uses a simple MS-DOS kernel, QuickView Pro (a brilliant shareware multimedia player for DOS, which can be
play back loads of file types, and be run well from batch files) and a lot of custom made batch files and QuickBasic programs to 'glue' it altogether. Of course, other utilities are used by the
batch files. My primary objective was to create my 'VideoCentre' with ease of use and simplicity in mind, and so far it does what it says on the tin, it plays videos on a USB storage device
automatically (as long as there is a valid VideoCentre playlist file on the storage device).
Software and Drivers Used
- MS-DOS 7.1
- BMPVIEW
- Iomega EHCI USB mass storage drivers
- Iomega GUEST.EXE ASPI manager
- REBOOT
- SHUTDOWN
- DOSLFN
- Realtek 8139 Packet Driver
- Trumpet TCP stack
- Yamaha sound driver
- HIMEM.SYS
- SMARTDRV
- VIDPARSE
- UPDSET
- UPDPARSE
- DEVLOAD
- SLEEP
- SLEEP2
VIDPARSE, UPDSET, UPDPARSE, SLEEP, SLEEP2 are all created by me in QuickBasic.
Software Explained
First of all, MS-DOS is booted off the Compact Flash card, and CONFIG.SYS is executed, HIMEM.SYS is executed with the TESTMEM:OFF switch. Next, AUTOEXEC.BAT is executed and some variables are
initially set, most importantly %BIN%, which gives the path to the system folder VIDCENTR. SMARTDRV is then loaded for disk caching and next, the Iomega EHCI USB mass storage driver is run by
DEVLOAD, and if a mass storage device is not found, it does not load. After that, GUEST.EXE is run to map the USB driver to a drive letter, obviously, if the USB driver did not load it won't be
able to map a drive letter. The packet driver for the network card is then loaded along with the Trumpet TCP stack, then the Yamaha sound drivers are loaded and finally DOSLFN is loaded for
long file name support. AUTOEXEC.BAT then loads PLAYMAN.BAT
When PLAYMAN.BAT is loaded, it looks for a USB drive by using the IF EXIST statement. If a USB drive is found, PLAYMAN.BAT looks for a software update identifier file (VCUPD.ID), if it is found,
a software update begins, if not PLAYMAN.BAT then looks for a playlist called VIDCENTR.VCP, which then is converted into a batch file by VIDPARSE, and the video starts playing from QuickView.
If a USB drive is not found,
DEVLOAD AND GUEST is run continuously in a loop (with the USB driver) with a 2 second delay with each loop by using SLEEP2 (UPDATE: The Iomega driver seems to leave a memory hole every time it exits, meaning a large amount of memory is left unusable. I'm still looking for a way to circumvent this without having to make the thing reboot every time a USB drive is not detected), and a message is shown telling the user
to connect a storage device. When the storage device is connected, the driver will mount it and the batch file will continue as normal.
Back to the software update. If the identifier is found (VCUPD.ID), UPDPARSE.EXE reads this file and copies the new software (.BIN file) from the path that is specified in the identifier to
the Compact Flash card. UPDSET then re-writes the autoexec.bat and config.sys files to load minimal drivers and a RAMDISK. Also, a line is included to copy the C:UPDSYS folder (which contains
the scripts and files needed to update) to the RAMDISK. The system is then rebooted to take into effect these changes in the AUTOEXEC.BAT and CONFIG.SYS. The Compact Flash card is then formatted,
and the .BIN file unzipped to the Compact Flash card, and the system is rebooted. Full screen bitmap files are used throughout VideoCentre with the BMPVIEW program to give a more professional
polish, and where applicable, all text output intended for the screen that are generated by programs are redirected to NUL. This hides the user from 'complicated' looking text and instead shows
them a nice colourful screen.
The software is constantly being updated with bug fixes and new features. Currently, the Network interface is not used at all, but this will be used in the future to download software updates
and to download videos. Also, I am looking to purchase the IR2PC module (which allows you to control DOS from a remote control), so changes in the software will have to be made to accommodate
this.
Hardware
Some of the hardware being used is pretty old (circa 1999), and some is fairly new or brand new.
- Intel AL440LX motherboard
- USB 2.0 PCI Card (NEC chipset)
- Matrox Millenium G200 AGP graphics card
- Onboard Yamaha sound
- Intel Celeron 333mhz Slot 1
- 159MB PC100 RAM (don't actually need half as much as that)
- Realtek 8139 PCI NIC
- IDE to Compact Flash adapter
- 128MB Impact Compact Flash card
I plan to get the IR2PC module soon.
Appearance/Casing
The entire system is mounted on the metal sheet which usually only is a mounting for the motherboard and runs 'bare'. This allows for good ventilation, techno eye-candy, easy access to components
and it cut the cost dramatically, as I didn't have to lash out for expensive cases. A simple, but effective solution to the problem of messy power supply cables, was twisting them, which held
each one together, saved space, and looked more professional. The power supply was mounted onto the metal sheet using double-sided sticky tape, which holds well. However, this isolates the metal
plate and some of the motherboard from the 'true' ground provided by the PSU, so after a few small electric shocks, I attached a cable between the two to solve the problem.
To make the system silent, I'm going to try and find a suitable heatsink for the PSU and CPU, so I can run them both fan-less. Also, I'm trying to find an effective way of securing the PCI/AGP
cards, as they are only currently held in by the sockets.
Above: The VideoCentre
Above: A Simpsons episode (in Xvid format) playing off my USB Flash disk
Above: The VideoCentre. The orange light is from the IDE to CF card adapter
Above: My USB Flash disk plugged into the Hi-Speed USB 2.0 PCI Card
Above: The CF to IDE adapter with the CF card inserted
Page Comments
Please visit the
Forum. Here you may find more information related to the page you are on, and you too can contribute.
Sign up now! It won't take a minute
Other Pages