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
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.
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.
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!
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:
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 |
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!