Quantcast
Channel: Reprap Forum - Firmware - Marlin
Viewing all 12108 articles
Browse latest View live

Re: X/Y Axis Speed & Bed Temperature Issue

$
0
0
When I did that the M503 reported the same thing before and after the reset. Here is what it reported

Send: M503
Recv: echo: G21 ; (mm)
Recv: echo: M149 C ; Units in Celsius
Recv:
Recv: echo:Filament settings: Disabled
Recv: echo: M200 D1.75
Recv: echo: M200 D0
Recv: echo:Steps per unit:
Recv: echo: M92 X100.00 Y100.00 Z400.00 E100.00
Recv: echo:Maximum feedrates (units/s):
Recv: echo: M203 X400.00 Y400.00 Z8.00 E50.00
Recv: echo:Maximum Acceleration (units/s2):
Recv: echo: M201 X2000 Y2000 Z100 E10000
Recv: echo:Acceleration (units/s2): P R T
Recv: echo: M204 P400.00 R1000.00 T1000.00
Recv: echo:Advanced: Q S T X Y Z E
Recv: echo: M205 Q20000 S0.00 T0.00 X10.00 Y10.00 Z0.30 E5.00
Recv: echo:Home offset:
Recv: echo: M206 X0.00 Y0.00 Z0.00
Recv: echo:Material heatup parameters:
Recv: echo: M145 S0 H190 B60 F0
Recv: echo: M145 S1 H240 B90 F0
Recv: echo:PID settings:
Recv: echo: M301 P21.00 I1.25 D86.00
Recv: ok

I will still try the test to see if it had an impact. Just reporting what I saw.

Marlin 2.0 and STM32F103C8

$
0
0
Was it ever possible to build Marlin 2.0 for this MCU? There are at least two boards designed for it (Morpheus and RABPS), plus the Mono Price Mini I3 controller, but I either get a "can't find included file atomic.h" or a "NameError: name 'variant' is not defined:" when trying to build it in Platformio. This happens even on a fresh install of Platformio, which makes me wonder if it was ever possible to build it for this specific MCU. I can build it for other mcu's in the same like like the one in MKS Robin, and a guy in this forum designed a whole 3d printer board around what seems to be an inexpensive stm32f407 module.

I made a board for a stm32f103 port of GRBL and it functions perfectly, if Marlin 2.0 could run on it it then a single board would be able to run both firmwares.

Re: Marlin 2.0 and STM32F103C8

$
0
0
I have complied marlin 2.0 for STM32F103C8 on platformio

there where some things that needed changed
main issue were memory, had to hack files to tell it that it really has 128k flash vs the 64k it is sold as.

I set #define MOTHERBOARD BOARD_MORPHEUS

PID Build (STM32F1)

still seems to compile fine with current marlin 2.0

Re: Marlin 2.0 and STM32F103C8

$
0
0
I tried choosing the STM32F1 environment, setting the board in the environment as genericSTM32F103CB. It shows the right specs in the beginning, like

PLATFORM: ST STM32 > STM32F103CB (20k RAM. 128k Flash)
HARDWARE: STM32F103CBT6 72MHz 20KB RAM (128KB Flash)

But then it gives me a different series of errors

Compiling .pioenvs\STM32F1\src\src\HAL\HAL_STM32F1\HAL_timers_STM32F1.cpp.o
Marlin\src\HAL\HAL_STM32F1\HAL_sdio_STM32F1.cpp: In function 'bool SDIO_Init()':
Marlin\src\HAL\HAL_STM32F1\HAL_sdio_STM32F1.cpp:34:3: error: 'sdio_begin' was not declared in this scope
sdio_begin();
^~~~~~~~~~

And so on. It's a different result already, I could be on the right track or not




Makes me want to try ESP32 instead

Re: Marlin 2.0 and STM32F103C8

$
0
0
I didn't change board = genericSTM32F103RE in platformio.ini (this time....)

after changing it to genericSTM32F103C8 or genericSTM32F103CB I get the same error as you

It did used to work....


[update]

