Upright
From DIDEAS Wiki
Contents
Sensors
- Hall sensor : AN12 -> PB12 -> adc_0
- SG1 (torque) -> SG channel 1 (both U1, U2 : 2.0k, 500x) -> PB0 -> adc_1
- SG2 (compression) -> SG channel 2 (U1: 500x ; U2: 8.2k, 122x) -> PB1 -> adc_2
- SG3 (series spring) -> SG channel 3 (U1: 500x; U2: 5.9k, 170x) -> PB2 -> adc_3
- INA326 gain : 2 * R2/R1 = (2 * 500k/xx)
AKCPU2Z Modifications
- verify JR1 is in position in 2-3
- change RB1 from 470 ohm to 0.0 ohms. - this is to power the strain adapter board
- U1 has 2.0k resistors for all 3 SGs
- U1, M7 has replaced RDP1 with 2.0ohm 0805
- M6 needs dspic replaced
UPSG1
- U1-U3 populated with 4.096V reference, X60003CIG3Z-41T1CT-ND
- Jumper wire between PO1.1 and PO1.9. This bridge the SG.REF signal that didn't get routed
- The PCB has two 1K resistors (1st and 2nd) that bridge REF+- to S+.
- 350 ohm resistor across PO1.12 and PO1.11. This resistor (3rd) bridges REF- and SG-.
- The 4th bridge resistor connects REF+ and SG-
BLMD6C
- more details for uprights here.
Software Modifications
- QEI changed from 4x to 2x mode as:
- 1) encoder has higher resolution
- 2) gear ratio is higher.
- even in 2x mode, max planterflexion results in count of -27k, close to limit of -32k
- qei.c modified to support both 2x and 4x modes, qei.c needs ankle consts.
- timer3.c modified to change sign of motor encoder.
- statemachine.c modified to not have initial dosaflexion
assembly revisions
BLFT6C
- I3, I4 : installed zener to protect ADC when temp sensor is absent.
BLMD6C
- I3 : replaced RX1,RX2 each with a 3.0 ohm in parallel with 4.7 ohm in 0805 packet. Existing 2ohm-0603 failed periodically.
dataport
packet
- 2 bytes sync
- 2 bytes field widths (several fields with a byte total 'n')
- 1+n bytes of data