Finally got around to testing the HaViMo2 library's interaction with the newer dxl.c/h with functional hardware (cm-904).  Important change from dxl_core/dxl_hal and dxl: Dxl.setTxPacketLength() no longer requires the N+2, only N (number of parameter bytes).  Caused a bit of frustration, that.
Made some changes to dxl.c to return the txrx error with Dxl.getResult().  The gbDXLtxrxStatus variable is set to 0 at start of txrx_Packet() and each COMM_ status bit is OR'd to the variable to provide most information  about communication errors.  If no errors, then gbDXLtxrxStatus is written  with only COMM_RXSUCCESS bit set (if rx succeeded, tx must have also succeeded)  to prevent breaking anything checking for only COMM_RXSUCCESS bit (mostly older programs).
All other functions return the usual 1 (success) or 0 (failure).
Finally got around to testing the attempt to port the arbotix's BioloidController interpolating motion engine over to the CM-9.  The example should work and the library appears to work correctly, but needs more testing to be sure it is actually writing to FLASH and not storing to RAM.
Also need to modify the RoboPlus Motion file converter to create BioloidController header files compatible with the CM-9 version.  The arbotix is AVR based, so it requires special functions to read from FLASH memory, while the STM32 appears to need only the address/pointer to read (attempts to write in a program will cause a crash).
Made some more changes to the HaViMo2 and dxl_devices files to make CarBotCon work as intended.  Should not include HaViMo2 unless desired.
Hoping the CM-9 will now work with pypose, as that would be super.
Verified CarBotCon example sketch and fixed program hang in library (debug SerialUSB printout would cause lib to hang when not connected to an active terminal program).  Should check other combinations of vel and rad inputs to make sure it really is working as expected.  Next is verify pypose.ino interaction with PyPose on a PC.
Idiot.  Used expanded status COMM_* values from dxl_devices instead of standard COMM_* from dxl_constants.
CarBotCon appears to work as expected with additional vel and rad values.
PyPose seems to work, but requres "set" to be clicked twice to actually set the new position.  No problems if using "live update" of servo positions.  No trouble reading either.
Added another button option for control.
I am so stupid.  Fixed som major errors in the CM9_BC that caused horrific results with an armless Type-A Humanoid.
1) The initial pose_ and nextpose_ values set in BioloidController::setup() were not bit-shifted.
2) At no point did the BioloidController object call readPose() and the example usage in the header file made no mention of a need to call it, so added that to interpolateSetup() as a precaution against servos not being in their assumed pose (default is 512).
3) Added a check for valid returned values in readPose() to prevent it assuming the servo is currently in a position horribly out of range.

In other news:
1) Added mtn2cm9.py to the libraries/CM9_BC/examples.
2) Added an armless Type-A soccer motion file example to CM9_BC.  It only goes to the initial position, but adding other poses is not complicated.  Shows how to use both playSeq() and manual pose sequencing (commented out).
Merge pull request #9 from tician/master

OK!!!