Commit Graph
78 Commits
Author SHA1 Message Date
Bob-the-KuhnandScott Lahteine 01fb45b4f8 hybrid PWM system
Uses PWM1 to directly control pins 4, 6 & 11 (servo 0, 1 & 3) and PWM1
generated interrupts to control other pins.

Interupt control of the servo pins had too much jitter so switched all
that we could to PWM1 direct control.  The PWM1 direct control pins have
less than 1 microsecond pulse width jitter while the interrupt
controlled ones can have 20+ microseconds of jitter.

Also added insurance to the servo code in the "disable servo after move"
section.
2017-08-31 18:33:07 -05:00
Bob-the-KuhnandScott Lahteine 7342d5c07a ST7565 2017-08-31 18:31:43 -05:00
Bob-the-KuhnandScott Lahteine 97444391e0 Servo & PWM support for LPC1768 (#7500) 2017-08-31 18:31:43 -05:00
Bob-the-KuhnandScott Lahteine d80877d570 Set pinMode with every digitalWrite (legacy compatibility) 2017-08-31 18:31:07 -05:00
Bob-the-KuhnandScott Lahteine 69704b93f2 ultralcd.cpp fix compile error - switch to int16_t 2017-08-31 18:31:07 -05:00
Bob-the-KuhnandScott Lahteine 76da81c1de minimize SD card reads when using SDCARD_SORT_ALPHA (Re-ARM board)
Because of the Re-ARM card's pinout there is only one SPI connected to
the RepRap Discount Full Graphic LCD display.  The LCD responds to ANY
SCK transitions no matter if it's enable is inactive.  The result is
garbage (usually bars) on the LCD display whenever there is SD card
activity.

This code minimizes this by only accessing the SD card when changing
directory levels if :
SDCARD_SORT_ALPHA is enabled
SDSORT_USES_RAM is true
SDSORT_CACHE_NAMES is true

The code changes result in file names being pulled from the ALPHA SORT
memory array rather than the SD card.

The code also gives the file count and file index functions their own
variables.  When they shared a common variable the index function
sometimes resulted in the file count being short by 1.

=======================================================================

cardreader.cpp & pins_RAMPS_RE_ARM.h changes

Added another condition to cardreader.cpp to enable getting file names
only from RAM.

pins_RAMPS_RE_ARM.h :
Added comments about the SD card accesses and the LCD display
Combined all versions into this one.
2017-08-31 18:23:44 -05:00
Bob-the-KuhnandScott Lahteine 84a11cfedc HAL compatible pinsDebug & misc
Re-ARM has been tested.  AVR has not been tested.

1) moved all cpu specific items to files in the low level HAL directory
for that CPU (pinDebug_Re-ARM.h & pinsDebug_AVR_8_bit.h

2) added pinsDebug.h to the top level directory

3) modified HAL_pinsDebug.h to select the correct support file for the
selected CPU

4) Patched sanitycheck to stop throwing false errors.  A long term
solution will be done

5) misc changes & bug fixes
arduino.cpp - included macros.h to fix a missing definition
pinmap_re-arm.h - removed a duplicated line.
pinmapping.h - changed from "ENABLED" to "defined" to fix a compile
error

======================================================================

split SanityCheck up, improve pinsDebug system

======================================================================

switch to latest pins_RAMPS_RE_ARM.h
2017-08-31 18:23:44 -05:00
Bob-the-Kuhn fcceed5be6 intermittent Teensy & G26 compile problem
===============================================

