Close

Firmware update

A project log for BOB PID Servo Controller

A VERY cheap, tested, working, PIC based P.I.D. PID servo controller, for stepper replacement e.g. RAMPS, Pololu plug compatible drop in.

james-newtonJames Newton 02/21/2019 at 23:460 Comments

0.94 (not released)
- BugFix: Actually save the step size parameter

- Faster processing of step input, slightly faster encoder processing. Just track error, vs Setpoint - encoder_counter.  

Note: Step/Direction input is now relative.  

Calculation of Derivative and Integral terms changed. May need to re-tune

0.95 Improved User Interface, Faster!
- Just one "!" per encoder overrun; avoid buffer overrun

- Add version / status / settings as "?" command

- Let the user know they need to enter 321w to save

- Past MAX_ERROR, disable and suggest other direction

- Movements via serial command have a max velocity 'v'

- Setpoint is now relative, always returns to 0, no wraparound jerk

- Smaller data sizes (short long, 24 bits) used for most variables, faster

- Derivative and Integral terms changed. May need to re-tune. EEPROM Version '4'

0.96 Minor fixes
- BugFix: 10 display digits exceeded precision. 9 works.

- BugFix: Avoid PIDerror changing during calculations. Can cause small random jerks.

I'm curious to hear if there are features people would be interested in... what would make you want to use BOB PID?

// [ ] Faster!! Switch to assembly jump table in decoder?
// [ ] MUCH faster!! Recover position via index pulse if available??
// [ ] Set velocity and use PID to control that instead of position
// [ ] Add LCD user interface?
//     Problem with LCD interface: We don't control X DIR input
//      which is also used by LCD as a data line.
// [ ] Add demo mode
// [ ] Add autotune mode with status output

Discussions