ok this is odd...

code is looking like it is ignoring -D__STM32F1__

if you edit Marlin/Marlin/src/HAL/HAL_STM32F1/HAL_sdio_STM32F1.cpp line 24
change it from #ifdef __STM32F1__ to #ifndef __STM32F1__

it complies!!

I can't explain this...

Re: Compile Marlin 2.0x Bugfix For Archim 2 board

$
0
0
Fixed by enabling.

#define Z_AFTER_PROBING 5.

What pin can i use on GPIO to do the probing with ? Probing is done by making the corners of the bed 0V and when the hot end touches the corner it completes the circuit. Alot like the mechanical limits on the x y and z work just NO not NC contacts.

Feel like im speaking to myself here :(

MAX6675 + MKS SBASE Marlin 2.0.X

$
0
0
Hi!
I recently upgraded my delta to a 32bit board and I wanted to stay with awesome Marlin that got my delta running preetty well for a long time. I did it and I am enjoying so much this setup.
I bought a MAX6675 + thermocouple combo to upgrade my E3D all metal hot end but when I went to configure the SPI communication I realized that there is not any lines at the pins_MKS_SBASE.h regarding SPI for MAX6675. If I just add the lines for the J8 plug with a custom cable at the pins_MKS_SBASE.h file it should come out just working right?
I know the basic stuff at coding and never had any significant own project on C so I do not how to really follow how the code is connected between all the files.

Help with Marlin please for new M code

$
0
0
Hello,

I am just experimenting and trying to add a new M code and a new sensor. I would like to be able to do various items in my new M code based on whether or not my sensor is triggered.

I am trying this;

  case 444:  //test new custom gcode BW
      gcode_M444();break;


/**
 * M444: new GCODE test 
 */
inline void gcode_M444() {

//#if (READ(Z_MAX_PIN))

#if  ENABLED(SDSUPPORT)
 if(READ(Z_MAX_PIN) == 0)
{lcd_setstatus("LIQ LOW!!");}
else
{lcd_setstatus("LIQ HIGH!!");
}
#endif

So one of my first questions, I am not needing Z max endstop. So I want to hook a different sensor to zmax and this is what I want to check in my new code.
The code above works WHEN I have;
#define USE_ZMAX_PLUG
in my config file

If I take it out it gives compiles errors because it can't resolve Z_MAX_PIN
So because I have the above in my config (define use zmaxplug) will that cause marlin to think I am using z max endstop and break other things? If I comment out the define, then my code can no longer read my sensor from zmaxpin.

Thanks

Re: Autolevelling z_probe_offset what is this value used for?

$
0
0
I think I'm running into a similar misunderstanding with Z_PROBE_OFFSET_FROM_EXTRUDER. I perform a bed level G29 as part of my start script and need to manually set the Z-offset to -0.5mm, via LCD. And for the next print right after that, offset needs to be set to -1.0mm because another bed level was done with Z-offset at -0.5mm.

Apparently, the remedy is to add to the start script: zero the Z-offset, via M851, just before bed levelling, and set Z-offset to -0.5mm right after. I'm not seeing any other way in the header files to work around this. Was this the conclusion given the current state of things?

Sorry for going so far back in time with this.

Re: MANUAL_Y_HOME_POS

$
0
0
Never mind. I finally came to my senses and realised that for no reason at all I was trying to set it up to work the same as the CUBEX.
Finally, after too many hours playing around, printed my first test print and am simply amazed at how much better it prints than the standard Cubex. And that is without any fine tuning.
Now I can start printing parts for my next project... A MostlyPrintedCNC. Actually I should finish the cubex conversion project first I suppose.

Marlin 2.0 xyz cube surface finish against 1.9.1

$
0
0
Good day all

Have downloaded bugfix-2.0.x from [marlinfw.org]
When printing a xyz calibration cube I get a surface problems as per attached picture.

This defect will be printed when the xyz cube are exactly in the middle of my delta printer build plate and only on the Y axis - when I move it 30mm left/right/front/back - no problems. This told me that there are a mechanical problem. The anycubic linerar plus are 2 months old, but I removed my rails, cleaned & oiled them (smooth as butter) and also checked, motor pinions and belts. Exactly the same problem after this
I moved back to marlin 1.1.9 and no issues.
My feed rates/acceleration/jerk and simplify3d gcode settings are exactly the same. I tried to copy all my 1.1.9 settings to 2.0
1st picture are 1.1.9 and 2nd are 2.0 ( The xyz cubes were only printed 50% because the problem are at the bottom - On the side you will see where the Y start, just beneath it are the problem)

Help with GNU Licensing of Marlin

$
0
0
I am not sure if there is somewhere else to ask, I looked at Github, but their community did not seem to have a specific forum for Marlin.

I would like to take a fork of Marlin, to use as a base and make modifications to alter this software for a robot of sorts. When I complete my work I would make it all available on GitHub under the same license terms as Marlin currently has. I do not expect others would modify, as this is a very unique robot and don't envision others needing, but the code would be available to all for free. Every file in Marlin today includes the following;

I should add, that I may eventually sell my robots. I would have this source code on the robots (on the Arduino) and the person buying the robot will get the modified Marlin free. It will also be avialable on Github free for anyone.

/**
 * Marlin 3D Printer Firmware
 * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
 *
 * Based on Sprinter and grbl.
 * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see [www.gnu.org].
 *
 */
The GNU license says this;
How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    {one line to give the program's name and a brief idea of what it does.}
    Copyright (C) {year}  {name of author}

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see [www.gnu.org].

Also add information on how to contact you by electronic and paper mail.

So if I do as above, I would include something like this in every file;

Marlin v1.1.9 for Robots
    Copyright (C) 2019  john smith


    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see [www.gnu.org].

It seems to me I wanted to give credit to original marlin, but the GNU tells me to make a statement as above.
Wouldn't it be better to do this;

/**
 * Marlin v1.1.9 Robot Firmware developed from Marlin v1.1.9
 * copyright (c) 2019 john smith
 * Marlin 3D Printer Firmware
 * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
 *
 * Based on Sprinter and grbl.
 * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see [www.gnu.org].
 *
 */


So is what I am doing legal, ethical? Should I be doing something else with the above statement? I am not a lawyer, and I have read the GNU license with Marlin, and I believe I am in compliance, but it is quite possible I have missed something or do not fully understand. Any thoughts would be great.

Thank You
Bruce

Endstop issue

$
0
0
Hi eveyone! I'm Marco, first post here. I've been 3d printing for a couple of years with commercial printers, and today I've just finished the assebly of my last 3d printer. It is completely custom built, including the electronics. All works fine, and I'm pretty happy with it, but I'm having some issues with the endstops. I set up my board file, starting with the declaration of
#define X_STOP_PIN        31
#define Y_STOP_PIN        30
#define Z_STOP_PIN        29
And then, in Configuration.h
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
//#define USE_XMAX_PLUG
//#define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG

// Enable pullup for all endstops to prevent a floating state
//#define ENDSTOPPULLUPS //THERE ARE EXTERNAL PULLUPS ALREADY
Since I only have min endstops and I've used external 10k pullup resistor.
I've checked with an oscilloscope the input pins, and they follow the switches correctly, but on Pronterface with the command M119 I see the endstops never triggered.
Casually, I tried to attach one endstop on pin 25, and it correctly triggers endstop Y. Is there any know issue about this? Tryed on Marlin 1.1.9, bugfix and also 2.0
Thanks!

EDIT:
I reflashed the code with the PINS_DEBUGGING enabled and ran M43, here the output, which is correct:
PIN:  29   Port: A5        Z_MIN_PIN                   protected
.                          Z_STOP_PIN                  protected
PIN:  30   Port: A6        Y_MIN_PIN                   protected
.                          Y_STOP_PIN                  protected
PIN:  31   Port: A7        X_MIN_PIN                   protected
.                          X_STOP_PIN                  protected

Re: Endstop issue

$
0
0
You haven't mentioned the processor...

if its a atmel 2560/1280 etc did you turn off things that might interfere for eg JTAG?
Turned on or off when you set the processor fuses

Re: Endstop issue

$
0
0
Hi Dust, thanks for replying! Sorry, I forgot to mention the microcontroller: it is an Atmega 1284p.
I'll set again the fuses and reflash the code and let you know ;)

Re: Endstop issue

$
0
0
Update here! Fuses were set correctly, and running "M43 I" on pronterface (it shows the protected pin status) reports correct readings for endstop pins. However, running M119 still gets wrong "open" or "TRIGGERED". I think this might be a software bug, is it worth to open an issue on GitHub?

Re: Endstop issue

$
0
0
are you saying its just inverted?

as that is just a setting

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.

It is very unlikely to be a bug, its a very basic part of the code...

what type of endstop are you using? just a mechanical switch from the pin to gnd?
you say you have a pull up, so endstop disconnected (or open) will be seen as 5v and connected will be seen as zero

are you sure you really have it plugged into ardunio pin 29,30,31 ie physical pin numbers 35,34,33 respectively?



or pins 32,31 and 30 on TQFP


Re: Endstop issue

$
0
0
Hi Dust, thanks for replying! Well, even if they need to be inverted they should toggle the endstop status anyway. But when I send M119 the endstop status never changes whatever the switch is open or closed.
Yes, they are the classic mechanical switches with external pull-up and debouncing capacitor (I've tryed other pins that don't have this circuit, and the problem is the same).
I am 100% sure that the pins are correct because when I send "M43 I" I receive the correct status of each pin, but when I send "M119" the endstop status never changes.

Re: Endstop issue

$
0
0
That is very weird

I looked into fastio_644.h (also does 1284p) and it shows a different table

/**                       ATMega644
 *
 *                        +---\/---+
 *            (D 0) PB0  1|        |40  PA0 (AI 0 / D31)
 *            (D 1) PB1  2|        |39  PA1 (AI 1 / D30)
 *       INT2 (D 2) PB2  3|        |38  PA2 (AI 2 / D29)
 *        PWM (D 3) PB3  4|        |37  PA3 (AI 3 / D28)
 *        PWM (D 4) PB4  5|        |36  PA4 (AI 4 / D27)
 *       MOSI (D 5) PB5  6|        |35  PA5 (AI 5 / D26)
 *       MISO (D 6) PB6  7|        |34  PA6 (AI 6 / D25)
 *        SCK (D 7) PB7  8|        |33  PA7 (AI 7 / D24)
 *                  RST  9|        |32  AREF
 *                  VCC 10|        |31  GND
 *                  GND 11|        |30  AVCC
 *                XTAL2 12|        |29  PC7 (D 23)
 *                XTAL1 13|        |28  PC6 (D 22)
 *       RX0 (D 8)  PD0 14|        |27  PC5 (D 21) TDI
 *       TX0 (D 9)  PD1 15|        |26  PC4 (D 20) TDO
 *  INT0 RX1 (D 10) PD2 16|        |25  PC3 (D 19) TMS
 *  INT1 TX1 (D 11) PD3 17|        |24  PC2 (D 18) TCK
 *       PWM (D 12) PD4 18|        |23  PC1 (D 17) SDA
 *       PWM (D 13) PD5 19|        |22  PC0 (D 16) SCL
 *       PWM (D 14) PD6 20|        |21  PD7 (D 15) PWM
 *                        +--------+
 */

where the ports D24-D31 are reversed on PA7-PA0

want to try an experiment?

your endstops are on 29,30 and 31, what is on 26.25 and 24 can you redefine any endstop to any of those pins and try it with m119? (while leaving the endstops electrically connected to where they are)

Re: Endstop issue

$
0
0
Wow, I think we might have solved it! As I wrote in the first message:
Quote
Sixaxix9
Casually, I tried to attach one endstop on pin 25, and it correctly triggers endstop Y.
Let me upload the modified firmware and I'll be right back
Viewing all 12108 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>