Tuesday 29 June 2010

Windows CE Live Chat Transcript June 2010

Hello guys,

Just in case you missed the MS Live chat today, the transcript of the chat is available here.

GLanger[MS] (Expert)[2010-6-29 18:6]: Hi, I'm Glen Langer, PM on the Core Team for Windows Embedded Compact

rajran[MS] (Expert)[2010-6-29 18:8]: Hi, I'm Rajeev Rangappa. PM on the Core team for Windows Embedded Compact

davbo-MSFT (Moderator)[2010-6-29 18:12]:

Q: Hi!. Does exist too many differences in DirectShow between CE 4.2 and 5 or 6? Because I have been trying to play mpeg1 video with WMP (CE 6.0 R3 and CE 5.0) in an ARM platform and in a X86 platform, but it plays very slow (~5 fps). But when I tried with my x86 platform with wince 4.2, it plays fine! Also, with alternative software (TCPMP) I can play fine too (in 5.0 and 6.0), but i need to do it with WMP. Thank you!

A: Hello Leonardo, Windows Embedded Compact 7 is available as a Public CTP (Community Tech Preview) which includes optimizations for MPEG-1 streaming. If there is a BSP available for your platform please try the Public CTP. Windows Embedded Compact 7 Public CTP

davbo-MSFT (Moderator)[2010-6-29 18:12]:

A: http://www.microsoft.com/windowsembedded/en-us/products/windowsce/compact7.mspx

Travis Hobrla [MS] (Expert)[2010-6-29 18:14]:

Q: Hi, we are trying to build, on Windows CE 6.0 (R2, last tests with R3), a DPWS device acting also as a host. We are trying to use WSDAPI.

Here the 2 problems we are facing:

1. Registering multiple service instances (at the moment not supported in the Windows CE WSDAPI stack, we have been said). A possible workaround is to host each of the service instances on multiple device hosts, but there is a limitation of 5 device hosts, indicated in Windows CE 6.0 R2 release notes (it does not seem to be improved in R3).

We don't know if the feature is supported (or the workaround improved) in Windows CE 7 (Public CTP), can you help us?

2. We have a problem in receiving UDP multicast on ARMv4i board. WSDAPI-based communication fails as multicast requests (Resolve/probe messages) are sent but not received on the board (verified with Netmon and netlogctl), even if we avoid using activeSynch. Besides the emulator limitation, are there Windows Ce issues concerning multicast with real HW?

A: For #2, I don't believe there are limitations. Are the multicasts failing to trigger the ethernet driver's receive function?

kurtken_msft (Expert)[2010-6-29 18:15]:

Q: What is the tool chain for developing for Windows Embedded Commpact 7? (ie. what versions of visual studio and such)

A: Windows Embedded Compact 7 installs as a plug-in to Visual Studio 2008.

Travis Hobrla [MS] (Expert)[2010-6-29 18:19]:

Q: In response to Travis Hobrla, yes, it seems so. So it could be a driver problem, you suggest?

A: Yes, if you're not picking up multicast at the driver level then you need to debug why that is the case. Perhaps you have configured the driver to execute a hardware filter that rejects multicasts?

davbo-MSFT (Moderator)[2010-6-29 18:25]:

