Benchtest users

From DIDEAS Wiki
Jump to: navigation, search

PF Users Navigation:

Edit

overview

  • benchtest.py facilitates the running of tests and commands for the 217 and 218 boards.
  • the ESC key will abort any test.

command line options

  • benchtest.py -h brings up basic command line help.
    • -p <comm port>  : enter the COMM port number associated with the USB device connect to the SC. You may need to run device manger to locate it. On XP: Start, Run then type "devmgmt.msc"
    • -t <test name or number>
    • -T <seconds> : the time to run each of the test cycles.
    • -C <cycle count> : number of cycles for each step of the test. Negative cycle count = 1 million
    • -n <repeat count>
    • -R <start[,stop,step] > : set the parameter range. Must be 1 or 3 numbers
      • Must be separated by comma and no spaces.
      • examples: -R 6
      • -R 3,6,0.5

Test Types

The -t option is used to specify the test type (or command). Either the text name or number may be used. When testing a new board set, start with test 1 and progress upward.

At present, the software does little to identify a failures.

phase

This 'test' places the controller into MODE 2, which is used to set the commutation phase and zero the encoder. After power up (or reset) must have the phase set before it can enter any other modes.

voltage

This test places the controller into MODE 6, which is known a voltage mode. The motor will generally spin a fixed speed, and will exert significant torque to remain at at that speed. The test is open loop and thus is a good first test to verify that the MOSFETs are working.

The voltage that is displayed assumes the supply is at 24.0V.

current

This test places the controller into MODE 3, which is known a current (or torque) mode. It uses the current sensors to adjust the voltage applied to motor to keep the current as desired. The robot operates in this mode.

This test will generate regeneration currents that can damage the controller (esp the voltage clamp). A large capacitor (0.1F eg 100,000mdf) or battery should be used to absorb the energy. In the future there may be a continuous operation clamp.

stress

Runs motor back and forth in current mode, but under the control of the SC. (PC can be disconnected.) A motor thermal estimate keeps the motor temperature from becoming excessive. The PC will stop the test have a fixed time duration.

reset_overload

This command will reset the overload flag. Generally if there is an overload, the program will report it.

set_clock

Uses the PC clock to set the real-time clock on the state controller.


A typical test

The first three tests should be run from a current limited power supply. The supply voltage should be set 'low' and the current limited until one is confident that the board set is at least somewhat good. Low here means 10-12 volts, and current limited to 0.5 amps. Increase to 24V and 2-3 amps as confidence increases.

We assume that COM PORT 26 is used in the following examples.

  • benchtest.py -p 26 -T 2.0 -t PHASE
    • verify that the motor is jumps to a fixed position and resists motion from that position
  • benchtest.py -p 26 -T 2.0 -t VOLTAGE
    • motor will move back and forth slowly (at first), the motor should exert significant torque if one attempts to stall it.

Run a very low current current mode test. This will not generate significant regeneration currents.

  • benchtest.py -p 26 -t CURRENT
    • motor moves back and forth and can reach the full speed of 7000-8000 rpm. Very little torque is felt if the motor is stalled.


Attached a battery (7 cells of A123) and have the power supply to set to 24.0V. Here we will start running current mode stress tests.

Also at this point, the power MOSFETs on the 217 board must be heat sunk. Generally this means the board should be installed in a side plate.

  • benchtest.py -p 26 -R 1,6,0.8 -t CURRENT
    • motor current starts at 1 amp and works up to 6 amps.

Do a short aggressive test.

  • benchtest.py -p 26 -R 10 -t CURRENT -T 0.5 -C 20
    • motor back/forth with 10 amps

Do a very aggressive test.

  • benchtest.py -p 26 -R 15,30,5 -t CURRENT -T 1.0 -C 20

Run the 6amp test for 12 hours. Motor may need to be cooled with a fan.

  • benchtest.py -p 26 -R 6 -t STRESS -T 0.9 -D 12h

Rerun the very aggressive test.

  • benchtest.py -p 57 -R 15,30,5 -t CURRENT -T 1.0 -C 20

This board set can run a motor!!!!

prepare a new board

power on and initial firmware

  • select a SC/MC (218) board
  • to the VBAT input, apply 8V (??) current limited to 100mA (???)
  • the board doesn't auto power on, use a PSER1E with the 3.3V JUMPER (J1) installed.
  • burn the SC firmware, burn the MC firmware

setting the EEPROM parameters

  • select a FET (217) and possibly an IMU (219) that will be part of the final system.
  • edit the keys script file PF_EEPROM#example_script_file
  • apply the script file using the keys.py program
    • keys.py -p <COMPORT> -S <KEYSFILE>