also an issue with ubl_motion.cpp
2017-07-01 14:41:24 -05:00
Bob-the-KuhnandGitHub 553d5ca283 Merge pull request #7183 from Bob-the-Kuhn/Fix_LETTER_OFF_in_gcode.h
Fix LETTER_OFF in gcode.h (make LETTTER_OFF return values that match param indices range)
2017-06-29 09:07:46 -05:00
Bob-the-Kuhn e6e3132f79 make LETTTER_OFF return values that match param indices range 2017-06-29 09:01:58 -05:00
Bob-the-KuhnandGitHub cd2ac3b759 Merge pull request #7182 from Bob-the-Kuhn/has__value_fix_
Correct has_value() when FASTER_GCODE_PARSER is enabled
2017-06-28 21:16:52 -05:00
Bob-the-Kuhn bfbf5f8200 correct value_bool() when FASTER_GCODE_PARSER is enabled
Also corrected compile issue when DEBUG_GCODE_PARSER and
AUTO_BED_LEVELING_UBL are both enabled.
2017-06-28 19:51:08 -05:00
Bob-the-KuhnandScott Lahteine 9651d01e1a Add Skynet/ANET A10 support 2017-06-24 19:07:03 -05:00
Bob-the-KuhnandScott Lahteine 325f09ea6c Add link to custom LiquidCrystal library by F. Malpartida 2017-06-22 13:07:08 -05:00
Bob-the-KuhnandGitHub 41bfff14e2 Merge pull request #6991 from Bob-the-Kuhn/Mesh-with-babystepping
Mesh with BABYSTEP_ZPROBE_OFFSET: add sanity check
2017-06-20 16:36:22 -05:00
Bob-the-KuhnandScott Lahteine a1c65fd3d5 convert DAC percent to uint8_t
=====================

add test to Travis
2017-06-19 17:46:41 -05:00
Bob-the-Kuhn 8fb30aaed6 warn user of an invalid combination 2017-06-17 15:04:47 -05:00
Bob-the-KuhnandScott Lahteine 6cb9bb27fe Move lcd_refresh_zprobe_zoffset definition 2017-06-16 21:46:33 -05:00
Bob-the-Kuhn 9dda022705 fix compile errors
================================

Changed to conditional compile for AT90USB issue
2017-06-15 13:18:14 -05:00
Bob-the-KuhnandGitHub b3338ccb01 Merge pull request #6954 from Bob-the-Kuhn/Software-SPI-for-all-CPUs
SD card soft SPI - allow all CPU families to use it
2017-06-15 01:03:39 -05:00
Bob-the-Kuhn 11e28f389e fix pinsDebug.h error, add capability to display more than 70 pins. 2017-06-10 22:01:15 -05:00
Bob-the-Kuhn 1c107b3949 delete problem line 2017-06-09 11:53:36 -05:00
Bob-the-KuhnandGitHub f7dacd1f50 Merge pull request #6996 from Bob-the-Kuhn/change-to-DWORD
Fix type for max_acceleration_mm_per_s2 in configuration_store.cpp
2017-06-08 16:32:40 -05:00
Bob-the-Kuhn 28d72f48f1 change to DWORD 2017-06-08 16:15:02 -05:00
Bob-the-KuhnandGitHub 76a610cf81 Merge pull request #6995 from Bob-the-Kuhn/add-static
Add "static"
2017-06-08 15:01:00 -05:00
Bob-the-Kuhn 8d1d9040b6 add static 2017-06-08 14:59:21 -05:00
Bob-the-KuhnandGitHub a17ffe1ece Merge pull request #6985 from Kaibob2/patch-1
Fix for #6980 (case_light compile problem when EXTENDED_CAPABILITIES_REPORT is enabled)
2017-06-08 11:18:56 -05:00
Bob-the-Kuhn ba0bd33c38 Removed check for 2560 family 2017-06-04 22:16:27 -05:00
Bob-the-Kuhn c34d7a29a6 fix redefinition errors for redundant_temperature
Removing redundant_temperature from public section and leaving it in the
private section
2017-06-03 16:40:14 -05:00
Bob-the-KuhnandGitHub 862def2ef4 Merge pull request #6947 from Bob-the-Kuhn/allow-GCODE_DEBUG-when-UBL-enabled
Allow DEBUG_GCODE_PARSER when UBL is enabled
2017-06-03 13:34:46 -05:00
Bob-the-Kuhn 6a5d3b580d fix "hex_address not defined" when UBL is enabled 2017-06-03 13:19:55 -05:00
Bob-the-KuhnandGitHub fff50d3958 Merge pull request #6940 from Bob-the-Kuhn/Gcode---allow-XY
Gcode.cpp - spaces and parameters
2017-06-02 21:21:32 -05:00
Bob-the-Kuhn 2130f10de8 allow space between parameter and value 2017-06-02 19:57:22 -05:00
Bob-the-Kuhn ebda4663c3 for discusion 2017-06-02 19:42:43 -05:00
Bob-the-Kuhn 9a9bbfc57c Fix case light logic on Azteeg_X3 boards. 2017-06-01 12:33:24 -05:00
Bob-the-KuhnandGitHub 4ecd41ef90 Merge pull request #6915 from Bob-the-Kuhn/gcode.h-2
gcode.h - another compile error
2017-05-31 14:03:33 -05:00
Bob-the-Kuhn 1b41e1f645 another compile error
only seen if

