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

Help with GNU Licensing of Marlin (no replies)

$
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 (10 replies)

$
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

Help With BLTouch clone Not Responding to gcode Commands? (no replies)

$
0
0
I tried installing a 3DTouch (BLTouch clone) on my Tevo Tarantula with an MKS-Base v1.4 controller running Marlin 1.1.8. When powered up, the sensor cycles the pin in self-test successfully and the blue LED remains on steady. When I execute the gcode commands [M80 P0 Sxxx], however, nothing happens. The two pin connector is plugged into the Z-Min Endstop connector (just like the capacitive sensor I am attempting to replace) and the three wire connected is plugged into (what my diagram shows are) the servo pins D11-GND-5v with the power and ground wires swapped on the sensor connector so that they align properly with the supply voltage pins on the board. I am attaching the Configuration.h file so you can see the changes I made to that, but I followed the instructions given for the BLTouch.

Unsure whether the issue was the sensor, the firmware or the mainboard, I had someone write up a small arduino code that sent random servo commands to the 3DTouch. With the sensor hooked to an arduino, running that code, the pin cycled in and out, so I have to assume that the sensor is OK and that the issue is either my board or the firmware.

Any help here would be greatly appreciated!

Filament runout echo:unknown command: M412 (5 replies)

$
0
0
I have set in configuration.h
#define FILAMENT_RUNOUT_SENSOR
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.
#define FIL_RUNOUT_INVERTING true // set to true to invert the logic of the sensor.
//#define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#endif

and in pins_rumba.h

// Runout sensors
#define FIL_RUNOUT_PIN 14
#define FIL_RUNOUT2_PIN 15

I am getting echo:unknown command: M412

Any ideas?

Is there a Temp Offset parameter buried someplace in Bugfix 2.0? (1 reply)

$
0
0
My Thermistors report one Temp but regular and IR Thermometers report another. It's pretty common with most Temp Controllers to be able to calibrate/fine tune your Temp sensor with a +/- offset degree value. DOes this exist with Marlin?

Thanks in advance for any advice!

Bugfix 2.0.x - Z-Babystepping/M290 causes reboot (no replies)

$
0
0
Hello,

It's my first post to the forums. I wanted to ask anyone for confirmation on this issue before submitting a github issue. I am currently working on a leveling GUI specific to delta printers. Because Marlin 1.1.9 has bugs with G42, I migrated to the latest possible Marlin version.

Here is my issue description:

Printer: Anycubic Kossel Linear+ Delta
Marlin Version: 2.0.x bugfix downloaded February 16, 2019
Config File: (both config and config_adv are in the zip folder)

Steps to reproduce:
1. Upload the latest Marlin 2.0.x bugfix and my config file on a STOCK Anycubic Kossel Delta linear +.
2. Turn printer on
3. Home it with g28;
4. Send a babystep command with M290 Z0.25;
5. Watch the printer reboot.

This also happens during a print using both G-code and the LCD menu to babystep the Z axis.

Behavior seen: Reboot after any babystep command no matter if it's during a print or not, or from the LCD or not.

If anyone can replicate this issue, please let me know!

Thank you.

Thermal Run Away + Mosfet Failure (no replies)

$
0
0
I am trying to use Thermal Run away Protection and a Mosfet. The problem is that the mosfet sets of the thermal runaway protection because it heats up the hotbed faster. I want to modify the code that predicts the temperature that the hot end and hot bed should be .Where would i find it?

Marlin 2.0.x (no replies)

$
0
0
I currently have Marlin 2.0.x running on both my Hictops 3D Printers using only the Stock controllers.
Today I am testing junction deviation using .06

I have read several articles Stating that .02 is ~ a jerk setting of 5
Starting at 0.05 is a typical value for a 3D printer. If your printer is very sturdy, you could use 0.1. Decided on .06 as my starting point
#define JUNCTION_DEVIATION
#if ENABLED(JUNCTION_DEVIATION)
#define JUNCTION_DEVIATION_MM 0.06 // (0.02mm) Distance from real junction edge

