Aus3D / RUMBA32

A powerful 32-bit 3D printer control board.
https://aus3d.com.au/rumba32
67 stars 25 forks source link

Instructions for RUMBA32 Marlin compile are obsolete #22

Closed capibara1 closed 4 years ago

capibara1 commented 4 years ago

Hi Chris,

I created this issue based on the comments in issue #21 and issue #11

The instructions to get the board up and running with Marlin are obsolete. Here are the specifics that need to be updated:

Based on the instructions here: https://github.com/Aus3D/RUMBA32/wiki/Getting-RUMBA32-Up-&-Running

  1. Install Arduino IDE & STM32duino Core section

Following the instructions for stm32duino used to work fine until Nov 2019. Now, whatever version of STM32 Cores that is used (access in the Arduino IDE via Tools->Board->Board Manager) from 1.6.0 to the latest 1.9.0 do not produce a successful compile. Instructions need to be updated to indicate what version of these libraries compile with specific versions of Marlin

  1. The Marlin board definition instructions no longer apply to either Marlin 2.0.x or Marlin-bugfix-2.0.x. There are two versions of the RUMBA32:

Change #define MOTHERBOARD BOARD_RAMPS_14_EFB to #define MOTHERBOARD BOARD_RUMBA32

It should now be:

Change #define MOTHERBOARD BOARD_RAMPS_14_EFB to #define MOTHERBOARD BOARD_RUMBA32_AUS3D

Even with the changes in the instructions, I think using the Arduino IDE makes compiling and keeping track of all the library versions much more difficult. There should be specific instructions to set up the Platform IO environment for RUMBA32, but that's another issue.

Thanks!

chrissbarr commented 4 years ago

Thanks @capibara1. I'll have a look at updating this shortly.

chrissbarr commented 4 years ago

Hi @capibara1,

I haven't tried the Arduino IDE yet, as the last time I did I ran into a few problems, but I've confirmed that the following PlatformIO setup works for me:

  1. Using VSCode with PlatformIO installed (other IDEs are probably similar, but I have not tried).
  2. Download/clone Marlin 2.0.x (see below for notes on version) and open it in VSCode.
  3. Edit the configuration.h file with the minimum necessary changes:
107: #define SERIAL_PORT -1

130: #ifndef MOTHERBOARD
131:   #define MOTHERBOARD BOARD_RUMBA32_AUS3D
132: #endif

409: #define TEMP_SENSOR_0 998 // not necessary, but so I could test without a thermistor
  1. Locate the env:rumba32_f446ve folder in the Project Tasks window, and expand it:

image

  1. Click on Build in the env:rumba32_f446ve folder. You should see a few success messages once the process completes:

image

image

  1. Connect RUMBA32 to the USB port. Reset the RUMBA32 board by holding BOOT0, pressing RESET, then releasing BOOT0. The LED should blink once when you do this. Device manager should show the board as so:

image

  1. Click on Upload in the env:rumba32_f446ve folder. Again, you should see a few success messages once the process completes:

image

Here's the full output I get when building/uploading:

