Actual firmware for BrickPi Ver.2.8

Hi,

I need to update the firmware on my new BrickPi, I bought for my son for Christmas at Generation Robots (European reseller).
Unfortunately there were some things wrong on the BrickPi. Solder bridge between two pins of the motor driver chip because of solder error.
Caused by this, the chip was getting hot when trying to move the LEGO-motors. But the chip has survived :wink:
Communication problems between PI and BrickPi caused by IR-Receiver problem (solved in an other forum topic in the meantime).
Caused by the communication problem I decided to update the firmware to the most recent one on Github. But the firmware on the repository belongs to an older hardware version (1.7.3).
My hardware has the version 2.8 and is using another motor driver chip. The chip is not compatible to the older one and by this the motors only drives in one direction.
In the meantime I adapted the firmware for the new motor driver and it works so far.
I can see that the hardware is OK, now. But I would like to use the actual firmware version, because of some other smaller problems that are probably fixed in the actual version.
Please send me the actual sources or update the repository.

Thanks in advance!

Til

Iā€™m not very happy to get a faulty Brick-Pi, an old firmware on Github and no answer from Dexter Industries within a week.

Til

Sorry, I had to think about my answer here. This is an interesting problem, Iā€™m not sure what the appropriate way to deal with it is. Thanks for the reminder.

Maybe you can post a picture of the BrickPi? Do you have the BrickPi+?

So you ā€œupdatedā€ the firmware to 1.7.3, and thus destroyed the BrickPi+, now you want us to send you the firmware for an update.

Hi John,

I got no notifier about your reply so I didnā€™t noticed your answer - although I ticked the notify-tickbox.
As I discribed before the hardware is not destroyed. I repaired it because of an soldering error from your factory!
And it works so far with my changes to the old(!) firmware version you post at github.
On the picture you can see the hardware version printed on the PCB: V2.8
Do you have more than one BrickPi with version 2.8???
If I buy a hardware that is declared as an open source project (including firmware), I expect that I get the actual sources.
This is what open source is in my opinion!

Or is BrickPi+ closed source, now? Then I expect you to correct your web page!
http://www.dexterindustries.com/BrickPi/about/open-source/

Thanks in advance for your answer!

Til

Til, have you looked at our firmware directories?

John

Hello John,

thanks for your anwser. Yes I tried the firmware version 2.0.
But this firmware is not compatible with the hardware version 2.8
In the firmware you will find the following switch in
https://github.com/DexterInd/BrickPi/blob/master/Firmware_BrickPi/Firmware_2.0/BrickPiM/BrickPiM.h
Row 20:
#define BrickPiVersion 2 // 1 // Tell the compiler what version of HW to compile for. 1 is 1.5.1, and 2 is 1.7.3

This definition is used to decide wich pattern is used for the motor control.
But this switch only distinguish between version 1.5.1 and version 1.7.3
In hardware version 2.8 you use another motor driver chip with another wiring:

hardware version 1.7.3: motor driver: SN754410NE
datasheet: http://www.mouser.com/ds/2/405/sn754410-556726.pdf

Wiring:

Atmega    SN754410NE
MAPWM <-> 1A_I
MADIR <-> 2A_I
MAEN  <-> 12EN

Function table SN754410NE

Inputs             || Outputs |
MAPWM| MADIR| MAEN ||MAO0|MAO1|
1A_I | 2A_I | 12EN || Y1 | Y2 |
  L  |  L   |  H   || L  | L  |
  H  |  L   |  H   || H  | L  |
  L  |  H   |  H   || L  | H  |
  H  |  H   |  H   || H  | H  |
  X  |  X   |  L   || Z  | Z  |

===============================================================================
hardware version 2.8: motor driver: TB6612FNG
datasheet: https://www.sparkfun.com/datasheets/Robotics/TB6612FNG.pdf

Wiring:

Atmega    TB6612FNG
MAPWM <-> PWMA
MADIR <-> AIN1
MAEN  <-> AIN2

Function table TB6612FNG

Inputs             || Outputs     |
MAPWM| MADIR| MAEN || MAO0 | MAO1 |
PWMA | AIN1 | AIN2 || OUT1 | OUT2 |
  L  |  L   |  H   ||  L   |  L   |
  H  |  L   |  H   ||  L   |  H   |
  L  |  H   |  H   ||  L   |  L   |
  H  |  H   |  H   ||  L   |  L   |

In the function table for the TB6612FNG I copied the 1st 4 input states of the chip SN754410NE
and listed the states of the outputs according to the datasheets.
You see, that the hardware version 1.7.3 is not compatible with version 2.8.
You need another control pattern.
I changed the file BrickPiM.cpp according to the function table of the TB6612FNG in the datasheet
and - what a wonder - the motor rotates in both directions as expected.
With the software you want me to use the motor only rotates in one direction.
This is not a wonder because only in line 2 of the function table I have different levels at the outputs.
(Line 3 should be the inverse situation of the output levels as line 2, but it isnā€™t!)

If the hardware version 2.8 has been ever delivered with a functional firmware:
It canā€™t be the version in your repository!

Please ask your collegues - the version on the repository is not actual!

Kind regards,

Til

ā€¦still waiting for an answerā€¦ :frowning:

Til

Still looking into it Til. John

Any results, John? Til

Just added here: https://github.com/DexterInd/BrickPi/tree/master/Firmware_BrickPi/Firmware_2.5

Check to make sure itā€™s what youā€™re looking for?