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

Re: Start G-Code , in firmware not slicer, does this exists ?

$
0
0
You might be able to use the M23 gcode, to execute another file, from within the primary gcode file. I am not sure if this will cause any problems though.

But to be able to use M23 from within a gcode file, would allow for the functionality that you request.

Re: How to add extra movement in Y axis just before Z homing

$
0
0
Did you find a solution?

One way to make an additional move of an axes, is to use G92, like: G92 Y0 - them move -20 in Y direction: G1 Y-20


You could put the following two lines end code in your print file,
G92 Y0
G1 Y-20



so at the end of a print, there would be the added movement of -20mm in the Y-direction.


Likewise you could start all your prints with code, that would first send the print head -20mm in the Y direction.

Re: SD init fail.....make me crazy:X 2560 rev b.

Re: Auto Leveling not working.

$
0
0
Ok So i got it to work. Had to update the Marlin software. but not it wants to probe outside the bed area? what do i need to change in order por it to probe inside?

check it out

//===========================================================================
//============================= Z Probe Options =============================
//===========================================================================
// @section probes

//
// See [marlinfw.org]
//

/**
* Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
*
* Enable this option for a probe connected to the Z Min endstop pin.
*/
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

/**
* Z_MIN_PROBE_ENDSTOP
*
* Enable this option for a probe connected to any pin except Z-Min.
* (By default Marlin assumes the Z-Max endstop pin.)
* To use a custom Z Probe pin, set Z_MIN_PROBE_PIN below.
*
* - The simplest option is to use a free endstop connector.
* - Use 5V for powered (usually inductive) sensors.
*
* - RAMPS 1.3/1.4 boards may use the 5V, GND, and Aux4->D32 pin:
* - For simple switches connect...
* - normally-closed switches to GND and D32.
* - normally-open switches to 5V and D32.
*
* WARNING: Setting the wrong pin may have unexpected and potentially
* disastrous consequences. Use with caution and do your homework.
*
*/
//#define Z_MIN_PROBE_ENDSTOP

/**
* Probe Type
*
* Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
* Activate one of these to use Auto Bed Leveling below.
*/

/**
* The "Manual Probe" provides a means to do "Auto" Bed Leveling without a probe.
* Use G29 repeatedly, adjusting the Z height at each point with movement commands
* or (with LCD_BED_LEVELING) the LCD controller.
*/
//#define PROBE_MANUALLY
//#define MANUAL_PROBE_START_Z 0.2

/**
* A Fix-Mounted Probe either doesn't deploy or needs manual deployment.
* (e.g., an inductive probe or a nozzle-based probe-switch.)
*/
#define FIX_MOUNTED_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
//#define Z_PROBE_SERVO_NR 0 // Defaults to SERVO 0 connector.
//#define Z_SERVO_ANGLES {70,0} // Z Servo Deploy and Stow angles

/**
* The BLTouch probe uses a Hall effect sensor and emulates a servo.
*/
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
#endif

/**
* Enable one or more of the following if probing seems unreliable.
* Heaters and/or fans can be disabled during probing to minimize electrical
* noise. A delay can also be added to allow noise and vibration to settle.
* These options are most useful for the BLTouch probe, but may also improve
* readings with inductive probes and piezo sensors.
*/
//#define PROBING_HEATERS_OFF // Turn heaters off when probing
#if ENABLED(PROBING_HEATERS_OFF)
//#define WAIT_FOR_BED_HEATER // Wait for bed to heat back up between probes (to improve accuracy)
#endif
//#define PROBING_FANS_OFF // Turn fans off when probing
//#define DELAY_BEFORE_PROBING 200 // (ms) To prevent vibrations from triggering piezo sensors

// A probe that is deployed and stowed with a solenoid pin (SOL1_PIN)
//#define SOLENOID_PROBE

// A sled-mounted probe like those designed by Charles Bell.
//#define Z_PROBE_SLED
//#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.

//
// For Z_PROBE_ALLEN_KEY see the Delta example configurations.
//

