Ender 3 not recognizing new firmware on uSD card

Hey folks… absolute newbie to working with MS Visual Studio and editing firmware, so likely there are some “rules” that I’m unaware of that are causing my problem.

Trying to add a BL Touch ABL (further hardware upgrades planned), and need to update the firmware so it will ‘see’ the hardware and work.

My issue isn’t so much with MS V S or editing the code… I can make the necessary changes okay, and it compiles successfully, but when I burn the compiled firmware (“firmware.bin”) to an 8MB uSD card formatted to fat32, and insert the card into the card socket on the display (BTT TFT35 -v- 3.0), the machine just boots as normal, no pause, no black screen, no status messages… and also no BL Touch options.

Does the firmware file have to have a different name that the firmware that’s already in the machine (such as firmware_bl.bin or some such)?? Does it have to be the ONLY file on the card (it has been, so far)??

I also tried bypassing the display card socket and insert the uSD directly into the BTT SKR MINI E3 -v- 2.0, but it is similarly ignored. It appears that I can’t get the machine to acknowledge the presence of firmware at all. It does read the card and it’s contents… just doesn’t install the firmware.

I’m sure I’m missing some basic thing, and I’d appreciate any suggestions or pointers to subjects I should dig into. Thanks!!

You probably corrupted your TFT35 board by trying to load Marlin firmware on it. Go find a TFT35 update, use a clean mSD card download the firmware on it insert the SD card in the TFT35, it will take a minute or so to load. Once that is complete turn the printer off, insert the mSD card with marlin firmware.bin into the SKR board. Turn on the printer and the firmware.bin should load correctly.
I’m not an expert and I’m sure there are different ways to solve your problem. Remember to turn off your printer before inserting the SD card with firmware on it. After marlin firmware is loaded marlin changes the name of the file .ext name it can’t be downloaded again. I hope this helps. Dan

Thanks, dustyday. I’ll give that a shot and see where it takes me. The machine appears to act normally as far as startup and displaying the menu screens… the only thing it won’t do is recognize that there’s firmware present on the uSD card (discounting the issues I’m having with the BL Touch, which is why I was trying to modify the firmware to begin with.)

So I gather upgrades or mods for the display card should use the display card’s card socket, and mods to the SKR’s firmware through the SKR’s card socket?

Yes, you are correct. I have tried many many times to get my BLtouch to work on my ender3 with a SKR mini3 V3 board and i always run into one problem or another. The last time I had it on the machine everything work fine the BLtouch worked, but the print would start printing at the center of the build plate and the hot end would move to the right and crash and then start printing. I gave up.
After you have run your VS code and loaded the file on your SD card make sure the firmware has a .bin extension. Make sure the SD card is clean. I never assume a SD card is good they are fragile I have had some SDcards that just didn’t work.

Something else going on here… have to deal with it before the BL Touch can be fixed.

It’s on-again off-again; sometimes I can read an SD card, others I can’t. I took the display out and checked the SD card socket with a loupe to make sure the pins weren’t damaged (others have found this an issue), but they look fine. Put it back in, made sure cables were fully seated, and now it won’t recognize media at all, not even one it read earlier today.

I downloaded an SD card formatter utility (command-line for LInux), and successfully formatted the 8MB card as Fat32. Grabbed the firmware for the display and copied it to the SD card. Machine off, card in, machine on… and it just boots up normally. No update/upgrade, no recognition of firmware or ANY file on any card. Beginning to think I have a bogus card here. I’ll see what happens when I rattle BTT (BIQU)'s cage.

Thanks for your input!

I have similar problem -sometimes loads bin file and sometimes not. I found that I may have to recompile from visual studios several times before it will load (even though it compiled successfully and no other changes were made ). Expect to see a longer then usual start up on the
Lcd if it works. Also the name must be changed and no other bins on SD card .

Okay… as they say, a little knowledge is a dangerous thing. I managed to reflash my display, and all I had to do was to first ensure that I had the correct .bin file for it (I was under the impression that I had a straight BTT TFT35 v3.0, when in fact what I found in the “info” section of the menu was that what I have is a BTT_GD_TFT35_v3.0 - - zero idea what the “GD” means, but this time I copied the “GD” .bin file to the card), AND include the config,ini AND the bmp and font folders as well. So, on an empty 8GB uSD card formatted as FAT32 (using the SD association’s format tool), I put: config.ini, BIGTREE_GD_TFT35_V3.0_B1.27.x.bin, and from within the “THEME_The Round Miracle Menu Material Theme/TFT35” folder, both the “bmp” and “font” folders. Two files, two folders. THIS time, I got the dark display for several seconds, then a confirmation message and things fired up normally.

