Giter VIP home page Giter VIP logo

marlinfirmware / marlin Goto Github PK

View Code? Open in Web Editor NEW
15.9K 907.0 19.1K 228.12 MB

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.

Home Page: https://marlinfw.org

License: GNU General Public License v3.0

C++ 79.47% C 18.95% Makefile 0.13% Shell 0.38% CMake 0.02% Python 0.68% OpenSCAD 0.02% G-code 0.01% HTML 0.12% CSS 0.02% JavaScript 0.15% Assembly 0.03% GDB 0.01% NASL 0.01% Dockerfile 0.01% Roff 0.01% BitBake 0.01%
reprap arduino 3d-printing firmware avr atmel stmicro esp32 hacktoberfest

marlin's People

Contributors

alexborro avatar anhardt avatar bgort avatar bkubicek avatar bob-the-kuhn avatar boelle avatar daid avatar ejtagle avatar ellensp avatar erikzalm avatar gmagician avatar insanityautomation avatar jbrazio avatar ludy87 avatar marcio-ao avatar marciot avatar nothinman avatar p3p avatar rhapsodyv avatar rmoravcik avatar robbycandra avatar roxy-3d avatar sjasonsmith avatar tcm0116 avatar thinkyhead avatar thisiskeithb avatar tombrazier avatar tpruvot avatar wackerbarth avatar wurstnase avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

marlin's Issues

Number of steps does not match positon

Many people using marlin for ultimaker experienced skewed builds or missed steps. Some might be hardware related, but often the missed steps occur at odd places.

I made a branch that counts the steps right at the place where the output pins are activated.
https://github.com/lampmaker/Marlin/tree/skewtest

Using M114 (and after waiting for the last movement to stop), you can query the current_position[] values and the calculated position values, based on the steps forward and backward.

As it seems, there is sometimes a difference between the two position values. I've seen differences of 1mm and larger.

M109 S0 problem (with netfabb)

netfabb turns off the heater at the end with M109 S0.0000.
Which means the print never officially finishes, because Marlin reports the "unknown t:xxx.xxx" back (until it would reach 0, which never happens). Reset and stop don't work.

PS: I think the "unknown: t:xxx.xx" error message is misleading and should read: "waiting for xxx.xx, current temp xxx.xx"

Relative move after homing moves incorrect distance

eg:

G92 X100
G28 X0
G91
G1 X10
G90

will move to X=110 instead of X=10

possible cause: The "current position" used by relative mode isn't being updated when G28 completes.
solution: Update "current position" as used by relative mode after G28 completes.

issue #52 may be related

Marlin reading wrong temperature (RAMPS 1.2 / Arduino 1280)

RAMP1.2
Atmega 1280 (not 2560)
Pronterface.py

I've compiled Marlin and Marlin v1 from pulls as of yesterday. I'm using

define MOTHERBOARD 3

define THERMISTORHEATER 1

I had to delete the wiring.c and serial_wiring.c files to get it compile - is that appropriate - why are these still included?

Besides changing axis feed rates, that's the only only default changes.

