<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Windows CE Blog</title>
	<atom:link href="http://e-consystems.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://e-consystems.com/blog</link>
	<description></description>
	<lastBuildDate>Wed, 01 Sep 2010 10:33:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Relation Between Visual Studio and Windows CE Versions</title>
		<link>http://e-consystems.com/blog/relation-between-visual-studio-and-windows-ce-versions/</link>
		<comments>http://e-consystems.com/blog/relation-between-visual-studio-and-windows-ce-versions/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 07:23:12 +0000</pubDate>
		<dc:creator>Prabu Kumar - Microsoft Certified Technology Specialist</dc:creator>
				<category><![CDATA[Windows CE]]></category>

		<guid isPermaLink="false">http://e-consystems.com/blog/?p=503</guid>
		<description><![CDATA[After the release of Windows Embedded Compact 7 CTP, I have seen lot of confusions among the WinCE beginners on the Visual Studio versions usage. I hope this blog will give some idea to them about the relation between Visual studio and Platform builder versions.
Until WinCE 5.0 the Platform builder was installed as a separate [...]]]></description>
			<content:encoded><![CDATA[<p>After the <a href="http://e-consystems.com/blog/windows-embedded-compact-7-officially-released/">release of Windows Embedded Compact 7 CTP</a>, I have seen lot of confusions among the WinCE beginners on the Visual Studio versions usage. I hope this blog will give some idea to them about the relation between Visual studio and Platform builder versions.</p>
<p>Until WinCE 5.0 the Platform builder was installed as a separate IDE. Using which we need to create a OSDesign and also sub-projects. For application development embedded VC++ 4.0(eVC++) IDE was used.</p>
<p><a href="http://e-consystems.com/blog/wp-content/uploads/2010/08/VS2010.jpg"><img class="alignnone size-full wp-image-504" title="VS2010" src="http://e-consystems.com/blog/wp-content/uploads/2010/08/VS2010.jpg" alt="" width="183" height="298" /></a></p>
<p>During the WinCE 6.0 release, Microsoft integrated the Platform builder into Visual Studio 2005 IDE. So from WinCE 6.0 onwards developer can create both OSDesigns as well as smart device application using VS2005 IDE.</p>
<p>In Windows Embedded Compact 7, Microsoft has integrated the Platform builder as part of the VS2008, so for creating OSDesign for WCE 7 VS2008 is needed. With VS2005 you cannot build a OSDesign for WinCE 7.0.</p>
<table style="height: 130px;" border="1" cellspacing="0" cellpadding="0" width="559">
<tbody>
<tr style="text-align: center;">
<td width="163" valign="top"><strong>Features</strong></td>
<td width="83" valign="top"><strong>VS2005</strong></td>
<td width="83" valign="top"><strong>VS2008</strong></td>
<td width="113" valign="top"><strong>VS2010</strong></td>
</tr>
<tr>
<td width="163" valign="top"><strong>Platform   Builder</strong></td>
<td width="83" valign="top">WinCE 6.0</td>
<td width="83" valign="top">WinCE 7.0</td>
<td width="113" valign="top">Not supported</td>
</tr>
<tr>
<td width="163" valign="top"><strong>Smart   Device </strong></p>
<p><strong>Application   Development</strong></td>
<td width="83" valign="top">Supported</td>
<td width="83" valign="top">Supported</td>
<td width="113" valign="top">Not Supported</td>
</tr>
<tr>
<td width="163" valign="top"><strong>.NET CF   application</strong></p>
<p><strong> development</strong></td>
<td width="83" valign="top">v2.0</td>
<td width="83" valign="top">v2.0</p>
<p>v3.5</td>
<td width="113" valign="top">Not Supported</td>
</tr>
</tbody>
</table>
<p>Now VS2010 has released and application developers are thinking to upgrade to VS2010 to explore the new features. If you are developing applications for embedded operating systems like WinCE/Windows Mobile then you cannot use VS2010.Because VS2010 does not support smart device application development. <a href="http://msdn.microsoft.com/en-us/library/sa69he4t.aspx">Check out the following link for more detail</a>&#8230;</p>
<p>If you want to develop the application for Windows Phone 7 OS, then you can download the &#8220;VS2010 Express for Windows Phone&#8221;, which is released with free license. Click here to <a href="http://www.microsoft.com/express/Downloads/#2010-Visual-Phone">download VS2010 Express for Windows Phone</a>.</p>
<p>With this you cannot develop applications for either WinCE or Windows Mobile devices.</p>
]]></content:encoded>
			<wfw:commentRss>http://e-consystems.com/blog/relation-between-visual-studio-and-windows-ce-versions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Embedded Compact 7 Officially Released</title>
		<link>http://e-consystems.com/blog/windows-embedded-compact-7-officially-released/</link>
		<comments>http://e-consystems.com/blog/windows-embedded-compact-7-officially-released/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 06:53:32 +0000</pubDate>
		<dc:creator>Prabu Kumar - Microsoft Certified Technology Specialist</dc:creator>
				<category><![CDATA[Windows CE]]></category>
		<category><![CDATA[Windows Embedded Compact 7]]></category>

		<guid isPermaLink="false">http://e-consystems.com/blog/?p=496</guid>
		<description><![CDATA[Finally, Windows Embedded Compact 7 had been officially released is known to be a version of Windows Embedded CE 6.0 for the future. Job Well Done Microsoft!
This release shows that Microsoft is never concerned about what Apple or Google does lately, but focused in making its own products.  MS has shown that in some fields, [...]]]></description>
			<content:encoded><![CDATA[<p>Finally, <a href="http://www.microsoft.com/Presspass/Features/2010/may10/05-31RichExperiences.mspx" target="_blank">Windows Embedded Compact 7 had been officially released</a> is known to be a version of Windows Embedded CE 6.0 for the future. Job Well Done Microsoft!</p>
<p>This release shows that Microsoft is never concerned about what Apple or Google does lately, but focused in making its own products.  MS has shown that in some fields,  it can do really good work when it just stops caring about looking at opponents progress though.</p>
<p>One of the most wonderful features in this release is kernel support for 3GB physical RAM and also supports ARMv7 assembly.</p>
<p>It has also got many new features like:</p>
<ul>
<li> Internet Explorer 7 including support for Adobe Flash 10.1</li>
<li> Enhanced Media player with added Codecs</li>
<li> Exchange 2010 AirSync</li>
<li> MultiTouch and gesture and many more.</li>
</ul>
<p><a href="http://e-consystems.com/blog/wp-content/uploads/2010/08/Asus-Eee-Pad.jpg"><img class="alignnone size-full wp-image-498" title="Asus-Eee-Pad" src="http://e-consystems.com/blog/wp-content/uploads/2010/08/Asus-Eee-Pad.jpg" alt="" width="280" height="182" /></a></p>
<p>It looks like most of the changes are on the user interface experience. I will try downloading the Compact 7 CTP release and try to get more information about the new features.</p>
<p>It has been released for developer community for testing the Windows Embedded Compact 7 features in the Microsoft <a href="https://connect.microsoft.com/windowsembeddedce" target="_blank">connect site</a>.</p>
<p>Check out this Windows Embedded site for more details on <a href="http://www.microsoft.com/windowsembedded/en-us/products/windowsce/compact7.mspx" target="_blank">Windows Embedded Compact 7</a> and also check out the videos which will show the new user experience and new features.</p>
<div id="attachment_497" class="wp-caption alignnone" style="width: 360px"><a href="http://e-consystems.com/blog/wp-content/uploads/2010/08/Alioth_7.jpg"><img class="size-full wp-image-497" title="Alioth - PXA300 Rapid Development Kit" src="http://e-consystems.com/blog/wp-content/uploads/2010/08/Alioth_7.jpg" alt="" width="350" height="250" /></a><p class="wp-caption-text">Windows Compact 7</p></div>
<p>Start download and enjoy developing over Windows Embedded compact 7.</p>
]]></content:encoded>
			<wfw:commentRss>http://e-consystems.com/blog/windows-embedded-compact-7-officially-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft MVP Award for e-con Systems Inc.</title>
		<link>http://e-consystems.com/blog/microsoft-mvp-award-for-e-con-systems-inc/</link>
		<comments>http://e-consystems.com/blog/microsoft-mvp-award-for-e-con-systems-inc/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 07:58:05 +0000</pubDate>
		<dc:creator>Harishankkar</dc:creator>
				<category><![CDATA[Windows CE]]></category>

		<guid isPermaLink="false">http://e-consystems.com/blog/?p=493</guid>
		<description><![CDATA[We are proud to have Vinoth Rajagopalan on board for his recent recognition from Microsoft through the &#8220;Most Valuable Professional (MVP) award&#8221;.
Vinoth is very active on Windows Embedded forums and newsgroups for the past 4 years in both embedded computing and Windows CE development, Vinoth and his team have a strong exertion on Windows CE [...]]]></description>
			<content:encoded><![CDATA[<p>We are proud to have Vinoth Rajagopalan on board for his recent recognition from Microsoft through the &#8220;Most Valuable Professional (MVP) award&#8221;.</p>
<p>Vinoth is very active on Windows Embedded forums and newsgroups for the past 4 years in both embedded computing and Windows CE development, Vinoth and his team have a strong exertion on Windows CE drivers and BSP development, Windows CE / Windows Mobile application developments and sharing his knowledge with the developer community.</p>
<p>Please feel free to post your queries and get solutions from Vinoth through forums and on this Windows CE Blog.</p>
]]></content:encoded>
			<wfw:commentRss>http://e-consystems.com/blog/microsoft-mvp-award-for-e-con-systems-inc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5MP HD Camera Board for OMAP EVM Launched</title>
		<link>http://e-consystems.com/blog/5mp-hd-camera-board-for-omap-evm-launched/</link>
		<comments>http://e-consystems.com/blog/5mp-hd-camera-board-for-omap-evm-launched/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 13:18:26 +0000</pubDate>
		<dc:creator>Harishankkar</dc:creator>
				<category><![CDATA[OMAP Camera Module]]></category>
		<category><![CDATA[OMAP 35x Camera]]></category>
		<category><![CDATA[OMAP camera]]></category>

		<guid isPermaLink="false">http://75.127.81.198/blog/?p=467</guid>
		<description><![CDATA[e-con Systems had launched its new 5MP High Definition Camera board support for OMAP EVM. Here are the details:

e-con Systems new camera daughter board,  e-CAM50_OMAP35x having a size of 8.5mm X 8.5mm X 5.75mm with a Omnivision OV5642 camera module can be directly interfaced on the TI TMDXEVM3530 EVM board.

Here is the 5MP High Definition [...]]]></description>
			<content:encoded><![CDATA[<p>e-con Systems had launched its new 5MP High Definition Camera board support for OMAP EVM. Here are the details:</p>
<p><img class="alignnone" title="5M Camera Board for OMAP 35x  Processors" src="http://www.e-consystems.com/blog/wp-content/uploads/2010/07/Omap5MCamera.jpg" alt="" width="408" height="204" /></p>
<p>e-con Systems new camera daughter board,  e-CAM50_OMAP35x having a size of 8.5mm X 8.5mm X 5.75mm with a Omnivision OV5642 camera module can be directly interfaced on the TI TMDXEVM3530 EVM board.</p>
<p><img class="alignnone" title="5MP Camera Board on EVM" src="http://www.e-consystems.com/images/eCAM/omap35x_Small.jpg" alt="" width="408" height="224" /></p>
<p>Here is the <a title="5M Camera Board for OMAP 35x Processors" href="http://www.e-consystems.com/5MPhdcamera.asp" target="_self">5MP High Definition Camera Board</a> web page and you  can as well <a title="Download 5M Camera Board Specification" href="http://www.e-consystems.com/hdcameradoc.asp" target="_blank">download the documents</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://e-consystems.com/blog/5mp-hd-camera-board-for-omap-evm-launched/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Loading USB Composite Functional Device on Windows CE USB Composite Function Driver</title>
		<link>http://e-consystems.com/blog/loading-usb-composite-functional-device-on-windows-ce-usb-composite-function-driver/</link>
		<comments>http://e-consystems.com/blog/loading-usb-composite-functional-device-on-windows-ce-usb-composite-function-driver/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 13:14:09 +0000</pubDate>
		<dc:creator>Vinoth - Microsoft® Most Valuable Professional (MVP)</dc:creator>
				<category><![CDATA[Windows CE]]></category>
		<category><![CDATA[USB Composite driver WinCE]]></category>
		<category><![CDATA[WinCE USB]]></category>

		<guid isPermaLink="false">http://75.127.81.198/blog/?p=465</guid>
		<description><![CDATA[As everybody knows Windows CE 6.0 supports USB functional composite driver to load multiple client driver simultaneously.  Normally we used to load the functional device classes having single interface descriptor. Some of the functional client driver like USB Video class (UVC) has multiple interface descriptors. While connecting the UVC device to PC, it will [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">As everybody knows Windows CE 6.0 supports USB functional composite driver to load multiple client driver simultaneously.  Normally we used to load the functional device classes having single interface descriptor. Some of the functional client driver like USB Video class (UVC) has multiple interface descriptors. While connecting the UVC device to PC, it will be detected as a composite device. Now there is a situation that a device having a mass storage functional driver, custom HID functional driver and a UVC functional driver (Composite device) will be loaded simultaneously on a composite functional driver. But we can’t load the UVC (composite device) on Windows CE composite functional driver directly without doing some tweak. This blog show a way to do this easily.</p>
<p><strong>Loading Single Interface Descriptor Device on Composite Driver</strong><br />
Classes like Mass storage and USB serial are containing single interface descriptors. Configuring the functional driver with the composite driver is done by adding a set of registry settings. You can <a href="http://msdn.microsoft.com/en-us/library/ee483018.aspx">read the explanation in MSDN</a>.<br />
I have given sample registry settings for configuring the Mass storage on composite. Given registries are additional registries in the mass storage registry set to be used by the composite driver to load the mass storage device through it. I assumed that the registry entries for the composite functional driver is already entered using the above link. I am directly explaining the additional registries used for loading the mass storage functional driver on the composite. Following is the sample registry entries for the mass storage functional driver.</p>
<p><em>[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]<br />
&#8220;CompositeFn_Configurations&#8221;=multi_sz:&#8221;0&#215;00&#8243;<br />
&#8220;CompositeFn_DefaultString&#8221;=&#8221;Microsoft Mass Storage&#8221;<br />
&#8220;CompositeFn_FunctionClass&#8221;=dword:08<br />
&#8220;CompositeFn_FunctionProtocol&#8221;=dword:ff<br />
&#8220;CompositeFn_FunctionSubclass&#8221;=dword:00<br />
&#8220;CompositeFn_FunctionDescription&#8221;=&#8221;USB MassStorage&#8221;<br />
&#8220;CompositeFn_Disable&#8221;=dword:0</em></p>
<p style="text-align: justify;">Normally, “CompositeFn_” Functionclass, FunctionProtocol and FunctionSubclass are taken from the Interface descriptor’s bInterfaceClass,bInterfaceSubClass and bInterfaceProtocol entries of the corresponding functional driver. If you have not given these values then the composite driver will take these entries from the first interface descriptor of the functional driver. These interface descriptor entries are enough for the successful enumeration of mass storage class on composite device.</p>
<p><strong>Loading Multiple Interface Descriptors Device on Composite Class Driver</strong><br />
I have taken the UVC functional driver as an example driver that has multiple interface descriptors. If you insert the UVC camera, the device is detected as a composite device because it is having multiple interface descriptors. Now the question is -how can we provide the multiple Interface descriptor details on the registry?  Because Windows CE composite driver will accept only one interface descriptor for each device and also there is no registry settings to add multiple interface descriptor. Let us see – how to resolve this issue?<br />
Functional driver that contains multiple interface descriptors will have one more special descriptor called Interface Association Descriptor (IAD).This is only one for the driver and this describes the number of interface descriptor present in the device. Fortunately, there is one more registry entry related to IAD in Windows CE composite driver and it is undocumented. You can find this registry entry in the driver source code. The undocumented registry entry is “CompositeFN_” DisableIAD. Changing this registry setting to zero will enable you to configure the IAD details in the registry instead of configure the interface descriptor details (as shown above in the single descriptor example). The following example illustrates the usage of DisableIAD registry entry.<br />
<em>[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\UVC_Class]<br />
&#8220;CompositeFn_Configurations&#8221;=multi_sz:&#8221;0&#215;00&#8243;<br />
&#8220;CompositeFn_DefaultClient&#8221;=dword:1<br />
&#8220;CompositeFn_DefaultString&#8221;=&#8221;Generic UVC&#8221;<br />
&#8220;CompositeFn_FunctionDescription&#8221;=&#8221;UVC Device&#8221;<br />
&#8220;CompositeFn_FunctionClass&#8221;=dword:0E<br />
&#8220;CompositeFn_FunctionProtocol&#8221;=dword:0<br />
&#8220;CompositeFn_FunctionSubclass&#8221;=dword:03<br />
&#8220;CompositeFN_DisableIAD&#8221;=dword:0<br />
&#8220;CompositeFn_Disable&#8221;=dword:0</em></p>
<p style="text-align: justify;">DisableIAD is set to zero to indicate that the FunctionClass, FunctionClass and FunctionSubclass are containing the entries of bFunctionClass, bFunctionClass and bFunctionSubClass of the IAD and not the Interface descriptor’s bInterfaceClass,bInterfaceSubClass and bInterfaceProtocol entries.<br />
Now the USB functional driver which contains multiple interface descriptors (UVC) along can be simultaneously loaded with a single interface descriptor driver (mass storage class) on the top of Windows CE composite driver successfully.</p>
]]></content:encoded>
			<wfw:commentRss>http://e-consystems.com/blog/loading-usb-composite-functional-device-on-windows-ce-usb-composite-function-driver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5M Pixel High Definition (HD) Camera Support for EVM and Gumstix Overo Boards</title>
		<link>http://e-consystems.com/blog/5m-pixel-high-definition-hd-camera-support-for-evm-and-gumstix-overo-boards/</link>
		<comments>http://e-consystems.com/blog/5m-pixel-high-definition-hd-camera-support-for-evm-and-gumstix-overo-boards/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 08:25:24 +0000</pubDate>
		<dc:creator>Harishankkar</dc:creator>
				<category><![CDATA[Windows CE]]></category>
		<category><![CDATA[OMAP camera]]></category>
		<category><![CDATA[OMAP35x Camera]]></category>

		<guid isPermaLink="false">http://www.e-consystems.com/blog/?p=427</guid>
		<description><![CDATA[e-con Systems launched its 5M pixel camera support for OMAP development boards. Support from e-con is for 5M pixel camera board for both the EVM and the Gumstix Overo boards.  The e-CAM32_OMAP_GSTIX and the e-CAM32_OMAP35x have had very good responses from the customers.

The 5M pixel HD camera board has the Omnivision OV5642 on it. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">e-con Systems launched its 5M pixel camera <strong>support for OMAP development boards</strong>. Support from e-con is for 5M pixel camera board for both the EVM and the Gumstix Overo boards.  The e-CAM32_OMAP_GSTIX and the e-CAM32_OMAP35x have had very good responses from the customers.</p>
<p style="text-align: justify;"><a href="http://www.e-consystems.com/blog/wp-content/uploads/2010/06/module1.jpg" target="_blank"><img class="alignnone size-full wp-image-437" title="e-CAM50_OMAP_GSTIX" src="http://www.e-consystems.com/blog/wp-content/uploads/2010/06/module1.jpg" alt="e-CAM50 OMAP Gumstix Camera Board" width="426" height="213" /></a></p>
<p style="text-align: justify;">The 5M pixel HD camera board has the Omnivision OV5642 on it.  The main application of this sensor is in image processing where the number of frames really matter. The camera module can do a 720p at 30fps and we were able to achieve the same using the OMAP processor. Customers interested in OCR capture can use this camera to do OCR.  OCR is used in many Low vision applications. Another application where we had inquiries was in high resolution Video recording. We have achieved 720p @ 30fps encoded Video using the OMAP processor and the OV5642 camera module.</p>
<div id="attachment_442" class="wp-caption alignnone" style="width: 454px"><a href="http://www.e-consystems.com/blog/wp-content/uploads/2010/06/e-CAM-Omap-Gumstix-Board1.jpg"><img class="size-full wp-image-442" title="e-CAM50-Omap Summit-Expansion-Board" src="http://www.e-consystems.com/blog/wp-content/uploads/2010/06/e-CAM-Omap-Gumstix-Board1.jpg" alt="" width="444" height="341" /></a><p class="wp-caption-text">Summit-Expansion-Board</p></div>
<p style="text-align: justify;">e-con supports for both Linux and WinCE drivers shall be provided for this.</p>
]]></content:encoded>
			<wfw:commentRss>http://e-consystems.com/blog/5m-pixel-high-definition-hd-camera-support-for-evm-and-gumstix-overo-boards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>eSOM300 &#8211; Our new Computer on Module</title>
		<link>http://e-consystems.com/blog/esom300-our-new-computer-on-module/</link>
		<comments>http://e-consystems.com/blog/esom300-our-new-computer-on-module/#comments</comments>
		<pubDate>Thu, 06 May 2010 13:14:11 +0000</pubDate>
		<dc:creator>Lakshmi</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Computer on Module]]></category>
		<category><![CDATA[Windows CE]]></category>
		<category><![CDATA[WinCE]]></category>

		<guid isPermaLink="false">http://www.e-consystems.com/blog/?p=420</guid>
		<description><![CDATA[We have launched the eSOM300 Computer on Module based on Marvell XScale PXA300 processor a product that evolved from the valuable feedback we received over the last year from users and from our enterprise customers for eSOM270. Some of them were:

It would be good to have Ethernet on the module.
 Booting and file storage on [...]]]></description>
			<content:encoded><![CDATA[<p>We have launched the eSOM300 Computer on Module based on Marvell XScale PXA300 processor a product that evolved from the valuable feedback we received over the last year from users and from our enterprise customers for eSOM270. Some of them were:</p>
<ol>
<li>It would be good to have Ethernet on the module.</li>
<li> Booting and file storage on a single device. This would be NAND flash. No need for NOR flash. Save on the BOM!</li>
<li> Have USB 2.0 device support. This is important to have high speed file transfer between the PC and the device you are building to save time.</li>
<li> Have 2D acceleration.</li>
<li> Have capability to have battery charger but have it as optional.</li>
<li> The module should just be powered up by directly connecting a battery to it. There should not be any power sequencing.</li>
<li> Have speed capabilities of 600Mhz and above. One of the customers had a face recognition algorithm and his minimum requirement was a ARM processor at 600 Mhz.</li>
<li> Have optional touch screen and audio support on the module.</li>
<li> Some 40 to 50 GPIOs.</li>
<li> Exposes the complete address bus and data bus bins on the pins so that customers can interface any memory based peripherals.</li>
<li> Has support for peripherals like RS485, CAN, ADC.</li>
<li> Have support to run at -40 to +85 degrees.</li>
<li> Have a robust Windows CE BSP that should be production ready.</li>
<li> Have the right price vs performance.</li>
</ol>
<p><a href="http://www.e-consystems.com/blog/wp-content/uploads/2010/05/eSOM3000061.png"><img class="alignnone size-full wp-image-422" title="Computer on Module" src="http://www.e-consystems.com/blog/wp-content/uploads/2010/05/eSOM3000061.png" alt="eSOM300 Computer on Module" width="320" height="240" /></a></p>
<p>The <a href="http://www.e-consystems.com/eSOM300.asp">eSOM300</a> meets all these requirements either by itself or through a carrier board. Added to that e-con Systems has designed a carrier board around the eSOM300 and provides these capabilities. The board internally code named as the Alioth platform exposes additional interfaces like RS485, CAN and ADC other than the interfaces mentioned above. For more information on Alioth, please visit <a title="PXA300 Reference Platform" href="http://www.e-consystems.com/alioth.asp">Alioth Rapid Development Kit</a> web page.</p>
<p><strong>Applications</strong><br />
eSOM300 is focused on enabling computer and handheld devices, industrial embedded solutions and enterprise-class devices. It provides a much more powerful way of capturing, organizing and collaborating around the needed information on the go are used by numerous companies in diverse industries worldwide.</p>
<p>This computer on module is suitable for application in areas such as, Industrial Controllers, In-vehicle Telematics/Vehicle mount systems, Kiosk/POS, Mobile Devices, (Car Navigation/HMI), Test &amp; Measurement Equipment, Control/Automation</p>
<p>This module is considered as the latest member of the e-con’s eSOM product family and a sought after Computer on Module. This SoDIMM-sized computer module is based on the Marvell PXA3xx processor series and runs at up to 624 MHz.</p>
<p>e-con Systems eSOM modules come with a pre-installed Linux 2.6.25 and Windows CE 6.0 R3 operating systems and state of the art development tools that allow easy customization of the system (e.g. LCD settings &amp; timings, integration of customer software, and the auto-start option at startup). Developers can therefore concentrate on their actual application without going through the hassle of setting up the operating system and dealing with driver development tasks.</p>
<p><strong>Supported OS</strong><br />
Windows Embedded CE 6.0,<br />
Linux 2.6.25 for Embedded Systems (Under progress)</p>
<p><strong>Industry Categories</strong><br />
Building/Home Automation, Industrial Control/Automation, Medical/Healthcare Systems, Retail/Hospitality, Telecommunications, Test &amp; Measurement, Transportation</p>
]]></content:encoded>
			<wfw:commentRss>http://e-consystems.com/blog/esom300-our-new-computer-on-module/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Performance Tuning on DirectShow Camera Application</title>
		<link>http://e-consystems.com/blog/performance-tuning-on-directshow-camera-application/</link>
		<comments>http://e-consystems.com/blog/performance-tuning-on-directshow-camera-application/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 07:56:36 +0000</pubDate>
		<dc:creator>Vinoth - Microsoft® Most Valuable Professional (MVP)</dc:creator>
				<category><![CDATA[Windows CE]]></category>
		<category><![CDATA[Camera Application]]></category>
		<category><![CDATA[WinCE]]></category>

		<guid isPermaLink="false">http://www.e-consystems.com/blog/?p=415</guid>
		<description><![CDATA[Windows CE 6.0 supports DirectShow® components to develop a rich camera application. A minimum requirement of the camera application is to show preview, capturing the still images which is stored as a compressed file (JPG) format, capturing/multiplexing the video with or without audio i.e. stored as a compressed file (WMV) format.
Windows CE 6.0 provides sample [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Windows CE 6.0 supports DirectShow® components to develop a rich camera application. A minimum requirement of the camera application is to show preview, capturing the still images which is stored as a compressed file (JPG) format, capturing/multiplexing the video with or without audio i.e. stored as a compressed file (WMV) format.</p>
<p style="text-align: justify;">Windows CE 6.0 provides sample applications for showing preview, capturing still and video using DirectShow® components. However these sample applications doesn’t cover all the aspects to develop a commercial application. A commercial camera application at least satisfies the following performance criteria.</p>
<ol>
<li> Video Captured with sufficient frame rate.</li>
<li> User acceptable video processing time. Video processing involves converting and compressing the video frames to WMV file.</li>
<li> Quality and size of the captured video.</li>
<li> There shouldn’t be breaking in audio.</li>
<li> Still Image compression quality.</li>
</ol>
<p style="text-align: justify;">The performance criteria mentioned here is related to audio, video and still encoders. I have taken the WMV encoders for video, audio source filter and JPEG encoder for still image as an example for performance tuning.<br />
DMO &amp; WMV Encoder</p>
<p style="text-align: justify;">Windows CE 6.0 supports WMV encoder as a DirectX Media Object (DMO) and it can be accessible through DMO wrapper filter. The DMO Wrapper filter enables DirectShow application to use the DMO within a filter graph. The filter wraps the DMO and handles all the details such as passing data to and from the DMO. Let us take WMV encoder. Performance tuning can be done by understanding and playing with properties of WMV encoder.</p>
<p style="text-align: justify;"><strong>Accessing WMV encoder properties:</strong><br />
All WMV encoder properties can be retrieved by querying the IPropertyBag interface.  Following steps are involved to retrieve and set each filter properties.</p>
<ul>
<li>Create the DMO Wrapper filter by the following way:</li>
</ul>
<p style="text-align: justify;"><em>CComPtr</em><em> pVideoDMOWrapperFilter;<br />
CoCreateInstance( CLSID_DMOWrapperFilter, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**) &amp;pVideoDMOWrapperFilter );</em></p>
<ul>
<li> Retrieve the DMO wrapper filter as follows:</li>
</ul>
<p style="text-align: justify;"><em>CComPtr</em><em> pVideoEncoderDMO;<br />
pVideoDMOWrapperFilter.QueryInterface( &amp;pVideoEncoderDMO );</em></p>
<ul>
<li> Initialize the WMV video encoder filter using its class ID on the DMO wrapper filter.</li>
</ul>
<p style="text-align: justify;"><em>pVideoEncoderDMO-&gt;Init(CLSID_CWMV9EncMediaObject, DMOCATEGORY_VIDEO_ENCODER );</em></p>
<ul>
<li> Add the filter to filter graph by using the following interface.</li>
</ul>
<p style="text-align: justify;"><em>CComPtr</em><em> pGraph;<br />
pGraph-&gt; AddFilter(pVideoDMOWrapperFilter, TEXT(&#8220;Video Encoder&#8221;));</em></p>
<ul>
<li> Retrieve the IPropertyBag interface by the bellow given way.</li>
</ul>
<p style="text-align: justify;"><em>CComPtr</em><em> pPropertyBag = NULL;<br />
pVideoEncoderDMO.QueryInterface( &amp;pPropertyBag);</em></p>
<ul>
<li> Each property value can be read by using <em>IPropertyBag::Read ()</em>.</li>
</ul>
<ul>
<li> Each property value can be modified by using <em>IPropertyBag::Write ()</em>.</li>
</ul>
<p style="text-align: justify;"><strong>Tuning WMV encoder</strong><br />
There is a list of properties available for WMV filters, following properties are mainly considered to tune the performance.</p>
<p style="text-align: justify;"><strong>Encoder algorithm complexity</strong><br />
Encoder algorithm complexity can be controlled through &#8220;_COMPLEXITYEX” property. This property covers the first two points in the performance criteria list. This property value is started from 0 to Maximum value supported by the codec.</p>
<p style="text-align: justify;">Lowest value provides the real time processing of captured frames using simple encoding algorithm and it will provide user acceptable video processing time after finished the video capturing. But there is a possibility of missing frames and it is depends on the processing capability of the hardware.</p>
<p style="text-align: justify;">Higher values provide quality output and no frames will be missed for encoding. In this case, it will use complex encoding algorithms but the processing time is more. After stop the video capturing, user has to wait for a long period to receive the video file.</p>
<p style="text-align: justify;"><strong>Variable Bitrate Quality</strong><br />
Quality can be controlled through “_VBRQUALITY” property. This property covers the third point in the performance criteria list. This property indicating the quality level for quality based video encoding.  The property value is started from 0 to 100. In this case, Quality is directly proportional to size of the video file. Higher property values increase the quality as well as the size of the video file. Users can fix the value based on their requirement on quality as well as requirement on size of the video file.</p>
<p style="text-align: justify;"><strong>Tuning Audio</strong><br />
Audio quality can be tuned up by changing the audio input bit rate. Audio capturing can be multiplexed with video capturing and stored in the WMV file. Again increasing the bitrates will increase the audio quality and also the file size and lowering the bit rate reduce the file size and it may cause breaking on sounds. Changing bitrates are left to the user, based on their requirement.<br />
<strong></strong></p>
<p style="text-align: justify;"><strong>Following steps involved in changing the bit rate of the audio pin:</strong></p>
<ul>
<li> Load the audio capture filter.</li>
</ul>
<p style="text-align: justify;"><em>CComPtr</em><em> pAudioCapture;<br />
CcomPtr&lt; IPersistPropertyBag &gt; pPropertyBag;<br />
hr = CoCreateInstance( CLSID_AudioCapture, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**) &amp;pAudioCapture );<br />
pAudioCaptureFilter.QueryInterface( &amp;pPropertyBag );<br />
pPropertyBag-&gt;Load( NULL, NULL );<br />
pGraph-&gt;AddFilter(pAudioCapture, L&#8221;Audio Capture Filter&#8221; );  //</em> Assume Filter graph manager is already created</p>
<ul>
<li> Retrieves the IAMStreamConfig interface for Audio capture filter. Assumed that Capture Graph filter is already created.</li>
</ul>
<p style="text-align: justify;"><em>CcomPtr&lt; IAMStreamConfig&gt; pAudioStreamConfig;<br />
hr = m_pCaptureGraphBuilder-&gt;FindInterface(&amp;PIN_CATEGORY_CAPTURE, &amp;MEDIATYPE_Audio, m_pAudioCapture, IID_IAMStreamConfig, (void **) &amp;pAudioStreamConfig);</em></p>
<ul>
<li> Retrieves the current format of waveform audio data and set the new bit rate. New bitrates value can be assigned using WAVEFORMATEX structure. AM_MEDIA_TYPE contains the audio configuration data provided, when the IAMStreamConfig is retrieved from audio capture filter.</li>
</ul>
<p style="text-align: justify;"><em> AM_MEDIA_TYPE *pmt; WAVEFORMATEX *pWft; pAudioStreamConfigDMO-&gt;GetFormat(&amp;pmt);<br />
pWft = (WAVEFORMATEX*)pmt-&gt;pbFormat; //Current waveform audio configurations<br />
pWft-&gt;wBitsPerSample=8;<br />
pWft-&gt;nBlockAlign=1;<br />
pWft-&gt;nAvgBytesPerSec=8000;<br />
pWft-&gt;nSamplesPerSec=8000;<br />
pWft-&gt;nChannels=1;	//Mono channel<br />
pWft-&gt;wFormatTag=1;  //  Normally WAVE_FORMAT_PCM<br />
pAudioStreamConfigDMO-&gt;SetFormat(pmt);  //</em> Assign the new waveform audio configurations</p>
<p style="text-align: justify;"><strong>Average bytes per second <em>(nAvgBytesPerSec)</em> is calculated as follows:</strong><br />
<em>nAvgBytesPerSec  = nSamplesPerSec* wBitsPerSample/8</em> (since <em>wBitsPerSample </em>is maintaining the bit value)<br />
Playing with these values make you to change the bit rate of the audio input.<br />
<strong></strong></p>
<p style="text-align: justify;"><strong>Tuning the Still image quality</strong><br />
Windows CE supports image sink filter for capturing still image. Since image sink filter is using Imaging API, it will support JPG, BMP, TIFF and GIF etc…. Image sink filter uses the following registry to obtain parameter values that are passed on to the image encoding factory.</p>
<p style="text-align: justify;"><em>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectShow\ImageSink\Quality</em>\ &lt;Quality Level&gt; \ &lt;File Extension&gt; \ &lt;Parameter Name&gt;<br />
<em><br />
GUID – BINARY	 	(The GUID for the encoding parameter)<br />
Value – DWORD 	(The number of parameter values that are contained in Value)<br />
Type – DWORD		(The data type for the parameter)<br />
NumberOfValues – DWORD	(The value of the parameter)</em></p>
<p style="text-align: justify;">There are set of encoding parameters such as Quality, compression and scan method etc…  All these encoding parameters can be added through registry.Following registry setting is an example for tuning the Quality for JPG encoding.</p>
<p style="text-align: justify;"><em>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectShow\ImageSink\Quality\ </em><em> &lt;Quality Level&gt;&gt;\jpg\Quality<br />
&#8220;GUID&#8221;=&#8221;1D5BE4B5-FA4A-452D-9CDD-5DB35105E7EB&#8221;<br />
&#8220;Value&#8221;=dword:00000019<br />
&#8220;Type&#8221;=dword:00000004<br />
&#8220;NumberOfValues&#8221;=dword:00000001</em><br />
is started from 0 and it represents the lowest quality level and each  represents the unique quality level. The sub keys GUID, value, Type and NumberOfValues are passed as a parameter to image encoding factory using the structure StructEncoderParameter.  Required Encoding parameters can be set through registry for the same  by changing the GUID, Value, Type and NumberOfValues.</p>
<p style="text-align: justify;">GUID represents that the encoding parameter is quality.  The range of the value is from 0-100. Lower value represents the lower quality and increasing this value will increase the quality. User can set the required quality level using <em>IImageSinkFilter::SetQuality().</em> Quality parameters for the current image encoding can be taken from the above given registry based on the . The Value ‘n’ passed as an argument to the <em>SetQuality()</em> is used to select the corresponding registry by comparing with  of the above given registry.<br />
Steps to use the <em>IImageSinkFilter::SetQuality()</em></p>
<ul>
<li>Load the Image Sink Filter</li>
</ul>
<p style="text-align: justify;"><em>CComPtr</em><em> pStillSink;<br />
CComPtr</em><em> pImageSinkFilter;<br />
hr = CoCreateInstance( CLSID_IMGSinkFilter, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**) &amp;pStillSink );<br />
hr = m_pGraph-&gt;AddFilter( pStillSink, TEXT(&#8220;Image Sink Filter&#8221;)); //Add the filter to filter graph.<br />
pStillSink.QueryInterface( &amp;pImageSinkFilter );</em></p>
<ul>
<li> Set the required quality parameter.</li>
</ul>
<p style="text-align: justify;"><em>hr = pImageSinkFilter-&gt;SetQuality(n);<br />
</em>Where ‘n’ represents the &lt;Quality Level&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://e-consystems.com/blog/performance-tuning-on-directshow-camera-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Application Verifier Hangs While Adding The Application</title>
		<link>http://e-consystems.com/blog/application-verifier-hangs-while-adding-the-application/</link>
		<comments>http://e-consystems.com/blog/application-verifier-hangs-while-adding-the-application/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 09:02:52 +0000</pubDate>
		<dc:creator>Salim Javed - Microsoft Certified Technology Specialist</dc:creator>
				<category><![CDATA[Windows CE]]></category>
		<category><![CDATA[Active Sync]]></category>
		<category><![CDATA[Wince 6.0]]></category>

		<guid isPermaLink="false">http://www.e-consystems.com/blog/?p=402</guid>
		<description><![CDATA[In this blog post, I am going to list out some of the most common issues that we face with application verifier while connecting it through active sync. Application verifier is used to test the application written for Win CE devices. Application verifier can be executed separately without using CETK. Go to the location “C:\Program [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">In this blog post, I am going to list out some of the most common issues that we face with application verifier while connecting it through active sync. Application verifier is used to test the application written for Win CE devices. Application verifier can be executed separately without using CETK. Go to the location “C:\Program Files\Microsoft Platform Builder\6.00\cepb\wcetk\ddtk\desktop”, just execute “appverifce.exe”.</p>
<p style="text-align: justify;"><strong><em>For active sync connection change the device properties as shown below:</em></strong></p>
<p style="text-align: justify;"><a href="http://www.e-consystems.com/blog/wp-content/uploads/2010/03/device-properties.bmp"><img class="alignnone size-full  wp-image-406" title="device properties" src="http://www.e-consystems.com/blog/wp-content/uploads/2010/03/device-properties.bmp" alt="" /></a></p>
<p style="text-align: justify;">For ARM processor application verifier may not connect through Active Sync. This may be because of version incapability. Go to “<em>C:\Program Files\Common Files\Microsoft Shared\Windows CE Tools\Platman\target\wce600</em>” directory. Now, simply copy the ARMV4i folder to create an ARMV4 directory. This will fix the ARM incapability issue.</p>
<p style="text-align: justify;">Next is to run the application on the device using application verifier. Many face an issue in adding the files that are placed on the device. Application verifier may hang when we try to add device side files. To fix this issue click add button, add some files from the PC and then connect with the device using active sync. After connecting with the device, add the files from the device.</p>
]]></content:encoded>
			<wfw:commentRss>http://e-consystems.com/blog/application-verifier-hangs-while-adding-the-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compiling bsect.asm of X86 to create bsect.img</title>
		<link>http://e-consystems.com/blog/compiling-bsectasm-of-x86-to-create-bsectimg/</link>
		<comments>http://e-consystems.com/blog/compiling-bsectasm-of-x86-to-create-bsectimg/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 17:26:14 +0000</pubDate>
		<dc:creator>Salim Javed - Microsoft Certified Technology Specialist</dc:creator>
				<category><![CDATA[Windows CE]]></category>
		<category><![CDATA[Wince 6.0]]></category>
		<category><![CDATA[X86]]></category>

		<guid isPermaLink="false">http://www.e-consystems.com/blog/compiling-bsectasm-of-x86-to-create-bsectimg/</guid>
		<description><![CDATA[Most of the programmers find it difficult to compile the bsect.asm file. This is because of 32 bit assembly controller and not defining the build.bat file properly. Here you will find simple steps to compile the bsect.asm.
Step1:
To compile the bsect.asm we need 32bit assemble compiler. Microsoft provides MASM32, which is a 32 bit assembly compiler.
Download [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Most of the programmers find it difficult to compile the bsect.asm file. This is because of 32 bit assembly controller and not defining the build.bat file properly. Here you will find simple steps to compile the bsect.asm.</p>
<p style="text-align: justify;"><strong>Step1:</strong><br />
To compile the bsect.asm we need 32bit assemble compiler. Microsoft provides MASM32, which is a 32 bit assembly compiler.</p>
<p style="text-align: justify;">Download the 32bit assembly compiler from the following link “http://www.masm32.com/masmdl.htm”</p>
<p style="text-align: justify;">Install the MASM32 SDK in “C” drive.</p>
<p style="text-align: justify;"><strong>Step 2:</strong><br />
Use Visual Studio command prompt for compiling, open the prompt and go to the bootsector location or the location where bsect.asm file available.</p>
<p style="text-align: justify;"><strong>Step 3:</strong><br />
“The system cannot find the path specified” error will occur if the build.bat file is not changed.<br />
Then change the build.bat file from</p>
<p style="text-align: justify;">ml /Zm /c bsect.asm<br />
c:\msvc\bin\link bsect.obj,bsect.com,,,,<br />
debug bsect.com &lt; getbsect.scr</p>
<p style="text-align: justify;">to</p>
<p style="text-align: justify;">C:\masm32\bin\ml /Zm /Flbsect.lst /c bsect.asm<br />
C:\masm32\bin\link16 bsect.obj,bsect.com,,,,<br />
debug bsect.com &lt; getbsect.scr</p>
<p style="text-align: justify;">Define the path correctly. It is the path of the drive in which MASM32 is installed.</p>
<p style="text-align: justify;"><strong>Step 4:</strong><br />
Give build command in the Visual Studio command prompt to compile.<br />
After compiling you can find the “BSECT.IMG” file in the bsect.asm folder.</p>
]]></content:encoded>
			<wfw:commentRss>http://e-consystems.com/blog/compiling-bsectasm-of-x86-to-create-bsectimg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