Tested Bed Leveling Fade Height works perfectly!
// Gradually reduce leveling correction until a set height is reached,
// at which point movement will be level to the machine's XY plane.
// The height can be set with M420 Z
#define ENABLE_LEVELING_FADE_HEIGHT // In Start Up G-Code M420 Z2

Looking through the Code in Marlin 2.0.x under " src\config\examples "
Is an example of the Configuration.h and configuration_adv.h of 80 + 3D Printers.
This should make it much easier for those who want to upgrade, or for the rest of us to help anyone who wants to upgrade to Marlin 2.0.x

I found something in temperature.h I'm wondering about (2 replies)

$
0
0
I was looking around in the firmware and saw that
MAX is uppercase and in a previous version it was lowercase. Isn't arduino case sensitive. Is this something done on purpose?
This is what it has (when I preview this the hot smiley pops up in the code on the one with capital letters)
#define ACTUAL_ADC_SAMPLES MAX(int(MIN_ADC_ISR_LOOPS), int(SensorsReady))

should it be this?
#define ACTUAL_ADC_SAMPLES max(int(MIN_ADC_ISR_LOOPS), int(SensorsReady))

How can i connect a rotary encoder to my RAMPS 1.4 with a Marlin firmware (no replies)

$
0
0
Hey Guys,

i have a little problem and on google i didn´t find some help.
My setup is a Arduino Mega with a Ramps 1.4 motherboard. I have connected a 16x4 LCD Panel with I2C. That all works fine.
But i have big problems to get the rotary encoder to work. I have tried several settings in the Configuration.h and the pins_Ramps.h but nothing works.
Any help here would be greatly appreciated!

My Specs:
Arduino Mega
Ramps 1.4
Marlin 1.1.9
Rotary encoder (Pins: CLK, DT, SW, +, GND)

Hotend fan won't activate under Marlin bugfix 1.1.x on Ultimainboard 2.1.4 (no replies)

$
0
0
I have an Ultimaker 2+ that I am trying to use with Marlin bugfix 1.1.x.

Everything seems to work fine except the hotend fan won't spin up after the hotend reaches and exceeds the trigger temperature.

I know the fan itself works and is hooked up correctly because I tried uploading the stock UM2+ firmware and watched it correctly spin the fan when hotend heated up.

So I think the problem has to be in how I've (mis)configured the 1.1.x firmware include files.

I have tried everything I can think of and nothing has worked so I'm hoping y'all have some different ideas on what to try.

latest Configuration.h and Configuration_adv.h attached.

I've tried commenting out this line in Configuration_adv.h, as well as the lines near it, no joy.

#define E0_AUTO_FAN_PIN -1

After digging into the schematic of the board, I've tried changing E0_AUTO_FAN_PIN from -1 to PJ6_PIN and PINJ6, still no dice.

Gotta be something simple I'm missing, I think.


Thanks...

Marlin/RAMPS movement issue (no replies)

$
0
0
I'm sure I'm missing something obvious.

I've built a Frankenvinci using a RAMPS 1.6 board and respective Arduino controller (and a custom built board for endstops and extruder cooling but I digress). What I'm having an absolute fit is with the Z movement and positioning. I have this configured for Min/Max and have disable the min (letting the home sensors do their work) at the suggestion of someone in another forum.

// The size of the print bed
#define X_BED_SIZE 237
#define Y_BED_SIZE 217

// Travel limits (mm) after homing, corresponding to endstop positions.
//#define X_MIN_POS -12
//#define Y_MIN_POS -12
//#define Z_MIN_POS -2
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 200

My issue is all of my layers are being squished together and making a blob vaguely resembling a cube (20X20X20 test cube). As best as I can tell setting M92 Z to either 2560 or 4000 seems to make no difference. Current values as set by M92 and soon to be by firmware defaults: #define DEFAULT_AXIS_STEPS_PER_UNIT { 200, 200, 2560, 89 }

Using moving end stops to control stepper (no replies)

$
0
0
Hi all,

Application is CNC
Want to put the end stop on the moving part-carriage