#if ENABLED(TEMPERATURE_UNITS_SUPPORT)
      ...
    #if
ENABLED(ULTIPANEL) && DISABLED(DISABLE_M503)
2017-05-31 13:59:49 -05:00
Bob-the-KuhnandGitHub 65bd4c8c94 Merge pull request #6797 from Bob-the-Kuhn/M355-case-lightimprovements-(1.1.x)
M355 case light improvements (replaces PR #5685)
2017-05-31 13:33:59 -05:00
Bob-the-KuhnandGitHub 7ed0761e09 Merge pull request #6914 from Bob-the-Kuhn/Gcode.h-bug-fix
gcode.h - fix compile error
2017-05-31 13:29:19 -05:00
Bob-the-Kuhn 9657e7d3ee copied file changes from PR #5685
==============================

Configuration_adv.h changes

==============================

add "live" LCD update

==============================

P & S version

==============================

final (hopefully) tested version

==============================

update M115 capabilities print

==============================

Menu changes portion of the requested changes

==============================

changed USEABLE_HARDWARE_PWM from a function to a series of macros

==============================

changes per review
2017-05-31 13:22:38 -05:00
Bob-the-Kuhn 8206bb9bb9 fix compile error
invalid conversion from 'const char*' to 'char*' [-fpermissive]
2017-05-31 13:17:01 -05:00
Bob-the-KuhnandGitHub f0d545b950 Merge pull request #6866 from Bob-the-Kuhn/Parser-fix
Parser fix
2017-05-26 15:12:59 -05:00
Bob-the-Kuhn 868e7db4ae value check was looking at the code 2017-05-26 14:49:42 -05:00
Bob-the-KuhnandGitHub 7325035aac Merge pull request #6637 from Tannoo/UBL_Menu_System_1.1
UBL Menu System 1.1
2017-05-10 15:54:48 -05:00
Bob-the-KuhnandScott Lahteine e5a27d9f36 G29 P2 & P4 bug fixes & improvements 2017-05-02 17:53:40 -05:00
Bob-the-KuhnandScott Lahteine 7ce613db0a Fix Conditionals test for endstop plug used by Z2 or probe. 2017-05-02 15:41:47 -05:00
Bob-the-Kuhn ce87c7803e implement G26 changes per review 2017-04-30 19:05:25 -05:00
Bob-the-Kuhn dcde202157 Add startup notice & update host temperatures while waiting
Right now G26 doesn't send a notice to the host that it's running.  It's
not until the heaters are at temperature that you know for sure if it's
running or not.

Added host temperature prints so that someone watching the host
interface will see the temperatures change during the warm up period.
Updates are sent every 5 seconds.
2017-04-30 15:51:58 -05:00
Bob-the-Kuhn 40089249c3 add PIN_EXISTS to HAS_xyz_MIN macro 2017-04-28 16:47:59 -05:00
Bob-the-KuhnandRoxy-3D 60471b7592 minor improvements
Configuration_store.cpp - changed a couple of print statements so the
values were printed.  The old method resulted in the formula being
printed.

ubl_G29
1) added support for R option to P4.  Now probes all points unless R is
present and the number is greater than 0.