I'm using Pronterface.py but getting temperature readings of 151.2c at "room temperature". Sprinter (and SJFW) with the same defaults reads 29c which is correct so I'm using the correct thermistor settings. If I set to PLA temperatures, it does indeed climb from 151.2c (so it is reading something 'related' to heat, but obviously at a printed value of 185c (which is only warmer) it's still far too cool to actually print.

Ideas?

Thanks, hb

Missing steps a lot...

I'm trying this Marlin_v1 branch, and it seems like my machine is missing steps a lot... Sometimes it's like it completely forget to move in one direction, or move just half of what it should.

Am I missing something important in my Configuration.h that should fix this behaviour or is this some sort of bug?

thanks for any help!

-H

Move to zero not working correctly after homing.

On a printer in which the Y axis is assembled backward, so that the endstop is a max endstop at Y=200:

G28 X0
G28 Y0
G28 Z0
G1 Y0

Does not position the head at 0, 0, 0, but rather at 0, 200, 0.

G28 X0
G28 Y0
G1 Y0
G28 Z 0

Does position the head at 0, 0, 0.

Homing Z after homing Y is affecting the printer's notion of where Y currently is at.

G2 circle to G1 transition sometimes results in extraneous extrusions

I'm using the git build on an Ultimaker. I've been playing around with G2 circles (where starting and ending position are the same) and I've made some nice cylinder test objects that print perfectly. But all the G1 commands where small without any Es with the G1s. But when I mix G2 circles and lines or longer moves I sometimes see sudden fast rotations of the extruder gear at the transition from circles to G1 (moves or extrudes). I think this might be some sort of residual E value or somehow related to the command lookahead. I did some tests setting the feed rate exactly once and to a slow value and still saw a sudden fast rotation of the extruder.

compilation without max-enstops

fails
in marlin.pde:
if((READ(X_MAX_PIN) != ENDSTOPS_INVERTING) && (current_block->steps_x >0))
there shoud be a

if X_MAX_PIN >0

endif

around the block

Feature Request: Seperate Stepper off for E-axis

A new M-Code (propose M88) that would disable E-axis stepper only would be beneficial.
1- I am using it to release pressure before retraction (including a small dwell like M88 S50)
2- this way one could back up filament or change filament mid print without the need to start all over... The other axis enabled could keep the extruder in place and the extruder could be turned manually to pull in new filament.

TEMP_RESIDENCY_TIME countdown overflow

T:210.78 E:0 W:6
T:210.55 E:0 W:5
T:210.08 E:0 W:4
T:209.88 E:0 W:3
T:209.69 E:0 W:2
T:209.10 E:0 W:1
T:208.98 E:0 W:0
T:208.95 E:0 W:4294967295
T:209.65 E:0 W:4294967294
T:209.26 E:0 W:4294967293
T:209.77 E:0 W:4294967292
T:210.35 E:0 W:4294967291
...
and kept waiting

Setting direction of endstop not working

define Y_HOME_DIR 1

Will result in the Y axis not homing at all. Hitting the endstop results in the Y axis refusing to move back out of the endstop - further in is still possible.

I guess it's the same for X and Z, too.

*60 and PID_dT - conversions for output/default-values inconsistent

  1. Configuration.h/Line211: default-values (500, 500, 150, 200000) are stated in mm/s but is directly used in EEPROMwrite.h/Line 107 directly without *60
    -> Result: extremely low MaxFeedrates when using DefVals
  2. PID-Values Printout in EEPROMwrite.h/Line170 are with PID_dT (no backscaling)
    -> Confusion about actual set values!!

Sanguinololu compile error: planner.cpp

Arduino-0022 copied Sanguino dir as said in readme; Given

define MOTHERBOARD 62

and
Board -> Sanguino selected in Arduino software Tools menu
verify/compile generates an error:

planner.cpp: In function 'void plan_buffer_line(const float&, const float&, const float&, const float&, float, const uint8_t&)':
planner.cpp:478:7: error: variable 'c' must be const in order to be put into read-only section by means of '__attribute((progmem))'
planner.cpp:484:7: error: variable 'c' must be const in order to be put into read-only section by means of '__attribute((progmem))'

Error 200: ISR Overtaking itself

Hi I am using RAMPS 1.3 and the latest build of marlin_v1.

Whist printing getting a serial message back frequently stating that ISR overtaking itself. Error numbers vary, but in the 200 - 210 region. Not sure if this is a bug or pebkak.

Marlin 1.0.0b1 : NOT_ATTACHED in ReplicatorG

Hi,

Thanks for the update on Marlin v1.0.0b1.

Here is the issue I've got, using replicatorg 0025 under OSX Lion:

  1. use Arduino to upload new firmware, everything goes well
  2. open ReplicatorG, console seems to recognized the printer, but have an issue at the end, and display a red status noted as "NOT_ATTACHED"
[13:13:16] Load file : /Users/alx/Desktop/arduipilot 2/1.gcode
[13:13:17] /Users/alx/Desktop/arduipilot 2/1.stl
[13:13:17] Got name Default
[13:13:17] Parsed object name[Default] facets 52
[13:13:17] Could not load machine 'Ultimaker v1.0 (EXPERIMENTAL Sprinter firmware)' no machineNode found
[13:13:17] Unable to connect to machine!
[13:13:17] Please select your machine from the menu under Machine -> Driver.
[13:13:17] could not load machine 'Ultimaker v1.0 (EXPERIMENTAL Sprinter firmware)' please check Driver-> <Machine Name> 
[13:13:57] Loading simulator.
[13:13:57] Loading driver: replicatorg.drivers.reprap.RepRap5DDriver
[13:13:57] Connecting to machine using serial port: /dev/tty.usbmodemfd121
[13:13:57] Initializing Serial.
[13:13:57] Attempting to reset Ultimaker (pulsing RTS)
[13:13:57] echo:1.0.0 beta 1
[13:13:57] Supports RC
[13:13:58] echo:free memory:echo:1.0.0 beta 1
[13:13:58] echo:free memory:5371
[13:13:58] echo:using default settings:
[13:13:58] echo:steps per unit:
[13:13:58] echo:  m92 x78.74 y78.74 z533.00 e836.00
[13:13:58] echo:maximum feedrates (mm/s):
[13:13:58] echo:  m203 x8.33 y8.33 z0.08 e3333.33
[13:13:58] echo:maximum acceleration (mm/s2):
[13:13:58] echo:  m201 x9000 y9000 z100 e10000
[13:13:58] echo:acceleration: s=acceleration, t=retract acceleration
[13:13:58] echo:  m204 s3000.00 t7000.00
[13:13:58] echo:advanced variables: s=min feedrate (mm/s), t=min travel feedrate (mm/s), b=minimum segment time (ms), x=maximum xy jerk (mm/s),  z=maximum z jerk (mm/s)
[13:13:58] echo:  m205 s0.00 t0.00 b20000 x0.50 z0.01
[13:13:58] echo:pid settings:
[13:13:58] echo:   m301 p22.20 i0.12 d990.00
[13:14:01] Ultimaker not responding to gcode. Failed to connect.
[13:14:01] Supports RC

I've tried with newly release replicatorg 0026_alpha2, with the same issue.

I've change the Configuration.h in Marlin firmware to have a baudrate of 115200 instead of 250000 (how do you use 250000 baudrate replicatorg? I suppose you use Printrun?).

XY steps per mm confusion

The config.h sets the XY steps/mm correctly to 78.7402 (thank you).
the initial status report after reset reads:
[17:02:46] echo: using default settings:
[17:02:46] echo: steps per unit:
[17:02:46] echo: m92 x79.872 y79.872 z533.000 e14.000
(I did reset any eeprom settings with M502)

Which one is it now, and where does the 79.872 come from?

compile error on gen6 electronics

Given
#define MOTHERBOARD 5 (as per comments)
and
Board -> Sanguino selected in Arduino software Tools menu
build generates an error:

Marlin.cpp: In function 'void process_commands()': Marlin:642: error: 'sprintf' was not declared in this scope

Code piece in question

case 30: //M30 take time since the start of the SD print or an M109 command
    {
      stoptime=millis();
      char time[30];
      unsigned long t=(stoptime-starttime)/1000;
      int sec,min;
      min=t/60;
      sec=t%60;
      sprintf(time,"%i min, %i sec",min,sec);
      SERIAL_ECHO_START;
      SERIAL_ECHOLN(time);
      LCD_MESSAGE(time);
    }
    break;

Quick fix for me was to comment out the sprintf() call since I don't have a LCD anyway.

Applies to revision ErikZalm@5535e51

acelleration_st fix

in marlin.pde ~15333
f(((block->acceleration_st / block->step_event_count) * block->steps_z ) > axis_steps_per_sqr_second[Z_AXIS])
block->acceleration_st = axis_steps_per_sqr_second[Z_AXIS];

this causes some rounding errors and hence tooo large z acceration on my ultimaker.
if((block->acceleration_st * block->steps_z / block->step_event_count) > axis_steps_per_sqr_second[Z_AXIS])

works well.

Printing with SD enabled can not be Paused

When printing Normally from HDD, but if the SD card is enabled, it is not possible to pause the print.

SD printing byte 0/0
ok T:215.04 @:163.43
Paused.
SD printing byte 0/0
ok T:215.00 @:164.55

Does not compile-Marlin.pde 12/12/2011

Marlin.pde has multiple references to E_(whatever) and must be changed to E0_(whatever) to compile.
IE line 940 E_ENABLE_PIN must be E0_ENABLE_PIN. Line 1251, 1252, 1264 also need E0 and e0
Compiles and runs fine like that.

arc look ahead from slic3r slow&jerky?

I am warming up to slic3r, and I posted the phenomenon in another bug, but I think it deserves it's own:
The arc look ahead in marlin produces pretty slow and jerky printing, compared to normal printing:
http://nypano.com/clients/UM/IMG_0339.MOV

This is the same duplo-brio file (a friend has a 2yo, and I am using it as a test print, since they are still more or less usable). the outline prints nice and fast, but the round interior pins (each about 10mm diameter), print very jerky, and have a lot of bumps/bleeds/droolblobs therefore.

slic3r settings:

bottom_layer_speed_ratio = 0.3
bridge_flow_ratio = 1
bridge_speed = 50
duplicate_distance = 6
duplicate_x = 1
duplicate_y = 1
end_gcode = M104 S0 ; turn off temperature\nG28 X0 ; home X axis\nM84 ; disable motors\nM107 ; turn fan off
extrusion_axis = E
extrusion_multiplier = 1
extrusion_width_ratio = 0
filament_diameter = 2.9
fill_angle = 45
fill_density = 0.25
fill_pattern = rectilinear
first_layer_height_ratio = 1
g0 = 0
gcode_arcs = 0
gcode_comments = 0
infill_every_layers = 2
infill_speed = 150
layer_height = 0.10125
nozzle_diameter = 0.5
perimeter_speed = 150
perimeters = 2
print_center = 100,100
retract_before_travel = 1
retract_length = 1
retract_lift = 0
retract_restart_extra = 0
retract_speed = 30
rotate = 0
scale = 1
skirt_distance = 6
skirt_height = 1
skirts = 1
small_perimeter_speed = 100
solid_fill_pattern = rectilinear
solid_infill_speed = 100
solid_layers = 3
start_gcode = G28 ; home all axes
temperature = 225
travel_speed = 300
use_relative_e_distances = 0
z_offset = 0

LCD Compile errors with Sanguino

Looking forward to test this Firmware instead of Sprinter but getting errors when compiling with Sanguino Board.

Have copied the Marlin\Sanguino folder to C:\arduino-0022\hardware, have copied Marlin folder to C:\arduino-0022
Selected Sanguino Board from Tools>Board

Have edited configuration.h and set motherboard to 62 for Sanguinololu 1.3 and other speed settings etc etc

When compiling I get errors with regards none of the LCD pins being declared. Checking pins.h these are not defined for motherboard 62.

Can I just comment out the LCD stuff in configuration.h ?

Cheers

Sean.

Preference Request: Divide configuration.h into BASIC and ADVANCED Sections

I like the idea of basic and advanced configuration settings - and I suspect configuration_adv.h came about in an effort to simplify things, however I think it only complicates matters. For a few reasons:

  1. Users migrating from Sprinter are already used to dealing with only one config file.
  2. Users who previously switched to Marlin now have to comment out an include for each subsequent build, if they wish to continue using 'their' config file they've already spent time getting to know. Or, they have to spend time editing their existing config file into two.

Is sectioning ONE file into basic and advanced blocks of config settings not a possibility? It would help beginners get up and running just as quickly - and keep everything together.

Perhaps there's a really good reason for splitting file that I can't see?

BTW Thanks for the good work :)