The end stop is engaged- motor is stopped
When tool gets out of line, the end stops is released and triggers a motor movement (?) then the end stop is triggered and stops the motor . the end stop is released again, by movement of the tool (carriage)- the movement is caused by the material being machined— does the motor restart the ovement?- provide the path is long enough

Or use the enable pin of the driver?

Thx

Coolerooney

probe Z-homing, auto bed leveling,... various clarification and debugging (no replies)

$
0
0
Hi, I'm a newbie on software side. There might be my misunderstanding/ wrong interpretation of explanations I found because not everything works as it should .
I have a Leapfrog and I have upgraded it in various aspects, the latest (and one of the final ones) being inductive probe for z-stop/ bed leveling. I have kept the original z mechanical switch as safety switch, triggering at about -2mm below 0/ bed surface.
Now, I have set Marlin for induction probe and started calibration and here I have some issues and questions.
I have commented define Min software endstops -also have safe homing defined and about 5 mm clearance between probes/ and homing height -, started homing in Repetier Server. It moves to 0 on all axes and rises nozzle at those 5mm. My first problem and question is that I can go to 0 (for nozzle paper adjusment) but no further negative values are taken. So how can I go below 0?
I have adjusted probe/nozzle offset (hardly - bed configuration could be an important contributor to that) and I got final value - 0.3 which seems to define correct nozzle Z position in the center of the bed (safe homing position) and started auto bed leveling bilinear, first with 3 and after with 4 points each axis.
Here is my next question (less an issue but more a matter of correct understanding). The points for probing on first collumn (closest to X=0) were about 70 mm far from bed margin.
Even after reducing min probe edge to 5 I still have about 35-40mm Left distance for first collumn probings.
Third, I have -as I said - a very sensitive heat-bed setup. I have to wait a lot after raising to 60C degree in order to have stable readings for auto-level output values.
In these conditions I get bed-to-home distances of about 0.500mm in the corners of the bed and 0.01-0.1mm or close to that to the middle of the bed. Of course, I will work on physical configuration of the bed; my question is - in case of 0.5mm readings or alike bed has to raise to negative Z values when starting printing; will it raise as long as with manual jogging I can not make it go below 0?
What if I define limits for build spaceZ like : Zmin -1; Zmax 200 (doesn't matter max). Will it keep for homing Z=0? Can I have software Zmin endstop enabled and working at -1mm.and not blocking my nozzle at first layer? 1mm would be enough to compensate potential bed irregularities.
How does generally auto bed leveling deal with both negative and positive readings on bilinear grid (when you start printing) will it go beyond defined limits of working space just to follow Z probe report for a certain point on the bed?
Please use as plain as possible explanation.
Thank you!
ND

ERR:MINTEMP BED (no replies)

$
0
0
Hi all!

I recently "restored" my old prusa where I put this bed[orballoprinting.com] and this probe [orballoprinting.com]

All to have a configuration like prusa MK2 [www.youtube.com]

I've uploaded their firmware manual.orballoprinting.com for their Black Edition Mark 2 a clone of prusa original MK2

I state that I already tried with MK4duo but currently I have problems with the mesh of bed leveling; but apart from this particular with the Mk4duo the bed worked regularly

I say this to exclude wiring problems (which I also double checked)

Nothing........I have ERR:MINTEMP BED!

E1 & E0 both driving E0 motor on Tango board (no replies)

$
0
0
I am having a strange issue that I can't figure out.

I have an Anet A8 frame that I have upgraded to a Tango board (upgraded rumba board) with a diamond 3 color mixing hot end.

Firmware complete package is attached on the github forum post against the board, sorry for the off site pointer, but this forum won't let me attach the zip, file is 4.7MB so should be under the 8MB limits.... I made a minor edit to the pins_rumba.h to add the bl touch pin to use the zmax input as a possible note of impact.

https://github.com/bigtreetech/Tango-3D-Printer-Motherboard/issues/4

The issue is that when I use the LCD and tell it to move E1, the printer moves the E0 motor instead. I know the drivers, motors, etc are all okay as they came from a functional ramps setup that was disassembed to upgrade the extruder count.

I am stumped to where the wrong motor directives are originating, hoping someone here can help to figure out if this is a bug, config issue, or etc.

Appreciate any guidance you can offer

Re-ARM + Marlin 2.0 SD card reader not working (2 replies)

$
0
0
I have been using 8 bit Marlin for the last few years and finally decided to upgrade my machine to a Re-ARM, RAMPS 1.6 and Marlin 2.0. The process was pretty smooth and my printer is fully functional except for one thing - the SD card reader in my reprapdiscount full graphic smart controller isn't working with this setup. I am able to print via USB link only.

Using my old Arduino Mega and Marlin 1.9, I have been able to determine that the RRD full graphic smart controller and RAMPS 1.6 are both in perfect working condition. I also tried downloading the latest Marlin bugfix-2.0, but this did not help. I know that the problem must be with either my Re-ARM board or Marlin 2.0. Because I cant find anyone else complaining about this issue, it leads me to believe there is something wrong with my Re_ARM board.

Every time I have uploaded a new version of Marlin 2.0 to the Re-Arm I get the same exact result. The machine appears to be functioning normally and the LCD screen and LCD menu work fine. When I insert an SD card the menu options I see are "Init SD" and "NO SD card". Clicking "Init SD" changes "Init SD" to "print from SD". Clicking "print from SD" shows no files (yes, I have tried different files and different cards). Clicking the "NO SD card" option does nothing.

Other Details:
SD support was enabled in Marlin
The correct full graphics display was chosen- #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
I have tried enabling the SD card options for "SPI speed" and "check and retry"

Please let me what other info you need. Thanks for the help!

Marlin not driving stepper motors properly (3 replies)

$
0
0
I am constructing a 3D printer using mostly leftover Ultimaker 2+ hardware. The electronics that run my printer consists of an Arduino mega 2560 and a ramps 1.4 board. I am using a 10A, 24V power supply so the Arduino is powered separately from the ramps board. I configured the marlin firmware for my printer's specifications and uploaded to the Arduino but it fails to move the stepper motors when it is commanded to. When I press the auto homing button the Z axis moves down an inch or two (and doesn't actually home) but the other axes just remain stationary and make noises. When I took the belts out I found that the steppers did spin on command, so I figure it must be some sort of torque problem. I got frustrated working with marlin so I tried uploading the ramps 1.4 test code that I attached. Using the test code all of the steppers were driven properly and clearly had enough torque to move the extruder. There must be some sort of software problem in my Marlin firmware but I can't seem to figure out what it is, any suggestions would be appreciated.

