HaddingtonDynamics / Dexter

GNU General Public License v3.0
363 stars 84 forks source link

FPGA Shadow_map / Allow non-Dynamixel end effector #89

Closed JamesNewton closed 4 years ago

JamesNewton commented 4 years ago

The goal is to provide more flexible use of the wires at the end effector. Right now, no matter what you do, the blue wire will automatically revert to driving Dynamixel servos. To avoid this, we must keep track of the mode the FPGA has been put in, and if it's NOT the Dynamixel mode (Dynamixel packets sent on blue and return serial on green) then it doesn't force it into that mode. To keep track of what's going on in the FPGA we add a ram array and shadow every FPGA write into that RAM copy, so we can move it back. That sets us up for supporting "read FPGA" set parameter in the future as well.

We also re-add the END_EFFECTOR_IO, SERVO_SETPOINT_A, SERVO_SETPOINT_B mappings to the OldMemMapInderection so that the associated SetParameters can work again.

This commit basically duplicates: https://github.com/HaddingtonDynamics/Dexter/commit/31c1e41f59eb86452bd60402ce426722c248e1ff and https://github.com/HaddingtonDynamics/Dexter/commit/9718c9e49224d4deeaacba39f92bc7cb9f036759 and is a second take on closing issue #73

JamesNewton commented 4 years ago

No need for separate merge as StepAngles branch had all this and it is now merged into the new Stable_Conedrive (note: Stable_2020_02_04_ConeDrive branch still exists and should be unchanged)