Firmware Prusa Bootloader

Continuing the discussion from [V1 MiniRambo For Prusa MK2.5S]

Friends Good morning, please, I’m new to 3d printing and programming, I would like to know how I connect Rambo1.3a to upload Bootloader for upload Firmware Prusa Mk2.5s, as the board was purchased from China and does not come with Bootloader specifico, I just found tutoring for Eynsi Rambo could help me Thank you.

[14/9 08:41] Samuel Pereira Conegunes: if you manage to install the correct bootloader, the Firmware should be flashable normal way as you tried already.
Our bootloader is available here:
Let me know if you have any other questions.
[14/9 08:42] Samuel Pereira Conegunes: se você conseguir instalar o bootloader correto, o Firmware deve ser flashável da maneira normal como você já tentou.

Nosso bootloader está disponível aqui:

Deixe-me saber se você tem alguma dúvida.

There are some translation issues at the bottom of your question, so I’m not sure I’m getting all the question. I have a Prusa I3 Mk3. Assuming the printer you have and the Rambo 1.3a board are supported through the same mechanism , the process is:

  • Install Prusa slicer
  • Download the firmware and unzip to a known location
  • Connect the board via USB
  • In Prusa Slicer select Configuration/Flash printer firmware
  • From the dialog select the firmware you unzipped and the port where your board is attached
  • Click Flash

Note as an alternate, there is a tool called XLoader. You will need to download the the binary firmware file from Prusa to use XLoader, but you don’t need to install or use Prusa Slicer. See this documentation for more information on XLoader.

Definitely try what Robert suggested first, but those depend on the board already having a bootloader. To flash the arduino bootloader, you need an ISP (in service programmer?) And there are about 5 pins you need to connect. There is a button in the arduino ide menus to flash a bootloader. Then you can use Robert’s method.

I have done it (not with a rambo) but it isn’t something I know the details of from memory. I would google for a good tutorial on flashing an arduino bootloader.

You can also use another arduino as the ISP, but if you have to buy something, the dedicated ones work better.

Robert Good morning, the board for being Chinese, comes without Bootloader Prusa, I had to remove the link from the conversation because it didn’t allow comments to be uploaded, with xloader it will replace what Prusa Recommends.

Nosso bootloader está disponível aqui:

Jeff Good morning, friend, that’s the question, I have Bootloader link because the board came from China without it, but I don’t know how to make connections via arduino, or ISP I can’t find tutorial I just found for Eynsi Rambo.

Just be sure, most boards come from China with a bootloader. I don’t know where you got yours but the only places I’ve seen where they don’t come with a bootloader is in things like ender printers. If you haven’t already tried to flash it, then make sure your try to just flash it. It would save you a lot of trouble.

Here is a tutorial. It is for a regular arduino, but the process is the same:

https://learn.sparkfun.com/tutorials/installing-an-arduino-bootloader/all

You need to get the right ISP pins:

There are ICSP headers because there are technically two atmega chips on the ramps. You want the 2560, not the 32u. It is either the one under Fan 2 or above the Z endstop.

There is a little more info here, but I don’t see a way to tell which one is which.

2 Likes

Here’s another link that looks promising. It indicates that ICSP1 is for the 32u and ICSP is for the 2560:

https://www.reprap.org/wiki/Rambo_development#Programming_Bootloaders

So that leads me to believe it is the one closer to Fan 2.

1 Like

So just to be clear here about the nature of the problem. A bootloader is a small body of code that is executed when the board is booted that facilitates updating firmware on a board. With it installed, most computers can update firmware directly. Without it, you need extra hardware. Jeff mentions an ISP for installing a bootloader. It can also be done using a second Arduino…at least I’ve done it using a second Arduino for Arduino Nanos, and should work for the Rambo board.

My confusion is that you refer to “Prusa bootloader.” I’ve always assuming there is no special Prusa bootloader. I assumed that you were mixing up bootloader with firmware. I thought that there was just a standard (Arduino?) bootloader for the Rambo boards. In searching the net, I cannot get a definitive answer, but it appears that either 1) there is no special bootloader, or 2) if Prusa does have one, it is not “special” in the sense that you would need to install their bootloader to get their firmware to work.

