Ceb log

From DIDEAS Wiki
Jump to: navigation, search

PF Users Navigation:


lower power

  • turn off VBATSNS_EN - however will need to check periodically.


  • supply = 20.06V

normal boot

  • mode 0 : 87mA
  • mode 2,3,6 : 126 mA

adjust DO

  • hallsleep (1218 0) -1 or 2mA
  • ac disable (123 0) -5mA
  • 3VREFMC (1206 1) -1 mA
  • 5VDMC_SD (1205 0) -13 mA (but needed for ENC)
  • 33VASWMC (1201 0) -0 mA
  • MCPWR_EN (210 0) 80mA down to 23mA - turn off MC
  • keep MC5V on, and cut CPU freq 67mA
  • turn off MC5V 68mA
  • turn off MC5V and cut cpu freq to min 51mA

adjust clock

  • 25 mA with SC only running
  • drop clock to 12.5MHz, and doze to 1:128 - 11mA
  • drop clock to 12.5mhz -> 14mA


  • need encoder active -> keep both 3.3 and 5.0 active
  • reduce CPU speed
  • turn off ADC and references
  • when speed is reduced - baud rate will change - need to have wake up command that is answered before clock speed is changed back.
  • turn off +3.3VAMC, +3.0VREFMC (hall)


  • command MC to slow speed, then reduce SC CPU speed
  • turn off analog 3.0v reference, turn off hall sensor
  • turn off +3.3VASWSC (strain gauge amps), +3.0VREFSC (adc)
  • turn off AC enable for MC

turn off

  • several signals at the bottom of page 4

wake up alg

  • we're opperating at 1/40 speed
  • significant motor movement is detected. if continues for several seconds, then wake up to 40 MHZ.
  • after wake up, only allow states 2,3,4 (no PP)
  • require several steps before state 5 is allowed.




Help w/Templates

need to be resolved

  • 6-28-09 are magnets and mounts glued in?
  • 6-28-09 where are the docs for the board histories
  • 6-28-09 FYI - power boards have NO activity when powered unless commanded on by SC


  • 0x3002 revision ID means A1 silicon, see Microchip doc 80446a.pdf

thread priority

  • FUP commands either forwarded to MC / IMU or locally executed
    • forwarded command should be queued immediately
    • locally executed run at the background level


  • add force fields at various locations based on motor position and hall sensor.
  • ETL transition needs to see foot on ground????
  • calibration constants in EEPROM
  • add screen to see and adjust motor overload
  • clean up GD4, have a single status / state word for the MC
  • have some fields of GD4 for different types of data.


  • remove offset calibration from main menu??
  • get EEPROM defaults working again. Ability to restore the hardcoded values.
  • add zhixiu calibration
  • calibration constants in EEPROM
  • integral of tau resistance measurement.

  • come up with good set of working overload param values ????
  • verify early to late state transition
  • test a new special2 command. one that allows text output.
  • wow ankle
    • first get the code version.
    • make sure LV notification works.


  • plantarflexion is a positive velocity, and causes positive motor rotation!
  • dorsiflexion is a negative velocity.
  • arrive around 1pm - leave at 12:20 am.


  • need to take status of recent work
    • status of load / save defaults
    • status of the EEPROM code.


  • arrive 1:50pm, left 7pm, back at 8:30pm, leave at 12am
  • wrote SWIFI reconnect code. added new ESC seq to wifi_fast


  • commands (1341) to set safety imped
  • moved def of feature bits to system constants
  • added (RND) mode cmd to enable / disable relaxed mode
  • created virtual encoder in MC to deal with changing of imped zero position and offset.
  • wrote code to scale PFF thresholds as a set
  • python code to parse global.h file. used this to decode a memory read from ankle
  • AC motor resistance measurement.
  • arrive 12:30??pm - leave 2:10am - 1 hr dinner, chatting.

to zero

  • set the MC imped offset to the current encoder position
  • set the SC offset to zero

to adjust imped zero position

  • encoder count at zero is not the initial A zero
  • imped offsets need to be WRT this initial A zero
  • cant change encoder count zero as that messes up commutation
  • virtual_encoder = physical_encoder - phys_offset


  • rewrote EEPROM_SFS to work from a walking_param pointer (instead of the working copy)
  • renamed "read_user_data" to "read_walking_param", etc.
  • added code to actually send / rcv walking params, and pfcmd support


  • added support for new commands into
  • added set time to
  • experimented with lantronix com port redirector. is able to connect to swifi and route PFcmdmenu. however can't really be used to repeat cmds. also only allows one com port to be opened at a time. will need come up with a way to multiplex CMD-RSP from several programs.
  • verified operation of overload imped state
  • wrote motor resistance, and send back to SM.
  • increase swing time from 200 mS to 250 mS


  • rewrote overload monitor. now a single function works on a data structure.
  • special commands to load,save,erase user profile regions. command to list IDs


  • antislip gain changed from 3 amps per deg, to 88 NM per deg.
  • added code to log SG offset at boot
  • added code to read the clock in RND screen
  • first 4 bytes are a code that (ultimately will) direct how the ankle boots


  • removed SM calls to setting current limit. motor init sets to some large default value.
  • removed most calls to get_data4 from MC tk_cmdset.
  • if cmd>10000; then don't return a gd4 packet, if cmd was 11111
  • one side imp torque is set by 1461, unset by 1331
  • HH successful test although there was a failure.


  • SC to MC commands add 10000 if locally generated. This allows the MC to automatically send a dataport packet, and always return a get_data4 packet.
  • mode zero uses encoder to set qAngle -> qIq is correct


  • added MILE encoder to MC code base


  • added much of OCT release to SM code base