Firmware Updater question

I have the new Creality 4.2.7 32-bit board. I just can't seem to find the correct information on how to use the Firmware Update plugin to flash new firmware. I see 3 different methods and I'm not sure which one to choose.

There is LPC1768, STM32, and STM32 that uses LPC1768. Has anyone with this new board been able to flash a new Marlin firmware .bin? If so, what method did you use and what settings did you use?

-Greg

Hello @gregma!

32 bit boards can not be firmware upgraded with that plugin.
These boards are upgraded via the SD card.

1 Like

Afaik they need a special bootloader to be usb flashable.

I would (as @Ewald_Ikemann suggested) flash it via sd card

1 Like

Thank you for the information, I must have misread the plugin docs about how to update 32-bit firmware. Hopefully this will eventually be implemented, but until then will continue with the manual method.

Unless I've misread this entire thread I think there is some confusion here...

Check the Firmware Updater readme...

I can only speak for my SKR 1.3 and SKR Mini E3 32 bit boards but I use this plugin to update them both regularly.

After installing and configuring usbmount (in my case, yours may be different depending on the printers MCU) on OctoPi I can see the printers SD Card as a directory on the Pi, viz: -

pi@octopi:~ $ ls -la /media/usb0
total 324
drwxr-xr-x  3 pi   pi    32768 Jan  1  1970  .
drwxr-xr-x 10 root root   4096 Nov 29 19:08  ..
-rw-rw-rw-  1 pi   pi   249732 Dec 19 08:28  FIRMWARE.CUR
drwxr-xr-x  2 pi   pi    32768 Aug 14  2019 'System Volume Information'
pi@octopi:~ $

"Firmware Updater" copies the new firmware.bin file to this directory and "reloads" the printer to install it.

So whilst the firmware IS being upgraded using the SD Card it's not necessary to remove the card from the printer and do this manually...

The trick is to get usbmount or whatever configured correctly to mount the SD Card so Firmware Updater can talk to it!

2 Likes

Oh really! I thought that's what I read, but being so spanking new to OctoPrint and 3d printing in general, I wasn't sure. Now to see if anyone with the newish Creality 4.2.7 board knows just how to set it up as I can't find a bit of info anywhere in google searching.

It would appear from Crealitys website that they are using the ARM STM32F103RET6 chip

Firmware updater plugin author here.

Let me know if you got this to work with your Creality 4.2.7 board or if you want any help. I think it should work with the lpc1768 method and it would be nice to update the documentation if it does.

I came across this thread because someone just opened a Github issue for the 4.2.2 board.
Request support for flashing Ender 3 V2 firmware

I disabled everything after the other comments suggested it will never work. I'll resume and see if I can get it to work following https://github.com/OctoPrint/OctoPrint-FirmwareUpdater/blob/7c74de2ed3b4610c33e543f369c5da3122f1d873/doc/lpc176x.md and let you know.

Sounds good. Getting usbmount to work correctly is the only hard part - there are a few steps you need to go through. It works great on LPC and other STM32 boards with SD cards, so if the Creality board can be configured to expose the SD card to the OctoPrint host I see no reason why it shouldn't work too.

Well, if usbmount is supposed to be the external microUSB on the printer, then it's a no-go. There are files on the SD Card, but going to /media/usb shows nothing. Unfortunately, I'm not a linux expert to diagnose or troubleshoot. I followed the steps for the lpc176x in the link I referred to above.

-Greg

From what I have read/heard around, Creality didn't wire something up right to allow this to happen. Something to do with using a dedicated USB to serial conversion chip, rather than the STM32's built in stuff for this, and as a result the only thing USB can be used for is serial comm. No evidence to back that up, and I would love to be proved wrong since I also have a Creality V4 board and swapping SD cards all the time is a small pain. Binary file transfer did work though.

Adding binary file transfer is on my to-do list. I was planning to wait until the protocol went 'final' but I may have a go at implementing it as-is if time permits.

Just as a note. OctoPrint can access the external SD card and copy files to it. I just checked that out, was able to successfully send a file using OctoPrint "Upload to SD" button. It might though be using binary upload.

I think that is the SD card on the Pi, not the printer.

nope - just uploading to octoprint uses the pis sd card

I'll check again, but the file I uploaded was actually on the printer SD card.

-Greg

I know this is an old thread. Is it possible that you could post the methods you used to mount the printer sd card slot on the RPi?

Hi there,

I realize this is an old thread, but I cannot seem to get any combination of configuration to work. I have an Ender 3 Pro, upgraded to a Creality 4.2.7 board and just want to flash firmware without having to load onto an SD card and try to load it that way.

It seems that the stm32flash method should work (supported by the board), or the lpc176x method (which seems a bit of a workaround), or perhaps I'm missing something completely (entirely possible).

I figured since this was 1 year on, there might have been some progress on a method for getting this to work.

Thank you,

As I set out above - and I'm not sure if there's been any progress for other flash methods - Creality use a CH340 chip in between the STM32 chip on this board and the usb port. As a result, I don't think it can be easily flashed using the traditional methods. The lpc176x method will definitely not work, since you can't mount the SD card over this kind of connection. Unfortunately I don't know how stm32flash works to give you a conclusive answer there.

The Binary File Transfer method does work, however you have to enable it in Marlin and flash it manually using the SD card before it will work for the next update you have to do.