/**
* Z Probe to nozzle (X,Y) offset, relative to (0, 0).
* X and Y offsets must be integers.
*
* In the following example the X and Y offsets are both positive:
* #define X_PROBE_OFFSET_FROM_EXTRUDER 10
* #define Y_PROBE_OFFSET_FROM_EXTRUDER 10
*
* +-- BACK ---+
* | |
* L | (+) P | R <-- probe (20,20)
* E | | I
* F | (-) N (+) | G <-- nozzle (10,10)
* T | | H
* | (-) | T
* | |
* O-- FRONT --+
* (0,0)
*/
#define X_PROBE_OFFSET_FROM_EXTRUDER 83 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER 0 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle]

// Certain types of probes need to stay away from edges
#define MIN_PROBE_EDGE 10

// X and Y axis travel speed (mm/m) between probes
#define XY_PROBE_SPEED 8000

// Feedrate (mm/m) for the first approach when double-probing (MULTIPLE_PROBING == 2)
#define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z

// Feedrate (mm/m) for the "accurate" probe of each point
#define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2)

// The number of probes to perform at each point.
// Set to 2 for a fast/slow probe, using the second probe result.
// Set to 3 or more for slow probes, averaging the results.
//#define MULTIPLE_PROBING 2

/**
* Z probes require clearance when deploying, stowing, and moving between
* probe points to avoid hitting the bed and other hardware.
* Servo-mounted probes require extra space for the arm to rotate.
* Inductive probes need space to keep from triggering early.
*
* Use these settings to specify the distance (mm) to raise the probe (or
* lower the bed). The values set here apply over and above any (negative)
* probe Z Offset set with Z_PROBE_OFFSET_FROM_EXTRUDER, M851, or the LCD.
* Only integer values >= 1 are valid here.
*
* Example: `M851 Z-5` with a CLEARANCE of 4 => 9mm from bed to nozzle.
* But: `M851 Z+1` with a CLEARANCE of 2 => 2mm from bed to nozzle.
*/
#define Z_CLEARANCE_DEPLOY_PROBE 10 // Z Clearance for Deploy/Stow
#define Z_CLEARANCE_BETWEEN_PROBES 5 // Z Clearance between probe points
#define Z_CLEARANCE_MULTI_PROBE 5 // Z Clearance between multiple probes
//#define Z_AFTER_PROBING 5 // Z position after probing is done

#define Z_PROBE_LOW_POINT -2 // Farthest distance below the trigger-point to go before stopping

// For M851 give a range for adjusting the Z probe offset
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20

// Enable the M48 repeatability test to test probe accuracy
//#define Z_MIN_PROBE_REPEATABILITY_TEST

// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
// :{ 0:'Low', 1:'High' }
#define X_ENABLE_ON 0
#define Y_ENABLE_ON 0
#define Z_ENABLE_ON 0
#define E_ENABLE_ON 0 // For all extruders

// Disables axis stepper immediately when it's not being used.
// WARNING: When motors turn off there is a chance of losing position accuracy!
#define DISABLE_X false
#define DISABLE_Y false
#define DISABLE_Z false
// Warn on display about possibly reduced accuracy
//#define DISABLE_REDUCED_ACCURACY_WARNING

// @section extruder

#define DISABLE_E false // For all extruders
#define DISABLE_INACTIVE_EXTRUDER true // Keep only the active extruder enabled.

// @section machine

// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
#define INVERT_X_DIR false
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false

// @section extruder

// For direct drive extruder v9 set to true, for geared extruder set to false.
#define INVERT_E0_DIR false
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false
#define INVERT_E3_DIR false
#define INVERT_E4_DIR false

// @section homing

//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed

//#define UNKNOWN_Z_NO_RAISE // Don't raise Z (lower the bed) if Z is "unknown." For beds that fall when Z is powered off.

//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
// Be sure you have this distance over your Z_MAX_POS in case.

// Direction of endstops when homing; 1=MAX, -1=MIN
// :[-1,1]
#define X_HOME_DIR -1
#define Y_HOME_DIR 1
#define Z_HOME_DIR -1

// @section machine

// The size of the print bed
#define X_BED_SIZE 270.0
#define Y_BED_SIZE 270.0

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

/**
* Software Endstops
*
* - Prevent moves outside the set machine bounds.
* - Individual axes can be disabled, if desired.
* - X and Y only apply to Cartesian robots.
* - Use 'M211' to set software endstops on/off or report current state
*/

// Min software endstops constrain movement within minimum coordinate bounds
#define MIN_SOFTWARE_ENDSTOPS
#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
#define MIN_SOFTWARE_ENDSTOP_X
#define MIN_SOFTWARE_ENDSTOP_Y
#define MIN_SOFTWARE_ENDSTOP_Z
#endif

