Giter Club home page Giter Club logo

rumba32's People

Contributors

chrissbarr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rumba32's Issues

Instructions for RUMBA32 Marlin compile are obsolete

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!

RUMBA32 Aus3D V1.0 Not appearing under devices in boot mode

Hello,

I am trying to upload Marlin to an AUS3D RUMBA32 V1.00 using PlatformIO in Visual Studio Code on a Mac. When the board is not in boot mode, I can see it under devices "RUMBA32_F446VE CDC in FS Mode," however, once it enters boot mode, it is no longer findable. I have tried adding the 100K resistor recommended herehttps://github.com/Aus3D/RUMBA32/issues/34 but that did not resolve the issue. I am entering boot mode by holding boot and then pressing reset, then releasing. There is one flash and then the LED turns off.

Right now, if I try to upload when the board is not showing up, I receive this error: *** [.pio/build/rumba32_f446ve/firmware.bin] Error -6.

This is my platformio.ini configuration:
[env:rumba32_f446ve]
platform = ststm32
board = rumba32_f446ve
framework = arduino
upload_protocol = dfu

I would really appreciate any ideas on how to solve this! Thank you!

heater errors

I posted this here makerbase-mks/MKS-RUMBA32#26 but have gotten no response so I'm hoping someone here will have an answer for finding a replacement mosfet for HE0...or if that is even the problem.

Unable to enter Debugging mode in Rumba32 with (Platformio + STlink-v3 + Marlin 2.0)

Hello All!!

I am currently building a 3D printer with a Rumba32 board and using Marlin 2.0 firmware. After following your tutorials and few issue comments, I am now able to flash the board with ST-LINK-V3 debugger in SWD mode. Unfortunately, I am running into an error when I enter the debugging mode. I have attached the error log below, please guide me through the further steps that can help me fix this.
image

I made these changes to both platform.ini and stm32f4.ini to successfully flash rumba32 using debugger:
upload_port = COM4
upload_protocol = stlink
monitor_speed = 500000
debug_tool = stlink
debug_init_break = tbreak setup
debug_port = COM4

I am looking forward to your responses and valuable suggestions.

Thanks & Regards,
Amith

Fan PWM Troubleshooting / Timer Investigation

Collecting information for troubleshooting why PWM on FAN (PC9) isn't outputting the expected values when running Marlin bugfix-2.0.x.

Suspect there is a conflict somewhere / the same timer is being used in multiple places or something to that effect.

Timers in use

Checking everywhere timers are configured/selected.

STM32 Arduino Core

RUMBA32_F446VE/variant.h:

// Timer Definitions
// Use TIM6/TIM7 when possible as servo and tone don't need GPIO output pin
#define TIMER_TONE              TIM6
#define TIMER_SERVO             TIM7

SoftwareSerial/src/SoftwareSerial.cpp

// It's best to define TIMER_SERIAL in variant.h. If not defined, we choose one here
// The order is based on (lack of) features and compare channels, we choose the simplest available
// because we only need an update interrupt
#if !defined(TIMER_SERIAL)
  #if defined (TIM18_BASE)
    #define TIMER_SERIAL TIM18
  #elif defined (TIM7_BASE)
    #define TIMER_SERIAL TIM7
  #elif defined (TIM6_BASE)
    #define TIMER_SERIAL TIM6
  #elif defined (TIM22_BASE)
    #define TIMER_SERIAL TIM22

RUMBA32_F446VE/PeripheralPins.c (enabled pins only):

WEAK const PinMap PinMap_PWM[] = {
  {PA_0,  TIM2,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)},  // TIM2_CH1
  {PA_1,  TIM5,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 2, 0)},  // TIM5_CH2
  {PA_5,  TIM2,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)},  // TIM2_CH1
  {PA_6,  TIM13,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM13, 1, 0)}, // TIM13_CH1
  {PA_7,  TIM14,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM14, 1, 0)}, // TIM14_CH1
  {PA_8,  TIM1,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 0)},  // TIM1_CH1
  {PA_9,  TIM1,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)},  // TIM1_CH2
  {PA_10, TIM1,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)},  // TIM1_CH3
  {PA_11, TIM1,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 4, 0)},  // TIM1_CH4
  {PA_15, TIM2,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)},  // TIM2_CH1
  {PB_0,  TIM8,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 1)},  // TIM8_CH2N
  {PB_1,  TIM8,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 1)},  // TIM8_CH3N
  {PB_2,  TIM2,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)},  // TIM2_CH4
  {PB_3,  TIM2,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)},  // TIM2_CH2
  {PB_4,  TIM3,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)},  // TIM3_CH1
  {PB_5,  TIM3,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)},  // TIM3_CH2
  {PB_6,  TIM4,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 1, 0)},  // TIM4_CH1
  {PB_7,  TIM4,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)},  // TIM4_CH2
  {PB_8,  TIM4,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)},  // TIM4_CH3
  {PB_9,  TIM11,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)}, // TIM11_CH1
  {PB_10, TIM2,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)},  // TIM2_CH3
  {PB_13, TIM1,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)},  // TIM1_CH1N
  {PB_14, TIM12,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM12, 1, 0)}, // TIM12_CH1
  {PB_15, TIM12,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM12, 2, 0)}, // TIM12_CH2
  {PC_6,  TIM3,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)},  // TIM3_CH1
  {PC_7,  TIM8,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 0)},  // TIM8_CH2
  {PC_8,  TIM3,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)},  // TIM3_CH3
  {PC_9,  TIM8,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 4, 0)},  // TIM8_CH4
  {NC,    NP,    0}
};

