EMX SD card operation fails with NotSupportedException

Hi guys,
We encountered a problem with our attendance panel which is based on EMX module. 11 of 14 panels stopped working last week in one of our customer’s building. The runtime was about two months without any reported problems. So funny is, that all drop-outs was reported within 30 minutes. I have figured out following:

  1. The initial problem was System.IO.IOException when saving attendance event on SD card. In this case, we display error screen with error description and by tapping the screen we restart panel by calling:

Microsoft.SPOT.Hardware.PowerState.RebootDevice(true);

  1. After this restart, initialization of panel fails with NotSupportedException trying to perform first operation with SD card (which was successfully mounted). The stack trace is following:

    #### Exception System.NotSupportedException - CLR_E_NOT_SUPPORTED (1) ####
    #### Message: 
    #### Microsoft.SPOT.IO.NativeIO::CreateDirectory [IP: 0000] ####
    #### System.IO.Directory::CreateDirectory [IP: 000a] ####
    #### Fides.MicroCommon.utils.SDCard::CreateDir [IP: 000c] ####
    #### Fides.MicroCommon.Logger.TextFileLogger::init [IP: 001c] ####
    #### Fides.MicroCommon.Logger.TextFileLogger::.ctor [IP: 000d] ####
    #### fides.asset.AttendancePanel.MainThread::init [IP: 0049] ####
    #### fides.asset.AttendancePanel.MainThread::Run [IP: 0004] ####
    #### fides.asset.AttendancePanel.Program::Main [IP: 0008] ####
A first chance exception of type 'System.NotSupportedException' occurred in Microsoft.SPOT.IO.dll

after this exception, we display same error screen again, user restarts panel by tapping the screen and then everything repeats.

  1. To get rid of this state, panel must be disconnected from power supply, restart button must be held for more than 3 seconds or RebootDevice must be called with false “soft” parameter:

Microsoft.SPOT.Hardware.PowerState.RebootDevice(false);

After one of these operation, our panels are up again with runtime more than one week.

Has anyone experienced something similar to this? What does NotSupportedException means when you call Directiory.Exists? Any ideas how can I prevent this situation? Why only hard reset works?

We start to think that it is something with ethernet. Our board design comes out form your dev kit board so pin 3.3V_3 (37) is connected directly with ethernet plug. Should’t be there any choking coil to prevent some voltage spikes?

Thanks for any help
Martin

If you remove and reinsert the SD card, will it work without any rest?

@ Gus - Yeah, I tried it, but same result, I have to perform hard reset to make it work again.

Very strange. Are you using the latest SDK?
What do we need to do to see this on our end?

@ Gus - Sorry I forgot to mention it. I’m not using the latest SDK. I’m using SDK in version 1.0.19 from February 19, 2011, so it’s TinyBooter 4.1.6.0 and EMX 4.1.8.0 Switching to newer version of SDK would be very hard for us.

Unfortunately, I can’t tell you, how to reproduce it, because I can’t simulate it neither. There are customers with our panel with no problem at all, so it must be connected with something specific with this particular customer.

Can you at least tell us if you see this problem with latest SDK?

@ Gus - As I said before, it happened after 2 months without any problems. So no, I can’t reproduce this behavior with current SDK, neither with the latest SDK.