SD Card won't mount after upgrade to 4.3.7.10 on CobraII

I’ve existing code that has / is currently working. After uprading the bootloader & firmware, and updating all the libraries, it refuses to mount the SD Card



Imports GHIElectronics.Gadgeteer.FEZCobraIIEco


If Mainboard.IsSDCardMounted = False Then
                Debug.Print("Mounting SD Card")
                Mainboard.MountStorageDevice("/SD")
End If

If I inspect the Mainboard object, this is what I see:


IsSDCardInserted Unable to evaluate expression. Boolean
IsSDCardMounted Unable to evaluate expression. Boolean
LDR0 {Microsoft.SPOT.Hardware.InterruptPort} Microsoft.SPOT.Hardware.InterruptPort
LDR1 {Microsoft.SPOT.Hardware.InterruptPort} Microsoft.SPOT.Hardware.InterruptPort
MainboardName GHI Electronics FEZ Cobra II Eco String
MainboardVersion Rev B String
MassStorageDevice Nothing Gadgeteer.StorageDevice
NativeBitmapConverter {Gadgeteer.Mainboard.BitmapConvertBPP} Gadgeteer.Mainboard.BitmapConvertBPP
NativeBitmapCopyToSpi Nothing Gadgeteer.Mainboard.BitmapCopyToSpi
SDCardStorageDevice {Gadgeteer.StorageDevice} Gadgeteer.StorageDevice
RootDirectory \SD String
Volume {Microsoft.SPOT.IO.VolumeInfo} Microsoft.SPOT.IO.VolumeInfo
DeviceFlags 0 UInteger
FileSystem FAT String
FileSystemFlags 0 UInteger
IsFormatted Unable to evaluate expression. Boolean
Name SD String
RootDirectory \SD String
SerialNumber 0 UInteger
TotalFreeSpace 3932291072 Long
TotalSize 3942645760 Long
VolumeID 0 UInteger
VolumeLabel String
VolumePtr 2694780460 UInteger
Mainboard.IsMassStorageConnected Unable to evaluate expression. Boolean
Mainboard.IsSDCardInserted Unable to evaluate expression. Boolean

As shown above, It detects (via Gadgeteer.Storagedevice) that the card is inserted, as it correctly reports the size of the Card, and the Name / Root directory. (These do not show up, if the card is removed), but (via Mainboard.IsSDcardInserted), it is unable to evaluate.

Any help on this would be appreciated, because every example I’ve looked at provides me with the same result, yet when I use the similar code on a Raptor, I’ve no issues.

Thanks

@ michaelb - Can you post a complete, but minimal, program that shows the issue? Have you tried to format the SD card on your computer?

I tried this, as I created it from scratch on the off chance something messed up during the upgrade from VS2012 to VS2013


Imports GT = Gadgeteer
Imports GTM = Gadgeteer.Modules
Imports GHIElectronics.Gadgeteer.FEZCobraIIEco

Namespace Drip
    Partial Public Class Program
        ' This is run when the mainboard is powered up or reset. 
        Public Sub ProgramStarted()
            Debug.Print("Program Started")
            Dim Initthread As New Thread(AddressOf InitializeStorage)
            Initthread.Start()
        End Sub

        Public Sub InitializeStorage()
            Debug.Print(Mainboard.IsMassStorageMounted.ToString)
            Mainboard.MountStorageDevice("\SD\")
            Debug.Print(Mainboard.IsMassStorageMounted.ToString)
        End Sub
    End Class
End Namespace

I haven’t tried formatting the card on a computer, but tried two different brand new cards, 4GB. On a side note, question, is greater than 4GB supported? Its becomming more difficult to source 4GB or smaller cards, and its timeconsuming to shrink larger ones.

Also, was able to both read and write files to the SD cards from my laptop, (note the descrepency between bytes available, and total capacity via the inspection information.)

@ michaelb - Your latest example mounts the SD card, but checks IsMassStorageMounted. You need to check IsSDCardMounted like in your first post. What does MountStorageDevice return?

Cards larger than 4GB are supported.