Marlin

STM32/timers.cpp:

#elif defined(STM32F401xC) || defined(STM32F401xE)
  #define HAL_TIMER_RATE (F_CPU / 2)
  #define MCU_STEP_TIMER  9
  #define MCU_TEMP_TIMER 10
#elif defined(STM32F4xx) || defined(STM32F7xx)
  #define HAL_TIMER_RATE (F_CPU / 2)
  #define MCU_STEP_TIMER  6           // STM32F401 has no TIM6, TIM7, or TIM8
  #define MCU_TEMP_TIMER 14           // TIM7 is consumed by Software Serial if used.
#endif

Timer Reference

image

Timer Mapping

Current Mapping

Timer PWM Pins Tone Servo Soft Serial Step Timer Temp Timer Comment
TIM1 PA8 (CH1) PA9 (CH2) PA10 (CH3) PA11 (CH4)
TIM2 PA0 (CH1) PA5 (CH1) PA15 (CH1) PB2 (CH4) PB3 (CH2) PB10 (CH3) Conflict with multiple pins using CH1
TIM3 PB4 (CH1) PB5 (CH2) PC6 (CH1) PC8 (CH3) Conflict with multiple pins using CH1
TIM4 PB6 (CH1) PB7 (CH2) PB8 (CH3)
TIM5 PA1 (CH2)
TIM6 X X Conflict with Tone and Step
TIM7 X X Conflict with Servo and SoftSerial
TIM8 PB0 (CH2) PB1 (CH3) PC7 (CH2) PC9 (CH4) Conflict with multiple pins using CH2
TIM9
TIM10
TIM11 PB9 (CH1)
TIM12 PB14 (CH1) PB15 (CH2)
TIM13 PA5 (CH1)
TIM14 PA7 (CH1) X Conflict with PWM and Temp

As noted above, there are several conflicts.

Many of the pin PWM conflicts likely do not arise / are not noticed because PWM is actually only enabled and used on a few pins. Could cut back PWM config to only required pins which would remove all conflicts and free up a few timers. Nice to have PWM available on all pins possible, so should trim this back with the goal of keeping as many PWM pins as possible.

Servo and SoftwareSerial conflict is mentioned elsewhere. Likely not always noticed as SoftwareSerial is only used if enabled (for example, TMC2208/2209 drivers). Servo is probably not always used/enabled either, most common application is probably BLTouch sensors. Should remap one of these.

Tone is probably overridden by Marlin step timer setup and doesn't work after that. Probably not used often / not noticed. Should remap one of these.

Interestingly, there is no obvious conflict with the fan PWM / PC9. It may be behaving oddly because of the other conflicted channel mapping on TIM8. Will have to check if resolving all above solves problem.

Proposed Changes

PWM pin allocation can only be changed by updating the STM32Duino Core.
Timers for Tone and Servo can only be changed by updating the STM32Duino Core.
Timers for SoftSerial, Step and Temp can be changed in Marlin (for instance in RUMBA32 pins file) or in STM32DuinoCore.

Updating Marlin will be faster, assuming changes get pulled into bugfix-2.0.x branch. STM32Duino Core changes will only take effect for most users on next release / when PlatformIO incorporates next release.

Suggest moving Step Timer to currently available TIM10. Should be done in Marlin pins_RUMBA32.h file to fix ASAP.
Suggest moving SoftSerial to currently available TIM9. Should be done in Marlin pins_RUMBA32.h file to fix ASAP. Should also be addressed in STM32Duino variant.h so non-Marlin projects do not have to deal with same problem.

PA5 and PA7 are SPI1_SCK and SPI1_MOSI. These do not need PWM. Removing these frees TIM13 and fixes conflict on TIM14. Other PWM pins should be checked for conflicts and reassigned or removed as necessary. Needs to be done in STM32Duino Core.

So, should result in a PR for both Marlin and STM32Duino Core.

Timer PWM Pins Tone Servo Soft Serial Step Timer Temp Timer Comment
TIM1 PA8 (CH1) PA9 (CH2) PA10 (CH3) PE14 (CH4)
TIM2 PA15 (CH1) PB2 (CH4) PB3 (CH2) PB10 (CH3)
TIM3 PC6 (CH1) PC7 (CH2) PC8 (CH3) PC9 (CH4)
TIM4 PD12 (CH1) PD13 (CH2) PD14 (CH3) PD15 (CH4)
TIM5 PA0 (CH1) PA1 (CH2) PA2 (CH3) PA3 (CH4)
TIM6 X
TIM7 X
TIM8
TIM9 X
TIM10 X
TIM11
TIM12 PB14 (CH1) PB15 (CH2)
TIM13
TIM14 X

