mirror of
https://github.com/synthetos/g2.git
synced 2026-08-18 17:08:38 +08:00
feb5c84aba37e3858bef0b8e80942ff96c07aa38
g2core - Edge Branch
G2 Edge is the branch for beta testing new features under development. New features are developed in feature branches and merged into the edge branch. Periodically edge is promoted to master.
That said, Edge is for the adventurous. It is not guaranteed to be stable, but we do our best to achieve this. For production uses we recommend using the Master branch.
Firmware Build 101 {fb:101.xx}
Feature Enhancements
The fb:101 release is a mostly internal change from the fb:100 branches. Here are the highlights, more detailed changelog below:
- Updated JT (Junction integration Time, a.k.a. "cornering") handling to be more optimized, and to treat the last move as a corner to a move with no active axes. This allows a non-zero stopping velocity based on the allowed jerk and active JT value.
- Updated motion execution at the segment (smallest) level to be linear velocity instead of constant velocity, resulting in notably smoother motion and more faithful execution of the jerk limitations. (Incidentally, the sound of the motors is also slightly quieter and more "natural.")
- Probing enhancements.
- Added support for gQuintic (rev B) and fixed issues with gQuadratic board support. (This mostly happened in Motate.)
- Temperature control enhancements. (Ongoing.)
- More complete support for TMC2130 by adding more JSON controls for live feedback and configuration.
- Initial support for Core XY kinematics.
Project Changes
Changelog for Edge Branch
Edge branch, Build 101.xx
This build is primarily focused on support for the new boards based on the Atmel SamS70 family, as well as refining the motion control and long awaited feature enhancements. This list will be added to as development proceed.s
Functional Changes:
Linear-Velocity Segment Execution
- The overall motion is still jerk-controlled and the computation of motion remains largely the same (although slightly simplified). At the smallest level above raw steps (what we call "segments," which are nominally 0.25ms to 1ms in duration) we previously executed the steps at a constant velocity. We now execute them with a linear change from a start velocity to an end velocity. This results in smoother motion that is more faithful to the planned jerk constraints.
- This changed the way the forward differences are used to compute the segment speeds as well. Previously, we were computing the curve at the midpoint (time-wise) of each segment in order to get the median velocity. Now that we want the start and end velocity of each segment we only compute the end (time-wise) of each segment, and use that again later as the start-point of the next segment.
Probing enhancements
- Added
{"prbs":true}to store the current position as if it were to position of a succesful probe. - Added
{"prbr":true}to enable and{"prbr":false}to enable and disable (respectively) the JSON{prb:{...}}report after a probe.
gQuintic support
- Support for the gQuintic rev B was added. Support for rev D will come shortly.
Temperature control enhancements
- Added the following settings defines:
HAS_TEMPERATURE_SENSOR_1,HAS_TEMPERATURE_SENSOR_2, andHAS_TEMPERATURE_SENSOR_3EXTRUDER_1_OUTPUT_PIN,EXTRUDER_2_OUTPUT_PIN, andBED_OUTPUT_PIN- Added
BED_OUTPUT_INITin order to control configuration of the Bed output pin settings.- Defaults to
{kNormal, fet_pin3_freq}.
- Defaults to
EXTRUDER_1_FAN_PINfor control of the temperature-enabled fan on extruder 1. (Only available on extruder 1 at the moment.)
TMC2130 JSON controls
- Added the following setting keys to the motors (
1-6):ts- (R) get the value of theTSTEPregisterpth- (R/W) get/set the value of theTPWMTHRSregistercth- (R/W) get/set the value of theTCOOLTHRSregisterhth- (R/W) get/set the value of theTHIGHregistersgt- (R/W) get/set the value of thesgtvalue of theCOOLCONFregistersgr- (R) get theSG_RESULTvalue of theDRV_STATUSregistercsa- (R) get theCS_ACTUALvalue of theDRV_STATUSregistersgs- (R) get thestallGuardvalue of theDRV_STATUSregistertbl- (R/W) get/set theTBLvalue of theCHOPCONFregisterpgrd- (R/W) get/set thePWM_GRADvalue of thePWMCONFregisterpamp- (R/W) get/set thePWM_AMPLvalue of thePWMCONFregisterhend- (R/W) get/set theHEND_OFFSETvalue of theCHOPCONFregisterhsrt- (R/W) get/set theHSTRT/TFD012value of theCHOPCONFregistersmin- (R/W) get/set theseminvalue of theCOOLCONFregistersmax- (R/W) get/set thesemaxvalue of theCOOLCONFregistersup- (R/W) get/set theseupvalue of theCOOLCONFregistersdn- (R/W) get/set thesednvalue of theCOOLCONFregister
- Note that all gets retrieve the last cached value.
Core XY Kinematics Support
- Enabled at compile-time by setting the
KINEMATICSdefine toKINE_CORE_XY- The default (and only other valid value) for
KINEMATICSisKINE_CARTESIAN
- The default (and only other valid value) for
- Note that the X and Y axes must have the same settings, or the behavior is undefined.
- For the sake of motor mapping, the values
AXIS_COREXY_AandAXIS_COREXY_Bhave been created. - Example usage:
#define M1_MOTOR_MAP AXIS_COREXY_A // 1ma
#define M2_MOTOR_MAP AXIS_COREXY_B // 2ma
Languages
C++
55.5%
C
41.4%
Pascal
1.3%
Python
0.6%
Makefile
0.6%
Other
0.6%