// Max software endstops constrain movement within maximum coordinate bounds
#define MAX_SOFTWARE_ENDSTOPS
#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
#define MAX_SOFTWARE_ENDSTOP_X
#define MAX_SOFTWARE_ENDSTOP_Y
#define MAX_SOFTWARE_ENDSTOP_Z
#endif

#if ENABLED(MIN_SOFTWARE_ENDSTOPS) || ENABLED(MAX_SOFTWARE_ENDSTOPS)
//#define SOFT_ENDSTOPS_MENU_ITEM // Enable/Disable software endstops from the LCD
#endif

/**
* Filament Runout Sensors
* Mechanical or opto endstops are used to check for the presence of filament.
*
* RAMPS-based boards use SERVO3_PIN for the first runout sensor.
* For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc.
* By default the firmware assumes HIGH=FILAMENT PRESENT.
*/
//#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 false // 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

//===========================================================================
//=============================== Bed Leveling ==============================
//===========================================================================
// @section calibrate

/**
* Choose one of the options below to enable G29 Bed Leveling. The parameters
* and behavior of G29 will change depending on your selection.
*
* If using a Probe for Z Homing, enable Z_SAFE_HOMING also!
*
* - AUTO_BED_LEVELING_3POINT
* Probe 3 arbitrary points on the bed (that aren't collinear)
* You specify the XY coordinates of all 3 points.
* The result is a single tilted plane. Best for a flat bed.
*
* - AUTO_BED_LEVELING_LINEAR
* Probe several points in a grid.
* You specify the rectangle and the density of sample points.
* The result is a single tilted plane. Best for a flat bed.
*
* - AUTO_BED_LEVELING_BILINEAR
* Probe several points in a grid.
* You specify the rectangle and the density of sample points.
* The result is a mesh, best for large or uneven beds.
*
* - AUTO_BED_LEVELING_UBL (Unified Bed Leveling)
* A comprehensive bed leveling system combining the features and benefits
* of other systems. UBL also includes integrated Mesh Generation, Mesh
* Validation and Mesh Editing systems.
*
* - MESH_BED_LEVELING
* Probe a grid manually
* The result is a mesh, suitable for large or uneven beds. (See BILINEAR.)
* For machines without a probe, Mesh Bed Leveling provides a method to perform
* leveling in steps so you can manually adjust the Z height at each grid-point.
* With an LCD controller the process is guided step-by-step.
*/
//#define AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR
#define AUTO_BED_LEVELING_BILINEAR
//#define AUTO_BED_LEVELING_UBL
//#define MESH_BED_LEVELING

/**
* Normally G28 leaves leveling disabled on completion. Enable
* this option to have G28 restore the prior leveling state.
*/
//#define RESTORE_LEVELING_AFTER_G28

/**
* Enable detailed logging of G28, G29, M48, etc.
* Turn on with the command 'M111 S32'.
* NOTE: Requires a lot of PROGMEM!
*/
//#define DEBUG_LEVELING_FEATURE

#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
// 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

// For Cartesian machines, instead of dividing moves on mesh boundaries,
// split up moves into short segments like a Delta. This follows the
// contours of the bed more closely than edge-to-edge straight moves.
#define SEGMENT_LEVELED_MOVES
#define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)

/**
* Enable the G26 Mesh Validation Pattern tool.
*/
//#define G26_MESH_VALIDATION
#if ENABLED(G26_MESH_VALIDATION)
#define MESH_TEST_NOZZLE_SIZE 0.4 // (mm) Diameter of primary nozzle.
#define MESH_TEST_LAYER_HEIGHT 0.2 // (mm) Default layer height for the G26 Mesh Validation Tool.
#define MESH_TEST_HOTEND_TEMP 205.0 // (°C) Default nozzle temperature for the G26 Mesh Validation Tool.
#define MESH_TEST_BED_TEMP 60.0 // (°C) Default bed temperature for the G26 Mesh Validation Tool.
#endif

#endif

#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)

// Set the number of grid points per dimension.
#define GRID_MAX_POINTS_X 3
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

