cimoalpacino / My-Prusa-Firmware

Edits to Prusa Firmware without forking
GNU General Public License v3.0
2 stars 0 forks source link

comming from 3d-gussner/Prusa-Firmware/issues/60 #1

Closed boelle closed 5 years ago

boelle commented 5 years ago

so can i use this repro too?

one thing i note in the readme is that Silent/loud mode is removed, but there is support added for TMC2130, should they not be able to have a kind of silent/loud mode?

and can i disable the filament sensor that has been added?

boelle commented 5 years ago

another Q... my mendel90 frankenbuild has the endstops in the max pos, is it still possible to home to max? and how would i change the config to do that?

i have both dual z drivers and dual z endstops but my guess is that is not supported and that your version of the firmware do like a prusa and during Z calibration it will just go up and make noise to sync them and then use the probe for homing and bed level

could be nice thou to use endstops instead as it sounds less "nasty"

cimoalpacino commented 5 years ago

Hi @boelle, let me answer all your questions.

  1. I have an Original Prusa MK2.5 that i upgraded from my MK2S. The lefover parts (MK42 bed, PINDA v1, fan...) were used to build a new Prusa Bear printer, where I used RAMPS electronics. So my setup is actually a MK2S that i just named MK2S+ :)

  2. I don't have a file in Variants folder, as the file Configuration_prusa.h is already in the main Firmware folder.

  3. All changes to the original firmware are marked with the text /*RAMPS*/, so that I could keep track of what I have modified and thus make it easier to lokate all changes in Visual Studio with the Search function :)

  4. I have modified quite a bit of stuff, but to make the board work correctly, you would mainly have to adjust the Configuration_prusa.h. Some changes might be needed in two more areas, since my calibration points were (due to my setup) in a slightly offset position from the original configuration. If calibration fails, be sure to check if your bed point align with those in file mesh_bed_levelling.h and 'mesh_bed_calibration.cpp'. I just remembered, I use a G3D display, but the fw could be easily set for Original Prusa (reprap) display!

So, my hardware is:

Enabled Prusa Firmware features:

Disabled Features:

I could write a Readme.md file with config instructions if interest would rise. I might also need some help from @3d-gussner to edit and simplyfiy my code :)

boelle commented 5 years ago

So at least we have the same hardware (more or less)

What I do know from my settings (marlin), is that I can get the nozzle to touch 0,0 in lower left corner, if I ask printer to, Took me a long time to dial things in, but I hope that it will pay off.

The reason for wanting dual Z endstop, is so that when it homes Z, it will sync them. I'm not a big fan of just going up and "slam" against the printed parts

boelle commented 5 years ago

Configuration.zip

and my configs from marlin if that makes it more clear how my setup is currently

cimoalpacino commented 5 years ago

Of course it could be set to min or max endstop. Settings have to be set in Configuration_prusa.h. Also, after compiling the code, you should check the movement of axis, if they move left/right, front/back, up//down correctly. If not, you should change the INVERT parameter for that axis. You can use a reprap display (there's just few lines of code that need to be changed). I don't have any experience with other drivers, other than A4988.

I also looked at your .zip file and I see you have a re-arm board with Ramps 1.6. I have Arduino Mega with Ramps 1.4. I'm not familiar with your board and your pinout. Also the chip is different. Check: https://www.youtube.com/watch?v=TtYmx60rZh0

boelle commented 5 years ago

yes i included the config files just as a reference so that you had a change to compare my settings with what i say

its a re-arm and Ramps 1.4, but i do have a few mega boards arround

the drivers i have behave much like A4988, but it could be nice to change to TMC2130 and have the auto/silent/normal options

boelle commented 5 years ago

so tomorrow i think i will find the mega board and start copy over my current settings and se how far i get, as i do not have the the display i might stop pretty fast, but octoprint might allow me to get it going

boelle commented 5 years ago

so i have started to copy over the few settings i need

i'm at line 150 in Configuration_prusa.h

define X_MIN_ENDSTOP_INVERTING 1

but there is no option for X_MAX, can i just add that? and then i thought why not try to compile and i got an error

https://pastebin.com/MTE5Hf0Y

image

maybe because i selected reprap type display? will try and test that thought

EDIT: bo it happens with both display types

boelle commented 5 years ago

found where to invert max endstops, line 248 in configuration.h, would it be wrong to copy them to configuration_prusa.h? or should they be moved?

boelle commented 5 years ago

i tried to compile the code unmodified, still the same error

are there any special requirements other than setting to mega2560 board ?

boelle commented 5 years ago

I tried with IDE 1.8.5 and 1.9.0, both have the same compile error, maybe @3d-gussner knows what is going on?

3d-gussner commented 5 years ago

@boelle @cimoalpacino Hi, if you want to compile Prusa Firmware you should use Arduino IDE 1.8.5 . I assume you are using the MK3 branch, right? At least it looks like from the screenshot.

As all Arduino IDE versions use the same shared space I advise people to use Ardunio IDE in portable mode as described in my Wiki . Even this Wiki is bit older you get the idea. Never ever update AVR Boards in the Arduino IDE Board Manager these must stay as they have been downloaded.

I also wrote the PF-build.sh script to build a stable and supported Prusa Firmware environment. So you might want to have a look at that to compile your Firmware. Instructions are here for Linux subsystem and here for git-bash

@boelle It would be great if you had a fork where we could look to your code.

X_MAX_ENDSTOP_INVERTING isn't used by Prusa so you might have to code bit more to get that running. You could/should move it from Configuration.h to your /variants/Prusa_MK25_RAMPS.h file. Searching for ENDSTOP_INVERTING in all MK3 branch files shows that X_MIN_ENDSTOP_INVERTINGis used in several files. Also X_MAX_ENDSTOP_INVERTING is in few but for example not in the ultralcd.cpp which could cause some issues.