Q: @davbo-MSFT: I'll try, but this application is for a released product, we can't update O.S.. So, I would like to modify "something" in order to improve fps. I thought that my board (Mini2440, ARM) was not so powerful to play videos, but other software can do it (TCPMP), but it may not use DShow, just DDraw (i'm not 100% sure about it). But in older boards with CE 4.2 it works well! I tried editing CEPlayIt example, but nothing... any other idea?? Thank you!

A: Can you provide details about the video file? What is the size, audio format, video format, resolution, etc..? Are you playing locally? If so using SATA, USB, SD, Flash, etc... or are you playing over HTTP?

davbo-MSFT (Moderator)[2010-6-29 18:25]:

Q: Hi!. Does exist too many differences in DirectShow between CE 4.2 and 5 or 6? Because I have been trying to play mpeg1 video with WMP (CE 6.0 R3 and CE 5.0) in an ARM platform and in a X86 platform, but it plays very slow (~5 fps). But when I tried with my x86 platform with wince 4.2, it plays fine! Also, with alternative software (TCPMP) I can play fine too (in 5.0 and 6.0), but i need to do it with WMP. Thank you!

A: Answered and following up for more details

davbo-MSFT (Moderator)[2010-6-29 18:29]:

Q: What is the tool chain for developing for Windows Embedded Commpact 7? (ie. what versions of visual studio and such)

A: Visual Studio 2008 SP1 then Platform Builder w/ Windows Embedded Compact 7 Installation. Windows Embedded Compact 7 Public CTP now available:

<http://www.microsoft.com/windowsembedded/en-us/products/windowsce/compact7.mspx>>

Travis Hobrla [MS] (Expert)[2010-6-29 18:30]:

Q: [to Travis] No, we haven't. But we know that there is a problem also in the board (BSP Evaluation Kit for AT91SAM9263E, "Multicast not implemented" in the technical design document). We just wanted to know if Windows CE had some limitations on its own on the hw side, and you said that it hasn't. About the Device Emulator, do you know if R3 or Windows Embedded Compact 7 solve the issue of not receiving multicast messages?

A: CE doesn't have limitations on the HW side, the BSP (not the OS) is firmly in control of what happens at the HW level for ethernet controllers. I don't believe there have been any substantial updates to the Device Emulator in R3, sorry. I assume the multicast limitation has to do with the way the NIC is emulated / connected to the desktop NIC.

Sing Wee [MS] (Expert)[2010-6-29 18:31]:

Q: Hi, I'm having some trouble with the CETK Storage Device Block Driver Read/Write test #2003. It is failing for my FMD since I upgraded CE6 from R2 to R3 and applied the latest QFEs. I noticed the test has changed from using four 1KB buffers to some larger buffer sizes. Is this test incompatible with the FMD interface now?

A: Gary, would you mind sharing the error messages that are returned? (Snippet from test log will be fine). I'm trying to find someone who might have the answer to your question.

Sing Wee [MS] (Expert)[2010-6-29 18:32]:

Q: So no one has ideas on my XAML Silverlight problems?

A: I've sent off an email to some folks who might have some insight. Could you please private message me your email address in case they've got some answers for you?

davbo-MSFT (Moderator)[2010-6-29 18:33]:

Q: So no one has ideas on my XAML Silverlight problems?

A: We are talking with engineers in the background to help answer your question. Please stay tuned and if we can't address today will work to get a response and post in the transcript.

kurtken_msft (Expert)[2010-6-29 18:37]:

Q: Will you please briefly discuss the sound support options for windows CE? We would like to play various types of sound files from our C# applications.

A: Hi Ben. Besides normal uncompressed PCM files, if you are playing without using DirectShow you can use any codec that can plug into the Audio Compression Manager (ACM). There are simple codecs available on the internet and you can build your own if you like. If you want more advanced media rendering capability I suggest you look at the DirectShow APIs.

Travis Hobrla [MS] (Expert)[2010-6-29 18:38]:

Q: Hi, we are trying to build, on Windows CE 6.0 (R2, last tests with R3), a DPWS device acting also as a host. We are trying to use WSDAPI.

Here the 2 problems we are facing:

1. Registering multiple service instances (at the moment not supported in the Windows CE WSDAPI stack, we have been said). A possible workaround is to host each of the service instances on multiple device hosts, but there is a limitation of 5 device hosts, indicated in Windows CE 6.0 R2 release notes (it does not seem to be improved in R3).

We don't know if the feature is supported (or the workaround improved) in Windows CE 7 (Public CTP), can you help us?

2. We have a problem in receiving UDP multicast on ARMv4i board. WSDAPI-based communication fails as multicast requests (Resolve/probe messages) are sent but not received on the board (verified with Netmon and netlogctl), even if we avoid using activeSynch. Besides the emulator limitation, are there Windows Ce issues concerning multicast with real HW?

A: Just got information on #1: we haven't changed anything for this in the CE7 PCTP - so you are still limited to 5 hosts/clients in WSDAPI.

kurtken_msft (Expert)[2010-6-29 18:39]:

Q: ...Scatter/Gather Buffer[2]..........(0x00044FA0) ...Scatter/Gather Buffer[2] Length...(4096) ...Scatter/Gather Buffer[3]..........(0x00045FA0) ...Scatter/Gather Buffer[3] Length...(8192) Submitting read request.

Verifying...

Incorrect data at 0x000447A0. Expected: 0x00000200, Received: 0x00000100. Incorrect data at 0x000447A4. Expected: 0x000001FF, Received: 0x000000FF. Incorrect data at 0x000447A8. Expected: 0x000001FE, Received: 0x000000FE.

A: cool!

Sing Wee [MS] (Expert)[2010-6-29 18:42]:

Q: ...Scatter/Gather Buffer[2]..........(0x00044FA0) ...Scatter/Gather Buffer[2] Length...(4096) ...Scatter/Gather Buffer[3]..........(0x00045FA0) ...Scatter/Gather Buffer[3] Length...(8192) Submitting read request.

Verifying...

Incorrect data at 0x000447A0. Expected: 0x00000200, Received: 0x00000100. Incorrect data at 0x000447A4. Expected: 0x000001FF, Received: 0x000000FF. Incorrect data at 0x000447A8. Expected: 0x000001FE, Received: 0x000000FE.

A: Hey Gary, this appears to be very similar to an issue we've seen in CE6 as well, related to the FAL in CE6 that has been addressed in CE7. Is there any reason you won't be able to try out CE7? http://www.microsoft.com/windowsembedded/en-us/products/windowsce/compact7.mspx

davbo-MSFT (Moderator)[2010-6-29 18:42]:

Q: @BarnettD: Ok I will look into those links thanks. @davbo-MSFT (Moderator) I am new to these chats, where do I get a copy of the transcript later on, and thanks ?

A: Previous Transcripts: <http://msdn.microsoft.com/en-us/chats/bb250671.aspx>;. This transcript will be posted a couple of days after the chat.

kurtken_msft (Expert)[2010-6-29 18:42]:

Q: With the latest BSP for our platform the touch screen driver does not load unless Explorer is used as the shell (normally our application serves as the shell); any Ideas on what I should look at to trouble shoot this issue?

A: hi Ben. You may have to run the touch calibration in order to get the touch driver to work. Also, is there an error message when the touch driver does not load? do you see it try to load?

davbo-MSFT (Moderator)[2010-6-29 18:43]:

Q: @davbo-MSFT: I forget audio!: I tried without audio, but it's the same. Original file has MPEG1 Layer 2 Audio Codec, with 192 kb/s

A: Thanks for the additional info and we'll look into performance. If you can provide the media file that would help speed up the investigation. alias: davbo domain: microsoft.com

davbo-MSFT (Moderator)[2010-6-29 18:44]:

Q: @davbo-MSFT: it is an MPEG-1 Video, 320x240, Bitrate: 993 kb/s, Size: 2 Mb, I have tried with file in a lot of locations: SD, USB flash drive, even into NK.bin. Board i'm using has as storage unit a NAND Flash memory

A: Thanks for the additional info and we'll look into performance. If you can provide the media file that would help speed up the investigation. alias: davbo domain: microsoft.com

Travis Hobrla [MS] (Expert)[2010-6-29 18:45]:

Q: [to Travis] Ohh, ok, thank you. I suppose I can't ask you if there is a plan for future releases to enhance the limitation or support multiple service instances registration ...

A: We don't have plans to fix this that I know of, but I will see if I can make this happen. Can you give me some ammunition (i.e. why is this necessary for your product to succeed) that I can use to make a case for this?

Sing Wee [MS] (Expert)[2010-6-29 18:50]:

Q: I am currently developing a set of drivers on WINCE 6.0. I have R3 and all the montlhy updates up until February 2010. I am trying to add support for silver light and XAML. ( I am new to this). I have followed the msdn example on how to create the bubbles.xaml, bounce.xaml, and carousel.xaml demos. I have create the xamlperf.exe app and i can see the demos on the deskptop when the wince device boots up. BUt when I try to run the demos I can see a window that tries to open and then the window creation seems to stop (the window doesn't show up). In the debugger I can see the "performance info" that it outputs but I also get an "ALCHEMY error"

Any ideas what I am missing. All of my demos seem to get built but when I run them I don't see any output on the screen and on the debugger window i see "[ALCHEMY] Failed to Draw the element tree in HWND 0x70026530. Error code 0x8000ffff . ANy ideas what may be wrong?

A: KibKid, what type of drivers are you developing? Display drivers? Also, which SYSGENs are set in your build environment? (If you open a build window, just do a "set SYS".

Sing Wee [MS] (Expert)[2010-6-29 18:51]:

Q: Well, I need to download and test with CE7 also, but I'm providing FMD and PDD for Spansion flash products to customers using various versions of CE. If there is a problem with FAL in CE6, then I would like to understand how to point my customers to the fix and if I should tell them to just avoid CE6 FAL and use a different version of CE...

A: Gary, can you please send me your private email address? I'm trying to get you answers.

davbo-MSFT (Moderator)[2010-6-29 18:52]:

Q: [to Travis] Ok, thanks. Same for Windows Embedded Compact 7, I suppose. I don't know if you could you also help me with my question 1 about WSDAPI (registering multiple service instances not supported).

A: Good link on WSDAPI if you haven't seen it yet. http://blogs.msdn.com/b/dandris/archive/2007/11/09/wsdapi-101-part-1-web-services-from-10-000-feet.aspx. I got some answers from the team managing the Windows CE side WSDAPI (which is different from the one on a Windows PC). Windows CE WSDAPI stack does not allow registering multiple services with the same name. Doing so will result in the error (CWSDSession:ispatcherIsUnique).

I can offer you two workarounds here.

1. Host each of the service instances on multiple device hosts, and have the clients contact different instances of the service by means of the device host’s address.

2. Duplicate the same service and give those duplicated services different names so that you can host them on the same device host, and have the client contact those different services instead. You have to do

davbo-MSFT (Moderator)[2010-6-29 18:53]:

Q: @davbo-MSFT: of course!... I'll send you my file by email just now, thank you!

A: thanks

Sing Wee [MS] (Expert)[2010-6-29 18:54]:

Q: I've already installed QFEs up through May 31st 2010. Will you release a FAL fix as QFE for CE6? I assume many of my customers would rather not move to a new version of CE. Probably a fix to the FAL would be a preferred solution.

A: Yes, I understand the concern.

Chien-her[MS] (Expert)[2010-6-29 18:54]:

Q: Any ideas what I am missing. All of my demos seem to get built but when I run them I don't see any output on the screen and on the debugger window i see "[ALCHEMY] Failed to Draw the element tree in HWND 0x70026530. Error code 0x8000ffff . ANy ideas what may be wrong?

A: 0x8000ffff is E_UNEXPECTED

Travis Hobrla [MS] (Expert)[2010-6-29 18:57]:

Q: [to Travis] Yes, I am working on a M2M platform. At the web service level, we are treating all the services exposed by sensors/devices in the same logical way, and we can in this way deal with a number of services that can change dynamically in the network. By the way, my company in Italy has signed a “Non Disclosure Agreement” with Microsoft (in case this is needed, I can provide details about it).

A: Thanks Cris. I will promote this and see if we can make a fix (no guarantees, of course).

davbo-MSFT (Moderator)[2010-6-29 18:57]:

Q: @davbo-MSFT: ok, mail sent with attached file, please remove me from your spam folder (if i'm in it )

A: got the email - thanks

Chien-her[MS] (Expert)[2010-6-29 18:57]:

A: You will need to check out your display driver and ddraw. In R3, Alchemy graphic simulation could be done by GDI or DDraw. So you will need to check out the display diver support 2D acceleration or not and DDraw is in image or not. Any way as Sing mentioned the image configuration, SYSGEN_*, BSP_*, and IMG* flags.

davbo-MSFT (Moderator)[2010-6-29 18:57]:

Q: [to davbo] Thanks for the link and the info, we already know them but I appreciate your help

A: np

davbo-MSFT (Moderator)[2010-6-29 19:0]: Hello everyone, we are just about out of time.

Thank you for joining us for our Windows Embedded CE 6.0 chat today!

<http://www.Microsoft.com/Embedded>;

A special thank you to the product group members for coming out.

The transcript of today’s chat will be posted online as soon as possible, to <http://msdn.microsoft.com/en-us/chats>;. We’ll see you again for another chat next month. Please check <http://msdn.microsoft.com/en-us/chats>; for the list of upcoming chats.

Have fun!


Read more! Post this to a friend!

Windows Embedded CE: USB memory stick fix part 2

Hi foks,

Following up on my previous post about USB memory stick fixes; here is another fix for direct access of USB memory sticks. Again, the files mentioned reside under _PUBLICROOT\COMMON\OAK\DRIVERS\USB\CLASS\STORAGE\DISK\SCSI2. Be sure to clone the respective files to your Platform before altering them!

4 issues with direct access USB memory sticks

In the function GetMediumInfo in disk.c there are some USB memory sticks that do not recover well from the call to either of the ScsiModeSense6/ScsiModeSense10 commands which are used to retrieve the device type as well as the state of the write protect bit. Neither of these commands are necessary according to the SCSI-2 specification, anyway.

Fix:

Since the working USB memory sticks seem to return 0x80 as the pDevice->MediumType we will also set the medium type to 0x80 for direct access USB memory sticks. In addition we need to disable the write protect bit.

Replace the if statement following the
// determine medium type
comment with:

// USB Memory Stick fix:
//

if (SCSI_DEVICE_UNKNOWN != pDevice->DeviceType &&
SCSI_MEDIUM_UNKNOWN == pDevice->MediumType )
{
if(SCSI_DEVICE_DIRECT_ACCESS == pDevice->DeviceType)
{
DEBUGMSG(ZONE_TRACE,
(TEXT("Device type: Direct Access => force medium type\n") ));
// set device type to 0x80
pDevice->MediumType = 0x80;
// disable write protect
pDevice->Flags.WriteProtect = 0;
}
else
{
dwErr = ScsiModeSense6(pDevice, Lun);

if (ERROR_SUCCESS != dwErr)
{
TRANSPORT_DATA tData;
UCHAR senseData[18];

tData.TransferLength = 0;
tData.RequestLength = sizeof(senseData);
tData.DataBlock = senseData;
memset(senseData,0,sizeof(senseData));

dwErr = ScsiRequestSense(pDevice, &tData, Lun);

dwErr = ScsiModeSense10(pDevice, Lun);

if (ERROR_SUCCESS != dwErr)
{
break;
}
}
}
}

Have fun!
Read more! Post this to a friend!

Windows Embedded Developer Update for Windows Embedded Standard 7 (WES7) now available

Hi folks,

Microsoft has just released a new tool called Windows Embedded Developer Update (WEDU) which allows you to keep your development environment for WES7 up to date.

Previously you would have to search multiple websites it see if there are new updates for your WES7 development environment, now with WEDU you can discover and install updates automatically.

Don’t worry, if you are working with Windows Embedded Compact (previously known as Windows Embedded CE), WEDU will be available for Windows Embedded Compact 7 later this year.

You can download WEDU for WES7 here for free!

Also check out this video about WEDU on Olivier’s Blog.

Have fun!
Read more! Post this to a friend!

Thursday 24 June 2010

Windows Embedded Compact 7: Silverlight for Windows Embedded Tutorial

Hi folks,

As previously stated, Windows Embedded Compact 7 comes with quite a lot of improvements with regards to Silverlight for Windows Embedded (SWE): SWE is now based on Silverlight 3 and the new Windows Embedded Silverlight Tools (WEST) generate most of the glue code so you don’t have to write the glue code manually any more!

Now let’s focus on our first, simple SWE application for Windows Embedded Compact 7. Let’s begin with the installation: make sure you install Expression Blend 3 prior to Windows Embedded Compact 7 to ensure that the new SWE template will be added to Expression Blend 3. Otherwise you need to reinstall the WEST tools manually after installing Expression Blend 3.

Create an Expression Blend 3 SWE project:

1. Open Expression Blend 3.
2. In Expression Blend 3 click on New Project…



3. In the New Project Dialog select Silverlight for Windows Embedded Application, set the Name to SWEApp, set the Location to C:\Expression\Blend3\Projects\ careful here as this path needs to be WITHOUT spaces.


NOTE:
Later on we will import the project into Platform Builder. Platform Builder cannot handle spaces in the path.
The only option in the Language field is Visual C#. The WEST will convert the C# code to C++ code upon importing the project into Platform Builder.
4. Click OK to create the new project.
5. On the left, double click the Button control to add a default sized button. On the right of the MainPage.xaml window, click on the Split button to display the XAML code underneath


6. In the Properties on the top right set the Name of the button to myButton, to be able to address the button in the SWE C++ code later on.


7. Click on the Events icon to the far right of the Name field and add an Event Handler called myClickMe in the Click field. Upon conversion to SWE C++ code this will generate a Click Event Handler which we will populate later.


8. Examine the XAML view to see that we have created a button named myButton with a Click Event Handler called myClickMe.


9. From the Expression Blend 3 menu select File ¦ Save All, afterwards minimize Expression Blend 3.

Create a SWE subproject in Platform Builder

10. Open your previously created Windows Embedded Compact 7 OSDesign supporting SWE (SYSGEN_XAML_RUNTIME set) in Visual Studio 2008 with Platform Builder.
11. With the OSDesign open, click Tools ¦ Windows Embedded Silverlight Tools ¦ Create Platform Builder Subproject.


12. In the wizard that appears, click Next then enter SWEApp in the Name field and D:\SWESubprojects in the Location field as the name and location for our subproject. Click Next.


13. Specify C:\Expression\Blend3\Projects\SWEApp\SWEApp\SWEApp.csproj as the Silverlight project to convert. The wizard automatically recognizes MainPage.xaml. Click Next.


14. Now the WEST tool does its magic! Notice that there were no errors converting our project. Click Finish to end the wizard.


15. Examine the Summary Report which will be opened in Visual Studio 2008.
16. In the Platform Builder Solution Explorer, right-click Subprojects ¦ Add Existing Subproject….


17. Browse to D:\SWESubprojects\SWEApp, select SWEApp.pbpxml. Then click Open.


18. Take a moment to examine the generated code in App.cpp, MainPage.cpp and WinMain.cpp. In Windows Embedded CE 6.0 R3 we would have to write ALL this glue code ourselves!


19. In MainPage.cpp locate the event handler that we have created in Expression Blend 3: MainPage::myClickMe. Add the following code to display a native message box towards the end of the event handler:
// display a native message box
MessageBox(NULL,TEXT("Hello from Silverlight for Windows Embedded!"),
TEXT("SWE Sample"),MB_OK ¦ MB_SETFOREGROUND ¦ MB_TOPMOST);

hr = S_OK;
Save the file.


20. In the Solution Explorer, right-click your OSDesign and select Properties.


21. In the appearing Property Pages dialog box, expand the Configuration Properties on the left, select Subproject Image Settings, double click SWEApp on the right and make sure that Exclude from image and Always build and link as debug are checked. Click Ok on both dialog boxes to accept the changes.


22. Right-click the SWEApp subproject and select build. Notice that our SWEApp built successfully with 0 errors and 0 warnings.


23. Congratulations! We can now start our image and run our SWEApp.



Don't miss fellow MVP Valter Minute's series of SWE tutorials for Windows Embedded CE 6.0 R3 on his Blog.

Have fun!
Read more! Post this to a friend!

Monday 21 June 2010

MARK YOUR CALENDARS: Windows Embedded CE Live Chat!

Hi guys,

Microsoft is hosting a live chat about Windows Embedded CE next week. Do you have tough technical questions regarding Windows Embedded CE for which you're seeking answers? Then join the upcomming live chat with the Microsoft guys! And we hope, that the technical problems at the last chat are solved already.

So don't forget to put the date in your schedule and join it!!!

Title: Windows Embedded CE Live Chat!
Date: Tuesday, June 29, 2010 18:00 - 19:00 CET

To join this chat, please log on via the main MSDN chat page at:
http://www.microsoft.com/communities/chats/default.mspx

Have fun!


Read more! Post this to a friend!

Windows Embedded CE 6.0 Monthly Update May 2010 available

Hello guys,

the latest Windows CE updates have been recently released and are available for download, in this month only for Windows CE 6.0. Some important issues (especially memory leak fixes) have been resolved so get them now!

Windows Embedded CE 6.0 Monthly Update May 2010

Follow this link and download the latest QFEs.                      Fixes made in this update:

Component:  Bluetooth

  • 100531_KB2118663 - Bluetooth Host Control Interface (HCI) handle may leak when calling BthGetHardwareStatus API.

Component:  COMM

  • 100525_KB982668 - A memory leak may occur when IPv6 component is included in the image and a network adapter is enabled or disabled.

Component:  Servers

Component:  RPC

  • 100524_KB983479 - A memory leak may occur due to a buffer boundary condition checking error.

Don’t forget: keep your OS up to date!!!


Read more! Post this to a friend!

Friday 18 June 2010

TechED North America Recap

Hi all,

Now that I’ve been back from New Orleans for nearly a week, I want to share a little recap of my first TechED with you:



For those of you who haven’t been there, you really missed quite a lot of very interesting and helpful Windows Embedded Sessions. Microsoft, MVPs and Microsoft Partner shared a lot of insight information about the new Windows Embedded OSes Windows Embedded Standard 7 as well as Windows Embedded Compact 7.

Alongside the deep technical information, there were also a lot of demonstrations as well as the possibility for you to get to know these new Embedded Products yourself in the self-paced Hands-On labs. Another very useful session was the “Round Table” we had for Windows Embedded Compact 7 where you could ask all questions you had as well as let Microsoft know any suggestions and critique.

Last but not least there was a lot to explore at the Technical Learning Center where a lot of professionals not only directly from Microsoft were happy to answer each and every of your questions.

If you couldn’t make it to New Orleans or if you want to revisit some of the sessions, you can watch and download them here. To find the Windows Embedded sessions simply type WEM in the search field in the upper right hand corner.

Besides form the technical part, New Orleans as a city had also a lot to offer…

I want to thank everybody for the great experience I had!

Have fun!


Read more! Post this to a friend!

WES7 Launch verpasst?

falls Sie das Windows Embedded Standard 7 Event diese Woche in München verpasst haben und jetzt vor dem Deutschland Spiel 7 Minuten Zeit haben dann können Sie sich hier eine kurze Zusammenfassung anschauen: Windows Embedded Standard 7 in 7 Mintuen.

Viel Spaß!
Read more! Post this to a friend!

Wednesday 16 June 2010

Windows Embedded Standard Launch

Blogging from the German Windows Embedded Standard Launch Event currently taking place in Munich.

But, "Windows Embedded Standard 7 has been available since the end of April this Year" you may bee asking yourself. Why do an event so late? Well, Microsoft - together with the partners and distributors - decided to organize a series of events throughout the year rather than doing just one single event...

During the current event, Distributors and Partners, are showing the use of Windows Embedded Standard 7 and providing information around Microsoft's newest addition to the Windows Embedded family:

Arrow, Beckhoff, EB, freindlyway, Höfft und Wessel, Intel, Reycom, Silica, Wechsler Consulting, ... just to mention a few

So lets have a look at the differences between WES 2009 and WES 7 starting with the toolchain.

Toolchain:
In WES 2009 Target Analyzer (TAP) was used - as the name says - to analyze the target hardware to identify neccessary device drivers and components for the operating system. In WES 7, TAP is still used to perform this task, however it is now executed in the background through the Image Builder Wizard.

The Image Builder Wizard (IBW) is the main tool to create a WES 7 image and replaces the Target Designer tool used in WES 2009.

As you can see Life is getting easier - instead of two tools we now have one.

Although tools do help us in our daily work, they also reduce flexibility - just look how many developers still use the command line although an IDE is available.
In this case, WES 7 offers an additional tool called Image Configuration Editor (ICE) which is for advanced developers who require more flexibility.

The Image Configuration Editor can be best described as being the counterpart to Target Designer.
However, whereas Target Designer creates an OS Image, ICE creates an XML File which is called the Answer File. The Answer file is then used by IBW to install WES 7, in the defined configuration, to the target device.

And this is where you can see one of the main changes in WES 7:
With former Embedded Standard versions the operating system image for the target device was more or less set in stone; WES 7 images, however, can be easily changed!

Sounds easy as pie - it actually is. Go ahead and try it out!

Look out for more information on WES 7 in the near future.

So long and thanks for all the fish!


Read more! Post this to a friend!

Windows Embedded CE: USB memory stick fix

Hi folks,

those of you who have done some work with the Windows Embedded CE USB host controller know that countless hours/days/weeks/month can be spent improving it.

One problem that I have often heard about is the USB stick support, or the lack of it. Initially about 50% of USB sticks do not work. But with these simple improvements up to about 90% of the USB sticks will work. All the mentioned files reside under _PUBLICROOT\COMMON\OAK\DRIVERS\USB\CLASS\STORAGE\DISK\SCSI2. Be sure to clone the respective files to your Platform before altering them.

1 Sending commands to device before it is available:

In most cases, the problem seems to be that the HCD tries to communicate with the device before it is available. This can be tested by inserting the device just enough for the power LED to blink, then after waiting a short time inserting the device fully. The device should work now.

The MediaChangeThread in disk.c polls for presence of USB devices, but it seems that in this case commands are sent to the device before pDevice->Flags.MediumPresent is set by the MediaChangeThread.

Fix:

There is a bug in disk.c: in the function DSK_IOControl in the DISK_IOCTL_GETINFO case in the if (pDevice->Flags.MediumPresent == FALSE) statement the memset statement has the last 2 parameters switched:

if (pDevice->Flags.MediumPresent == FALSE)
{
DEBUGMSG(ZONE_ERR,
(TEXT( "Usbdisk6!DSK_IOControl> IOCTL_GET_INFO;
media not present\r\n"
)));

// USB Memory Stick fix:
//
// BUG: last 2 parameters of memset were switched

memset((PVOID)&pDevice->DiskInfo, 0, sizeof(DISK_INFO));
memcpy((PVOID)pBuf, (PVOID)&pDevice->DiskInfo,
sizeof(DISK_INFO));
bRc = TRUE;
}


Also in disk.c, the function GetMediumInfo should return immediately if no device is present (if (!pDevice->Flags.MediumPresent)):

if (!pDevice->Flags.MediumPresent)
{
// USB Memory Stick fix:
//
// return here immediately since it will
// probably fail anyway
// but some devices do not recover well here!

break;
/*
DISK_INFO di = {0};
dwErr = ScsiReadCapacity(pDevice, &di, Lun);
if (ERROR_SUCCESS != dwErr)
break;
*/
}


Last but not least in the function ScsiTestUnitReady in scsi2.c, ScsiGetSenseData needs to be recalled upon failure after waiting a couple of milliseconds:

DWORD dwCount;


// USB Memory Stick fix:
for(dwCount = 0; dwCount < 50; dwCount ++)
{
dwErr = ScsiGetSenseData( pDevice, Lun );
DEBUGMSG(ZONE_ERR,(TEXT
("ScsiTestUnitReady ERROR:%d\n"), dwErr));
SetLastError(dwErr);
if ( dwErr == ERROR_SUCCESS )
{
break;
}
Sleep(50);
}


NOTE:
It should be enough to retry ScsiGetSenseData once, since it will return the error state of the last command forcing the second call to succeed.

2 Unhandled case in SENSE_UNIT_ATTENTION:

In the function ScsiGetSenseData in scsi2.c, some devices report an unhandled ASC in the SENSE_UNIT_ATTENTION case. The Unhandled ASC is 0x3A which is the code for ASC_MEDIUM_NOT_PRESENT. The spec does not state this as a valid responds to the SENSE_UNIT_ATTENTION command, nevertheless some devices report it.

Fix:

To take this behaviour into account, add the code used for the ASC_MEDIUM_NOT_PRESENT case to SENSE_UNIT_ATTENTION from the SENSE_NOT_READY command:

case ASC_MEDIUM_NOT_PRESENT :
pDevice->Flags.MediumPresent = FALSE;
pDevice->Flags.MediumChanged = TRUE;
pDevice->MediumType = SCSI_MEDIUM_UNKNOWN;

memset(&pDevice->DiskInfo, 0, sizeof(DISK_INFO) );

dwErr = DISK_REMOVED_ERROR;
break;


This causes the function ScsiTestUnitReady to retry the operation which is not according to spec at this point.

3 The length field of the SCSI_MODE_SENSE6 command is 0

In scsi.c in the function ScsiModeSense6, the length field (bCDB[4]) of the SCSI_MODE_SENSE6 command is not set and therefore 0. All devices except Sony and Freecom accept or ignore this fact.

Fix:

Set bCDB[4] for the SCSI_MODE_SENSE6 command. But setting it to:

bCDB[4] = sizeof(bDataBlock) will result in 0x200 which is a 0 byte.

So better set it to something like:

bCDB[4] = 0xFF;

See also my post "Windows Embedded CE: USB memory stick fix part 2".
Have fun!
Read more! Post this to a friend!

Thursday 10 June 2010

TechED – 4th and final day

Hi folks,

unfortunately today is the last day of TechED North America in New Orleans. So far it has been most interesting! Nevertheless, there are still some very interesting sessions to attend. In fact, I just attended fellow MVP Andy Wigley’s talk on how to use P/Invoke in order to do managed development with Silverlight for Windows Embedded.


I also wanted to let you all know, that the Windows Embedded party last night was also a full success. I had some really interesting conversations on Windows Embedded with a lot of different people whether it be customers already using Windows Embedded, fellow MVPs or Microsoft staff. Of course, the food was also excellent! I never had typical New Orleans style Crawfish Boil before, and I have to tell you I couldn’t get enough of it!



As usual you can find me most of the time at the Windows Embedded booth most of the day, see you there!

Have fun!
Read more! Post this to a friend!

Wednesday 9 June 2010

TechED – Day 3

Yeah hi, it’s me again…

last night the TechED attendee party took place at the House of Blues. The jam sessions were unbelievable; check out Anne from the Windows Embedded booth at the keyboard – YOU ROCK!

So today there are a lot of interesting sessions again, as well as lot’s of insight information at the show; I’ll be at the booth most of the time, see you soon!


Have fun!
Read more! Post this to a friend!

Tuesday 8 June 2010

TechED North America – Day 2

Hi folks,

hello again from TechED North America here in New Orleans!

This evening from 5 pm to 6:15 pm we have a Windows Embedded Roundtable discussion in Room 349. Come on by and enjoy some cold beer while discussing Windows Embedded topics. We’d really like to hear your opinion!

I'd also like to invite you to the Windows Embedded party tomorrow, Wednesday June 9th at Begue’s on 300 Bourbon St. starting at 8pm! So make sure you stop by the Windows Embedded booth (in the RED area behind the bus; yeah literally a bus!) and pick up a wrist band that will admit you!

In the picture below you see me showcasing some of our devices running Windows Embedded. The one I am holding up is actually running Windows Embedded Compact 7, pretty cool, eh?!


Have fun, and see you soon!
Read more! Post this to a friend!

Windows Embedde Compact 7 – a feature overview

Hi folks,

and a warm hello from the Community Lounge at TechED North America. Today I am going to give you a quick tour of the latest version of Windows Embedded CE, Windows Embedded Compact 7. As you know from Damians article, the CTP version for evaluation has just recently been released at Computex. The release of the final version is planed for later this year.

Without further ado, let’s get to the part that you have all been waiting for, the Windows Embedded Compact 7 features:

Windows Embedded Compact 7 PlatformBuilder is now a plug-in for Visual Studio 2008. Why not VS2010? Well development for Compact 7 started when VS2010 was not even close to a final version. As you also know from previous posts, VS2010 does NOT support application development for any version of Windows CE as of yet, as the Smart Device project template is not yet included in VS2010.

Compact 7 no longer supports SH4 and ARMv4 processor architectures. However, it does support ARMv5, ARMv6, ARMv7, x86 and MIPS architectures. The emulation is no longer an ARM emulation but instead a Virtual PC emulation BSP is included. Most importantly, all BSP have multi-core support called SMP (Symmetric Multi Processing).

According to Microsoft Compact 7 is all about 3 main focus areas:

  • Connected Experience which include HD media playback, DLNA support for streaming media from a server to devices, as well as a newly developed media library. The connectivity to Windows 7 PCs using Windows Device Stage has been improved. And you can access important information using airsync, or the Office and PDF viewers that now support Office 2010 document formats.
  • Immersive user experience with an improved version of Silverlight for Windows Embedded (SWE) now based on Silverlight 3. SWE now comes with a new toolkit, allowing you to convert Silverlight projects automatically into SWE projects. Microsoft also improved the performance of SWE. But keep in mind you still should use hardware acceleration when using SWE in order to create a smooth user experience. The internet explorer is now based on IE7 and comes with a Flash 10 plug-in as well as a customizable SWE UI to enable, what Microsoft calles Rich Browsing. Last but not least in the “Immersive user experience” Compact 7 now comes with multi touch as well as gesture support.
  • Developer experience comes from the proven, reliable tools such as Visual Studio 2008 as well as Expression Blend 3 and the new Silverlight for Windows Embedded Toolkit. As already mentioned there has been a lot of hardware innovation such as multi-core, hardware acceleration and ARMv7 support.
So much for my quick overview of Windows Embedded Compact 7. I will go into details on all of these new features of Compact 7 so stay tuned!

Have fun!
Read more! Post this to a friend!

Monday 7 June 2010

TechEd – Day 1

Hello again,

Welcome to TechED North America in New Orleans! Everything is just starting here: I just attended the keynote where Bob Muglia, Server and Tools Business President, talked about the new exciting development in Cloud Computing. He also announced the availability of new technologies such as .NET Framework 4.0, new VS2010 tools & SDK such as IntelliTrace for Windows Azure.

I’ll be at the Windows Embedded Technical Learning Center in Hall D until 9 pm tonight, see you there!

Have fun!

Read more! Post this to a friend!

Sunday 6 June 2010

TechED North America – Day 0

Hi folks,

as you can clearly see, I made my trip to New Orleans. Today were a couple of briefings, registrations, orientation,… all that organization stuff.

As you can see from the pictures the booth is not quite ready to go, yet, but I am certain it will be tomorrow.




The good news is there were way more registrations for the TechED this year then expected, so instead of a backpack I got a plastic bag so that the attendees can have the cool backpacks…

… see you tomorrow at TechED North America in New Orleans, I am looking forward to it!

Have fun!
Read more! Post this to a friend!

Wednesday 2 June 2010

TechED 2010 New Orleans preview

Hi folks,

As Damian mentioned in his article I will be at TechED US in New Orleans next week. I will be helping at the Windows Embedded Technical Learning Center (TLC):

  • Monday, June 7th 5:45 pm – 9 pm I will be at the “Device Showcase
  • Tuesday, June 8th 10:30 am – 3 pm I will be at the “Get your hands on Windows Embedded” booth
  • Wednesday, June 9th 10:30 am – 12:30 pm I will be at the “Device Showcases

Of course I will be around during the entire TechED as well. But first I have to make my way over to the US on Saturday morning: Nuremberg-Duesseldorf, Duesseldorf-Atlanta, Atlanta-New Orleans…if the Icelandic volcano with the name no one can pronounce let alone spell lets the fights take off…

This will be my first TechED and I am really excited to be there!

So stop on by, I am looking forward meeting you there!

Have fun!
Read more! Post this to a friend!

Tuesday 1 June 2010

Windows Embedded Compact 7 CTP

Steve Gugenheimer - Corporate Vice President OEM Division Microsoft - announced the next version of Windows Embedded Compact 7 (formerly known as Windows Embedded CE) during his keynote yesterday at Computex in Taipei.

In addition Microsoft also announced the Windows Embedded Compact 7 Community Technology Preview (CTP) which can be downloaded from Microsofts Connect Site.

Although you cannot ship any devices using the CTP version of Compact 7 you most certainly can start evaluating the operating system and all the new stuff which will be shipping with Compact 7, hopefully sometime this year.

So login to Microsofts Connect Site with your Live ID and start downloading those bits today - over the neyt couple of weeks and months we will of course post information around the Windows Embedded Compact 7 CTP - so stay tuned!

Also get yourselfs to TechED US where you can meet up with Olivier Bloch, Dion Hutchings and our Jochen Dieckfoß - and get more information on tomorrows innovations.

So long and thanks for all the fish!
Read more! Post this to a friend!