As for XLoader, it does not replace the bootloader. If you don’t have a bootloader, you need to follow Jeff’s instructions to get one installed before you can proceed. XLoader is just an alternate way to update the firmware. It is a standalone tool that is doing the same thing that Prusa Slicer does in my steps above.

ok Friend, I’m going to gather the information and make the process now it’s clearer thanks a lot for the help I’m going to acquire material for Up Bootloader

this is the message I gave when I tried to upload without Bootloader Prusa.

Ari via slicer.

avrdude-slic3r -v -p atmega2560 -c wiring -P COM3 -b 115200 -D -U flash:w:0:C:\Users\Samuel Conegunes\Downloads\prusa3d_fw_3_10_0_MK25S\prusa3d_fw_MK25S_3_10_0_4481_RAMBo13a_en-cz.hex:i

avrdude-slic3r: Version 6.3-20160220-prusa3d, compiled on Jul 16 2021 at 12:28:18
Copyright (c) 2000-2005 Brian Dean,

            Copyright (c) 2007-2014 Joerg Wunsch 


            Using Port                    : COM3 
            Using Programmer              : wiring 
            Overriding Baud Rate          : 115200 

avrdude-slic3r: stk500v2_getsync(): got response from unknown programmer , assuming STK500
AVR Part : ATmega2560
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PA0
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :

                                     Block Poll               Page                       Polled 
              Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack 
              ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- 
              eeprom        65    10     8    0 no       4096    8      0  9000  9000 0x00 0x00 
              flash         65    10   256    0 yes    262144  256   1024  4500  4500 0x00 0x00 
              lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00 
              hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00 
              efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00 
              lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00 
              calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00 
              signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00 

            Programmer Type : Wiring 
            Description     : Wiring 
            Programmer Model: STK500 

avrdude-slic3r: stk500v2_command(): warning: unknown, code 0x90
avrdude-slic3r: stk500v2_getparm(): failed to get parameter 0x90
avrdude-slic3r: stk500v2_command(): warning: unknown, code 0x91
avrdude-slic3r: stk500v2_getparm(): failed to get parameter 0x91
avrdude-slic3r: stk500v2_command(): warning: unknown, code 0x92
avrdude-slic3r: stk500v2_getparm(): failed to get parameter 0x92
Hardware Version: 0
Firmware Version Master : 0.00
avrdude-slic3r: stk500v2_command(): warning: unknown, code 0x9a
avrdude-slic3r: stk500v2_getparm(): failed to get parameter 0x9a
Topcard : Unknown
avrdude-slic3r: stk500v2_command(): warning: unknown, code 0x94
avrdude-slic3r: stk500v2_getparm(): failed to get parameter 0x94
Vtarget : 0.0 V
avrdude-slic3r: stk500v2_command(): warning: unknown, code 0x98
avrdude-slic3r: stk500v2_getparm(): failed to get parameter 0x98
avrdude-slic3r: stk500v2_command(): warning: unknown, code 0x95
avrdude-slic3r: stk500v2_getparm(): failed to get parameter 0x95
avrdude-slic3r: stk500v2_command(): warning: unknown, code 0x96
avrdude-slic3r: stk500v2_getparm(): failed to get parameter 0x96
avrdude-slic3r: stk500v2_command(): warning: unknown, code 0x97
avrdude-slic3r: stk500v2_getparm(): failed to get

parameter 0x97
SCK period : 0.5 us
Varef : 0.0 V
Oscillator : Off

avrdude-slic3r: stk500v2_command(): warning: unknown, code 0x9e

avrdude-slic3r: stk500v2_setparm(): failed to set parameter 0x9e
avrdude-slic3r: stk500v2_command(): unknown status 0xc8
avrdude-slic3r: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

avrdude-slic3r: stk500v2_command(): unknown status 0x01
avrdude-slic3r: stk500v2_disable(): failed to leave programming mode

avrdude-slic3r done. Thank you.

Are you sure you had the 12V connected? It won’t work with only the USB connected.

Yes, 12v

Ola Jeffeb, amigo consegui achar firmware para arduino mas agora da esta dando erro ,estou usando Windows 10 IDE arduino 1.8.16.

Por favor me ajude…

wiring.c.o (symbol from plugin): In function __vector_23': (.text+0x0): multiple definition of __vector_23’
sketch\heatbed_pwm.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
exit status 1
Erro compilando para a placa RAMBo