As Prusa Firmware is capable of multiple language support the default setting in the config.h is set to

//LANG - Multi-language support
//#define LANG_MODE              0 // primary language only
#define LANG_MODE              1 // sec. language support

If you don't know how to manually compile a multi-language version or use the PF-build.sh script you should read this and change the Firmware to English Only.

hope that helps for the moment

boelle commented 5 years ago

@3d-gussner

fork here: https://github.com/boelle/My-Prusa-Firmware/tree/MK3_3.8.0_RAMPS/Firmware

need to enable issues on it as my defaults are to turn it off, i rarely use github for other than to keep stuff updated (update&rebase)

next to setup ide 1.8.5

boelle commented 5 years ago

@3d-gussner since i will not use a rambo i guess i can skip this step:

Choose File -> Preferences and set "Additional Boards Manager URLs" to the RAMBo repository: https:// raw.githubusercontent.com/ultimachine/ArduinoAddons/master/package_ultimachine_index.json

will need to figure how to edit mega2560 files instead, but should not be a problem

cimoalpacino commented 5 years ago

I've just compiled my code successfully. Be sure to edit platform.txt in the arduino folder as it is written in Prusas' Readme.md instructions. Also, you need to use Arduino Mega2560, not Rambo in Arduino IDE.

image

boelle commented 5 years ago

yep, there are 2 platform.txt files

one in arduino-1.8.5\hardware\arduino\avr and one in \arduino-1.8.5\hardware

the text to look for: compiler.c.elf.flags={compiler.warning_flags} -Os -Wl,--gc-sections is not in any one them

boelle commented 5 years ago

image

cimoalpacino commented 5 years ago

I think you'll get started easier, if you first try to edit and compile this 3.0.6 version of Prusa. If you get this working, then there's less hassle and no need to edit any .txt file ;)

https://github.com/sakibc/Prusa-Firmware-RAMPS

boelle commented 5 years ago

will divert from @3d-gussner page and edit \AppData\Local\Arduino15\packages\arduino\hardware\avr\ instead of \arduino-1.8.5\portable\packages\rambo\hardware\avr\1.0.1\platform.txt

boelle commented 5 years ago

going with this one for now: https://github.com/prusa3d/Prusa-Firmware/blob/MK3/README.md

need to find the correct platform.txt to edit

boelle commented 5 years ago

downloading https://github.com/sakibc/Prusa-Firmware-RAMPS

boelle commented 5 years ago

success compiling https://github.com/sakibc/Prusa-Firmware-RAMPS

so now i just replace or rename the firmware folder and put your/mine/our copy in there and try to compile again?

boelle commented 5 years ago

had the same fail again

here is what i did:

even if i download your copy and try to compile it without any changes at all it fails

boelle commented 5 years ago

is there a way i could try compile what you have on your pc right now? not sure how big zip file github allows, just to rule out that ide on my pc do something wrong or that my changes is wrong

but its just strange that even if i download and extract your copy it fails, even before i do any changes

but the link to 3.1.0 (and not 3.0.6) https://github.com/sakibc/Prusa-Firmware-RAMPS it works without any issue

but i hoped that i could update the firmware on a regular basis, not sure how to to that with the https://github.com/sakibc/Prusa-Firmware-RAMPS link

boelle commented 5 years ago

i have now forked prusa, made a new branch based on 3.1.0 and called this ramps then i replaced all files with the content from https://github.com/sakibc/Prusa-Firmware-RAMPS

will now attempt to update to latest version

boelle commented 5 years ago

i give up :-/

so i'm kind of stuck with 3.1.0 for now, but at least i can experiment with that

boelle commented 5 years ago

got some sort of life using https://github.com/sakibc/Prusa-Firmware-RAMPS

`Printer is now online. echo:echo: Last Updated: Sep 27 2019 22:49:43 | Author: (none, default config) Compiled: Sep 27 2019 echo: Free Memory: 2537 PlannerBufferBytes: 1360 echo:Hardcoded Default Settings Loaded echo:SD card ok

M114 SENDING:M114 M119 SENDING:M119 M119 SENDING:M119 M105 SENDING:M105 M500 SENDING:M500`

but as you see nothing happens if i send commands, for now i just use a seperate sd card slot or else it fails reading the card and locks me out... or maybe it is doing that now also?

boelle commented 5 years ago

so i cleared the eeprom with the example sketch in ide and then flashed firmware again

now its a bit different

Connecting... start Printer is now online. echo:echo: Last Updated: Sep 28 2019 00:03:01 | Author: (none, default config) Compiled: Sep 28 2019 echo: Free Memory: 2537 PlannerBufferBytes: 1360 echo:Hardcoded Default Settings Loaded echo:SD card ok echo:busy: paused for user echo:busy: paused for user echo:busy: paused for user echo:busy: paused for user

i guess the paused part is because its waiting for input on the display that i dont have yet

next thing i would like to do is to make a minimal setup with a few steppers and endstops and test if i can get it to move

are there any way i could bypass what i think is the setup on the lcd ?

boelle commented 5 years ago

yaaah (or so i think) :-D

i have a full graph display and i did some random turn and push and i now have temp and normal reply on the serial connection, of course not optimal but i can at least do some testing

boelle commented 5 years ago

will close this one, sorry for all the trouble

as far as getting the latest version i'm bit in doubt, i'm not very good at coding so i'm very nervous about screwing things up

my plan is i want to update is to take change one tag at a time and go through the changes 3.1.1-RC5 is the next after 3.1.0 https://github.com/prusa3d/Prusa-Firmware/commits/v3.1.1-RC5

my assumption is that i can just go after the merge PR ones, and i'm sure there is a smarter way, but then again i'm not smart