July 23rd beta release, includes everything OSHW and improves premium

Yes I did! Current version is
Maybe my SD Cards are not well formatted. I did the format with FAT32 in my computer. Could you told me where I should investigate to view where the problem is? The visual Studio debugger shows me nothing. In fact, nothing happen when I push the card in the module.

Do I need to put some structure on the card?

@ jango_jas - can you also try to format FAT16? Check your power source. All cards we have here seem to work fine. Post the code you are using and details about our setup please.

Ha, I’d almost finished implementing the RTC with the Register class. Gus had previously suggested that the RTC would be implemented as a code sample using the GHI Register access class, which is what I did. Is this implementation (referenced in the release notes) a C# sample or is it built into the firmware somehow? Also, I assume this requires the LSE crystal to be soldered onto the cerb40 and the VBAT must have power when device loses power, correct?

Also, I when will this be available on codeplex?

BTW, fantastic progress in this release! Now I can test serving up real pages with mIP! Thanks!


Yes, that is correct. Further, you will need to replace the LSE loading capacitors with the correct values before the LSE will function, at least on the Cerb40. It is not clear to me whether the Cerbuino and Cerberus boards have this issue as well.

So, the CerbuinoBee doesn’t seem to have any connections/pads for an LSE Crystal. Can I assume that the RTC just can’t work on this? And if so, can I suggest its inclusion in a future revision of the hardware?


Tested the SDCard Module with Hydra. I get these errors when inserting the card in module :

Using mainboard GHI Electronics FEZHydra version 1.2
    #### Exception System.Exception - CLR_E_FAIL (1) ####
    #### Message: 
    #### GHI.OSHW.Hardware.StorageDev::MountSD [IP: 0000] ####
    #### GHIElectronics.Gadgeteer.FEZHydra::MountStorageDevice [IP: 0003] ####
    #### Gadgeteer.Modules.GHIElectronics.SDCard::MountSDCard [IP: 000f] ####
    #### HyperionSDCard.Program::InitializeModules [IP: 0005] ####
Une exception de première chance de type 'System.Exception' s'est produite dans GHI.OSHW.Hardware.dll
SDCard ERROR : Error mounting SD card - no card detected.
Program Started

The code I have used :

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

Partial Public Class Program

    ' This is run when the mainboard is powered up or reset. 
    Public Sub ProgramStarted()

        Debug.Print("Program Started")

    End Sub

    Private Sub sdCard_SDCardMounted(sender As Gadgeteer.Modules.GHIElectronics.SDCard, SDCard As Gadgeteer.StorageDevice) Handles sdCard.SDCardMounted
    End Sub

End Class

And yes, the Hydra is running

The pins are exposed as PC14/XO32 and PC15/XI32 on one of the 8-pin headers, X12 (which I believe is the header closest to the MCU). Using that would place the crystal somewhat farther from the chip than optimal, however, which could adversely affect the functioning of the crystal. You could tie into the SMT pads used to mount the headers, it might work, it might not. There are no loading capacitors, you would need to add those yourself.

Cerberus has the same incorrect capacitors that the Cerb40 does, and the PC14/XO32 and PC15/XI32 pins are exposed in socket 5. The capacitors would need to be replaced, and a crystal mounted. I don’t know if the 32KHz crystal would work if connected via the socket. The datasheet, user manual, and application notes stress that the crystals should be placed as close as possible to the MCU.


Can you try to run this code in C# and see if there are any other results? We tested the Cerberus with the SD Module’s mount commands and we were able to read and write to the card.

When will these code changes be pushed to codeplex? I still want to add basic extensions to the OLED driver for low mem devices…

I am attempting to update a Spider to premium v2.0so that I can use the CAN_DW module. I can’t figure out how to do this. I get an error “Firmware has 3 files. Please check again”. I can only find 2 filies in the"C:\Program Files (x86)\GHI Electronics\GHI Premium NETMF v4.2 SDK\EMX\Firmware" folder while in the 4.1 I can find 3. I can update to v1.0 OK

@ Orest - sounds like you have an old version. Did you download and install this release?

Sorry Jango,

I am Blind. I thought you were having difficulty with the Cerberus. I am checking out the Hydra now.

