Firmware v0.1 Release


#1

It is time to do our first firmware release. I would like to kindly invite you to help out with testing and providing feedback.

Process

Note that the process with this release will be slightly different than going forward, since it’s our first one. Basically with this first release we will be going from “committing directly onto master” to adopting GitFlow. The release will stay open for at least two weeks, to allow people to complete tests. The process for this release is:

  • We will be building up the release directly on master, and only fixes and small improvements go in.
  • Once the release is done, no more direct commits on master.
  • From now on, all new features will go into devel branch.
  • Future releases will be merged into master when done.

Released features

The major features of this release is the getting started documentation, and the step/dir interface. Please help by going through these, and submit feedback, and open discussion in this thread. How best to test these is up to you, but below are some recommendations.

Getting started documentation

  • Starting from the top level getting started guide, someone who just got their ODrive is able to get their system up and running.
  • Recall if you had any issues getting started, and check if the documentation now covers your issue. If not, please contribute to the documentation somethign that would have saved you a bunch of time.

Step/Direction interface

  • If you intend to use ODrive with the step/dir interface, please do some tests, and let us know how it goes!

#4

#5

I have been testing the devel branch with the following setup:

  • V3.2 Board modified with M1 ground plane fix
  • 24V, 14.8A Mean Well switch mode power supply
  • LPD3806 rotary encodes (same as those that went with odrive 3.2 kit?)
  • 2 x SK3 5055 (280KV) motors
  • 0.5 ohm (50 W) brake resistor
  • Running Ubuntu 17.04

Using the older 3.2 only firmware all is working well with both motors going through a startup sequence and can then be controlled over USB using the echo command. However, when trying to update to the master or devel branch I am unable to compile the firmware when set to board 3.2. I see the following;

mkdir -p build
In file included from Src/adc.c:59:0:
Src/prev_board_ver/adc_V3_2.c: In function ‘HAL_ADC_MspInit’:
Src/prev_board_ver/adc_V3_2.c:193:60: error: ‘AUX_V_Pin’ undeclared (first use in this function)
GPIO_InitStruct.Pin = VBUS_S_Pin|M1_TEMP_Pin|AUX_I_Pin|AUX_V_Pin;
^
Src/prev_board_ver/adc_V3_2.c:193:60: note: each undeclared identifier is reported only once for each function it appears in
Src/prev_board_ver/adc_V3_2.c: In function ‘HAL_ADC_MspDeInit’:
Src/prev_board_ver/adc_V3_2.c:297:61: error: ‘AUX_V_Pin’ undeclared (first use in this function)
HAL_GPIO_DeInit(GPIOA, VBUS_S_Pin|M1_TEMP_Pin|AUX_I_Pin|AUX_V_Pin);
^
Makefile:156: recipe for target ‘build/adc.o’ failed
make: *** [build/adc.o] Error 1

I added the missing definition to main.h

#define AUX_V_Pin GPIO_PIN_6

Which allows the firmware to compile but when uploaded to the board there is no activity. I can communicate with the board USB but do not have any control and there is no current supplied to the motors.

Any ideas?


#6

Sorry that was a mistake when we set up the common codebase with the two board versions. We forgot about main.h.
I made a fix that is live on devel now, please pull that and see if it works.
Thanks for your report.


#7

Ok, I flashed the update and its working just fine now. Thanks!