Skip to content

Commit 9bb7301

Browse files
committed
Update 2020-07-10
1 parent 50c36f0 commit 9bb7301

23 files changed

+4807
-4107
lines changed

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
# Swift Pro Firmware V4.6.0 (Base on [Grbl v0.9j](https://github.com/grbl/grbl) )
22

33
----------
4-
## Update Summary for v4.6.0
5-
6-
* Fixed air pump control delay problem
4+
## Update Summary for v4.7.0
75

6+
* Add M2211 cmd to read external EEPROM
7+
* Add M2212 cmd to write external EEPROM
8+
* Add P2244 cmd to get the communication status of AS5600
9+
* Fix read bug of work mode
810

911
## Caution
1012
#### The current firmware is not perfect and will be updated periodically
-356 KB
Binary file not shown.
-238 KB
Binary file not shown.
710 KB
Binary file not shown.
646 KB
Binary file not shown.

hex/uArmPro_V4.6.0_release_20200527.hex

Lines changed: 0 additions & 4033 deletions
This file was deleted.

hex/uArmPro_V4.7.0_release_20200710.hex

Lines changed: 4128 additions & 0 deletions
Large diffs are not rendered by default.

src/gcode.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,6 @@ uint8_t gc_execute_line(char *line)
118118
if((letter < 'A') || (letter > 'Z')) { FAIL(STATUS_EXPECTED_COMMAND_LETTER); } // [Expected word letter]
119119
char_counter++;
120120
if (!read_float(line, &char_counter, &value)) { FAIL(STATUS_BAD_NUMBER_FORMAT); } // [Expected word value]
121-
122121
// Convert values to smaller uint8 significand and mantissa values for parsing this word.
123122
// NOTE: Mantissa is multiplied by 100 to catch non-integer command values. This is more
124123
// accurate than the NIST gcode requirement of x10 when used for commands, but not quite
@@ -371,7 +370,8 @@ uint8_t gc_execute_line(char *line)
371370
case 'T': word_bit = WORD_T; break; // gc.values.t = int_value;
372371
case 'X': word_bit = WORD_X; gc_block.values.xyz[X_AXIS] = value; axis_words |= (1<<X_AXIS); break;
373372
case 'Y': word_bit = WORD_Y; gc_block.values.xyz[Y_AXIS] = value; axis_words |= (1<<Y_AXIS); break;
374-
case 'Z': word_bit = WORD_Z; gc_block.values.xyz[Z_AXIS] = value; axis_words |= (1<<Z_AXIS); break;
373+
case 'Z': word_bit = WORD_Z; gc_block.values.xyz[Z_AXIS] = value; axis_words |= (1<<Z_AXIS);
374+
break;
375375
default: FAIL(STATUS_GCODE_UNSUPPORTED_COMMAND);
376376
}
377377

@@ -626,8 +626,8 @@ uint8_t gc_execute_line(char *line)
626626
if (gc_block.non_modal_command != NON_MODAL_ABSOLUTE_OVERRIDE) {
627627
// Apply coordinate offsets based on distance mode.
628628
if (gc_block.modal.distance == DISTANCE_MODE_ABSOLUTE) {
629-
gc_block.values.xyz[idx] += coordinate_data[idx] + gc_state.coord_offset[idx];
630-
if (idx == TOOL_LENGTH_OFFSET_AXIS) { gc_block.values.xyz[idx] += gc_state.tool_length_offset; }
629+
// gc_block.values.xyz[idx] += coordinate_data[idx] + gc_state.coord_offset[idx];
630+
if (idx == TOOL_LENGTH_OFFSET_AXIS) { gc_block.values.xyz[idx] += gc_state.tool_length_offset; }
631631
} else { // Incremental mode
632632
gc_block.values.xyz[idx] += gc_state.position[idx];
633633
}
@@ -985,11 +985,11 @@ uint8_t gc_execute_line(char *line)
985985
if (gc_state.modal.motion != MOTION_MODE_NONE) {
986986
if (axis_command == AXIS_COMMAND_MOTION_MODE) {
987987
switch (gc_state.modal.motion) {
988-
case MOTION_MODE_SEEK:
988+
case MOTION_MODE_SEEK:;
989989
#ifdef USE_LINE_NUMBERS
990990
rtn_res = (uint8_t)mc_line(MOTION_MODE_SEEK, gc_block.values.xyz, gc_state.feed_rate, false, gc_state.line_number);
991-
#else
992-
rtn_res = (uint8_t)mc_line(MOTION_MODE_SEEK, gc_block.values.xyz, gc_state.feed_rate, false);
991+
#else
992+
rtn_res = (uint8_t)mc_line(MOTION_MODE_SEEK, gc_block.values.xyz, gc_state.feed_rate, false);
993993
#endif
994994
break;
995995
case MOTION_MODE_LINEAR:

src/motion_control.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,13 @@
7171
coord_effect2arm( &x, &y, &z ); // calculate the arm current coord
7272
coord_to_angle( x, y, z,
7373
&final_angle[X_AXIS], &final_angle[Y_AXIS], &final_angle[Z_AXIS] ); // calculate final angle
74-
/*
75-
char l_str[20], r_str[20], b_str[20];
76-
dtostrf( final_angle[X_AXIS], 5, 4, l_str );
77-
dtostrf( final_angle[Y_AXIS], 5, 4, r_str );
78-
dtostrf( final_angle[Z_AXIS], 5, 4, b_str );
7974

80-
DB_PRINT_STR( "final_angle: %s, %s, %s\r\n", l_str, r_str, b_str );*/
75+
// char l_str[20], r_str[20], b_str[20];
76+
// dtostrf( final_angle[X_AXIS], 5, 4, l_str );
77+
// dtostrf( final_angle[Y_AXIS], 5, 4, r_str );
78+
// dtostrf( final_angle[Z_AXIS], 5, 4, b_str );
79+
80+
// DB_PRINT_STR( "final_angle: B%s L%s R%s\r\n", b_str, l_str, r_str );
8181
// final_angle[X_AXIS] += 0.15;
8282
// final_angle[Y_AXIS] -= 0.15;
8383

src/report.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,12 @@ void report_status_message(uint8_t status_code)
8686
case STATUS_GCODE_UNDEFINED_FEED_RATE:
8787
printPgmString(PSTR("Undefined feed rate")); break;
8888

89-
case STATUS_UARM_ERROR:
90-
printString( "E21\n" );
91-
break;
92-
89+
case STATUS_UARM_ERROR:
90+
printString( "E21\n" );
91+
break;
92+
case STATUS_ENCODER_ERROR:
93+
printString("E26\n");
94+
break;
9395
default:
9496
// Remaining g-code parser errors with error codes
9597
printPgmString(PSTR("Invalid gcode ID:"));

0 commit comments

Comments
 (0)