// Set the boundaries for probing (where the probe can reach).
#define LEFT_PROBE_BED_POSITION 10 // MIN_PROBE_EDGE
#define RIGHT_PROBE_BED_POSITION 100 //(X_BED_SIZE - MIN_PROBE_EDGE)
#define FRONT_PROBE_BED_POSITION 10 //MIN_PROBE_EDGE
#define BACK_PROBE_BED_POSITION 100 //(Y_BED_SIZE - MIN_PROBE_EDGE)

// Probe along the Y axis, advancing X after each column
//#define PROBE_Y_FIRST

#if ENABLED(AUTO_BED_LEVELING_BILINEAR)

// Beyond the probed grid, continue the implied tilt?
// Default is to maintain the height of the nearest edge.
//#define EXTRAPOLATE_BEYOND_GRID

//
// Experimental Subdivision of the grid by Catmull-Rom method.
// Synthesizes intermediate points to produce a more detailed mesh.
//
//#define ABL_BILINEAR_SUBDIVISION
#if ENABLED(ABL_BILINEAR_SUBDIVISION)
// Number of subdivisions between probe points
#define BILINEAR_SUBDIVISIONS 3
#endif

Re: Start G-Code , in firmware not slicer, does this exists ?

$
0
0
Quote
MrAlvin
You might be able to use the M23 gcode, to execute another file, from within the primary gcode file. I am not sure if this will cause any problems though.  

But to be able to use M23 from within a gcode file, would allow for the functionality that you request.
Thanks alot.
Not sure this if i can make this work the way i was thinking but 'll give it a go :)

Delta TMC2130 sensorless homing Marlin 2.0

$
0
0
Hello everyone,

yesterday I tried Marlin 2.0 on my delta machine. I use the einsy rambo - yes, very exotic for delta machines. I also enabled sensorless homing:

I played around with the sensitivity but the Z axis keeps crashing. X and Y axis homing works fine. Any Ideas what to do?

Also homing a single axis with "G28 X" just homes all axis - is this command disabled on delta machines?

Thanks for your help!

Re: Delta TMC2130 sensorless homing Marlin 2.0

$
0
0
Same issue with Marlin 1.1.9

Is this feature not ready for delta machines or did I miss something in the config file?

Autoleveling issue with BLTOUCH

$
0
0
Suddenly, my Anycubic Kossel Linear Plus printer is sending the print head crashing into the bed whenever i run the G29 command.

Here is the debug log:
18:26:03.746 : X:0.00 Y:0.00 Z:233.83 E:0.00 Count X: 37578 Y:37578 Z:37578
18:26:13.164 : echo:DEBUG:LEVELING
18:26:17.454 : current_position=(0.00, 0.00, 233.83) : >>> gcode_G29
18:26:17.454 : Machine Type: Delta
18:26:17.454 : Probe: BLTOUCH
18:26:17.455 : Probe Offset X:0 Y:-35 Z:-1.40 (Middle-Front & Below Nozzle)
18:26:17.455 : Auto Bed Leveling: BILINEAR
18:26:17.455 : G29 Auto Bed Leveling
18:26:17.458 : current_position=(0.00, 0.00, 233.82) : sync_plan_position_kinematic
18:26:17.463 : current_position=(0.00, 0.00, 233.82) : setup_for_endstop_or_probe_move
18:26:17.465 : current_position=(0.00, 0.00, 233.82) : set_probe_deployed
18:26:17.465 : deploy: 1
18:26:17.467 : do_probe_raise(50.00)
18:26:17.469 : >>> do_blocking_move_to(0.00, 0.00, 233.82)
18:26:17.469 : destination=(0.00, 0.00, 233.82) : set_destination_to_current
18:26:17.474 : current_position=(0.00, 0.00, 233.82) : xy move
18:26:17.475 : <<< do_blocking_move_to
18:26:17.475 : reset_bed_level
18:26:17.477 : >>> probe_pt(-55.00, -55.00, no stow)
18:26:17.482 : current_position=(0.00, 0.00, 233.82) :
18:26:17.482 : do_probe_raise(10.00)
18:26:17.482 : >>> do_blocking_move_to(-55.00, -20.00, 233.82)
18:26:17.483 : destination=(0.00, 0.00, 233.82) : set_destination_to_current
18:26:17.915 : current_position=(-55.00, -20.00, 233.82) : xy move
18:26:17.978 : <<< do_blocking_move_to
18:26:17.982 : current_position=(-55.00, -20.00, 233.82) : set_probe_deployed
18:26:17.982 : deploy: 1
18:26:17.984 : current_position=(-55.00, -20.00, 233.82) : >>> run_z_probe
18:26:17.986 : >>> do_blocking_move_to(-55.00, -20.00, 11.40)
18:26:17.988 : destination=(-55.00, -20.00, 233.82) : set_destination_to_current
18:26:17.992 : current_position=(-55.00, -20.00, 233.82) : xy move
18:26:17.994 : destination=(-55.00, -20.00, 11.40) : prepare_uninterpolated_move_to_destination
18:26:17.998 : current_position=(-55.00, -20.00, 11.40) : z lower move
18:26:25.720 : <<< do_blocking_move_to
18:26:25.720 : current_position=(-55.00, -20.00, 11.40) : >>> do_probe_move
18:26:25.774 : set_bltouch_deployed(1)
18:26:25.774 : >>> do_blocking_move_to(-55.00, -20.00, -300.26)
18:26:25.775 : destination=(-55.00, -20.00, 11.40) : set_destination_to_current
18:26:25.780 : current_position=(-55.00, -20.00, 11.40) : xy move
18:26:25.782 : destination=(-55.00, -20.00, -300.26) : prepare_uninterpolated_move_to_destination
18:26:25.786 : current_position=(-55.00, -20.00, -300.26) : z lower move
18:26:28.550 : Printer reset detected - initalizing