Other References

Issue about softwareserial / servo conflict here: stm32duino/Arduino_Core_STM32#731

Error in BoM

Hello,

Point 6 in RUMBA32_v1_0E_BOM.xlsx
Name:
CAP CER 4.7UF 10V X7R 0603
PartNumer:
TDK
C1608X7R1C105K080AC
C Series 0603 1 uF 16 V ±10 % Tolerance X7R SMT Multilayer Ceramic Capacitor

i think Name is wrong or partnumer?

Board availability

Hi,

is there any information on when the Board will be available again through Aus3D?
The Shop has been showing nothing in stock for at least a month.
I tried to contact Aus3D via their Contact form but haven`t heard anything back...

Add button for BOOT0

Using the built-in DFU bootloader a lot during development, and I'm still not certain if we'll ship these with a software bootloader or just use the built-in one.

So, probably a good idea to add a button in case there's no good automatic reset / bootloader access method.

Stepper sockets in Rev E still defect

Hi @chrissbarr ,
I purchased a RUMBA32 Rev E to add support for your board to Repetier-Firmware V2 (https://github.com/repetier/Repetier-Firmware/tree/dev2) and it is working already very good.

I read that up to Rev D there is a problem with SPI MOSI pin connected to wrong pin header, so was lucky to have a "fixed" board. But after searching for hours I detected that reading the driver does not work due to same pin switch. So not sure if it was meant to be fixed or if that was Rev E in old version or if it is different producer since I ordered it in Germany, but it contains your domain on backside.

Beside that it would be nice if you would add a reference to the additional firmware possible with that board.

platformIO setup for Marlin

Hello,

I just got myself a RUMBA32 board and am currently setting it up with Marlin.
The WiKi is helpful enough to guide through the Arduino IDE setup, and this works fine and I'm able to compile and upload without issues (so far).

However, I would like to get Marlin working with platformIO, and here I've been facing some issues.

Is there a known good platformio.ini env setup for Marlin that compiles properly with RUMBA32?

I think this would be a good addition to the WiKi documentation, as platformIO tends to be more straightforward to use once set up properly, and more portable as it does not depend on an existing properly configured Arduino IDE.

USB Power

I would like to prevent the card from being powered by USB.
My printer is always connected to a Raspberry with the Repetier Server always on (connected to multiple printers).
This way the board can never be OFF; more. most important, USB is not enough to power the board with Nextion and continue to go in protect mode and return to 5V, so pwr is flashing.
Usually I use a USB Cable without 5 V, but in this case USB/Serial chip is not powered.
Is it sufficient to eliminate the fuse F3 (I suppose it is the one close to pin 1 of the USB header) there are drawbacks if there is USB connected (USB / Serial U5 chip powered) and card off?
Alternatively bypass D4 or revert it (USB chip powered by the board) and use a special USB cable (without 5V)
(The first option is preferrable)
Tks, Carlo
Tks

Connection fails with Octoprint

HI,

i've set up my new Rumba32 board and installed it in my printer. I've got Octoprint and Octoscreen installed on a raspberry pi which links to the board througn a usb cable.

My previous board was a rumba+ and connected just fine but this board won't connect to Octoprint. I tried it in the default mode and DFU mode but neither one of them work.

MKS TFT32_L V4.0 compatibility

Is the Rumba32 board not compatible with the Makerbase Touchscreens LCDs?
The Rumba+ board did have a AUX1 port.
How can i fix this?

Sensorless homing fails when Bltouch is connected

Hi,

I've started upgrading my 3d printer a few months back with a new Rumba32 and TMC2130 stepper drivers. Last week i added a BlTouch and did a Marlin update (reconfigured the files).

After testing it, i discovered that my motors keep running after smashing into the sides.
When i disconnect the BlTouch everything works great. I don't even change something, i just disconnect the power and pwm wires.

I have a rumba32 v1.0 board but used v1.1 in Marlin and changed #define SERVO0_PIN to PD15. This should be a pwm pin in Aux3. The BlTouch deploys and stows so i think that part is correct.

Is the BlTouch causing interference or is the pin already used by something in v1.1? (Althoug that would cause an error when building the firmware i would think?)

Rumba32 + MKS TFT32_L V4.0 + marlin 2.0

Hello there!
For 2 days I have been trying to connect my MKS TFT32 Lcd with the rumba32.
I tried to use different Serial ports in marlin Firmware 2.0 , activated

#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

but still doesn't work, any help!!

graphic error on RUMBA32_v1_1A_Graphic.png

I noticed a graphic/diagram error with RUMBA32_v1_1A_Graphic.png
the power section (between EXP3 and HE0) shows 4 headers instead of 5 and also have 1 spacing between them
this also seems to be reflected in boardPhoto.jpg ?

Stepper Jumper Labels

Labels for jumper pins are only present on X stepper driver:

image

Should these be on each driver?

Exp3 pinout

Hi, I'm here again to ask you something, I think it's another mistake I think of drawing.
The pins in exp3 5 and 6 PWM 1 and PWM2 are on processor PD14 and PD15, so pins 13 and 14 what are they? PD12 and PD13? On the drawing they are called PD14 PD15 ...
If they are PD12 and PD13, you know if they can be used as interrupts, STM32 can use all pins as interrupts, if you know it, otherwise I try ...

Entering DFU mode problem

Purchased a Aus3D Rumba32 V1.03e and suddenly having a problem entering the DFU mode.
The way it worked up to now:
plug in USB, press and hold BOOT, press and release RESET, finally release BOOT. The LED1 flashes once.
I can follow the process on Win10 device manager, COMx is dropped and STM32 Bootloader came up.

Without an obvious change, the LED1 does not flash any more and the changes in the device manager did not happen any more.

Tried to find solutions. There was one hint with the quartz frequency being out of tolerance, which could cause such a problem.
Would be happy getting some hints (others than dropping the board ;-).
Thanks!

Can't connect an MKS Rumba32 board via USB

Hello there!
I know, that the MKS Rumba32 board is not sold by your company, but maybe you can help me to solve my connection problem. I'm using Klipper as the firmware, where a Raspberry Pi is used as a host computer to do all the calculations and to communicate with the Rumba32 board. Unfortunately i am not able to find the USB connection of the Rumba32 board with the Raspberry. Do you have an idea how to fix this problem?
Many thanks in advance!

[FAQ] SPI Stepper Driver Defect

The purpose of this issue is to put info on this problem in one place for easy reference.

What is the problem?

As has been discussed in several issues in this repository and others, there is a design defect with the SPI pinout in the stepper driver sockets that prevents bidirectional SPI communication with stepper drivers from working properly. Because of this, SPI support for stepper drivers in Marlin and other firmware does not work correctly.

Interestingly, this was not detected in initial testing because the tests I did with Trinamic drivers only involved sending commands (set current, set microstepping - etc.) and did not depend on any response from the drivers. However, most firmware seems to require a response, otherwise, you'll see quite a few error messages (and reasonably so).

Which boards are affected?

This issue is present on all board versions from v1.0A to v1.0E. For reference, v1.0E is the only revision sold by Aus3D to date (the earlier revisions were only used for internal development). I have seen some vendors selling clones based on v1.0D, so I am trying to cover my bases by describing all models, whether they have been sold by Aus3D or not.

At the moment, all clone boards from other vendors seem to be based on either v1.0D or v1.0E, and this issue is present in all those boards that I have seen. This includes MKS's modified RUMBA32 board (currently v1.0), which looks to be derived from v1.0E.

V1.1A will be the first model without this fault. I am currently producing the prototype of this revision, after which it should be available for sale through Aus3D.

Fixes?

If you want to get SPI-based drivers working, the following instructions describe one method:

R32_SPI_mod_instructions_v1b

MKS describes a slightly different method in their FAQ here, in which the SLP and RST pins are soldered together. This should get the SPI signals to the correct pins, but it also puts one of the signals on another pin - whether or not all models of stepper driver will work correctly with this is unclear to me.

Another option is to make a small jumper capable of bridging the outer two pins, as shown in this comment here: #12 (comment)

Ist it possible to connect an In-Circuit-Debugger?

Hi, just a question:
Just testing and doing some small mods using VSC and platformio.
Sometimes it would be more efficient compared to lot of log outputs.

Ist it possible to connect an In-Circuit-Debugger to the Rumba32
like ST-Link or Black Magic Probe, which are using either JTAG or Serial Wire Mod Interfrace ?
Thanks!

TMC220x UART on a version 1.0 board with some modifications?

Hi,
I saw that in the v1.1 board the option has been added to use UART with TMC220x chips. This is great, but unfortunately I have a version 1.0 board.
After looking at the schematics it seems that the main difference is the presence of 1k resistors between the CX and the TX pins. It is not completely clear to me what the purpose of these resistors is: they are mentioned in the Watterott documentation, but also without explanation why it is necessary.

Nevertheless I am wondering whether it is possible to obtain the UART behavior of the v1.1x boards by soldering some 1k resistors between some pins at the stm32 side. So for the x driver between pin 76 and 8, for y between pin 72 and 3, for z between pin 97 and 47, for e0 between pin 7 and 58, for e1 between pin 89 and 86 and for e2 between pin 90 and 82.
This will not be the easiest thing to do but does seem feasible. In order to reduce the amount of connection at the stm32 side it might then also be an option to solder between the stm32 tx pin(76,72,47,58,89,90) and the corresponding MS3 pin.

@chrissbarr do you think this is a viable option or were (many) more things changed regarding the UART communications when they were made available for the v1.1x boards?

12v pwr select

I don't see any documentation on how to set the jumpers for 12v power. I did see this
Screen Shot 2020-06-06 at 9 22 22 AM
however it is not clear to me how these should be jumped for 12v power, vin > vout or vout > 12v?

Pin Mapping Problems

  • HEATER_BED_PIN (PC12) is not PWM-capable (not on any timer)
  • FAN_PIN (PC11) is not PWM-capable (not on any timer)

5V Power Supply Problems

Original note:

Diodes are preventing board from being powered properly when USB power is not present. Removing diode D3 fixes it - best guess is reverse leakage through D3 prevents 5V regulator from operating, but need to investigate.

Okay. There seem to be a few conditions where the 5V buck regulator is behaving in a strange fashion - regulating to a much lower voltage (2-3V) instead of the 5V that it should be.

One of the conditions seems to be when the input voltage (Vin) exceeds some value. From some initial testing, the threshold voltage for this behaviour (Vth) seems to be inversely proportional to the current being drawn on the 5V rail. I.e.:

20mA draw, 5V regulator drops down to 2-3V when Vin > 24V
80mA draw, 5V regulator drops down to 2-3V when Vin > 17V

I should test with a wider range of load currents to see if that's a trend that continues.

Initial thinking was that the regulator was struggling with too light a load as Vin increased - but the above seems to have demonstrated that isn't so. I should test with a significantly larger load current (500mA+) just to make sure I haven't tested too limited a range - but regulators on previous boards work at these voltages / currents anyway.

The behaviour seems to relate to the feedback voltage divider, as there is some odd behaviour there. During normal operation, the regulator maintains a voltage of 0.8V across the divider - which with the specified resistor values regulates to ~ 5.2V. When Vin > Vth and the error state occurs, the divider voltage seems to be a different value - however, measuring that node with either a multimeter or an oscilloscope causes the regulator to start working again (or at least seems to significantly increase Vth - I seem to recall a test where the regulator remained in the error state with the multimeter connected if Vin was large enough, but I do not recall the measurement at the voltage divider in that test - that should be checked).

Why is the multimeter (presumably a > 1Mohm impedance to ground) making the regulator work correctly?

What is different in this regulator than on the previous RUMBA boards?

  • Layout is updated (so maybe some coupling or noise somewhere the old design didn't have)
  • PCB is 4 layer now (should be better but could be as above)
  • A 4.7uF ceramic capacitor has been added to the regulator's output
    • Removing it does not change the behaviour
  • Diode D2 prevents the stepper driver capacitors from feeding the 5V regulator (so capacitance on input is reduced from ~700uF to ~100uF)
    • Adding 470uF to main rail doesn't change behaviour

ongoing...

PWM for Bltouch and LEDs on AUX pins?

Hello,

I built a Rumba32 board a couple months ago and it's been outstanding. Very nice design...great work.

I'm trying to add a Bltouch and a string of neopixel LEDs to my corexy printer and not having any success. I'm not seeing any PWM output on the pins PWM_1 or PWM_2. I'm building a new build of Marlin every 3-4 days. Also using the STM32Duino core and tools that I downloaded about a month ago.

The printer uses 6 steppers (tmc5160 stepsticks). Bltouch device is genuine and v2.2. It performs the power on self test correctly, but I'm not able to actuate the plunger via the LCD or with Gcode.

I'm really more concerned about getting the Bltouch working. The pins I've tried for SERVO0_PIN are PD15, PD14. PD13, and PD12. I've also tried simply specifying 62, 61, 60, and 59 in the pins_RUMBA32.h file, as well.

Something I found interesting... I'm using VS Code to build Marlin, and Intellisense resolves PD15 to pin 63, and PD14 to 62, etc... This is 1 pin off of the physical CPU connections. I'm thinking that this has to be something funky with #includes since everything else on the board works flawlessly as is, despite Intellisense being 1 pin off for all 15 to 20 pins that I bothered to check.

I've looked through the timer definition code for this variant and I'm just not seeing any obvious errors.

--Any ideas what I might be overlooking?
--Have you or anyone else been successful in getting a Bltouch or LEDs to work on these pins?
--Is there a different pin I should be using for the BLtouch?

Thanks!
Wes

Where to connect AD595 thermocouple pcb???

I am trying to connect a AD595 thermocouple pcb.

TEMP_SENSOR_0 -1

On the old 2560 board it could be connected to EXP3.
and in the rumba pins.h file there was a defenition for using TEMP_SENSOR_0 -1 (pin 6)

Now on the Rumba32 I cant seem to find any info how and where to connect the thermocouple pcb.

Any help would be apreciated

jumpers to set for DRV8825 drivers

I don't see any documentation on how to set the jumpers for the drivers. If I want to set up x and y drivers to 16 micro steps and z to 32 micro steps. SLP MS3 MS2 MS1 or maybe I don't understand how this works. Documentation?

PlatformIO compilation documentation possibly out of date

Hi guys,

I am currently trying to set up my Rumba32 following the guide here, and item #6 seems to be out of date. There is no env:rumba32, and there is no information whatsoever on where I might find/locate it.

As there is no information anywhere earlier in the documentation referencing this, I can only assume these instructions are out of date for the current live installations of VSC & PIO.

Please advise on this as the board is pretty much unusable till I get this solved. Thank you.

MOSFET Driver Silkscreen Text

Labels on bottom silkscreen for MOSFET driver voltage select, which is no longer in design, are still present.

image

Should be removed in next version.

EEPROM I2C

In the scheme there seems to be the I2C eeprom, but I can't find it, I did the scanning on the port, but nothing.
There is and if there is that address has, normally it should be 0x50.
Thanks! |

build failed with Arduino

I'm using marlin bugfix-2.0.x branch, following the setup https://github.com/Aus3D/RUMBA32/wiki/Getting-RUMBA32-Up-&-Running#arduino-setup
first I got the board config error:
image
I changed BOARD_RUMBA32 to BOARD_RUMBA32_V1_0

then I got errors:

Arduino: 1.8.13 (Windows 10), Board: "3D printer boards, RUMBA32, STM32CubeProgrammer (DFU), Enabled (generic 'Serial'), CDC (no generic 'Serial'), Low/Full Speed, Smallest (-Os default), Newlib Nano (default)"
sketch\src\HAL\STM32\timers.cpp: In function 'void HAL_timer_enable_interrupt(uint8_t)':
sketch\src\HAL\STM32\timers.cpp:178:62: error: no matching function for call to 'HardwareTimer::attachInterrupt(void (&)(HardwareTimer*))'
  178 |       timer_instance[timer_num]->attachInterrupt(Step_Handler);
      |                                                              ^
In file included from C:\Users\admin\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.9.0\cores\arduino/stm32/analog.h:45,
                 from C:\Users\admin\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.9.0\cores\arduino/board.h:8,
                 from C:\Users\admin\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.9.0\cores\arduino/wiring.h:41,
                 from C:\Users\admin\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.9.0\cores\arduino/Arduino.h:36,
                 from c:\users\admin\appdata\local\temp\arduino_build_271463\sketch\src\hal\shared\marduino.h:36,
                 from c:\users\admin\appdata\local\temp\arduino_build_271463\sketch\src\hal\stm32\hal.h:28,
                 from c:\users\admin\appdata\local\temp\arduino_build_271463\sketch\src\hal\hal.h:26,
                 from c:\users\admin\appdata\local\temp\arduino_build_271463\sketch\src\inc\marlinconfig.h:30,
                 from sketch\src\HAL\STM32\timers.cpp:24:
C:\Users\admin\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.9.0\cores\arduino/HardwareTimer.h:134:10: note: candidate: 'void HardwareTimer::attachInterrupt(callback_function_t)'
  134 |     void attachInterrupt(callback_function_t callback); // Attach interrupt callback which will be called upon update event (timer rollover)
      |          ^~~~~~~~~~~~~~~
C:\Users\admin\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.9.0\cores\arduino/HardwareTimer.h:134:46: note:   no known conversion for argument 1 from 'void(HardwareTimer*)' to 'callback_function_t' {aka 'std::function<void()>'}
  134 |     void attachInterrupt(callback_function_t callback); // Attach interrupt callback which will be called upon update event (timer rollover)
      |                          ~~~~~~~~~~~~~~~~~~~~^~~~~~~~
C:\Users\admin\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.9.0\cores\arduino/HardwareTimer.h:138:10: note: candidate: 'void HardwareTimer::attachInterrupt(uint32_t, callback_function_t)'
  138 |     void attachInterrupt(uint32_t channel, callback_function_t callback); // Attach interrupt callback which will be called upon compare match event of specified channel
      |          ^~~~~~~~~~~~~~~
C:\Users\admin\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.9.0\cores\arduino/HardwareTimer.h:138:10: note:   candidate expects 2 arguments, 1 provided
sketch\src\HAL\STM32\timers.cpp:181:62: error: no matching function for call to 'HardwareTimer::attachInterrupt(void (&)(HardwareTimer*))'
  181 |       timer_instance[timer_num]->attachInterrupt(Temp_Handler);
      |                                                              ^
In file included from C:\Users\admin\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.9.0\cores\arduino/stm32/analog.h:45,
                 from C:\Users\admin\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.9.0\cores\arduino/board.h:8,
                 from C:\Users\admin\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.9.0\cores\arduino/wiring.h:41,
                 from C:\Users\admin\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.9.0\cores\arduino/Arduino.h:36,
                 from c:\users\admin\appdata\local\temp\arduino_build_271463\sketch\src\hal\shared\marduino.h:36,
                 from c:\users\admin\appdata\local\temp\arduino_build_271463\sketch\src\hal\stm32\hal.h:28,
                 from c:\users\admin\appdata\local\temp\arduino_build_271463\sketch\src\hal\hal.h:26,
                 from c:\users\admin\appdata\local\temp\arduino_build_271463\sketch\src\inc\marlinconfig.h:30,
                 from sketch\src\HAL\STM32\timers.cpp:24:
C:\Users\admin\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.9.0\cores\arduino/HardwareTimer.h:134:10: note: candidate: 'void HardwareTimer::attachInterrupt(callback_function_t)'
  134 |     void attachInterrupt(callback_function_t callback); // Attach interrupt callback which will be called upon update event (timer rollover)
      |          ^~~~~~~~~~~~~~~
C:\Users\admin\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.9.0\cores\arduino/HardwareTimer.h:134:46: note:   no known conversion for argument 1 from 'void(HardwareTimer*)' to 'callback_function_t' {aka 'std::function<void()>'}
  134 |     void attachInterrupt(callback_function_t callback); // Attach interrupt callback which will be called upon update event (timer rollover)
      |                          ~~~~~~~~~~~~~~~~~~~~^~~~~~~~
C:\Users\admin\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.9.0\cores\arduino/HardwareTimer.h:138:10: note: candidate: 'void HardwareTimer::attachInterrupt(uint32_t, callback_function_t)'
  138 |     void attachInterrupt(uint32_t channel, callback_function_t callback); // Attach interrupt callback which will be called upon compare match event of specified channel
      |          ^~~~~~~~~~~~~~~
C:\Users\admin\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.9.0\cores\arduino/HardwareTimer.h:138:10: note:   candidate expects 2 arguments, 1 provided
exit status 1
Error compiling for board 3D printer boards.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

image

dfu mode device not recognized

mac:
FS mode
Screen Shot 2020-06-08 at 7 46 12 PM

dfu mode
Screen Shot 2020-06-08 at 7 45 25 PM

Win 10
VCP_V1.5.0_Setup_W8_x64_64bits.exe installed, it recognized the board worked once to get firmware onto board but I can no longer update the firmware.
FS mode:
fs

dfu mode
dfu

no STM32 bootloader.
Is there a way to load firmware without dfu?

platformio:
`Uploading .pio/build/rumba32_mks/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
dfu-util: No DFU capable USB device available
*** [upload] Error 74`

Rumba32 board V1.00 not showing up in device manager

I currently have 2 rumba32 boards that can't seem to connect to the PC through the USB. The USB led lights up but not the 3v or 5v. There's no activity in LED1 either. Also the board doesn't show up under the device manager either, no ST bootloader and no Rumba32_F44VE CDC in FS mode. Zadig USB driver re-installer is not picking up the board and soldering 100k resistor to PB2 to GND in EXP2 header didn't do anything.

Any advice is greatly appreciated.

Replace MOSFET driver

Switch to a MOSFET driver that will buffer the signal to a higher voltage - the current driver only allows sinking/sourcing higher current, and actually lowers the signal voltage to ~2.9V.

TMC220x on-board UART compability

Hi,
by having a look at the design I noticed that it is missing an important feature to correctly drive the TMC2208 and TMC2209 drivers directly from the MCU. In fact, it looks like you omitted the possibility of choosing between SPI and UART mode: is there a particular reason why you preferred going this way?
Thank you in advance for your time.

Where Rumba32 is manufactured

Hi, there is a discussion between us in Italy, some people have found a German site where they sell Rumba32 for 50 € but made in China.
What do you sell on the Aus3d website made by you in Australia or is that made in China?
If it's made in China, tell me why it costs almost three times as much?
I for my choice do not buy any product made in China. So knowing that your card is made in Australia makes me happy, but if it is made in China I would be deeply saddened.
Thanks for any replies.

Flash without button press

Hi,
I ask you if I can flash the board without pressing the boot and reset keys, since the card is in an awkward position in the printer. Thank you very much for helping.

Lorenzo

Stepper Drivers not working

Hello All!

I am a bit new to 3D printing electronics and recently have started to work on upgrading the hardware of a 3D printer from Rumba+ to Rumba32. I have made all the necessary connections that were being used in the existing Rumba+ board.

I am using TMC2130 stepper drivers in SPI mode and receive the following output for the M122 command but unfortunately, my printer's stepper motors don't move at all. Can anyone please let me know the further debugging steps to detect and fix the problem?

Here's a snippet of my serial output:
image

Please let me know your thoughts and let me know if I need to provide more details.

Y-stepper problems when using Marlin

Hi @chrissbarr,

after struggling for quite a while my 3D printer is working again, this time with a RUMBA32 v1.0 board. I followed your advice in another topic [https://github.com//issues/35] to get TMC2208 steppers working in UART mode and for most part it works fine now. However, for some reason any stepper connected to the "socket" labeled "Y" does not move at all. Using the M122 to debug the TMC connections indicates no problems at all and also no error message is shown on the grapical display connected to the board. When trying to move the Y-axis everything seems completely fine, but the motor does not move.

When connecting a logic analyzer (SaleaLogic clone) to the STEP and DIR pins of the X-socket and the Y-socket, it turned out that pulses were presented to the STEP pin of the X-stepper (when X-motion was requested) but that the Y-stepper did not get any pulses at all on the STEP line when trying to move the Y-axis. At that point I did not know how to proceed. Is it a known problem?, is something wrong with my Marlin configuration? I'm kind of clueless at the moment.

For this moment I managed to work around it by connecting the Y-stepper to the E2-socket (E1 is already in use for dual Z-steppers), but this does remove the option of a dual extruder and if I'm the only one experiencing this, there is probably something wrong with my setup.

I tried with Marlin 2.0.6.1, Marlin 2.0.7.1 and the debug-2.0.x branch using PlatformIO and all resulted in the same behavior.
Any tip, hint or clue about how to solve this problem is greatly appreciated!

How to connect tft display

Hey,

I've got a BTT tft35 e3 (https://github.com/bigtreetech/BTT-TFT35-E3-V3.0) display which I'm trying to connect via the rs232 port on the display.

On the Rumba32 board, I'm using PA10 and PA09 pins which should be UART.

In Marlin configuration, I've got both
#define SERIAL_PORT -1
#define SERIAL_PORT_2 1
defined but the display can't seem to connect to the board.

Is it an issue with my configuration? or did I connect it incorrectly?

Any help would be greatly appreciated.

Thanks!

Board does not run with Marlin 2.0 PlatformIO compile

I am trying to do the following without success:

  1. Compile Marlin-2.0.x
  2. Upload it to the board
  3. Have the board do its usual reset and start running Marling.

Marlin setup

Marlin versions affected:
Marlin-2.0.x (currently 2.0.5.3)

Marlin configurations:
These are the only Configuration.h changes that I am making to keep the process simpler:

#define SERIAL_PORT = -1
#define MOTHERBOARD BOARD_RUMBA32_AUS3D
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
#define X_DRIVER_TYPE A4988
#define Y_DRIVER_TYPE A4988
#define Z_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE A4988

Configuration_adv.h not changed at all

Compilation Issues

  1. First compile issue: Arduino IDE compile is impossible. It fails with any version of STM32duino (1.9.0). Abandoned this approach for PlatformIO. I hope instructions for future users are updated to encourage include PlatformIO. Issue #22.

  2. Marlin platformio.ini file for RUMBA32 is incorrect. It needs to be changed (Issue #21, Issue #11 )
    This is what the Marlin platformio.ini has for BOARD_RUMBA_32_AUS3D (with annotated changes/questions):

[env:rumba32_f446ve]
platform = ststm32
board = rumba32_f446ve
build_flags = ${common.build_flags}
-DSTM32F4xx
-DARDUINO_RUMBA32_F446VE
-DARDUINO_ARCH_STM32
"-DBOARD_NAME="RUMBA32_F446VE""
-DSTM32F446xx
-DUSBCON
-DUSBD_VID=0x0483 --> CORRECT? (See here RUMBA MKS board uses 0x8000. It compiles with either value, but what is the correct one and does it matter?)
"-DUSB_MANUFACTURER="Unknown""
"-DUSB_PRODUCT="RUMBA32_F446VE""
-DHAL_PCD_MODULE_ENABLED
-DUSBD_USE_CDC
-DDISABLE_GENERIC_SERIALUSB
-DHAL_UART_MODULE_ENABLED
-Os
lib_ignore = Adafruit NeoPixel
**src_filter = ${common.default_src_filter} +<src/HAL/STM32> --> MISSING ENTRIES absolutely needed to compile: +<src/HAL/STM32_F4_F7> -<src/HAL/STM32_F4_F7/STM32F7> **
** monitor_speed = 500000 --> Should this be 250000 ? **
upload_protocol = dfu
lib_deps = ${common.lib_deps} --> MISSING (See here and issue #11 )

Modifying the platformio.ini file compiles successfully, however:

Uploading and Running (or not)

With the platformio.ini setting for upload_protocol=dfu, the compiler attaches a dfu suffix to the firmware.bin file:
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [= ] 5.4% (used 7060 bytes from 131072 bytes)
Flash: [== ] 17.4% (used 91124 bytes from 524288 bytes)
Adding dfu suffix to firmware.bin
dfu-suffix (dfu-util) 0.9

Copyright 2011-2012 Stefan Schmidt, 2013-2014 Tormod Volden
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Suffix successfully added to file

And it can be uploaded to the RUMBA32 (in Bootloader mode). It uploads successfully:

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 = 91644
Download [=========================] 100% 91644 bytes
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state

After successful compile I expect the board to reset and start running the program But then the board does not restart. The orange LED1 does not flash at all and there is no way to get the board to start running Marlin.
Doing an lsu's (MacOS), I can see the board is connected in "FS mode". I don't know what that is but there is no communication with the board via host software (Pronterface).

Bus 020 Device 025: ID 0483:5740 STMicroelectronics RUMBA32_F446VE CDC in FS Mode Serial: 376933553337

I don't know what else to try at this point. I am very frustrated with this. For now, my board is bricked. Any help is appreciated.

How to connect MAX6675

Hello,

I have a Rumba32 v1.1 board
How can I connect the MAX6675 board, so that I can use a thermocouple?
In Marlin I have already changed the setting

#define TEMP_SENSOR_0 -2

The MAX6675 board has a SCK, CS and a SO Pin. Where do I have to connect those pins to the rumba32 board?

best regards,
Hanz

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.