How to upgrade the BTT Octopus v1.1 F429 Version firmware in SBC Mode

Overview - Upgrading SBC

There have been a number of changes in the way RRF builds for STM32F4, STM32H723 and STM32H743 boards are being produced from 3.5-RC4 and onwards.
The main changes are:-

  • A build per board rather than all boards being contained in one build
  • WiFi and SBC mode in one build. If there is an SD card present its in WiFi mode, if there isn’t one installed its in SBC mode. This matches the way the Duet3D boards operate.
  • A board.txt setting to denote the WiFi module type installed.

Upgrading

Teamgloomy now generate per board firmware files and going forwards will also release a complete upgrade zip called STM32RepRapFirmwareSBC.zip (which includes all the firmware files, the WiFi files and DWC). These instructions are based on using the zip file.

The latest firmware zip can be found here

With all the changes described above, here are the steps required to upgrade the firmware.

  1. Click on the “machine-specific” page in DWC and then the “Install Update” button.
  2. After uploading the new zip file, DWC will not ask you to install it. You need to use M997 P"firmware_octopus1_1_f4.bin" to trigger the install.
  3. Once the mainboard has updated and rebooted, upgrade the DSF using the script as detailed here.

Some notes

  1. There is a bug in the current version of RRF that will prevent mainboards operating in CAN expansion mode from being upgraded over CAN. The simple solution is to remove the SD card and copy the new firmware to firmware.bin. This bug is only present if upgrading from a version of RRF lower than 3.5.0-RC4.
  2. It is possible that on some SBC installations after installing the new firmware, the firmware may not run in SBC mode (and so DSF/DWC will not connect correctly). To resolve this put the SD card from the RRF board in a PC and add sbc.sbcMode=1 to the board.txt. or remove the SD card entirely from the mainboard.

Removing some Board.txt entries

Once you are back up and running, as we now load the board.txt file from the SBC, you will need to populate the board.txt file on the SBC via DWC. Create a board.txt file in the system folder (the same location as config.g).
Compare the list below with whats in your board.txt and where each line is the same, you can remove it from your board.txt. This may even result in an empty board.txt file (which is fine). We suggest taking a backup of your board.txt file before you remove anything, especially if you wish to downgrade to an earlier version in the future.

board=octopus1_1_f4
board.longName="BTT Octopus V1.1 STM32F4"
sdcard.internal.type=2
SPI0.pins={A.5,A.6,A.7}
SPI1.pins={B.13,C.2,C.3}
SPI2.pins={B.3,B.4,B.5}
SPI3.pins={NoPin,NoPin,NoPin}
SPI4.pins={E.8,E.9,E.7}
SPI5.pins={E.12,NoPin,E.9}
stepper.powerEnablePin=NoPin
stepper.enablePins={F.14,F.15,G.5,A.0,G.2,F.1,D.4,E.0}
stepper.stepPins={F.13,G.0,F.11,G.4,F.9,C.13,E.2,E.6}
stepper.directionPins={F.12,G.1,G.3,C.1,F.10,F.0,E.3,A.14}
stepper.numSmartDrivers=8
stepper.TmcUartPins={C.4,D.11,C.6,C.7,F.2,E.4,E.1,D.3}
stepper.spiChannel=0
power.VInDetectPin=NoPin
sbc.TfrReadyPin=G.7
sbc.csPin=B.12
sbc.spiChannel=1
wifi.espDataReadyPin=D.7
wifi.TfrReadyPin=D.10
wifi.espResetPin=G.7
wifi.serialRxTxPins={D.9, D.8}
heat.tempSensePins={F.3,F.4,F.5,F.6,F.7}
heat.spiTempSensorChannel=0
heat.spiTempSensorCSPins={F.8}
Tags: