2.0.1 9/13/10 - Bug fix - on v1.1 EBB hardware, need to
disable RB0 alt pause
button.
switched it to RB2 on v1.1
hardware
2.0.2 10/3/10 - Bug fix - QC command not returning proper
results - added
cast and now works OK
2.1.0 10/21/10- Added in
SE - Set Engraver - turns
engraver (on RB3) on or off, or
set to PWM power level
Added code in init to pre-charge RC7
(USB_SENSE_IO) high
before running rest of code
to get around wrong resistor
value on hardware.
2.1.1 11/21/10- Removed Microchip USB stack v2.7, replaced it
with v2.8 from
MAL 2010_10_19.
Also using generic Microchip
folder now rather than re-named
one (simpler to update).
Updated code in main.c (and others)
to match updates from
latest MAL CDC example.
2.1.1cTest1 01/17/11 - Added third parameter to SP command to
use any PortB
pin for servo output.
For this version only - used PortB2 as standard servo output
2.1.1d 02/11/11 - Reverted back to RB1 for servo output
- Updated check_and_send_TX_data() to allow unlimited data to
go out without overrunning the output buffer, same as
UBW 1.4.7.
2.1.2 11/04/11 - Fixed PI command to return just a 0 or a 1
- Updated to USB stack 2.9a
- Created MPLAB X project for this firmware
- Added SC,14,<state> to enable/disable solenoid output on RB4
- Fixed bug with S2 command and solenoid command interaction -
we now turn off solenoid output on RB4 if user uses S2
command to use RB4 for RC servo output.
- Fixed bug with S2 command where a duration of 0 would not
shut off the PWM channel
- Fixed bug in S2 command where <rate> variable was not being
used correctly
- Switched default number of S2 channels to 8 (from 7 before)
2.1.3 12/12/11 - RB3 now defaults to digital I/O on boot, can
still use SE
command to do PWM later if you want
- Compiled with latest UBW stack - 2.9b from MAL 2011-10-18
2.1.4 12/14/11 - RB3 now defaults to OFF, rather than ON, at
boot.
2.1.5 12/15/11 - Fixed problem with pen servo (RB1) being
inverted on boot
2.2.0 11/07/12 - Fixed problem with SP command not working
properly with
ports other than RB1 because we don't properly use S2
commands for SP up/down within ISR. Tested on all PortB.
2.2.1 09/19/13 - Expanded internal delay counter to 32 bits so
we can have
delays longer than 2.1s. Now up to 64K ms.
- Fixed bug with all <duration> parameters, SM, SP, TP
commands. Now in ms, defaults to 500ms, and actually
works up to 64Kms.
- Fixed uninitialized data bug with command FIFO. We were seeing
very long random delays first time SM,<delay>,0,0 was
used.
- SP command was executing servo move at end of <duration>. It
now starts servo move and <duration> delay at same time.
- Updated USB stack to Microchip MAL USB v2.9j
2.2.2 10/15/13 - Fixed bug with SE command that was preventing
anything other
than 50% duty cycle from working.
- Updated SC,2,{0,1,2} to control PIC and drivers connection
0 = PIC controls built in drivers
1 = PIC controls external step/dir/en drives
2 = external step/dir/en controls built-in drivers
- Also updated the pins that are used for driving external
step/dir/en drives. (See documentation)
- Updated SC,1,{0,1,2} documentation to match code and removed
SC,14 which is not needed.
- Updated logic for EM command to use state of SC,2,{0,1,2}
properly.
- Added SC,14,{0,1} to switch between default of 1/25Khz units
for SP and TP command <duration> parameters, and 1ms units
2.2.3 01/11/14 - Rewrote analog system so we don't have problems
with QC
commands anymore. New command AC.
2.2.4 04/28/14 - Fixed bug where 0 for duration in SM would cause
problems
- Found bug where the <servo_min> and <servo_max> values
were
reversed in the SP command. This has now been fixed so that
SP commands will operate the same as 2.0.1 version.
- Set initial 'position' of main servo to be 1mS to mimic
behavior of v2.0.1 firmware.
- Updated license to BSD 3-clause
- Changed SP and TP commands so that if no <duration>
parameter
is used, it does not default to 500mS delay, but rather 0mS.
This should now work exactly as 2.0.1 when no parameter is
used.
- Tested 2.2.4 against 2.0.1 with Seleae Logic analyzer. Looked
at several Inkscape plots. Confirmed that timing of steppers
and servo are the same. Confirmed that all RB0 through RB7
outputs are the same between the two versions.
2.2.5 04/29/14 - Added 'long' arguments to SM for
<move_duration> and <axis1>
and <axis2>. All can be 3 bytes now. Also added checks in
SM command to make sure that arguments don't result in a
step speed that's too low (<0.76Hz).
2.2.6 01/01/15 - Added 'QM' command - Query Motor, tells PC what is
moving.
2.2.7 08/13/15 - Added 'ES' command, which will immediately abort
any SM command
but leave the motors energized. (E-stop) It returns "1" if
it aborted a move in progress, "0" otherwise. It will also
delete any pending SM command in the FIFO.
2.2.8 08/14/15 - Corrected error checking in SM command to
accurately reflect
too fast and too slow requests. (>25K or <1.31 steps per
second)
2.2.9 08/18/15 - Added extra values to output of ES command to
indicate how
many steps were aborted.
2.3.0 08/28/15 - Added new XM command as per issue #29 for driving
mixed-axis
geometry machines.
2.4.0 03/14/16 - Added new AM command for using accelerated
stepper motion. Includes going to 32 bit accumulators in ISR
to achieve necessary resolution, which includes changes to
SM command as well. Also added "CU,2,0" to turn of SM command
parameter checking for speed.
NOTE: AM command may not be quite 'right' yet. Although it
has passed simple tests, it could not be made to reliably
work from the Inkscape plugin, so it is not currently being
used. It may have to change in future versions of this
firmware.
2.4.1 08/08/16 - Added new form of SE command, with optional
parameter that
puts SE in motion queue. (issue #51)
Fixed issue #52 (bug in parameter check in parse_SM_packet())
2.4.2 08/10/16 - Fixed bug in SE command that would set engraver to
50% if
SE,1,0 was used. Also added engraver power to FIFO structure
for when third SE parameter is 1.