prusa3d / Prusa-Firmware

Firmware for Original Prusa i3 3D printer by PrusaResearch
GNU General Public License v3.0
2.03k stars 1.06k forks source link

Unable to flash firmware on Einsy Rambo 1.1b #2486

Closed papaiatis closed 4 years ago

papaiatis commented 4 years ago

I'm trying to flash the most recent stock firmware (3.8.1) on my recently bought Einsy Rambo 1.1b.

I plugged the machine to power outlet and connected the USB cable. Using Prusa Slicer I started to flash the firmware. The writing and reading process were successful but the third step fails. Here's the output: https://pastebin.com/T2J0fy8Z

Any idea what could be the problem? Thanks!!!

leptun commented 4 years ago

Can you please post a photo with the front of the board? It fails to upload the language section of the hex file on the external chip. Maybe there is an issue with it. In any case, if you don’t use languages other than english, this will not influence the functionality of the firmware for now.

leptun commented 4 years ago

Also, from where did you buy the einsy board?

papaiatis commented 4 years ago

Hi @leptun Thanks for your reply. English language is enough for me. So you are saying that I should be able to start the board/printer even though the third process failed? Because I'm not able to. The LCD is blank too.

Also I'm not sure if it has a valid bootloader or not.

I bought it from China. Let me know if you need more photos.

IMG_20200212_074917

IMG_20200212_074750

IMG_20200212_074909

leptun commented 4 years ago

Ok. This changes things a lot. You have to flash the custom bootloader on the atmega2560 and also set the correct fuse settings. You need an icsp programmer for this or an arduino as isp. I think that if you do that everything should work.

papaiatis commented 4 years ago

I have some Arduinos around. Could you please point me to the place where I can download the mentioned custom bootloader? And the fuse settings?

leptun commented 4 years ago

I’ll try to search for some good instructions for this.

leptun commented 4 years ago

Ok. So I tried compiling a list of instructions:

Let me know if this fixes your issue. Please note that I recommend that you power the printer board from the power supply while you try to upload the bootloader. The Arduino's USB might not deliver enough power for both boards to function. Plugging the Einsy USB does not power the board, unlike with the arduino.

papaiatis commented 4 years ago

Thanks a lot @leptun for the great instructions! I managed to upload the bootloader and after that I also managed to upload the firmware with PrusaSlicer. However, the machine still not starting up. I still have a blank LCD.

I connected the printer to my laptop and checked the serial debugs and that's what I see:

image

"SD init fail" got my attention. I have an old (~5yrs) LCD display which worked fine for my previous printer. On the back of the LCD I see these texts: "RepRapDiscount Smart Controller" and "Robotale 3D_Print" and "2013-0729 SmatrConteallerD.PCB". It is a red color PCB.

When I push the button I hear the click sound though.

leptun commented 4 years ago

Maybe one of the cables is reversed? Otherwise I don’t know why it wouldn’t work.

papaiatis commented 4 years ago

I checked the cables, they're fine. I have two pairs of them. Tried to reverse them, to no avail.

So what do you think about "SD init fail" ? Could that be the culprit why the LCD does not work too? The board can't communicate with the LCD?

leptun commented 4 years ago

There seems to be one more issue with it: The W25X20CL (SPI external flash for languages) is not initialized successfully. Does it initialize correctly if you unplug the LCD cables (error message gone)? If the cables are swapped/connected incorrectly in any way, the SPI bus might not work properly.

Here are some LCD schematics that might help you: image image

papaiatis commented 4 years ago

When LCD is unplugged the line "W25X20CL not responding." is missing from the output.

Since this issue was about the flashing, I'm closing this now since it was resolved. I opened another ticket for the LCD issue here: https://github.com/prusa3d/Prusa-Firmware/issues/2489

husqy-701 commented 2 years ago

@leptun I'm trying to follow the steps that you wrote above and having an issue. when im trying to choose the programmer as so: 'Tools -> Programmer -> Arduino as ISP'. it says "no programmer available for this board" (as shown in the picture) image