There is a strange call to do_blocking_move to -300 just after the bltouch is deployed.

Has anyone seen this? Any suggestions on what could be happening?

Re: Can G-code scripts be run automatically on inserting an SD card when using Marlin Firmware?

Re: Can G-code scripts be run automatically on inserting an SD card when using Marlin Firmware?

$
0
0
Basically the code for such a function already exists, e.g. it loads the "auto%i.g" files, so it would probably be fairly simple to reuse and write a function where both those "events" can benefit from the same function albeit run with different parameters: e.g. next to "auto%i.g" it should be possible to allow e.g. "autoSD%i.g" in the root of the SD card.

Re: Can G-code scripts be run automatically on inserting an SD card when using Marlin Firmware?

$
0
0
It will need some 'protect the user from their own stupidity code' ie what happens when a SD card with the appropriate auto start file is inserted mid print?

Current code doesnt have this, as it just been powered on. ie a known state of not already printing.

Re: Can G-code scripts be run automatically on inserting an SD card when using Marlin Firmware?

$
0
0
Indeed, good point! Thanks for sharing.

That should be caught first prior to executing the code function, or evaluated in the function. I'll look into it some more.

Re: problem with LCD and encoder mod

$
0
0
Anyone ?
I don't want whole instruction step by step, only a few tips.

I'm looking for information where to look where I can change:

1)encoder pins x3 Propably in pins_ANET_10.h but how to say marlin about SDA and SCL pins where to change it? At the standard configuration in HD44780 and 2004LCD SDA and SCL are connected to DB6 and DB7.

2)how to enable only 2004LCD+I2C? without preconfigured encoder and other stuff? Conditionals_LCD.h? Better change other LCD config or write my own?

3)Some tips?

I'm only try to understand how it work before making some changes.

Re: SD init fail.....make me crazy:X 2560 rev b.

Re: SD init fail.....make me crazy:X 2560 rev b.

$
0
0
I would double check that nothing close to the SD-card reader has been shorted by the new wires.

And then I would re-heat each of the pins of the SD-card reader. And before re-heating, I would add some flux, or while re-heating; add some solder using a thin solder wire. I have a 0.6 mm solder, that I use for such events.
Soldering things close to the pads of the SD-card-reader-pads can, in rare situations, cause the solder-connection of the SD-card-reader-pads to become a little loose, and creating a "cold" solder-joint. Cold-solder-joints are a pain to deal with, as they visually appear to be just fine, but electrically they are not fine.
I would pay special attention to the SD-card-reader-pads close to the new wires - and make sure to add a little extra solder to those pads.

Cold-solder-joint events, on equipment that used to work just fine, is the new scourge of non-leaded-solder. For these events to occur though, it is usually necessary that a high-temperature-event (or repeated very-warm-temperature-events) has happened in close proximity to the newly-created cold-solder-joint pad. But soldering in those new wires, might just have been that close-by high-temperature-event.