Full Output (Click to Expand) ``` > Executing task in folder Marlin: C:\Users\Chris\.platformio\penv\Scripts\platformio.exe run --target upload --environment rumba32_f446ve < Processing rumba32_f446ve (platform: ststm32; board: rumba32_f446ve; framework: arduino) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option CONFIGURATION: https://docs.platformio.org/page/boards/ststm32/rumba32_f446ve.html PLATFORM: ST STM32 6.1.0 > 3D Printer control board HARDWARE: STM32F446RET6 180MHz, 128KB RAM, 512KB Flash DEBUG: Current (blackmagic) External (blackmagic, jlink, stlink) PACKAGES: - framework-arduinoststm32 4.10800.200207 (1.8.0) - tool-dfuutil 1.9.200310 - tool-openocd 2.1000.190707 (10.0) - tool-stm32duino 1.0.2 - toolchain-gccarmnoneeabi 1.90201.191206 (9.2.1) Converting Marlin.ino LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf LDF Modes: Finder ~ chain, Compatibility ~ soft Found 20 compatible libraries Scanning dependencies... Dependency Graph |-- 1.5.0 | |-- 1.0 |-- 0.6.2 | |-- 1.0 | |-- 1.0 |-- 0.4.1 | |-- 1.0 | |-- 1.0 |-- 1.0.3 | |-- 1.0 |-- | |-- 1.0 |-- 0.8.0 |-- |-- | |-- 1.0 |-- |-- 1.0 |-- 1.1.2 |-- 1.0.0 |-- 1.0 Building in release mode Checking size .pio\build\rumba32_f446ve\firmware.elf Advanced Memory Usage is available via "PlatformIO Home > Project Inspect" RAM: [= ] 5.3% (used 6980 bytes from 131072 bytes) Flash: [== ] 16.2% (used 84848 bytes from 524288 bytes) Configuring upload protocol... AVAILABLE: blackmagic, dfu, jlink, serial, stlink CURRENT: upload_protocol = dfu Uploading .pio\build\rumba32_f446ve\firmware.bin dfu-util 0.9 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2020 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ Match vendor ID from file: 0483 Match product ID from file: df11 Opening DFU capable USB device... ID 0483:df11 Run-time device DFU version 011a Claiming USB DFU Interface... Setting Alternate Setting #0 ... Determining device status: state = dfuERROR, status = 10 dfuERROR, clearing status Determining device status: state = dfuIDLE, status = 0 dfuIDLE, continuing DFU mode device DFU version 011a Device returned transfer size 2048 DfuSe interface name: "Internal Flash " Downloading to address = 0x08000000, size = 85364 Erase [ ] 0% 0 bytes Erase [= ] 4% 4096 bytes Erase [== ] 9% 8192 bytes Erase [=== ] 14% 12288 bytes Erase [==== ] 16% 14336 bytes Erase [===== ] 21% 18432 bytes Erase [====== ] 26% 22528 bytes Erase [======= ] 28% 24576 bytes Erase [======== ] 33% 28672 bytes Erase [========= ] 38% 32768 bytes Erase [========== ] 40% 34816 bytes Erase [=========== ] 45% 38912 bytes Erase [============ ] 50% 43008 bytes Erase [============= ] 52% 45056 bytes Erase [============== ] 57% 49152 bytes Erase [=============== ] 62% 53248 bytes Erase [================ ] 64% 55296 bytes Erase [================= ] 69% 59392 bytes Erase [================== ] 74% 63488 bytes Erase [=================== ] 76% 65536 bytes Erase [==================== ] 81% 69632 bytes Erase [===================== ] 86% 73728 bytes Erase [====================== ] 88% 75776 bytes Erase [======================= ] 93% 79872 bytes Erase [======================== ] 98% 83968 bytes Download [ ] 0% 0 bytes Download [= ] 4% 4096 bytes Download [= ] 7% 6144 bytes Download [== ] 9% 8192 bytes Download [=== ] 14% 12288 bytes Download [==== ] 16% 14336 bytes Download [===== ] 21% 18432 bytes Download [====== ] 26% 22528 bytes Download [======= ] 28% 24576 bytes Download [======== ] 33% 28672 bytes Download [========= ] 38% 32768 bytes Download [========== ] 40% 34816 bytes Download [=========== ] 45% 38912 bytes Download [============ ] 50% 43008 bytes Download [============= ] 52% 45056 bytes Download [============== ] 57% 49152 bytes Download [============== ] 59% 51200 bytes Download [=============== ] 62% 53248 bytes Download [================ ] 64% 55296 bytes Download [================= ] 69% 59392 bytes Download [================== ] 74% 63488 bytes Download [=================== ] 76% 65536 bytes Download [==================== ] 81% 69632 bytes Download [===================== ] 86% 73728 bytes Download [====================== ] 88% 75776 bytes Download [====================== ] 91% 77824 bytes Download [======================= ] 93% 79872 bytes Download [======================== ] 98% 83968 bytes Download [=========================] 100% 85364 bytes Download done. File downloaded successfully Transitioning to dfuMANIFEST state ================================================================================================= [SUCCESS] Took 25.50 seconds ================================================================================================= Environment Status Duration ------------------------ -------- ------------ mega2560 IGNORED mega1280 IGNORED rambo IGNORED FYSETC_F6_13 IGNORED FYSETC_F6_14 IGNORED sanguino644p IGNORED sanguino1284p IGNORED melzi IGNORED melzi_optiboot IGNORED at90usb1286_cdc IGNORED at90usb1286_dfu IGNORED DUE IGNORED DUE_USB IGNORED DUE_debug IGNORED LPC1768 IGNORED LPC1769 IGNORED STM32F103RC IGNORED STM32F103RC_fysetc IGNORED STM32F103RC_btt IGNORED STM32F103RC_btt_USB IGNORED STM32F103RC_btt_512K IGNORED STM32F103RC_btt_512K_USB IGNORED STM32F103RE IGNORED STM32F103RE_btt IGNORED STM32F103RE_btt_USB IGNORED STM32F4 IGNORED STM32F7 IGNORED ARMED IGNORED STM32F103VE_GTM32 IGNORED STM32F103VE_longer IGNORED mks_robin_mini IGNORED mks_robin_nano IGNORED mks_robin IGNORED mks_robin_pro IGNORED mks_robin_lite IGNORED mks_robin_lite3 IGNORED jgaurora_a5s_a1 IGNORED STM32F103CB_malyan IGNORED chitu_f103 IGNORED STM32F401VE_STEVAL IGNORED FLYF407ZG IGNORED FYSETC_S6 IGNORED STM32F407VE_black IGNORED BIGTREE_SKR_PRO IGNORED BIGTREE_GTR_V1_0 IGNORED BIGTREE_BTT002 IGNORED teensy31 IGNORED teensy35 IGNORED esp32 IGNORED linux_native IGNORED SAMD51_grandcentral_m4 IGNORED rumba32_f446ve SUCCESS 00:00:25.503 rumba32_mks IGNORED include_tree IGNORED ================================================================================================== 1 succeeded in 00:00:25.503 ================================================================================================== ```
  1. Once the upload is complete, the status LED on the board should begin to flash quickly (~ 4 times per second). You should be able to communicate with the board using your printer host software.

Marlin versions

I tested with the following versions of Marlin:

Let me know if you give the above a go, and if it works for you or if you run into trouble. If it does the trick I'll look at updating the instructions to include these steps.

capibara1 commented 4 years ago

See comments here: [Issue #24] (https://github.com/Aus3D/RUMBA32/issues/24#issuecomment-637230802)

chrissbarr commented 4 years ago

I've updated the wiki with instructions using PlatformIO, based on our conversations here and some changes that have been pulled into Marlin since. These instructions are currently up to date - hopefully that stays the case for a while!