2) P2 - moved map print statement so it showed the point that was
currently being probed,  The old location did this only for the first
point.

3) P4 - Moved the map print for the same reason.

ultralcd.cpp - changed "Mesh Editor :" to "Mesh Editor" because the LCD
draw routine puts a ":" in automatically so you end up with an extra ":"
using the old message.
2017-04-15 09:31:55 -05:00
Bob-the-Kuhn 1acb84ba02 fix 1 bug, add error messages
===============================================

make changes requested by reviewers

===============================================

add M43 test to Travis, fix EOL, remove trailing spaces
2017-04-14 20:57:45 -05:00
Bob-the-KuhnandScott Lahteine 445d39e95a CORExx endstop detection fixes
1. The CORExx printers were checking more endstop axis than needed.

2. Removed all the CORE_xx_NOT logic.  The motor_direction(xx) routine
always returns the correct data so it is not needed.  It was actually
cause the wrong direction to be checked in some cases.

3. Made the logic/defines for X, Y & Z axis all the same.  The old logic
checked inappropriate configurations for Y and didn't check all the
correct configurations on Z.

4. Added a check for zero steps before the X, Y & Z axis.  Previously
would check the they axis even if there were no movement.
2017-04-13 21:43:37 -05:00
Bob-the-KuhnandScott Lahteine 1b12fea0fa simplified M20 with size 2017-04-13 04:56:58 -05:00
Bob-the-KuhnandGitHub 5212cb8304 Merge pull request #6271 from Bob-the-Kuhn/MCP4728-consistency-2
MCP4728 consistency ... Finish name change
2017-04-07 11:31:19 -05:00
Bob-the-Kuhn f7fc49c3a3 Finish name change
DAC_STEPPER_DFLT wasn't changed to DAC_MOTOR_CURRENT_DEFAULT in all
places on PR #6124
2017-04-07 11:05:24 -05:00
Bob-the-KuhnandGitHub 549055f20c Merge pull request #6124 from Bob-the-Kuhn/MCP4728-consistency
MCP4728 consistency & fix ultralcd.cpp (PRINTRBOARD Rev F and RIGIDBOARD V2)
2017-04-06 16:35:50 -05:00
Bob-the-KuhnandGitHub a77875c9d2 Merge pull request #6114 from Bob-the-Kuhn/try2-add-BLTouch-retry
Another BLTouch retry place (replaces PR #6108)
2017-04-06 16:25:55 -05:00
Bob-the-KuhnandGitHub 3b9ff2cb12 Merge pull request #5676 from Bob-the-Kuhn/configuration.h
Configuration.h - reword Z PROBE section
2017-04-06 16:18:34 -05:00
Bob-the-Kuhn 6643d553f6 # This is a combination of 2 commits.
# This is the 1st commit message:

MCP4728 consistency & fix ultralcd.cpp

The MCP4728 DAC controls the stepper motor current strenth on the
PRINTRBOARD Rev F and RIGIDBOARD V2 boards.

PR #5792 on 9 FEB 2017 implemented default drive percentages but only on
the RIGIDBOARD V2.

This change moves the default settings to Configuration_adv.h.

Also, ultralcd.cpp won't compile because of a type def conflict.
Changed it to match the one in stepper_dac.cpp

===========================================================

reword stepper curent section for clarity

===========================================================

change name & improve comments

===========================================================

changed name from A4JP to SCOOVO_X9H per PR #6139

# This is the commit message #2:

fix typo
2017-04-06 16:16:27 -05:00
Bob-the-Kuhn a44b3432c1 add BLTouch retry to a second place & add/update delays
=================================================

implement requested changes

=================================================

remove delays (they're in another PR) & move return
2017-04-06 16:13:07 -05:00
Bob-the-KuhnandGitHub a5abc61fb9 Merge pull request #6219 from Bob-the-Kuhn/Servo-probe-and-toggle-pins
M43 - add Toggle utility and Z servo utility (replaces PR #5864)
2017-04-06 16:10:50 -05:00
Bob-the-KuhnandGitHub f87012a063 Merge pull request #5762 from Bob-the-Kuhn/Z_DUAL_ENDSTOP-make-offset-a-configuration-item
Z_DUAL_ENDSTOPS -  make offset a configuration item
2017-04-06 16:09:15 -05:00
Bob-the-Kuhn 3b8926bd09 improved wording, consolidation of info, BLTouch warning
==============================================

clarified BLTouch calculation & changed comment delimitters/flags

I found it hard to pickout the various sections in this area so I
changed most comments from // style to /** ... */

Made the BLTouch calculation simpler and clarified the units of measure
for the result.

============================================

add changes to example configurations

============================================

add TinyBoy2 to this PR & add BLTouch Delay
2017-04-06 16:06:01 -05:00
Bob-the-Kuhn f9686a108c add Z servo test and toggle pins to M43 2017-04-06 15:59:38 -05:00
Bob-the-KuhnandGitHub 3b6333c613 Merge pull request #5668 from Bob-the-Kuhn/pinsDebug-PROGMEM
pinsDebug with more features, uses less RAM
2017-04-06 15:51:45 -05:00
Bob-the-Kuhn 185337e787 add delays to allow stop & kill messages to get out 2017-04-01 00:23:14 -05:00
Bob-the-KuhnandScott Lahteine f3618c3337 Reduce UBL RAM usage by making G26/G29 optional 2017-03-31 02:20:19 -05:00
Bob-the-Kuhn 0934563b97 G38 optional double touch
Made the double touch portion a conditional compile based on the
PROBE_DOUBLE_TOUCH flag.

==============================================

Bugfix

The current G38 only stopped a move if it involved the Z axis.

Moved all the G38 code to it's own section and put it where it would
always be executed no matter what axis was moving or if the endstop was
enabled.

Also added a comment to configuration_adv to alert the user the double
tap had to be turned on.

==============================================

Change G38 back to using Z_MIN_PROBE

There's no Z_MIN endstop if Z_DUAL_ENDSTOPS is enabled and you have them
set to the top of the gantry.

G38 started out as using the Z_MIN_PROBE pin.  I don't remember why we
changed it to the Z_MIN endstop.
2017-03-22 15:08:49 -05:00
Bob-the-Kuhn 34ff0c3439 M114 - wait for move completion before reporting position 2017-03-16 15:10:45 -05:00
Bob-the-Kuhn b31604a492 Message for every KILL and STOP
No more mystery halts & resets

Moved messages to language.h

Added current command to inactive timeout message
2017-03-15 21:05:11 -05:00
Bob-the-Kuhn 685ed5393a Bug Fix: Switching extruder tool change leaves Z in wrong position
The tool_change function saves the current_position to the destination
array soon after starting.  Later in the switching extruder section, the
destination array is modified when moving the Z axis up & down.  A later
section of tool_change moves the head back to the “original location”
using the destination array.  This later section assumes that the
destination array hasn’t been modified.

The fix is to save the destination Z position and then restore it after
the Z movements have completed.

Going back to using the current_position array for the switching
extruder Z axis moves (and  leaving the destination array untouched)
doesn’t fix the problem.

This bug was introduced by the “Make tool_change kinematic compatible”
commit # 847429eff4 which was merged on 10
Oct 2016 as part of PR 4982.

This bug was discovered in Issue 5966.
2017-03-14 02:36:24 -05:00
Bob-the-KuhnandScott Lahteine c5e08e8761 CoreYX/YZ/ZX needs different endstop logic than CoreXY/YZ/XZ
In the endstop testing section, add the "reverse" logic in addition to "normal" core handling.

In CoreXY/YZ/XZ steppers rotating the same direction gives X movement. Opposing directions produces Y movement.

In CoreYX/ZY/ZX this is reversed. Same = Y, Opposite = X.

----

Fixes the issue where the Y endstop was being checked when moving in the X direction, etc.
2017-03-01 09:40:24 -06:00
Bob-the-Kuhn 0369f97ec1 guaranteed BLTouch detection
To guarantee that the 5mS pulse from a BLTouch is recognized you need to
have the endstops.update() routine run twice in that 5mS period.

At 200 steps per mm, my system has problems  below a feedrate of 120 mm
per minute.

Two things were done to guarantee the two updates within 5mS:
1) In interrupt mode, a check was added to the temperature ISR.  If the
endstop interrupt flag/counter is active then it'll kick off the endstop
update routine every 1mS until the flag/counter is zero.  This
flag/counter is decremented by the temperature ISR AND by the stepper
ISR.

2) In poling mode, code was added to the stepper ISR that will make sure
the ISR runs about every 1.5mS.  The "extra" ISR runs only check the
endstops.  This was done by grabbing the intended ISR delay and, if it's
over 2.0mS, splitting the intended delay into multiple smaller delays.
The first delay can be up to 2.0mS, the next ones 1.5mS (as needed) and
the last no less than 0.5mS.

=========================================

BLTouch error state recovery

If BLTouch already active when deploying the probe then try to reset it
& clear the probe.

If that doesn't fix it then declare an error.

Also added BLTouch init routine to startup section
2017-02-11 12:01:34 -06:00
Bob-the-KuhnandScott Lahteine ae706233a8 pinsDebug for 644/1284 & USB646/1286 families
added conditional compilation for PWMs 1C & 3C

add Teensyduino compatibility

==========================================

changes per review - minor formatting changes

1) remove non-printable character at the end of line 687

2) split a really long comment into two lines

3) got rid of some trailing spaces

============================================

Made pinsDebug_Teensyduino.h the same between this PR and PR 5668 which
is for a re-written pinsDebug.h file.

The changes were:
1) added copyright @ GNU license header
2) a blank line crept in.
2017-02-09 07:24:02 -06:00
Bob-the-KuhnandScott Lahteine c20b4098be 2 bug fixes & some minor changes
see detailed  description in PR #5118
2016-11-01 01:29:41 -05:00
Bob-the-KuhnandScott Lahteine 81397d7a9a EXTRUDER_x_AUTO_FAN name change to Ex_AUTO_FAN
I stumbled across a name change that'll be used a lot so I'm updateing
the name list.
2016-10-31 08:08:02 -05:00
Bob-the-KuhnandScott Lahteine c7f1f0dae6 Add endstop monitor & make pins report pretty 2016-10-31 08:08:02 -05:00
Bob-the-KuhnandScott Lahteine 2911aa7ffa code changes to implement G38 commands
1) modified 3 code files
Marlin.h
Marlin_main.cpp
endstops.cpp

2) modified config files so I could test on my machine

Testing was done on an AzteegX3pro based machine.

The probe was hooked to the Z_MIN endstop.

My controller doesn't have a dedicated Z_PROBE input so I couldn't test
that functionality.

Verified that a large file (without any G38 commands) executed the same
before and after the changes.

Verified that the head moves as expected when G38.2 and G38.3 commands
are issued. Single & multiple axis moves were tested along with + and -
directions.

Code was added to the main ISR. In normal operation only one extra IF
statement is evaluated. I didn't notice any performance degradation
because of the added code.

The G38 commands are expected to be issued manually by the operator
during machine setup. The G38 commands wait until the machine is idle
before proceeding. That way the other commands are minimally impacted
by the extra ISR overhead when a G38 command is in the queue.

The G38 commands are very similar to the G28 commands except 1) only the
Z_PROBE is used and movement can be in the + or - direction.

See issue 4677 for a discussion on adding G38 commands to Marlin.
Feature request: add ability to use G38.2 command (CNC)
MarlinFirmware/Marlin#4677
2016-10-01 05:00:53 -05:00