Making use of the new features + Webcam

Jul 31, 2008 at 11:06 AM
Edited Jul 31, 2008 at 11:07 AM
Hi all,
I have a Verdex XL6 and a netMicroSD. I'm using the prebuilt image and boot from the MicroSD card.
I made some programming to control my Phidgets devices using the USB and they work just fine. Thank you David!

I have three issues I hope you could give me any hint about them:

1- How can I make use of the new features in BSP v1.3 such as presistant storage? Please note that I do have the platform builder but never worked with it.

2- I need to use a webcam with my gumstix. I wounder if the latest prebuilt image has a built-in driver. I would also appreciate it if anyone has a C# example on webcam to start from it.
BTW, I do have the (webcam.wrapper.dll) and other files from the Win CE webcam project.

3- To use the Phidgets, I have to install Phidgets framework in my gumstix. However, I need to re-install it whenever I reset the gumstix.
How can I resolve this issue? (if this Q is too stupid for you, just ignore it ;-)  )

Thank you.
Ed
Coordinator
Jul 31, 2008 at 1:48 PM
1. To support the persistent storage file system you just need to have the latest image (1.3), a Verdex XL6 and select the option in the hardware word from the bootloader (see the latest SetHardwareWord utility).
The "NOR Flash" drive will be auto-partitioned, auto-formatted and auto-mounted on the next bootup (takes two or three minutes the first time its booted ...be patient!). From then on the NOR Flash will look just like any other drive, you can drop files into it etc.

2. The latest image has the underlying USB Cam driver included. Its just a small revision of the MS supplied driver that is available from MS for platform builder.
The drivers interface is compatable with DirectShow, which is different then what Doug B. did with the web cam project hosted here on codeplex. I used Doug's stuff and
was able to get it to work also. There is a lot of documentation on DirectShow for the desktop but very little for the trimmed down version that runs on mobile devices.
Bottom line, all the infrastructure is there, to actually get a full working application is quite another story. I did an example managed C# appication and was actually able to stream video to a destop client
(all be it at very low resolution and frame rates). I did not release the source code.

3. You have a couple of options. If you create a "Startup" directory on any persistent drive (SD,CF or NOR Flash) any .exe or .bat file placed within will execute on start up.
Other options involve using the HKLM\Init registry key and the persistent registry option.

Good luck,
DV
Aug 1, 2008 at 12:45 PM
Hi David,

Thank you.

I copied the new image into my microSD card, changed the hardware word, saved it, then launched the new image.

It didn't work at the beginning, it turned out it's because of the presistant registry option.
I resolved that by doing a clean registry boot.

A while after booting, two drives were created:
"RAM Disk", size=16MB
and
"NOR Flash", size=7.48MB !

you know of course that XL6 has 128MB RAM and 32MB Flash. I have no problem with the current size of the RAM disk, but the nor flash is just way too small.

is my board defective? or is there any solution to this problem?

Best regards,
Ed


Coordinator
Aug 1, 2008 at 1:44 PM
Edited Aug 1, 2008 at 1:46 PM
This is correct.
Of the 32m Flash the bootloader takes ~.5meq, the image can be ~16meg, the persistent registry takes ~1m.
There are other factors like rounding for block size and the unuseable (1meg) odd blocks at the top of flash etc.
I also wanted to leave enought headroom for the image to grow (its very easy to get images up to 25meg or greater when you include the multimedia components like media player and/or IE).
You could make a big flash drive, up to ~30meg if you leave the image on the SD or CF card. But then if you have a (big storage) card why would need another flash drive?

I found 8meg is sufficient for most of the managed applications I write. When the apps gets much bigger I use the storage card option.

That being said, if you look at the platform.reg file you will see where the bounds are defined. You can redefine and rebuild the image or with perestent registry ON you can even change the bounds using the prebuilt image.
You need to LOWER the MemBase setting and RAISE the MemLen setting by the amount you want to increase. (I would not go more then a meg at a time)
Please note: I would be very, very carefull. There are a lot of factors to consider. Worst case you could render your device totally unbootable!

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\StrataFMD]

.
.
  "MemBase"=dword:BE100000
; virtual FLASH start ..beyond a big image end
  "MemLen"=dword:00800000 ; upper 8meg on XL6
.
.  

DV