Font directory not found, SD card not found

One in every 15-20 boots, the saber will give a “font directory/sd card not found” warning. Rebooting the saber fixes this, and aside from this it functions normally. This is the third board I have installed, out of 70-100, with this issue. Notably, it is somewhat consistently booting with the error when left to sit for a day–as in, the first boot up of the day is usual with the error, and then after that it’s every 15-20 boots.

Running: OS7. Have tried OS6.9, and as far back as OS5.9. It is the same on each OS.
Battery: fully charged
Tried: multiple SD cards (from the saber armory) all formatted to FAT32
Fonts: Default and custom fonts
Config: Various config files including default config files

What do I check next to try and solve?

A few months ago, I was debugging a problem very much like this.
However, the issue I found ended up being sd card corruption, and that issue should be fixed in ProffieOS 7.x, or at least severely reduced.

Now, there are a bunch of things we can do to try to figure out what’s going on here, but since the problem is not happening very often, it’s going to be somewhat time consuming.

  1. we could try giving the card more time during startup to see if that helps.
  2. we could try turning off all code that writes to the SD card.
  3. probably other things that I haven’t thought of yet…

Alternatively, I could trade your board and SD card for one of mine, then I could try debugging it with a logic analyzer and various other tools I have available.

2 Likes

I spoke with Khal about the OS7.x update, though it didn’t change the frequency. I’m good to troubleshoot it–it’s in a complex chassis and I’d love to fix it without removal if at all possible.

  1. How would we go about giving it more time during startup?

Try putting this in your config file:

#define CONFIG_STARTUP_DELAY 1000

Updated. Issue after 10th reboot

“SD card not found” can mean a few different things, there are a few steps involved in starting the SD, and it might be helpful to know which of these steps actually fail…

Unfortunately most of that code is in the arduino-proffieboard plugin, so it’s a little more involved to change it, but I’m going to see what I can do.

I appreciate it!

Ok, I’ve added a new define on github master called VERBOSE_SD_ERRORS.
With this define, ProffieOS will use talkie to tell you the actual error code when the sd card doesn’t work. It’s not well tested, so please let me know if you have nay problems with it. (Or if you need help getting the latest code from github.)

The error code might not tell us exactly what happened, but it should narrow it down a bit I hope.

1 Like

Done. It says “SD CHECK SIXTEEN SD CHECK SD CHECK SD”. Something along those lines

Well 16 is F_ERR_CARDREMOVED, so that tracks, now I just have to check which conditions can cause that particular error code.

1 Like

I think the next step will require me to make a beta version of of the arduino-proffieboard plugin…

Let me know what’s needed on my end!

Cheers

Ok, not sure if this is the easiest way to test this or not…

I’m attaching a new, and highly experimental libstm32l433.a file.
You should already have an libstm32l433.a file somewhere in your arduino15 folder. (Which I think you can find by going to arduino → preferences)
The idea is to replace that file with this one, upload and see if it helps.

libstm32l433.a (2.4 MB)

Please let me know if you need more explicit directions, or if maybe I need to actually do this another way to make it simpler.

found the file and replaced. Frequency of SD error has increased

Interesting and weird.
I’ll take a look and see what else I can come up with.

Frequency went from approximately 3-4% to 7-8%. In 100 cycles, 7 were SD error. There was no correlation between when each happened. Some were two in a row, some went 15 cycles without. Zero pattern for failure, but a near double increase for rate of failure with new libstm file