Re: SD init fail.....make me crazy:X 2560 rev b.

$
0
0
Also, did you check to see if any debris might have found its way to the inside of the sd-card-reader slot?

You might also try soaking the entire sd-card-reader in rubbing-alcohol, as this would remove any grease that might have attached itself to the metal-strips, that is meant to make the connection between the card-reader and sd-card.

Re: problem with LCD and encoder mod

$
0
0
For the LCD to work with I2C, and the PFC8574 I2C I/O-expander, you can select the display: LCD_SAINSMART_I2C_2004

You need to connect the pins of the PFC8574 like this:

#define LCD_I2C_PIN_BL 3
#define LCD_I2C_PIN_EN 2
#define LCD_I2C_PIN_RW 1
#define LCD_I2C_PIN_RS 0
#define LCD_I2C_PIN_D4 4
#define LCD_I2C_PIN_D5 5
#define LCD_I2C_PIN_D6 6
#define LCD_I2C_PIN_D7 7


Then you need to find out if the PFC8574 that you use is actually only a PFC8574, or if it is named PFC8574T, PFC8574A, or PFC8574AT as they each use different base addresses on the I2C bus.
The PFC8574 uses address 0x27

As seen in Conditionals_LCD.h
#define LCD_I2C_TYPE_PCF8575
#define LCD_I2C_ADDRESS 0x27
#define ULTRA_LCD


Edit: This information should work with Marlin 1.1.9

Re: problem with LCD and encoder mod

$
0
0
It seems to me that the "SkyNet 2.3.1 changes" is targeted towards Marlin 1.0.2
so the files found at Thingiverse, can not directly be copied into a Marlin 1.1.9

By following the details from above, about enabling the "LCD_SAINSMART_I2C_2004" option in configuration.h, then the LCD should start working.
Then we just need to get the encoder and buttons to work, Yes?

Re: problem with LCD and encoder mod

$
0
0
So, I just hooked up an I2C LCD and tested a compile of Marlin 1.1.9 (using Arduino 1.8.5) - and the LCD is working with the "LCD_SAINSMART_I2C_2004" option enabled.

I did however already have the "Newliquidcrystal_135" LCD library installed.
This library you can find here: [bitbucket.org]


But back to getting the encoder to work........

Re: problem with LCD and encoder mod

$
0
0
For a better suggestion for a solution:


In configuration.h put in a
#define ANET_ENCODER_LCD

---------

I file Conditionals_LCD.h replace:
"
#elif ENABLED(ANET_FULL_GRAPHICS_LCD)

#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

#elif ENABLED(BQ_LCD_SMART_CONTROLLER)
"

With:

"
#elif ENABLED(ANET_FULL_GRAPHICS_LCD)

#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

#elif ENABLED(ANET_ENCODER_LCD)
#define LCD_SAINSMART_I2C_2004
#define ULTIPANEL

#ifndef ENCODER_STEPS_PER_MENU_ITEM
#define ENCODER_STEPS_PER_MENU_ITEM 1
#endif
#ifndef ENCODER_PULSES_PER_STEP
#define ENCODER_PULSES_PER_STEP 4
#endif

#elif ENABLED(BQ_LCD_SMART_CONTROLLER)
"
------------------

in file pins_ANET_10.h replace:
"
#define LCD_SDSS 28
#if ENABLED(ADC_KEYPAD)

"
with:

"
#define LCD_SDSS 28
#if ENABLED(ULTIPANEL)
#define BTN_EN1 -1
#define BTN_EN2 -1
#define BTN_ENC -1
#elif ENABLED(ADC_KEYPAD)
"

I believe this was all I changed in a Marlin 1.1.9 download, besides setting the motherboard to be BOARD_ANET_10


I have tested this on a Mega, with I2C LCD, and the encoder on a RD_Smart_Controller, and it works.
For this test to work, I needed to disable the check for the 1284p AVR in pins_ANET_10.h


I have test compiled this for the Sanguino (1284p), and it compiles just fine. So hopefully it will also run just fine.


Either way, I hope these few clues, will get you closer to a working solution


Edit: Well, you do need to change -1 with the right numbers for the pins you decide to connect to the Encoder ;-)
Viewing all 12089 articles
Browse latest View live


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