HOMEAXIS zeroes position first, breaks with min_software_endstops

If min_software_endstops is enabled then homing (such as with G28) will not work because the HOMEAXIS macro sets the current position to zero before moving. This means it will "hit" the software endstop immediately and just do the little dance and end up right back where it started.

Float compare to 0.0

Not a big issue, but while looking at motion_control.cpp, function mc_arc (line 48) is a test for float == 0.0.

Wouldn't millimeters_of_travel< some_very_small_number be more appropriate, where some_very_small_number could be close to the size of a single step?

Extruder running backwards even when E values are increasing in gcode

I have a gcode file which appears to cause the extruder to run backwards even when it should not.

Maze box gcode

The problem appears on layers 7-30 when the tight infill pattern is being printed between the walls. I checked that the E values are increasing, but the printer runs the extruder backwards hard when it tries to print the infill. When it goes back to printing the perimeter, the extruder runs perfectly normally forwards again.

I'm using Orca with Marlin 0.9.3 with the advance parameter at k=0.01. I can provide any other details if needed.

Pause, and occasional failure with restart

The pronterface log window fills with:

--- snip ---
Error:0 ISR overtaking itself.
Error:0 ISR overtaking itself.
Error:0 ISR overtaking itself.
Error:0 ISR overtaking itself.
Error:0 ISR overtaking itself.
Error:0 ISR overtaking itself.
Error:0 ISR overtaking itself.
Error:0 ISR overtaking itself.
Error:0 ISR overtaking itself.
Error:0 I
--- snip ---