NOW, I’m wondering if I’m doing the same thing for the SKR Mini E3… besides the (correct) .bin file, should I also have a config.ini file or something in addition to the binary?

Just the .bin file on the SD card is all you need

Oh… I was hoping for a different answer. I’ve done that several times, and the SKU still won’t recognize the presence of the .bin file. It’s a “prefab” firmware, for the BL Touch for Z homing. I’m using the same card I used to successfully flash the display with. The firmware.bin was the only file on the card. Does it need to have a filename that’s different from what’s already in the SKR, which I imagine was also named “firmware.bin.” Maybe “firmware_BL.bin” or something like that? I’ve seen numerous references to having unique filenames for different versions of firmware, saying this is the reason for that, but I can’t verify that.

Yes, change the name.
I had no luck with purchased firmware. I used the marlin configuration for specific printer in GitHub. The biggest problems was the lcd in the “stock” config.h was wrong for me and my bl touch is on a 5 pin connector not an endstop connector. Look at the mother board.

//#define Z_MIN_PROBE_PIN 32 // Pin 32 is the RAMPS default


Okay, here’s where things stand: using ‘prefab’ firmware, renamed from “bl_touch_for_z_homing.bin” to “firmware.bin” as the “readme” file that was in the directory specified, inserting the card in the SKR socket, and turning the machine on - - normal boot, normal boot time, file NOT renamed to “firmware.curr,” no BL Touch menu items. Repeated this process changing the file name to “firmware_2.bin,” and got the same result. Tried renaming the file in all uppercase (some claimed that this worked for them), and still no joy. Inserted another card with ready-to-print files on it (xxxxss.gcode), and went to “Print” menu and selected “Onboard SD” as the source, and it reads that card fine, so I feel confident in ruling out damaged contact pins/bad socket as others have found as the source of their similar problem.

The socket is apparently good, but the card will NOT recognize or act upon a firmware.bin file. The BL touch cables ARE plugged in to the SKR when doing all this… maybe with them unplugged it might update? Doesn’t seem likely.

Contacted BIQU/Bigtree outlining the situation and calling it a bad card, but have yet to hear anything back.

Any other avenues of exploration gratefully accepted!

Update: BIQU replied and asked two questions: Does the green LED (D9) come on when an SD card is inserted into the socket? YES, it does, and goes back out when removed. Question 2: using a multimeter set to “beep” on continuity (I’m using a Fluke 87), is there continuity between the third pin from the left (viewing the card from the front) of the SD card socket and ground? NO, no continuity between any point on the card that is ground and that pin, while all ground points I tested for continuity DID show continuity with each other. I don’t yet know if that’s as it should be or if this is an issue, but I’ll update with their reply.

I’ve had the same experience as Joe.
Changing the file name is significant. For some reason the boot loader does not reload the code every time it boots and it seems to look for a bin file with a different name before it will reload.
i.e. If you previously loaded a firmware from the SD Card with the name “ender3.bin” (as an example), next time you power up the machine it will not reload the “ender3.bin” file. Even if it is a different firmware. Remove the “ender3.bin” file (or whatever the name of the firmware that was last loaded) and name the new firmware you want to load something like “ender3a.bin” and it should load right up. After you have loaded a file with the new name, you must change the name again to load another file (try going back-and-forth between two file names for example).
Good luck

Hi brentboren,

Thanks for the reply! I tried that approach, and naming the file in all caps, and a slew of other things I found from searches. None of them worked, BUT… As it turns out, it WAS taking the new firmware. The issue was this: the stock display/control card combination shows a dark screen for a short time (I don’t remember if there’s a progress indicator or not), then boots up ready to go. MY current hardware combination (BTT SKR mini E3 v2 and the BTT TFT35 v3 display does NOT behave the same way, and I was expecting the same behavior (nobody said to expect anything different.) The display card boots up immediately as normal, “no printer connected,” then a moment later after the control card has flashed, “Ender 3 ready.” Last time I tried flashing, I changed the printer name in config.h to “Ender 3A,” and when the machine booted, it said “Ender 3A ready.” Bingo! Success!!

NOW all I have to do is get the stupid BL Touch to work! X & Y home fine, Z shoots to center and goes up, printer shuts down “with errors” unspecified. Guess there’s two ways you can connect the probe, and each one has it’s own specific settings in config.h. Can’t find solid information (found several versions, and they don’t agree with each other.)

Guess this is why getting a machine that isn’t made in China is a better idea, when it comes to support from the manufacturer!

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.