also, i tried to use the second board "Original prusa i3 mk3 multi material 2.0 upgrade" that came with it when i installed the prusa board as written in your instructions. and stumbled upon error while burning bootloader "avrdude: Yikes! Invalid device signature." (also shown in picture)

Thanks for everything you wrote here!

leptun commented 2 years ago

@husqy-701 Huh. That's really weird. I have the same issue as you. I am using arduino 1.8.16. I just tested on arduino 1.8.5 and the programmers are back. For the time being, please use that old version. Here is a download link of arduino 1.8.5 for windows in zip file format (not installer): https://downloads.arduino.cc/arduino-1.8.5-windows.zip

@3d-gussner fyi. We should investigate what changed in arduino that broke our board definitions.

husqy-701 commented 2 years ago

@leptun It worked, the programmer did show up this time! but im stumbling upon the same error as before while burning.

arduino programmer Burning error

leptun commented 2 years ago

It would help if you showed the entire log. What signature does it read back? If it's 0x000000 or 0xfffffff or something along those lines, then it's a wiring error, so check the wires and try again. Worst case is that the board got fried somehow. Unlikely, but it's still a possibility.

husqy-701 commented 2 years ago

Tried to find on the web how to read the signature. unfortunately i'm new to arduino and couldnt find how to do that.

could you explain please how to do that?

btw, checked the wiring again and all seems good. maybe, its worth mentioning that when i assembled the printer i accidantly connected the lcd cables inverse and than corrected it. after that, i ran the setup wizard until it had a issue with one of the axis. turned off the printer, checked the axis. than tried to ran again and it stuck on "prusa reaserch original i3" for ever..

leptun commented 2 years ago

image I think you need to enable those to get any meaningful information besides the error.

husqy-701 commented 2 years ago

You right!

this is the full error message:

Arduino: 1.8.5 (Windows 10), Board: "PrusaResearch Einsy RAMBo"

C:\Users\ilan1\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CC:\Users\ilan1\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -v -patmega2560 -cstk500v1 -PCOM9 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xD8:m -Ulfuse:w:0xFF:m

avrdude: Version 6.3-20190619 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2014 Joerg Wunsch

     System wide configuration file is "C:\Users\ilan1\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"

     Using Port                    : COM9
     Using Programmer              : stk500v1
     Overriding Baud Rate          : 19200
     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 : STK500
     Description     : Atmel STK500 Version 1.x firmware
     Hardware Version: 2
     Firmware Version: 1.18
     Topcard         : Unknown
     Vtarget         : 0.0 V
     Varef           : 0.0 V
     Oscillator      : Off
     SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0xffffff (probably .avr8x_mega) (retrying)

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0xffffff (probably .avr8x_mega) (retrying)

Error while burning bootloader. Reading | ################################################## | 100% 0.03s

avrdude: Device signature = 0xffffff (probably .avr8x_mega) avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check.

avrdude done. Thank you.

so, i Checked the wiring again... No luck again...

maybe this board is dead....

WhatsApp Image 2022-02-16 at 12 24 42 WhatsApp Image 2022-02-16 at 12 24 39

leptun commented 2 years ago

Do you get something on the LCD if you power up the board? If you do, then the existing bootloader code is functioning and the board is not dead

husqy-701 commented 2 years ago

yeah. this what i get, and it stuck like that for ever. WhatsApp Image 2022-02-16 at 13 09 47

leptun commented 2 years ago

Then it's not fried. There is no "..." in the bottom right, so the firmware attempts to boot. Open a serial port to the einsy board via its usb port at baudrate 115200 and post what the board says during bootup.

Also, please post the failed upload log.

husqy-701 commented 2 years ago

when the board turned on it wont send anything. and if i press ENTER few times it says "command not found!" image

leptun commented 2 years ago

What do you get back if you send ;C32u2_FWV?

husqy-701 commented 2 years ago

im getting this image