Then the printer fails with no further output, or occasionally restarts with:

Error:Line Number is not Last Line Number+1, Last Line:0
Resend:1

Also, it didn't crash, but earlier on I had the following:

--- snip ---
Error:32 ISR overtaking itself.
Error:32 ISR overtaking itself.
Error:32 ISR overtaking itself.
--- snip ---

In both cases, the logs have hundreds of lines like this, THEN usually continue with no problems.

Seems more common with tight corners and short segments. Related?

G28 max end-stop issue

I have my end-stops set up so X and X home to min values, and Z homes to it's max value

When I do a home to Z ( G28 Z) the Z axis homes correctly, but as soon as I issue any G command the Z axis immediately goes to Z=0 instead of staying put at Z=191.8

Also, if I home Z (max) and then home X and Y (min) the Z gets set to Z = 0 when it should be Z = 191.8 (in my case)

My End stop Settings if that helps:

Z_HOME_DIR = 1 (Max),
INVERT_Z_DIR = true,
Z_ENDSTOPS_INVERTING = false

Compiling error with Sanguinololu v1.2

Not sure what is the cause here as but I'm getting an error when trying to compile in Arduino 0022 on a Sanguinololu v1.2

core.a(HardwareSerial.cpp.o): In function global constructors keyed to rx_buffer': /usr/share/arduino/hardware/Sanguino/cores/arduino/HardwareSerial.cpp:118: multiple definition of__vector_20'
wiring_serial.c.o:/usr/share/arduino/hardware/Sanguino/cores/arduino/wiring_serial.c:137: first defined here
/usr/lib/gcc/avr/4.3.5/../../../avr/bin/ld: Warning: size of symbol rx_buffer' changed from 256 in wiring_serial.c.o to 132 in core.a(HardwareSerial.cpp.o) core.a(HardwareSerial.cpp.o): In functionglobal constructors keyed to rx_buffer':
/usr/share/arduino/hardware/Sanguino/cores/arduino/HardwareSerial.cpp:118: multiple definition of `__vector_28'
wiring_serial.c.o:/usr/share/arduino/hardware/Sanguino/cores/arduino/wiring_serial.c:137: first defined here

Occasional Locking/jamming of an axis

Occasionally one of the axis, usually, though not always, the Z-axis kind of locks up. It's not stuck, but it just kind of vibrates back and forth when its supposed to turn and is still like normal the rest of the time. It remains like this until the board is reset with the button. There doesn't seem to be any pattern as to when it happens.

I'm using a gen6 board and I have spoken to crispy1 about this on IRC and he is having the same problem with his ramps1.3

I have been using slic3r if that makes any difference. Pretty much everything is default other than the steps/mm on Z and E. I can post the config if that helps. Someone here has had a similar issue, though having looked at the code, Im not sure how this could've fixed it? http://forums.reprap.org/read.php?146,111112,111112

Has anyone seen this or know what might be to blame?

Fan motor does not work with RAMPS

I realized Marlin 1.0 beta did not obey my commands for starting and stopping the FAN (M106 & M107). I looked at the Pins.h and I saw default values for FAN_PIN and EXTRUDER2 were the same value (9).

Marlin 1.0.0b1 and netfabb?

Just a quick question: is Marlin 1.0.0b1 supposed to be compatible with netfabb?
A quick test resulted in either super slow XY movements, or pretty fast movements (2 different profiles), but both of them had the extruder spinning like mad... if it's supposed to work with netfabb, does this mean everything needs to be re-calibrated to about 5% of the original RPM? (it felt like the extruder was running 20x too fast)

super slow printing with netfabb gcode

I have been playing with Dave Durant's new Netfabb config tool (http://forum.ultimaker.com/viewtopic.php?f=9&t=194&start=30#p988) and my print speeds are about 10% of what they are supposed to.

Here are some of the gcode snippets: http://forum.ultimaker.com/viewtopic.php?f=9&t=194&start=40#p994

the mm/min settings are all proper, so I have no idea why it is so slow: any idea? also, the gcode doesn't really react to live tuning in repg, and cranking it up to 800% didn't speed things up, but gave me a warning: too long extrusion prevented.

Step-rate above 10kHz

I have a problem with 10kHz. If I change in stepper.cpp line 234, function calc_timer() from this:
else if(step_rate > 10000) { // If steprate > 10kHz >> step 2 times
to this
else if(step_rate > 20000) { // If steprate > 10kHz >> step 2 times
the problem goes away. So far I am sure that this is part of the problem...

As it is, the movement gets really weird. It is hard to describe, so I need help to understand what is happening at this point so that I can search a little more deeply. As far as I undestood, this produces 2 steps per IRQ, but are them uniformly spaced in time?

My printer has threaded screws instead of pulleys, so I have high step-rates. 10kHz is only 1905 mm/min. But this should not be an issue because Ultimaker is going faster then that...

error compiling v1b1 for ramps 1.3/1.4 on MEGA 2560

I have tried arduino-019, 22, 23, 1.0. ( I know the firmware isn't supposed to compile on 1.0, but, I just wanted to be somewhat thorough in my attempts to get around the problem. )
All four error saying:

In file included from /Sd2Card.h:27,
from Sd2Card.cpp:21:
Sd2PinMap.h:42: error: expected unqualified-id before numeric constant
Sd2PinMap.h:43: error: expected unqualified-id before numeric constant

for reference lines 42 and 43:

uint8_t const SS_PIN = 53; // B0
uint8_t const MOSI_PIN = 51; // B2

I attempted to comment out the sdcard reader as I am not currently using it. I could not manage to get the compile to complete.

The base download will compile as is, but, as soon as I change MOTHERBOARD to 33 the error occurs.

Beta 1 hanging in mid print.

I was printing a Prusa V2 x-carriage that was sliced with Slic3r 0.5.3 ands using Pronterface to control the machine.

At line 18411 of 33834, about 45 minutes into the print the machine hung. The xyz axis stopped moving and the machine would not respond to any manual commands from Pronterface. I restarted PF and tried to connect to the firmware but nothing happened.

I have the GCode file if you need it.

Cheers
Geoff

Can't compile for Teensylu

I set MOTHERBOARD = 8 in Configuration.h.
In Arduino, I compile for Teensy++ 2.0.

I get errors:

In file included from /Marlin.h:38,
from Marlin.cpp:28:
/MarlinSerial.h: In member function 'int MarlinSerial::available()':
MarlinSerial.h:65: error: 'rx_buffer' was not declared in this scope
/MarlinSerial.h: In member function 'void MarlinSerial::write(uint8_t)':
MarlinSerial.h:70: error: 'UCSR0A' was not declared in this scope
MarlinSerial.h:70: error: 'UDRE0' was not declared in this scope
MarlinSerial.h:73: error: 'UDR0' was not declared in this scope
/MarlinSerial.h: In member function 'void MarlinSerial::checkRx()':
MarlinSerial.h:79: error: 'UCSR0A' was not declared in this scope
MarlinSerial.h:79: error: 'RXC0' was not declared in this scope
MarlinSerial.h:80: error: 'UDR0' was not declared in this scope
MarlinSerial.h:81: error: 'rx_buffer' was not declared in this scope
In file included from Marlin.cpp:28:
/Marlin.h: In function 'void serialprintPGM(const char_)':
Marlin.h:91: error: 'MSerial' was not declared in this scope
In file included from Marlin.cpp:37:
/EEPROMwrite.h: In function 'void EEPROM_RetrieveSettings(bool)':
EEPROMwrite.h:182: error: 'MSerial' was not declared in this scope
Marlin.cpp: In function 'void enquecommand(const char_)':
Marlin:209: error: 'MSerial' was not declared in this scope
Marlin.cpp: In function 'void setup()':
Marlin:249: error: 'MSerial' was not declared in this scope
Marlin.cpp: In function 'void get_command()':

Teensy's HardwareSerial.h doesn't define rx_buffer, so that causes the first error.
the compiler's iousbxxx6_7.h which contains register defs for the AT90USB1286 doesn't contain UCSR0A, etc. which causes the other errors

what is jerk?

max_xy_jerk. I tried to read the code, but still don't understand what it should do or what it should be configured to.
Just a question, not a problem.

Endstop behavior is less than ideal.

Problem: current position can be past the endstop, but when moving away from the endstop it moves relative to endstop, not the current position.

to illustrate:

M114
SENDING:M114
X:0.00Y:0.00Z:0.00E:0.00 Count X:0.00Y:0.00Z:0.00
G1 X-1000
SENDING:G1 X-1000
echo:endstops hit: X:0.00
M114
SENDING:M114
X:-1000.00Y:0.00Z:0.00E:0.00 Count X:-0.02Y:0.00Z:0.00
G1 X10
SENDING:G1 X10
M114
SENDING:M114
X:10.00Y:0.00Z:0.00E:0.00 Count X:846.70Y:0.00Z:0.00 (but the print head has since crashed into the far end of the X axis, and continued to try and move beyond the end for ~850mm because well... somehow it thought it was actually AT -1000, vs realizing that I'm at the endstop, I'm at ZERO, and won't move until the real position is greater than ZERO! :)

---- however, the move moves 1010 mm from the endstop!!!

this is HORRIBLY bad behavior!

another example - if you have a code that say G1 Z-1... when you go to Z0.4, you end up at Z1.4...

I know it's a known bug, but I don't see it listed in ISSUES.

Error Compiling

Hi,

I cloned the current repository for Marlin_v1, setup Arduino 0022 with Sanguino and when I try to compile I get the following errors, any ideas what I need to do to fix it?

Geoff

In file included from Marlin.h:11,
from EEPROMwrite.h:4,
from Marlin.cpp:30:
MarlinSerial.h:26:20: error: Stream.h: No such file or directory
In file included from Marlin.h:11,
from EEPROMwrite.h:4,
from Marlin.cpp:30:
MarlinSerial.h:111: error: expected ',' or '...' before '&' token
MarlinSerial.h:111: error: ISO C++ forbids declaration of 'String' with no type
MarlinSerial.h:130: error: expected ',' or '...' before '&' token
MarlinSerial.h:130: error: ISO C++ forbids declaration of 'String' with no type
MarlinSerial.h:122: error: 'BYTE' was not declared in this scope
MarlinSerial.h:123: error: 'BYTE' was not declared in this scope
MarlinSerial.h:124: error: 'DEC' was not declared in this scope
MarlinSerial.h:125: error: 'DEC' was not declared in this scope
MarlinSerial.h:126: error: 'DEC' was not declared in this scope
MarlinSerial.h:127: error: 'DEC' was not declared in this scope
MarlinSerial.h:132: error: 'BYTE' was not declared in this scope
MarlinSerial.h:133: error: 'BYTE' was not declared in this scope
MarlinSerial.h:134: error: 'DEC' was not declared in this scope
MarlinSerial.h:135: error: 'DEC' was not declared in this scope
MarlinSerial.h:136: error: 'DEC' was not declared in this scope
MarlinSerial.h:137: error: 'DEC' was not declared in this scope
MarlinSerial.h: In member function 'void MarlinSerial::print(int)':
MarlinSerial.h:113: error: 's' was not declared in this scope
Marlin.cpp: In function 'void setup()':
Marlin:230: error: call of overloaded 'print(int)' is ambiguous
MarlinSerial.h:112: note: candidates are: void MarlinSerial::print(int)
MarlinSerial.h:119: note: void MarlinSerial::print(const char*)
MarlinSerial.h:123: note: void MarlinSerial::print(char, int)
MarlinSerial.h:124: note: void MarlinSerial::print(unsigned char, int)
MarlinSerial.h:125: note: void MarlinSerial::print(int, int)
MarlinSerial.h:126: note: void MarlinSerial::print(unsigned int, int)
MarlinSerial.h:127: note: void MarlinSerial::print(long int, int)
MarlinSerial.h:128: note: void MarlinSerial::print(long unsigned int, int)
MarlinSerial.h:129: note: void MarlinSerial::print(double, int)
Marlin.cpp: In function 'void process_commands()':
Marlin:666: error: 'sprintf' was not declared in this scope

[Marlin_v1] Strange behaviour after homing

This might actually be a bug of pronterface as well, I am not sure:

I have the firmware configured to do Homing on the Z Axis and aim for the Max Endstop.
In pronterface I press the "Z-Home" button. Axis moves up, reaches the endstop, goes down a bit and slowly reaches the endstop again. This is fine.
M114 reports:
SENDING:M114
X:0.00Y:0.00Z:0.00E:0.00 Count X:0.00Y:0.00Z:210.00
(Note, I have not set the correct Axis lengths yet, hence 210 on a Cupcake!)

Now, when I press the Move down -1mm button on pronterface the axis keeps moving down and down and down. I have to disconnect and reconnect to abort the move.

How to use Wire.h and another lcd lib?

Hi,

In the following commit, I'm trying to use the current implementation of ultralcd with another lcd system that uses i2c, that uses an arduino lib compatible with LiquidCrystal method calls:

alx@1842ef0

Compiling under arduino 0022, I've got this error:

In file included from Marlin.cpp:35:
ultralcd.h:19:22: error: Wire.h: No such file or directory
ultralcd.h:20:26: error: Deuligne.h: No such file or directory
In file included from Marlin.cpp:35:
ultralcd.h:20: error: 'Deuligne' does not name a type
ultralcd.h: In member function 'void MainMenu::updateActiveLines(const uint8_t&, volatile int&)':
ultralcd.h:95: error: 'lcd' was not declared in this scope
ultralcd.h: In member function 'void MainMenu::clearIfNecessary()':
ultralcd.h:131: error: 'lcd' was not declared in this scope

It seems that Wire.h is not found, I've tried to place Wire.h and Deuligne.h in Marlin.pde, then it finds it during compilation, but I hit another issue:

In file included from planner.cpp:66:
ultralcd.h:18: error: 'Deuligne' does not name a type
ultralcd.h: In member function 'void MainMenu::updateActiveLines(const uint8_t&, volatile int&)':
ultralcd.h:93: error: 'lcd' was not declared in this scope
ultralcd.h: In member function 'void MainMenu::clearIfNecessary()':
ultralcd.h:129: error: 'lcd' was not declared in this scope

Would you have some hints about how to do this modification properly?

More details about Snootlab Deuligne:

Thanks :)

Alex

[Marlin 1.0.0 b1] Temperature reading

I operate a Makerbot with a Ramps 1.2 board and just switched to Marlin 1.0.0 b1.I suspect that there is something wrong with the way that the bed and extruder temps are read. Both temperatures always increase or decrease, when the bed is being turned on and the heater is off (measured with voltmeter).

I changed my pins in the according setup as follows:

ifdef RAMPS_V_1_0 // RAMPS_V_1_0

#define HEATER_0_PIN 12 // RAMPS 1.0
#define HEATER_1_PIN -1 // RAMPS 1.0
#define FAN_PIN 11 // RAMPS 1.0

else // RAMPS_V_1_1 or RAMPS_V_1_2

#define HEATER_0_PIN 10 // RAMPS 1.1
#define HEATER_1_PIN 8 // RAMPS 1.1
#define FAN_PIN 9 // RAMPS 1.1

endif

define HEATER_2_PIN -1

define TEMP_0_PIN 2 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!

define TEMP_1_PIN 8 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!

define TEMP_2_PIN -1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!

endif

Note the the bed TEMP_1_PIN is set to analog pin 8!
i switched PID of in the configuration.h file

Obeserved output (despite the fact that only the bed is turned on):
ok T:51.70 B:50.00
ok T:52.16 B:51.00
ok T:53.15 B:52.00
ok T:54.59 B:53.00
ok T:56.15 B:55.00

This used to work in Marlin Non Gen6 by the way!

I can provide other information if desired. Thanks Markus

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.