Any idea when the USB Host is implemented on Cerb-family?


We retested the SD Module with C# Gadgeteer code and we were able to mount, read, and write data to the card. The only time you will get that FAIL exception is if the card is not present when you mount the SD Card. We are looking further into this issue.


We tested the SD Module with the Hydra with VB and found that the card mounts as expected and can read files.

I am including an example of the program that I used:

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

Partial Public Class Program

    ' This is run when the mainboard is powered up or reset. 
    Public Sub ProgramStarted()
        ' Hardware modules added in the Program.gadgeteer designer view are used by typing 
        ' their name followed by a period, e.g.  button.  or  camera.
        ' Many hardware modules generate useful events. To set up actions for those events, use the 
        ' left dropdown box at the top of this code editing window to choose a hardware module, then
        ' use the right dropdown box to choose the event - an event handler will be auto-generated.

        ' Use Debug.Print to show messages in Visual Studio's "Output" window during debugging.
        Debug.Print("Program Started")
    End Sub

    ' If you want to do something periodically, declare a GT.Timer by uncommenting the below line
    '   and then use the dropdown boxes at the top of this window to generate a Tick event handler.
    ' Dim WithEvents timer As GT.Timer = new GT.Timer(1000)  ' every second (1000ms)

    Private Sub sdCard_SDCardMounted(sender As Gadgeteer.Modules.GHIElectronics.SDCard, SDCard As Gadgeteer.StorageDevice) Handles sdCard.SDCardMounted

        Dim rootDirectory As String
        Dim files() As String
        Dim folders() As String

        Debug.Print("Getting files and folders:")

        If SDCard.Volume.IsFormatted Then
            Debug.Print("Card is properly formated")
            rootDirectory = SDCard.RootDirectory
            files = SDCard.ListRootDirectoryFiles()
            folders = SDCard.ListRootDirectorySubdirectories()

            Debug.Print("Files available on " + rootDirectory + ":")
            For index = 0 To files.Length - 1 Step 1

            Debug.Print("Folders available on " + rootDirectory + ":")
            For index = 0 To folders.Length - 1 Step 1

            Debug.Print("Storage is not formatted. Format on PC with FAT32/FAT16 first.")
        End If
    End Sub

    Private Sub sdCard_SDCardUnmounted(sender As Gadgeteer.Modules.GHIElectronics.SDCard) Handles sdCard.SDCardUnmounted

    End Sub
End Class

I hope this helps.

@ Aron

Could you give me a sample code to try? Maybe I don’t understand how to use the module. Inserting the card in the module doesn’t work, but I can test the “IsInserted” property and it works.

Yes, I am getting very confused. I’ve been waiting for USB Host on the Cerubino, especially since the demise of FEZ Domino there is nothing board-level supporting USB Host. So I’m worried when you say the OSHW is complete when USB Host is not yet done. Is the suggestion that we’ll eventually be able to licence the closed-source version on this board to get USB Host?

Is this a technical problem or strategic? I had no problem getting a USB file system running on the STM32F4 chip using bare metal C code using the free version of Atollic (before they stopped that). I’d have been happy to contrubute that, but we naver got to the stage of having the sources compilable on a compiler I could aford!

Simply we want to concentrate on bringing everything to non-beta production quality on all GHI products first and then OSHW USB Host comes last with a low priority. Us adding USB host is possible down the road or with a community contribution.

@ Aron - Thank you Aron, I will give it a try. By the way, do you have ambiguities with mscorlib in your project? I have many of them when adding the SDModule to the designer surface. The ambiguity is between the mscorlib in Microsoft .NET 4.0 folder and the Gadgeteer folder. The chosen one is the .NET 4.0. Could this lead to my error?

Hello Gus, I am usiing this one: GHI NETMF v4.2 and .NET Gadgeteer Package (Beta 7-23-2012)\Beta 7-23\Installation Files. In the C:\Program Files (x86)\GHI Electronics\GHI Premium NETMF v4.2 SDK\EMX\Firmware folder there are only Config.hex and Firmware.hex while in the C:\Program Files (x86)\GHI Electronics\GHI NETMF v4.1 SDK\EMX\Firmware folder there are: CLR.HEX, CLR2.HEX and Config.HEX