Bugfix 2.0 - Z-Offset after G28 + G29 wrong (no replies)

$
0
0
Hello,

I have a RAMPS board with TMC2130 for every axis. Firmware is Marlin Bugfix 2.0.x from 2.3.19. For Z high i have an fixed inductive probe.Homing (G28) works fine. I can configure with m851 the correct high (-0.4),save everything with M500 and after another G28 + G1 Z0 the high is perfectly aligned. If i do a G29 (AUTO_BED_LEVELING_BILINEAR) and move to the same position where the probe was, the z high is too big.

Can anybody tell me if i´m doing this right?

1.G28
2.M851 Z-0.4
3.M500
Z offset perfect
4.G29
Z offset bad

What am i didong wrong?I have atteched both configuration files. EEPROm was erased after flashing.

Thank you

Kind regards

Pause / resume (no replies)

$
0
0
Hello

I am doing research on a which board to use on a CNC type project I am working on. I have done research online and cannot find the answer so I need assistance please.

On the Marlin firmware, it is possible to have a set of GCode running from an SD card then after a certain position is executed, the system will wait until an external trigger is activated, then the Gcode continues running from the position where the pause was executed and continue is this fashion. It is a stop start motion.

The external trigger will be in the form of a switch from an external device (will send an on/off signal).

Is this possible and if so what would be the starting point for me to figure out how to create something like this?

Thank you
Viewing all 2835 articles
Browse latest View live


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