Is there a reason why the baud rate for Ender 3 (in the example configuration) is set to 115200 instead of "standard" 250000? As I know, the Ender 3 board contains a 16 MHz microcontroller and the most optimal baud rate for 16 MHz is 250000. I print using Octoprint and sometimes complex movements causes short lags, so I would like to increase the baud rate from 115200 to 250000 (it runs on Raspberry 3, so the CPU is not a problem).
then try it and be happy 馃槈
Of course, I will try - but I'm just curious why is set as is and differs from the main default config, where the baud rate is set to 250000. I have a second printer with a Mini-Rambo board and it works on 250000 without problems.
I think the default Ender 3 configuration is aligned to the Ender3 official confg, which has 115200 so...
It was me that replied there on reddit, I've been using a 250000 baudrate on my 1284P Ender 3 Pro without issues ever since.
Data sheet, this is of course just the MCU (1284P) , I don't know about the USB-serial interface on these boards.
There are some various mentions [1] on-line of sanguino boards not being happy on higher baudrates, but I haven't had a problem as of yet.
[1] https://github.com/MarlinFirmware/MarlinDocumentation/blob/master/_configuration/configuration.md
The serial communication speed of the printer should be as fast as it can manage without generating errors. In most cases 115200 gives a good balance between speed and stability. Start with 250000 and only go lower if "line number" and "checksum" errors start to appear. Note that some boards (e.g., a temperamental Sanguinololu clone based on the ATMEGA1284P) may not be able to handle a baudrate over 57600. Allowed values: 2400, 9600, 19200, 38400, 57600, 115200, 250000.
I wonder though, if those short lags are actually caused by the buffer running out rather than the baudrate.
this is the balance between quartz and chip.
Expanding on my previous post, I took a look at the board and found out it's using a FT232R as the USB-serial interface. This FT232R has an internal oscillator running at 12 Mhz, but also an option to run on an external oscillator. I don't know how it's implemented on the board without taking it out of my printer.
Anyway, let's continue reading the datasheet [1] for the FT232R. Page 16 tells us that the baudrate generator can generate baudrates following this formula:
Baud Rate = 3000000 / (n + x)
Where n
is any integer between 2 and 2^14 and x
can be 0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, or 0.875.
Applying this, we can see that we can obtain 250000 baud following 3000000 / ( 12 + 0 )
Thus we can assume the USB-serial interface chip is also designed to be capable of 250000 baud.
Considering we know that the 1284P on the board is also capable of 250000 (with lower error rate), we might safely assume that 250000 baud is OK to use.
[1] https://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT232R.pdf
If that was too long; try it and see if it breaks. You're probably fine.
If anybody with better knowledge about this can jump in and teach me something that would be great, I'm just going off data sheets here.
Something I don't know, for example, is how MCU load factors in. I'm assuming that a higher data rate will require more MCU time, which then can't be spent on running Marlin operations?
In closing, I dug through to commits to find https://github.com/MarlinFirmware/Marlin/pull/10588
Here, the example config for this printer is first introduced to the codebase. It has 11520 baudrate. The commit mentions this was a replication of the stock setting [1] of the printer. We can also see [2] that this baudrate was the default setting from the manufacturer and I think it's logical to keep that setting so users switching over aren't faced with a sudden change in baudrate.
If this answers your question, please close the issue :)
[1] https://pastebin.com/vxV8etsJ
[2] https://github.com/Creality3DPrinting/Ender-3/blob/master/Ender-3%20Firmware%20(Marlin)/Ender-3%20(includes%20power%20failure%20resume-%20English)/Marlin/Configuration.h#L28
115.2K is safer and more reliable. Go ahead and use 250K if it works for you.
115.2K is safer and more reliable. Go ahead and use 250K if it works for you.
Out of curiosity, why is that - as the datasheets seem to imply differently? Is this because of software / driver support (i.e. 250k isn't a "traditional" baudrate in the sence of multiplication of 75 baud ttype)?
Just curious here, and I couldn't find a good clarification elsewhere.
Lower baud rates are less susceptible to noise and bad USB cables.
115.2K is safer and more reliable. Go ahead and use 250K if it works for you.
Official Ender-3 Pro use 250000 baud rate so it is better to change this settings in default Ender-3 configuration to 250000 for better compatibility.
I think the motherboard is different between the ender3 and ender3 pro, which can explain the difference between the baud rates.
Only issue i see with 250000 baud is cura occasionally has trouble connecting where it seems fine at 115200 on anything. These long standing bugs (and the lightspeed feedrate from the other issue) are a big part of why i havnt used it in a long time.... Otherwise yes, 250000 will likely produce less jitter and if my memory is correct thats why it was set as the typical default in the first place.
Just to clarify, the creality controllers use ch340g usb uarts not FTDI.. so most of swilkens post does not apply perse.
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
Most helpful comment
Expanding on my previous post, I took a look at the board and found out it's using a FT232R as the USB-serial interface. This FT232R has an internal oscillator running at 12 Mhz, but also an option to run on an external oscillator. I don't know how it's implemented on the board without taking it out of my printer.
Anyway, let's continue reading the datasheet [1] for the FT232R. Page 16 tells us that the baudrate generator can generate baudrates following this formula:
Baud Rate = 3000000 / (n + x)
Where
n
is any integer between 2 and 2^14 andx
can be 0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, or 0.875.Applying this, we can see that we can obtain 250000 baud following 3000000 / ( 12 + 0 )
Thus we can assume the USB-serial interface chip is also designed to be capable of 250000 baud.
Considering we know that the 1284P on the board is also capable of 250000 (with lower error rate), we might safely assume that 250000 baud is OK to use.
[1] https://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT232R.pdf
If that was too long; try it and see if it breaks. You're probably fine.
If anybody with better knowledge about this can jump in and teach me something that would be great, I'm just going off data sheets here.
Something I don't know, for example, is how MCU load factors in. I'm assuming that a higher data rate will require more MCU time, which then can't be spent on running Marlin operations?