Major update, read upgrade notes and log for changes #961

merged 91 commits into from Jul 2, 2016


None yet

2 participants


New Motion control.

NOTE no laser support ATM.

wolfmanjm and others added some commits May 14, 2016
@wolfmanjm wolfmanjm Inital rewrite of stepticker and associated code to implement acclera…
…tion per tick.
@wolfmanjm wolfmanjm fixed bugs
optimized stepticker to use fixed point
generates steps now
@wolfmanjm wolfmanjm add job queue to stepticker.
remove unused data from steppermotor
@wolfmanjm wolfmanjm start at tick 0
round the fp to fixfp rather than floor
@wolfmanjm wolfmanjm comments 3545b5a
@wolfmanjm wolfmanjm allow for a file in src that will be used for the…
… excluded midules but is not checked into git

@wolfmanjm wolfmanjm started hacking on the new conveyor model
removed stepper as it doesn nothing now
removed the events on_block_begin, on_block_end, on_gcode_execute
@wolfmanjm wolfmanjm do not disable irqs in block queue anymore. Should not be needed 2a7a313
@wolfmanjm wolfmanjm Fix drillign cycles to use WCS abca780
@wolfmanjm wolfmanjm Reworked the entire block queue and conveyor, see comments in COnveyo…
…r for new method.

  Advantages:- no delay between moves as handoff is no longer in ISR, uses a littl ebit more mempory to store queues
  blocks are deleted when moved to step ticker job queue, but no more on_block_begin etc
  the gc_pending double tail is no longer needed as block queue is always handled in on_main_loop()
  There is a slight delay before first block will run, currently hardcoded to 100ms will be settable in config, the longer it is the more likely the first moves will be planned properly.
  if it is too short then planning may not be done correctly when streaming.
@wolfmanjm wolfmanjm tweak the check_queue for when to push new blocks onto the job queue e518eb8
@wolfmanjm wolfmanjm Fix conveyor to autostart
Fix the way the queues are kept full
FIx detection of idle condition
  TOD if moves are faster than about 150ms the job queue will dry up which is a problen for the planner as it will not know and will not decelerate
@wolfmanjm wolfmanjm improve the check for blocks that can be pushed onto the job queue 433d636
@wolfmanjm wolfmanjm attempt to fix the issues regarding the job q drying up and motion st…
…oppoing dead - not complete
@wolfmanjm wolfmanjm make the jobq time atomic 09694f2
@wolfmanjm wolfmanjm Merge remote-tracking branch 'upstream/edge' into mergecnc-accpertick
@wolfmanjm wolfmanjm fix step ticker debug pin definition ccb06c1
@wolfmanjm wolfmanjm Merge remote-tracking branch 'upstream/edge' into feature/acceleratio…
@wolfmanjm wolfmanjm Merge branch 'upstreamedge' into feature/acceleration-per-tick 0e99f88
@wolfmanjm wolfmanjm remove the minimum stepper rate as it is no longer used 64e0bf7
@wolfmanjm wolfmanjm move where the stepticker debug pin is defined 265bab4
@wolfmanjm wolfmanjm Merge remote-tracking branch 'upstream/edge' into feature/acceleratio…
@wolfmanjm wolfmanjm Go back to stepticker getting data direct from block queue.
  This solves the issue of stepticker queue running dry
  uses the dual tail pointer that triffid designed
  block queue garbage collected during on_idle
  still has optimization to wait for queue to fill or timeout
@wolfmanjm wolfmanjm fix bugs inconveyor so it starts queue off correctly a19a873
@wolfmanjm wolfmanjm Implement endstops using new motion control
  this breaks some backwards compatibility
    1. XY can home at the same time but not Z so by default XY homes then Z (on cartesians)
    2. the alpha_max, beta_max and gamma_max must be defined to limit the homing movement for that axis
    3. corexy can now only home each axis one at a time
  delta is not done yet
renamed THEKERNEL->robot to THEROBOT
@wolfmanjm wolfmanjm Implement homing for deltas, which only homes in the Z Axis a35788e
@wolfmanjm wolfmanjm refactor how axis are selected for homing ceeb915
@wolfmanjm wolfmanjm fix homing, speeds and backoffs 98e3067
@wolfmanjm wolfmanjm Merge remote-tracking branch 'upstream/edge' into feature/acceleratio…
@wolfmanjm wolfmanjm refactors 95bb7f0
@wolfmanjm wolfmanjm rewrite zprobe to work with new motion control 6d142b7
@wolfmanjm wolfmanjm update scaralcal to compile 8680d60
@wolfmanjm wolfmanjm debounce is now debounce_ms and the old debounce_count is ignored for…
… zprobe but still used for limit switches in endstops

  as the switches are now polled every millisecond that is usually enough for a debounce, so is set to 0 by default, but if set should be in ms and far less than it used to be
@wolfmanjm wolfmanjm minoir refactor of config_load de5787e
@wolfmanjm wolfmanjm initial modification for 5 axis, two extruders only one active 29e809e
@wolfmanjm wolfmanjm rewrite extruder to handle new core system 13ad723
@wolfmanjm wolfmanjm Old extruder config settings have been removed, Azteeg configs update…
…d to accomodate
@wolfmanjm wolfmanjm add home_z_first option for homing, where Z will home first then X and Y 374d077
@wolfmanjm wolfmanjm fix a lot of extruder functionality,
 firmware retract etc
 fix get axis position in robot to return more than 3 axis
