FAT in Flash corrupt - any ideas?

Hi there,

I flashed two other TonieBoxes with my NodeMCU board and the serial connection works well with manual reset.

On my third box, when running the command

cc3200tool -p COM4  read_all_files extractedFromBox

I got the following output:

Connecting to target…
Connected, reading version…
connected to target
Version: CC3x00VersionInfo((0, 4, 1, 2), (0, 0, 0, 0), (0, 0, 0, 0), (0, 0, 0, 0), (16, 0, 0, 0))
This is a CC3200 device
Switching to NWP bootloader…
Switching UART to APPS…
Resetting communications …
Uploading rbtl3100s.dll…
Reading rbtl3100s.dll from file …\local-packages\Python310\site-packages\cc3200tool\dll\rbtl3100s.dll
Getting storage list…
APPS version: CC3x00VersionInfo((0, 4, 0, 2), (0, 0, 0, 0), (0, 0, 0, 0), (0, 0, 0, 0), (16, 0, 0, 0))
Getting storage info…
storage #2 info bytes: 0x10, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0
Getting storage list…
Reading raw storage #2 start 0x0, size 0x2000…

[0] detected a valid FAT revision: 72
[1] detected a valid FAT revision: 73
Getting storage list…
Reading raw storage #2 start 0x1774, size 0x2774…

selected FAT revision: 73 (active)
Serial Flash block size: 4096 bytes
Serial Flash capacity: 1024 blocks

 file    start   size    fail    flags   total   filename
 index   block   [BLKs]  safe    [BLKs]

 N/A     0       5       N/A     N/A     5       FATFS
 0       71      8       yes     0x0     16
 4       105     1       no      0x4     1
 6       106     53      yes     0x0     106
 7       212     53      no      0xc     53      /sys/mcuimg2.bin
 8       265     53      no      0x4     53
 9       408     5       yes     0x8     10
 10      418     1       yes     0x8     2
 11      5       33      yes     0x8     66
 12      87      1       yes     0x8     2
 13      89      1       yes     0x8     2
 14      91      1       yes     0x8     2
 15      93      1       yes     0x8     2
 16      95      1       yes     0x8     2
 17      97      2       yes     0x8     4
 18      101     1       yes     0x8     2
 19      103     1       yes     0x8     2
 20      318     40      yes     0x8     80
 21      398     4       yes     0x8     8
 22      406     1       yes     0x8     2
 23      931     1       yes     0x8     2
 24      421     255     yes     0x8     510
 26      933     1       yes     0x8     2       /sys/date_time.cfg
 27      420     1       no      0xc     1
 28      935     1       no      0xc     1
 29      936     1       yes     0x8     2

Flash usage

used space: 938 blocks
free space: 86 blocks
memory hole: [938-1023]
Found file without filename, skipping index=0
Found file without filename, skipping index=4
Found file without filename, skipping index=6
Reading file /sys/mcuimg2.bin → extractedFromBox\sys/mcuimg2.bin
Reading file /sys/mcuimg2.bin → AppData\Local\Temp\tmp6iwi1cv7
File extractedFromBox\sys/mcuimg2.bin verified
Found file without filename, skipping index=8
Found file without filename, skipping index=9
Found file without filename, skipping index=10
Found file without filename, skipping index=11
Found file without filename, skipping index=12
Found file without filename, skipping index=13
Found file without filename, skipping index=14
Found file without filename, skipping index=15
Found file without filename, skipping index=16
Found file without filename, skipping index=17
Found file without filename, skipping index=18
Found file without filename, skipping index=19
Found file without filename, skipping index=20
Found file without filename, skipping index=21
Found file without filename, skipping index=22
Found file without filename, skipping index=23
Found file without filename, skipping index=24
Reading file /sys/date_time.cfg → extractedFromBox\sys/date_time.cfg
Reading file /sys/date_time.cfg → AppData\Local\Temp\tmp8m6rroe_
File extractedFromBox\sys/date_time.cfg verified
Found file without filename, skipping index=27
Found file without filename, skipping index=28
Found file without filename, skipping index=29
One or more files could not be verified or read at all

For me, it looks quite strange as there aren’t any filenames listed in the last column of the table (besides mcuimg2.bin & date_time.cfg). On the previous boxes, the table looked similar but all entries had filenames and I was able to read certificates and replace the bootloader e.g.. At this box, this is not possible as the tool/CC3200 doesn’t know where to find the files.

I could try to flash one of the flash dumps of the other boxes but that would mean to overwrite the existing certificates I want to avoid.
Strange thing: the box is not flashed with custom content at all but it’s working as usual: playing custom tonies as long as the content of the ID exists on the SD card and internet connection is blocked.

What I tried out:

  • read all files → only two files read (see error above)
  • read flash → works, but reading the flash dump gives same result as above
  • several restarts/pin connection checks → no effect

Does anyone has another idea how to recover the FAT in the flash and/or to save the certificates? The rest of the flash, I can use the content of the other boxes, but these SSL files, I want to preserve.

This is a known problem and you FAT isn’t broken. Just read the files one by one.

1 Like

It works! I’m really sorry for this typical RTFM question :see_no_evil_monkey:
Thank you very much for your help! It works file based, but only with direct connection to the serial port (with the flash dump it doesn’t). :+1: