Saturday, May 19, 2012

SDHC USB Bootloader and Logging Firmware work!

I have the old Logomatic 2.3 working with the new SDHC USB bootloader. At first, FAT32 was not enabled. because the mass storage part doesn't even need a filesystem driver, the host takes care of it. However, In order to find and install FW.SFE, the bootloader needs FAT32 however, so this version has it.

Also, the old Logomatic firmware has been updated the minimum amount to use SDHC and FAT32.

All of this works for me, and generates log files, but it sometimes takes a LONG time to mount over USB (sometimes a minute or more).

So now I have put my code where my mouth is.
USB_SDHC_Bootloader.zip
Logomatic_SDHC_FAT32.zip

4 comments:

  1. 2gb+ of coolness. sparkfun should pick this up and implement as the official source code.

    ReplyDelete
  2. thank you St.Kwan for your work!
    I tried to upload you SDHC new bootloader but flashmagic always fails at verifying step (mismatch at 0x00000024)... any suggestions?

    Thanks Luca

    ReplyDelete
  3. I have a logomatic v2 (the 10-10-10 batch) and am trying to get this code working, and striking out.

    Flash magic loads the USB Bootloader code happily, and the 32GB SDHC card mounts correctly under windows. the FW.SFE file disappears, but nothing gets written to the file by the logger.

    Also, I get strange errors in WinARM trying to compile your code (but SFE's vanilla code compiles just fine). I have reflashed the logomatic with the stock bootloader & firmware and it works fine.

    When loaded with either your SDHC Logomatic or the bootloader, I get both status leds ON, then a slow blink between between them, eventually cycling back to both on.

    When I try to compile the bootloader, I get this: http://pastebin.com/hCxHYxJL
    When I try to compile the logging firmware, I get this: http://pastebin.com/PLWUz7DD

    Any ideas?

    ReplyDelete
  4. Update!

    Added this line to each fat.h:

    #define UINTPTR_MAX UINT32_MAX

    And the code compiles.

    I deleted the blinklock() after the fatinit in main.c and the blinking went away.

    Thanks!

    ReplyDelete