@wolfmanjm wolfmanjm minor updates ec45206
@wolfmanjm wolfmanjm check max speeds in solo_move 88fd4f7
@wolfmanjm wolfmanjm FIx suspend/pause and saving/restoring Extruder state, this is comple…
…x due to possible scaling of E parameter in the actuator
@wolfmanjm wolfmanjm fix the public data for extruder that the panel uses
fix filament detector access to extruder
@wolfmanjm wolfmanjm move more modules to AHB0 216ef70
@wolfmanjm wolfmanjm make the tick_info in Block a vector, assigning how ever many registe…
…red motors there are

  This may use slightly more memory in the long run (std::vector vs std::array), but it doesn't need the huge chunk to allocate
  which may fails as the heap is too fragmented after config
@wolfmanjm wolfmanjm remove debug of block 4346c0a
@wolfmanjm wolfmanjm use std::vector instead of std::array so we don't have one huge chunk…
… when the block queue is created
@wolfmanjm wolfmanjm change the M203 to be M203 and M203.1 for actuators and use XYZ not ABC 125b71c
@wolfmanjm wolfmanjm Hack to save position around G10 and G11 for older slic3rs that do G9…
…2 E0 between the two

  - note the current step position will still be incorrect after G11 has finished executing but only for E and only for M114.1
@wolfmanjm wolfmanjm minior refactors and comment editing 1a93619
@wolfmanjm wolfmanjm minor refactors ad6a77d
@wolfmanjm wolfmanjm fix entry speed of a move following an retracty or unretract (non pri…
…mary axis move)

include the E movement in the millimeters of travel calculation for when the E steps are greater than the XYZ
@wolfmanjm wolfmanjm calculate unit vector with real distance of XYZ not including E axis 14a90ad
@wolfmanjm wolfmanjm fix extruder E values when in volumetric mode. this is a breaking cha…
…nge as it now always expects the E parameter to be in mm^3

  - the down side here is that when you extrude 10mm form pronterface it will be interpreted as 10mm^3 instead
G10/G11 should now work, M207 still specifes retract length in mm, but is converted to mm^3 when G10 is executed
  - we now have a function pointer set by the active extruder to get the E scaling from robot
@wolfmanjm wolfmanjm fix inconsistencies in disyance for e only moves and accleration scal…
…ing etc

removed hack for G92 between G10 and G11
@wolfmanjm wolfmanjm fix using is queue empty when it should be is_idle 7baa50d
@wolfmanjm wolfmanjm Merge remote-tracking branch 'upstream/edge' into feature/5-axis
@wolfmanjm wolfmanjm allow $H to initiate homing when in halt, and clears halt as well (as…
… per GRBL)
@wolfmanjm wolfmanjm fix move to origin for deltas and cartesians when not homing all axis 1d323f9
@wolfmanjm wolfmanjm rename wait_for_empty_queue to wait for idle 0478265
@wolfmanjm wolfmanjm reset axis before trying to home 7427982
@wolfmanjm wolfmanjm fix M207 and M205 73a0eab
@wolfmanjm wolfmanjm fix M205 when printed out by M500 43fa8fd
@wolfmanjm wolfmanjm add M114.3 for extruder
fix for CNC build
@wolfmanjm wolfmanjm use fast rate for backoff endstops 0464bc3
@wolfmanjm wolfmanjm revert change to back off at fast rate, it is too violent on deltas. addf249
@wolfmanjm wolfmanjm minor refactor 2441ba9
@wolfmanjm wolfmanjm allow deprectaed M203 A B C format, but warn about deprecation 3e1ea0e
@wolfmanjm wolfmanjm Merge remote-tracking branch 'upstream/edge' into feature/5-axis 2930942
@wolfmanjm wolfmanjm ifdef laser out 640ec34
@wolfmanjm wolfmanjm note that old extruder syntax is no longer supported 98e3f76
@wolfmanjm wolfmanjm fix M207 Zxxx
Update config extruder config syntax
@wolfmanjm wolfmanjm comment out laser for now 1843a68
@wolfmanjm wolfmanjm Fix a bug where a move could result in zero steps for all axis 6f5d947
@wolfmanjm wolfmanjm alos make sure stepticker handles ablock with no steps on any motor 4de83d4
@wolfmanjm wolfmanjm remove acceleration_ticks_per_second from all sample configs 230546f
@wolfmanjm wolfmanjm implement on helt in player toavoid race conditions 18fd33e
@wolfmanjm wolfmanjm fix homing an individual axis 8cc5173
@wolfmanjm wolfmanjm Merge remote-tracking branch 'upstream/edge' into experiment/merge-de…

@wolfmanjm wolfmanjm update upgrade notes ff8e110
@wolfmanjm wolfmanjm allow restoration of G28.1 position 08beee4
@wolfmanjm wolfmanjm fix MPG mode for CNC pendant e355738
@wolfmanjm wolfmanjm implement current_speed for panel display 4ccda72
@Zaaphod Zaaphod Merge pull request #3 from Smoothieware/edge-unstable
Edge unstable update
@wolfmanjm wolfmanjm show nominal speed for each curren tblock on CNC panel 9715264
@Zaaphod Zaaphod G28.1 minor refinement
Only X and Y are used to move to predefined position with G28.2 (or G28
in GRBL mode), so Z should not be saved in the config-override file.
@wolfmanjm wolfmanjm Merge pull request #957 from Zaaphod/G28.1-minor-adjustment
G28.1 minor adjustment
@wolfmanjm wolfmanjm Merge remote-tracking branch 'upstream/edge-unstable' into feature/5-…
@wolfmanjm wolfmanjm set grbl_mode true by default for CNC build 12e6e7b
@wolfmanjm wolfmanjm make default baud rate 9600 to match builtin default fd12e31
@wolfmanjm wolfmanjm typo fix 12f08b7
@wolfmanjm wolfmanjm merged commit d82b3e8 into Smoothieware:edge Jul 2, 2016

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment