Compile error redefinition of 'EXTI2_IRQHandler' with board 3.2

Hello,

Just did a git pull to compile fw 2.1
i observe the following symptom.

if I modified Inc/main.h to use a 3.2 board as indicated in the documentation

#define HW_VERSION_MAJOR 3
#define HW_VERSION_MINOR 2

I have the following error with make

root@MTBD00694:~/ODriveFirmware/Firmware# make
Src/stm32f4xx_it.c:316:6: error: redefinition of 'EXTI2_IRQHandler'
 void EXTI2_IRQHandler(void)
      ^
In file included from Src/stm32f4xx_it.c:48:0:
Src/prev_board_ver/stm32f4xx_it_V3_2.c:126:6: note: previous definition of 'EXTI2_IRQHandler' was here
 void EXTI2_IRQHandler(void)
      ^
Makefile:159: recipe for target 'build/stm32f4xx_it.o' failed
make: *** [build/stm32f4xx_it.o] Error 1

whereas if i use the default inc/main.h (and then endup with a 3.3 board firmware), no error.

Before doing the git pull this morning (don’t know what previous version i was in, most likely a version in the last few weeks), I observed the same behavior yesterday.

How do I fix this ?

I can fix this for you, give me 5 min.

ok pull from master, I pushed a fix.

wow. fixed :slight_smile:
at least the error is gone.
now i have to focus on motors parameters

bad news is that now the board no longer makes it initialization sequence when I power on from power supply (and yes i do make sure no to power the board with both the usb reflasher and main power source).
Before it would beep and then the motor would slightly and slowly move back and forth. now nothing. 0A is consumed. looks like the board is dead with

#define HW_VERSION_MAJOR 3
#define HW_VERSION_MINOR 2

However, when I put back

#define HW_VERSION_MAJOR 3
#define HW_VERSION_MINOR 3

in Inc/main.h
recompile, reflash. power on
=> the motor now make a disturbing noise so I immediately power the whole thing off.

in other words, at least my toolchain to compile and reflash seem to work.

What do I do ? should I revert to a previous version ?

Some problems for me too with my ODrive 3.2 with this settings :
#define HW_VERSION_MAJOR 3
#define HW_VERSION_MINOR 2

The ODrive is no more recognized by USB. But with this settings :

#define HW_VERSION_MAJOR 3
#define HW_VERSION_MINOR 3

I can see the board on the USB port.
I discovered that just now because I wanted to test the UART.

@madcowswe we are locked and can’t use the 3.2 board with fw 2.1
Any idea where the problem comes from?

I will be able to look at it today. My suspicion is that the code assumes UART communication enabled by default but v3.2 doesn’t have the UART capable pins exposed.

Sorry for the delay.

Okay I found the bug, fixed it, and tested that on board V3.2 USB communication now works.
See the Changelog:
https://github.com/madcowswe/ODrive/blob/master/Firmware/CHANGELOG.md#022---2017-11-17

thank you very much. i’m on a business trip right now. I’ll try this most likely on friday.

1 Like

problem fixed. just did a “git pull”, modified Inc/main.h to declare a 3.2 board. make and make flash. upon power on, the motors makes its initialization sequence. then USB communication seems to work again… let’s go back to the original issue…

pb fixed

2 Likes