Bus Pirate - Community Firmware 7.0

Bus Pirate firmware and hardware development.

Re: Bus Pirate - Community Firmware 7.0

Postby mikeb » Sun Sep 18, 2016 11:47 am

USBEprom wrote:You wrote that by trying about 10 times you "bypass" it, how?

I am doing it the same way as this person - viewtopic.php?f=40&t=7527#p62521
Use pirate-loader command, if it doesn't work then click "Normal" and "Reset" buttons a few times randomly,
then try again and repeat trying until it works. Usually it takes many tries but eventually does work
So if it is indeed a protection, it is not 100% secure ;-)
However BPv3 does not have these hardware buttons, so this way could be tried only for BPv4.
Still it is much faster to just use a chinese Pickit2 clone since it cost just a fraction of Bus Pirate cost
https://www.aliexpress.com/wholesale?mi ... atId=0&g=y

USBEprom wrote:Normally I do not use "ds30 Loader GUI", I used it only for test

I never used it at all :) So you know more than me about it

USBEprom wrote:Okay, so I have tested them all. Here you go:

Thank you. So it seems that all the builds are producing the same results:
1) 0 errors during the selftest and jumps to bootloaders successfully
2) s command gives "Syntax error at char 1"
3) VREG led does not light at the end of the test

Please tell, have you tried repeating "s" command after reset?
Does this "syntax error" problem happens every time you press "s", or only at the first try?

About VREG: have you seen this LED working at least sometimes?
Just want to exclude a possibility that VREG led is faulty on your board
mikeb
Newbie
Newbie
 
Posts: 30
Joined: Fri Sep 09, 2016 2:50 am

Re: Bus Pirate - Community Firmware 7.0

Postby USBEprom » Sun Sep 18, 2016 2:15 pm

Hi mikeb.

mikeb wrote:I am doing it the same way as this person - viewtopic.php?f=40&t=7527#p62521
Use pirate-loader command, if it doesn't work then click "Normal" and "Reset" buttons a few times randomly,
then try again and repeat trying until it works. Usually it takes many tries but eventually does work
So if it is indeed a protection, it is not 100% secure ;-)
However BPv3 does not have these hardware buttons, so this way could be tried only for BPv4.
Still it is much faster to just use a chinese Pickit2 clone since it cost just a fraction of Bus Pirate cost
https://www.aliexpress.com/wholesale?mi ... atId=0&g=y


Okay, thanks.
I get it now.
Even if I purchase a Pickit2 then I would not know how to use it, sorry.

mikeb wrote:I never used it at all :) So you know more than me about it


Actually I know nothing more, I used it only for testing.

mikeb wrote:Thank you. So it seems that all the builds are producing the same results:
1) 0 errors during the selftest and jumps to bootloaders successfully
2) s command gives "Syntax error at char 1"
3) VREG led does not light at the end of the test


Yes, it is so.

mikeb wrote:Please tell, have you tried repeating "s" command after reset?


Yes, I did it.

mikeb wrote:Does this "syntax error" problem happens every time you press "s", or only at the first try?


For what I saw always, not only at the first time.

mikeb wrote:About VREG: have you seen this LED working at least sometimes?


By using v7.0 firmware I have not ever seen it to glow.

mikeb wrote:Just want to exclude a possibility that VREG led is faulty on your board


Totally, VREG led on my Bus Pirate is not faulty.
It works fine with the spi_fix.hex firmware released by tayken in the forum.

Thank you friend.
Be seeing you.

U.Sb
USBEprom
Full Member
Full Member
 
Posts: 129
Joined: Wed Mar 14, 2012 4:09 pm

Re: Bus Pirate - Community Firmware 7.0

Postby mikeb » Sun Sep 18, 2016 2:29 pm

USBEprom wrote:Totally, VREG led on my Bus Pirate is not faulty


Hi USBEprom, sorry for not writing it earlier (a lot of distractions).
agatti solved a problem with VREG light and also explained why 's' doesn't work for you currently
Please see - https://github.com/BusPirate/Bus_Pirate/issues/7

I am rebuilding these builds now, would upload, see you soon friend ;)
mikeb
Newbie
Newbie
 
Posts: 30
Joined: Fri Sep 09, 2016 2:50 am

Re: Bus Pirate - Community Firmware 7.0

Postby mikeb » Sun Sep 18, 2016 6:39 pm

USBEprom wrote:Be seeing you

Hi again! Archive with new builds is now attached to this post:
viewtopic.php?f=28&t=8498#p65290
Below is another archive with the builds special for you - maximum number of features (including BASIC) :
./Bus_Pirate/Firmware/configuration.h, lines 304-319
Code: Select all
#ifdef BUSPIRATEV3
#define BP_ENABLE_1WIRE_SUPPORT // <--- + enabled
#define BP_ENABLE_BASIC_SUPPORT // <--- + enabled
#define BP_ENABLE_DIO_SUPPORT // <--- + enabled
#undef BP_ENABLE_HD44780_SUPPORT
#define BP_ENABLE_I2C_SUPPORT
#define BP_ENABLE_JTAG_SUPPORT
#undef BP_ENABLE_PIC_SUPPORT
#undef BP_ENABLE_PC_AT_KEYBOARD_SUPPORT
#define BP_ENABLE_RAW_2WIRE_SUPPORT // <--- + enabled
#define BP_ENABLE_RAW_3WIRE_SUPPORT // <--- + enabled
#define BP_ENABLE_SMPS_SUPPORT // <--- + enabled
#define BP_ENABLE_SPI_SUPPORT
#define BP_ENABLE_SUMP_SUPPORT
#define BP_ENABLE_UART_SUPPORT
#endif /* BUSPIRATEV3 */

Could build only 3 builds:
opt1 (84% occupied),
opt2 (94% occupied, faster speed),
optS (77% occupied, slower speed)
Attachments
bpv3_fw7.0_features.zip
SHA1 = d9449ab8c1f2a734288ac6f08299e2391a5f4ff9
(180.42 KiB) Downloaded 558 times
Last edited by mikeb on Tue Sep 20, 2016 4:07 am, edited 1 time in total.
mikeb
Newbie
Newbie
 
Posts: 30
Joined: Fri Sep 09, 2016 2:50 am

Re: Bus Pirate - Community Firmware 7.0

Postby Sjaak » Mon Sep 19, 2016 4:22 am

Regarding the bootloader. It is designed to protect itself from being overwritten. The bootloader resides in the last flashblock of the pic. This is intended behaviour and not a bug :)

To get rid of this error export the whole flash minus the last flashblock (IIRC the modified linkerscript took care of that). The bootloader makes sure the jump in the beginning get overwritten with a jump to the bootloader and the original start adres gets written to the last word in the available space.
User avatar
Sjaak
Fellow
Fellow
 
Posts: 3293
Joined: Sun Jan 03, 2010 2:45 pm
Location: Hiero

Re: Bus Pirate - Community Firmware 7.0

Postby USBEprom » Mon Sep 19, 2016 2:21 pm

Hi mikeb.
Thank you very much for the updates that you are releasing!
Many thanks to agatti too and kallisti5 and all the guys in the project.
I had a look to v7.0 forum but honestly I understood very few things.
I am just a hobbyist, not a software engineer.
The only thing I can do is perhaps help with debug, perhaps...
I am sorry, no more.
I tested both the new releases.
Here you go.

bpv3_fw7.0_opt0_18092016.hex
bpv3_fw7.0_opt1_18092016.hex
bpv3_fw7.0_opt2_18092016.hex
bpv3_fw7.0_optS_18092016.hex

First I have converted them into uppercase in order to use pirate-loader for the upgrade, then I upgrade my Bus Pirate 3.6 with them all.
For each of them I got the error message that I have already written:

Writing page 41 row 334, a700...OK
Writing page 41 row 335, a780...OK
Erasing page 42, a800...ERROR [50]

Error updating firmware :(

Based on your explanation and the one of agatti and of others, seems to not be a problem.
So okay.

HiZ>i
Bus Pirate v3.5
Community Firmware v7.0 - goo.gl/gCzQnW [HiZ UART I2C SPI] Bootloader v4.4
DEVID:0x0447 REVID:0x3046 (24FJ64GA002 B8)
http://dangerousprototypes.com
HiZ>~
Disconnect any devices
Connect (Vpu to +5V) and (ADC to +3.3V)
Space to continue
Ctrl
AUX OK
MODE LED OK
PULLUP H OK
PULLUP L OK
VREG OK
ADC and supply
5V(4.94) OK
VPU(5.03) OK
3.3V(3.31) OK
ADC(3.34) OK
Bus high
MOSI OK
CLK OK
MISO OK
CS OK
Bus Hi-Z 0
MOSI OK
CLK OK
MISO OK
CS OK
Bus Hi-Z 1
MOSI OK
CLK OK
MISO OK
CS OK
MODE and VREG LEDs should be on! [OKAY: VREG DOES LIGHT]
Any key to exit
Found 0 errors.
HiZ>#
RESET

Bus Pirate v3.5
Community Firmware v7.0 - goo.gl/gCzQnW [HiZ UART I2C SPI] Bootloader v4.4
DEVID:0x0447 REVID:0x3046 (24FJ64GA002 B8)
http://dangerousprototypes.com
HiZ>s
Syntax error at char 1

HiZ>$
Are you sure? y
BOOTLOADER


This time for them all the self test works fine and the VREG led glow.
Basic still doesn't works but I have understood it is because purposely deactivated in the firmware.

Based on some bugs listed here viewtopic.php?f=28&t=6097, I have digged more deeply.
So,

HiZ>b
Set serial port speed: (bps)
1. 300
2. 1200
3. 2400
4. 4800
5. 9600
6. 19200
7. 38400
8. 57600
9. 115200
10. BRG raw value

(9)>10
Enter raw value for BRG

(34)>8
Adjust your terminal
Space to continue

It works!

For what I know up to 255 characters of syntax may be entered into the Bus Pirate terminal at once.
I have tried but with them all the firmwares only 127 characters seems to be accepted, the extra ones are rejected (in the terminal the rejected characters are shown like not ascii).

I have not an oscilloscope so I can not say if SPI protocol is okay or still has the MOSI problems (viewtopic.php?f=4&t=6667#p58785) fixed by tayken doing correction of typo found by luftek (viewtopic.php?f=4&t=6667&start=15#p59041)

I can not test if the i2c timeout problem has been fixed or not (viewtopic.php?f=4&t=8546).

Last but not least, the software flashrom_v0.9.9_Win does work!

----------------------

bpv3_fw7.0_opt1_features.hex
bpv3_fw7.0_opt2_features.hex
bpv3_fw7.0_optS_features.hex

First I have converted them into uppercase in order to use pirate-loader for the upgrade, then I upgrade my Bus Pirate 3.6 with them all.
For each of them I got the error message that I have already written:

Writing page 41 row 334, a700...OK
Writing page 41 row 335, a780...OK
Erasing page 42, a800...ERROR [50]

Error updating firmware :(

Based on yours explanation and the one of agatti and of others, seems to not be a problem.
So okay.

HiZ>i
Bus Pirate v3.5
Community Firmware v7.0 - goo.gl/gCzQnW [HiZ 1-WIRE UART I2C SPI 2WIRE 3WIRE DIO] Bootloader v4.4
DEVID:0x0447 REVID:0x3046 (24FJ64GA002 B8)
http://dangerousprototypes.com
HiZ>~
Disconnect any devices
Connect (Vpu to +5V) and (ADC to +3.3V)
Space to continue
Ctrl
AUX OK
MODE LED OK
PULLUP H OK
PULLUP L OK
VREG OK
ADC and supply
5V(4.94) OK
VPU(5.03) OK
3.3V(3.31) OK
ADC(3.34) OK
Bus high
MOSI OK
CLK OK
MISO OK
CS OK
Bus Hi-Z 0
MOSI OK
CLK OK
MISO OK
CS OK
Bus Hi-Z 1
MOSI OK
CLK OK
MISO OK
CS OK
MODE and VREG LEDs should be on! [OKAY: VREG DOES LIGHT]
Any key to exit
Found 0 errors.
HiZ>#
RESET

Bus Pirate v3.5
Community Firmware v7.0 - goo.gl/gCzQnW [HiZ 1-WIRE UART I2C SPI 2WIRE 3WIRE DIO] Bootloader v4.4
DEVID:0x0447 REVID:0x3046 (24FJ64GA002 B8)
http://dangerousprototypes.com
HiZ>s
HiZ(BASIC)>exit (now it is active and working)
Ready
HiZ>$
Are you sure? y
BOOTLOADER


This time for them all the self test works fine and the VREG led glow.
Basic too now works, I have understood it is because purposely activated in the firmware.

Seems that DIO does not work.
Bus Pirate v3.5
Community Firmware v7.0 - goo.gl/gCzQnW [HiZ 1-WIRE UART I2C SPI 2WIRE 3WIRE DIO] Bootloader v4.4
DEVID:0x0447 REVID:0x3046 (24FJ64GA002 B8)
http://dangerousprototypes.com
HiZ>m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. DIO
x. exit(without change)

(1)>8
ERROR: command has no effect here
Clutch disengaged!!!
To finish setup, start up the power supplies with command 'W'

Ready
Syntax error at char 2
DIO>

But honestly I do not even understand how test it, sorry.

Based on some bugs listed here viewtopic.php?f=28&t=6097, I have digged more deeply.
So,

HiZ>b
Set serial port speed: (bps)
1. 300
2. 1200
3. 2400
4. 4800
5. 9600
6. 19200
7. 38400
8. 57600
9. 115200
10. BRG raw value

(9)>10
Enter raw value for BRG

(34)>8
Adjust your terminal
Space to continue

It works!

MACRO(1) and MACRO(2) in 2WIRE protocol they do not work.
For what I can understand MACRO(1) fails due a wrong order in the lsb/MSB of the emitted bytes.
Also MACRO(2) fails but I do not know why, perhaps for the same reason of MACRO(1).

For what I know up to 255 characters of syntax may be entered into the Bus Pirate terminal at once.
I have tried but with them all the firmwares only 127 characters seems to be accepted, the extra ones are rejected (in the terminal that rejected characters are shown like not ascii)

I have not an oscilloscope so I can not say if SPI protocol is okay or still has the MOSI problems (viewtopic.php?f=4&t=6667#p58785) fixed by tayken doing correction of typo found by luftek (viewtopic.php?f=4&t=6667&start=15#p59041)

I can not test if the i2c timeout problem has been fixed or not (viewtopic.php?f=4&t=8546)

Last but not least, the software flashrom_v0.9.9_Win does work!

I have to admit that this "features" release of the revision 7.0 of the firmware for the Bus Pirate is a dream having the full features, in my opinion the best one!
My most sincere congratulations for it, I was waiting it for years!

Due your indication as for knowledge I will enter all this informations in the development forum of the v7.0 firmware for the Bus Pirate.
Maybe that can help.
Hoping those are useful.
Thank you friend!

Be seeing you.

U.Sb
USBEprom
Full Member
Full Member
 
Posts: 129
Joined: Wed Mar 14, 2012 4:09 pm

Re: Bus Pirate - Community Firmware 7.0

Postby mikeb » Mon Sep 19, 2016 6:52 pm

Hi friends! I have spent the whole day updating the Dangerous Prototypes wiki,
moving info from this thread --> converting to wiki format --> adding some new things.
All the links could be found at the 1st page of this thread

USBEprom wrote:BASIC... it is because purposely deactivated in the firmware...

Yes its true. in this context, "#undef" means disabled and "#define" means enabled

USBEprom wrote:For what I know up to 255 characters of syntax may be entered into the Bus Pirate terminal at once.
I have tried but with them all the firmwares only 127 characters seems to be accepted, the extra ones are rejected (in the terminal the rejected characters are shown like not ascii).


If you look at the same file:
./Bus_Pirate/Firmware/configuration.h, lines 496-505
Code: Select all
/**
* How big the serial command buffer can be, in bytes.
*
* @warning This must be set to a power of two, ie. 256, 128, 64, 32, etc.
*/
#ifdef BUSPIRATEV3
#define BP_COMMAND_BUFFER_SIZE 128
#else
#define BP_COMMAND_BUFFER_SIZE 256
#endif /* BUSPIRATEV3 */

so BPv4 gets 256 by default, while BPv3 - only 128.
I don't know what is a reason behind this difference... but if you need 256 or bigger - just tell me,
or you could download the whole source code, make this modification and compile it by yourself
(also don't forget to enable these features like I did - see message above - or you wouldn't have them)

USBEprom wrote:I have not an oscilloscope so I can not say if SPI protocol is okay or still has the MOSI problems

I can't test it too, but if we look through this thread it seems that this problem was fixed after v6.3-beta1 r2151, so it should not happen with our newer v7.0 firmware

USBEprom wrote:I can not test if the i2c timeout problem has been fixed or not (viewtopic.php?f=4&t=8546)


There were no coding action regarding this thread, partially because we are still unsure if this timeout was a Bus Pirate fault or other problem. If we are unsure about problem, we cannot fix it

USBEprom wrote:Last but not least, the software flashrom_v0.9.9_Win does work!


Very good :)

USBEprom wrote:DIO... 2WIRE...


Sorry but I never used these functions on practice so can't understand what's up about them ;)

See you soon
mikeb
Newbie
Newbie
 
Posts: 30
Joined: Fri Sep 09, 2016 2:50 am

Re: Bus Pirate - Community Firmware 7.0

Postby dpropicweb » Mon Sep 19, 2016 8:26 pm

> so BPv4 gets 256 by default, while BPv3 - only 128.
> I don't know what is a reason behind this difference... but if you need 256 or bigger - just tell me,
> or you could download the whole source code, make this modification and compile it by yourself

The BPv4 has 16Kb of memory, but the BPv3 has 8Kb. This probably explains the difference. Whether or not there is sufficient memory in the BPv3 to increase the buffer size and not affect other functions is unknown (by me anyway).
dpropicweb
Sr. Member
Sr. Member
 
Posts: 331
Joined: Thu Apr 22, 2010 5:44 am
Location: The LAN Downunder

Re: Bus Pirate - Community Firmware 7.0

Postby USBEprom » Tue Sep 20, 2016 2:39 pm

@mikeb
Hi mikeb.
I would like compile a new firmware by myself but honestly It is beyond my abilities.
I am not a software engineers or something like that, I have no skills in that field.
Sorry.
Thanks you for the time you spent updating the Dangerous Prototypes wiki and all the useful things you are doing!

@dpropicweb
Hi dpropicweb.
I guess you are right.
Thanks.

@all

Be seeing you.

U.Sb
USBEprom
Full Member
Full Member
 
Posts: 129
Joined: Wed Mar 14, 2012 4:09 pm

Re: Bus Pirate - Community Firmware 7.0

Postby mikeb » Tue Sep 20, 2016 3:16 pm

USBEprom wrote:I would like compile a new firmware by myself but honestly It is beyond my abilities

Dear U.Sb, its actually very simple to compile a firmware, 3 steps:
1) Download a source code from Github
2) Install MPLAB X with XC16 (my instruction describes this only for Linux because its easy on Windows)
3) Just open a project file, go to properties and choose optimization if you wish, then click "Build"
As you see, no programming knowledge is necessary!

After that you could make a few simple modifications: like opening ./Firmware/configuration.h file , changing #undef to #define to enable new features and clicking "Clean and build". Just need a small understanding and some English language knowledge, that's all you need to compile a firmware of your dreams ;)

http://dangerousprototypes.com/docs/Compile_the_Bus_Pirate_firmware

Please don't make artificial limitations for yourself :) It would be great if you try and if something doesn't work - please leave the feedback so that I could improve this instruction
mikeb
Newbie
Newbie
 
Posts: 30
Joined: Fri Sep 09, 2016 2:50 am

Re: Bus Pirate - Community Firmware 7.0

Postby USBEprom » Thu Sep 22, 2016 3:30 pm

mikeb wrote:Please don't make artificial limitations for yourself :) It would be great if you try and if something doesn't work - please leave the feedback so that I could improve this instruction


Hi mikeb.
Actually I do not fear the installation of the compiler or other thing into the computer.
I am not making artificial limitations for myself but I have cringe at the idea to where find out what I need to modify and how do the changes.
You and others have shown me where were some of the problems that I have given, alone I would never be able to spot them.
Compile a ready-made source code it is not so hard following your instructions in the wiki, my problem is how edit the source code in the right way.
Thanks.

Be seeing you.

U.Sb
USBEprom
Full Member
Full Member
 
Posts: 129
Joined: Wed Mar 14, 2012 4:09 pm

Re: Bus Pirate - Community Firmware 7.0

Postby USBEprom » Sat Oct 01, 2016 7:16 am

Hi guys.
Following instructions in the wiki I have MPLAB X and MPLAB XC16 correctly installed.
I have tried to compile by myself a firmware like those named "bpv3_fw7.0_features" that are here: dangerousprototypes.com/forum/download/file.php?id=12142
I took the whole repository here:
https://github.com/BusPirate/Bus_Pirate ... master.zip
(I used a Windows XP computer)
I want 256 characters for the command line, so even if I am pretty babo, I understand I have to edit configuration.h, lines 496-505, in this way:

/**
* How big the serial command buffer can be, in bytes.
*
* @warning This must be set to a power of two, ie. 256, 128, 64, 32, etc.
*/
#ifdef BUSPIRATEV3
#define BP_COMMAND_BUFFER_SIZE
256
#else
#define BP_COMMAND_BUFFER_SIZE 256
#endif /* BUSPIRATEV3 */


I have to set too lines 304-319 in this way:

#ifdef BUSPIRATEV3
#define BP_ENABLE_1WIRE_SUPPORT
#define BP_ENABLE_BASIC_SUPPORT
#define BP_ENABLE_DIO_SUPPORT
#undef BP_ENABLE_HD44780_SUPPORT
#define BP_ENABLE_I2C_SUPPORT
#define BP_ENABLE_JTAG_SUPPORT
#undef BP_ENABLE_PIC_SUPPORT
#undef BP_ENABLE_PC_AT_KEYBOARD_SUPPORT
#define BP_ENABLE_RAW_2WIRE_SUPPORT
#define BP_ENABLE_RAW_3WIRE_SUPPORT
#define BP_ENABLE_SMPS_SUPPORT
#define BP_ENABLE_SPI_SUPPORT
#define BP_ENABLE_SUMP_SUPPORT
#define BP_ENABLE_UART_SUPPORT
#endif /* BUSPIRATEV3 */


By editing I can not compile the source due out of memory error even using option S for compression.
So I remove BASIC_SUPPORT by changing configuration.h, lines 304-319, in this way:

#ifdef BUSPIRATEV3
#define BP_ENABLE_1WIRE_SUPPORT

#undef BP_ENABLE_BASIC_SUPPORT
#define BP_ENABLE_DIO_SUPPORT
#undef BP_ENABLE_HD44780_SUPPORT
#define BP_ENABLE_I2C_SUPPORT
#define BP_ENABLE_JTAG_SUPPORT
#undef BP_ENABLE_PIC_SUPPORT
#undef BP_ENABLE_PC_AT_KEYBOARD_SUPPORT
#define BP_ENABLE_RAW_2WIRE_SUPPORT
#define BP_ENABLE_RAW_3WIRE_SUPPORT
#define BP_ENABLE_SMPS_SUPPORT
#define BP_ENABLE_SPI_SUPPORT
#define BP_ENABLE_SUMP_SUPPORT
#define BP_ENABLE_UART_SUPPORT
#endif /* BUSPIRATEV3 */


This time I can compile the source with options 0,1,2 and S.
Firmwares I have got from myself pass self test but some option does not work.
My goal is to put 256 characters for the command line in "bpv3_fw7.0_features.zip".
How can I do?
Is it possible that by providing 256 characters for the command line instead of 128 then the generated code is too big for Bus Pirate revision 3 so that I have to give up BASIC?
Maybe I am doing something wrong.
I would recompile that same firmware version for obtain 256 characters for the command line.
Elsewhere (here: https://github.com/BusPirate/Bus_Pirate ... -248265311) it is argued that the thing should be possible:

it is possible to fit many features for BPv3 (including BASIC) but only for three opt levels:
opt0 - not enough program memory
opt1 - 84% occupied,
opt2 - 94% occupied, faster speed,
optS - 77% occupied, slower speed,
opt3 - not enough program memory

./Bus_Pirate/Firmware/configuration.h, lines 304-319

#ifdef BUSPIRATEV3
#define BP_ENABLE_1WIRE_SUPPORT // <--- + enabled
#define BP_ENABLE_BASIC_SUPPORT // <--- + enabled
#define BP_ENABLE_DIO_SUPPORT // <--- + enabled
#undef BP_ENABLE_HD44780_SUPPORT
#define BP_ENABLE_I2C_SUPPORT
#define BP_ENABLE_JTAG_SUPPORT
#undef BP_ENABLE_PIC_SUPPORT
#undef BP_ENABLE_PC_AT_KEYBOARD_SUPPORT
#define BP_ENABLE_RAW_2WIRE_SUPPORT // <--- + enabled
#define BP_ENABLE_RAW_3WIRE_SUPPORT // <--- + enabled
#define BP_ENABLE_SMPS_SUPPORT // <--- + enabled
#define BP_ENABLE_SPI_SUPPORT
#define BP_ENABLE_SUMP_SUPPORT
#define BP_ENABLE_UART_SUPPORT
#endif /* BUSPIRATEV3 */

BP_ENABLE_HD44780_SUPPORT could also be enabled (takes just about 1% extra)

However, there are problems with BP_ENABLE_PIC_SUPPORT and BP_ENABLE_PC_AT_KEYBOARD_SUPPORT.


Thanks.

Be seeing you.

U.Sb
USBEprom
Full Member
Full Member
 
Posts: 129
Joined: Wed Mar 14, 2012 4:09 pm

Re: Bus Pirate - Community Firmware 7.0

Postby mikeb » Wed Oct 05, 2016 4:40 pm

USBEprom wrote:Hi guys


Hi U.Sb, sorry for a late reply, only now I have noticed your message. I tested and have observed the same problem: on BPv3 you can't have both
Code: Select all
#define BP_ENABLE_BASIC_SUPPORT
and
Code: Select all
#define BP_COMMAND_BUFFER_SIZE 256
at the same time. You did everything correctly, good, but please note that this error message is different - compared to when there is simply not enough place for a feature.

Not enough place for a feature:

Code: Select all
build/BusPirate_v3/production/_ext/1472/selftest.o: Link Error: Could not allocate section .text, size = 774 PC units, attributes = code
build/BusPirate_v3/production/_ext/1472/raw3wire.o: Link Error: Could not allocate section .text, size = 728 PC units, attributes = code
build/BusPirate_v3/production/_ext/1472/sump.o: Link Error: Could not allocate section .text, size = 662 PC units, attributes = code
build/BusPirate_v3/production/_ext/1472/base.o: Link Error: Could not allocate section .text, size = 590 PC units, attributes = code
data_init: Link Error: Could not allocate section .dinit, size = 576 PC units, attributes = code keep
build/BusPirate_v3/production/_ext/1472/uart2io.o: Link Error: Could not allocate section .text, size = 242 PC units, attributes = code
build/BusPirate_v3/production/_ext/1472/main.o: Link Error: Could not allocate section .text, size = 168 PC units, attributes = code
build/BusPirate_v3/production/_ext/1472/bus_pirate_core.o: Link Error: Could not allocate section .text, size = 156 PC units, attributes = code
build/BusPirate_v3/production/_ext/1472/openocd_asm.o: Link Error: Could not allocate section .text, size = 128 PC units, attributes = code
build/BusPirate_v3/production/_ext/1472/binIOhelpers.o: Link Error: Could not allocate section .text, size = 126 PC units, attributes = code
Link Error: Could not allocate program memory


BPv3 specific new error message (when you try "256") :

Code: Select all
build/BusPirate_v3/production/_ext/1472/openocd_asm.o(.text+0x1e): In function `.L0':
: Link Error: Cannot access symbol (_UART1RXRecvd) with file register addressing. Value must be less than 8192. Suggest large-data model.
build/BusPirate_v3/production/_ext/1472/openocd_asm.o(.text+0x60): In function `.L0':
: Link Error: Cannot access symbol (_UART1TXAvailable) with file register addressing. Value must be less than 8192. Suggest large-data model.
build/BusPirate_v3/production/_ext/1472/openocd_asm.o(.text+0x68): In function `.L0':
: Link Error: Cannot access symbol (_UART1TXAvailable) with file register addressing. Value must be less than 8192. Suggest large-data model.
build/BusPirate_v3/production/_ext/1472/openocd_asm.o(.text+0x6c): In function `.L0':
: Link Error: Cannot access symbol (_UART1TXBuf) with file register addressing. Value must be less than 8192. Suggest large-data model.


If we look through the source code, BP_COMMAND_BUFFER_SIZE affects the following code directly:

Code: Select all
./Firmware/procMenu.h:19: #define CMDLENMSK (BP_COMMAND_BUFFER_SIZE-1)
./Firmware/procMenu.h:21: extern char cmdbuf[BP_COMMAND_BUFFER_SIZE];
./Firmware/procMenu.c:60: char cmdbuf[BP_COMMAND_BUFFER_SIZE];
./Firmware/procMenu.c:1003: bpWdec((BP_COMMAND_BUFFER_SIZE + cmdstart) - oldstart);


Please note that CMDLENMSK is (BP_COMMAND_BUFFER_SIZE-1). It affects the following code:

Code: Select all
./Firmware/hd44780.c:212:        cmdstart=(cmdstart+1)&CMDLENMSK;
./Firmware/hd44780.c:213:        //cmdstart&=CMDLENMSK;
./Firmware/AUXpin.c:162:                if(cmdbuf[((cmdstart+1)&CMDLENMSK)]==0x00)  return; // return if no arguments to function
./Firmware/AUXpin.c:167:        cmdstart=(cmdstart+1)&CMDLENMSK;
./Firmware/AUXpin.c:168:        //cmdstart&=CMDLENMSK;
./Firmware/AUXpin.c:704:                if(cmdbuf[((cmdstart + 1)& CMDLENMSK)] == 0x00){//no extra data, stop servo
./Firmware/AUXpin.c:712:        cmdstart=(cmdstart+1)&CMDLENMSK;
./Firmware/procMenu.h:19:#define CMDLENMSK      (BP_COMMAND_BUFFER_SIZE-1)
./Firmware/procMenu.c:132:                    cmdend &= CMDLENMSK;
./Firmware/procMenu.c:147:                                temp &= CMDLENMSK;
./Firmware/procMenu.c:173:                            cmdend = (cmdend - 1) & CMDLENMSK;
./Firmware/procMenu.c:180:                            tmpcmdend = (tmpcmdend - 1) & CMDLENMSK;
./Firmware/procMenu.c:182:                            for (temp = tmpcmdend; temp != cmdend; temp = (temp + 1) & CMDLENMSK) {
./Firmware/procMenu.c:190:                            cmdend = (cmdend - 1) & CMDLENMSK; // end pointer moves left one
./Firmware/procMenu.c:204:                        for (temp = tmpcmdend; temp != cmdend; temp = (temp + 1) & CMDLENMSK) {
./Firmware/procMenu.c:212:                        cmdend = (cmdend - 1) & CMDLENMSK; // end pointer moves left one
./Firmware/procMenu.c:260:                            tmpcmdend = (tmpcmdend - 1) & CMDLENMSK;
./Firmware/procMenu.c:271:                        tmpcmdend = (tmpcmdend + 1) & CMDLENMSK;
./Firmware/procMenu.c:280:                    for (temp = (cmdstart - 1) & CMDLENMSK; temp != cmdend; temp = (temp - 1) & CMDLENMSK) {
./Firmware/procMenu.c:281:                        if (!cmdbuf[temp] && cmdbuf[(temp - 1) & CMDLENMSK]) { // found previous entry, temp is old cmdend
./Firmware/procMenu.c:288:                                        cmdend = (cmdend - 1) & CMDLENMSK;
./Firmware/procMenu.c:292:                                repeat = (temp - 1) & CMDLENMSK;
./Firmware/procMenu.c:295:                                        temp2 = (repeat + 1) & CMDLENMSK;
./Firmware/procMenu.c:299:                                    repeat = (repeat - 1) & CMDLENMSK;
./Firmware/procMenu.c:309:                                for (repeat = temp2; repeat != temp; repeat = (repeat + 1) & CMDLENMSK) {
./Firmware/procMenu.c:312:                                    cmdend = (cmdend + 1) & CMDLENMSK;
./Firmware/procMenu.c:325:                    for (temp = (cmdstart - 1) & CMDLENMSK; temp != cmdend; temp = (temp - 1) & CMDLENMSK) {
./Firmware/procMenu.c:326:                        if (!cmdbuf[temp] && cmdbuf[(temp - 1) & CMDLENMSK]) { // found previous entry, temp is old cmdend
./Firmware/procMenu.c:333:                                        cmdend = (cmdend - 1) & CMDLENMSK;
./Firmware/procMenu.c:337:                                repeat = (temp - 1) & CMDLENMSK;
./Firmware/procMenu.c:340:                                        temp2 = (repeat + 1) & CMDLENMSK;
./Firmware/procMenu.c:344:                                    repeat = (repeat - 1) & CMDLENMSK;
./Firmware/procMenu.c:354:                                for (repeat = temp2; repeat != temp; repeat = (repeat + 1) & CMDLENMSK) {
./Firmware/procMenu.c:357:                                    cmdend = (cmdend + 1) & CMDLENMSK;
./Firmware/procMenu.c:377:                                cmdend = (cmdend - 1) & CMDLENMSK;
./Firmware/procMenu.c:388:                        repeat = (tmpcmdend - cmdstart) & CMDLENMSK;
./Firmware/procMenu.c:400:                        repeat = (cmdend - tmpcmdend) & CMDLENMSK;
./Firmware/procMenu.c:414:                    cmdend = (cmdend + 1) & CMDLENMSK;
./Firmware/procMenu.c:429:                    if ((((cmdend + 1) & CMDLENMSK) != cmdstart) && (c >= 0x20) && (c < 0x7F)) { // no overflow and printable
./Firmware/procMenu.c:434:                            cmdend = (cmdend + 1) & CMDLENMSK;
./Firmware/procMenu.c:439:                            repeat = (cmdend - tmpcmdend) & CMDLENMSK;
./Firmware/procMenu.c:444:                            while (temp != ((tmpcmdend - 1) & CMDLENMSK)) {
./Firmware/procMenu.c:451:                                temp = (temp - 1) & CMDLENMSK;
./Firmware/procMenu.c:455:                            tmpcmdend = (tmpcmdend + 1) & CMDLENMSK;
./Firmware/procMenu.c:456:                            cmdend = (cmdend + 1) & CMDLENMSK;
./Firmware/procMenu.c:597:                    cmdstart = (cmdstart + 1) & CMDLENMSK;
./Firmware/procMenu.c:608:                    cmdstart = (cmdstart + 1) & CMDLENMSK;
./Firmware/procMenu.c:748:                    while (cmdbuf[((cmdstart + temp) & CMDLENMSK)] != 0x00) {
./Firmware/procMenu.c:749:                        if (cmdbuf[((cmdstart + temp) & CMDLENMSK)] == '>') command_error = false; // clear error if we found a > before the command ends
./Firmware/procMenu.c:754:                        cmdstart = (cmdstart + 1) & CMDLENMSK;
./Firmware/procMenu.c:756:                        if (cmdbuf[((cmdstart) & CMDLENMSK)] == '=') // assignment
./Firmware/procMenu.c:759:                                cmdstart = (cmdstart + 1) & CMDLENMSK;
./Firmware/procMenu.c:768:                                    cmdstart = (cmdstart + 1) & CMDLENMSK;
./Firmware/procMenu.c:794:                    cmdstart = (cmdstart + 1) & CMDLENMSK;
./Firmware/procMenu.c:797:                    if (cmdbuf[((cmdstart) & CMDLENMSK)] == ')') { //cmdstart++;     // skip )
./Firmware/procMenu.c:798:                        //cmdstart&=CMDLENMSK;
./Firmware/procMenu.c:810:                    while (cmdbuf[((cmdstart + temp) & CMDLENMSK)] != 0x00) {
./Firmware/procMenu.c:811:                        if (cmdbuf[((cmdstart + temp) & CMDLENMSK)] == 0x22) command_error = false; // clear error if we found a " before the command ends
./Firmware/procMenu.c:818:                        while (cmdbuf[((++cmdstart) & CMDLENMSK)] != 0x22) {
./Firmware/procMenu.c:819:                            cmdstart &= CMDLENMSK;
./Firmware/procMenu.c:828:                        cmdstart &= CMDLENMSK;
./Firmware/procMenu.c:859:                    cmdstart &= CMDLENMSK;
./Firmware/procMenu.c:995:            cmdstart = (cmdstart + 1) & CMDLENMSK;
./Firmware/procMenu.c:1028:    if ((cmdbuf[((cmdstart + i) & CMDLENMSK)] >= 0x31) && (cmdbuf[((cmdstart + i) & CMDLENMSK)] <= 0x39)) // 1-9 is for sure decimal
./Firmware/procMenu.c:1030:        number = cmdbuf[(cmdstart + i) & CMDLENMSK] - 0x30;
./Firmware/procMenu.c:1032:        while ((cmdbuf[((cmdstart + i) & CMDLENMSK)] >= 0x30) && (cmdbuf[((cmdstart + i) & CMDLENMSK)] <= 0x39)) // consume all digits
./Firmware/procMenu.c:1035:            number += cmdbuf[((cmdstart + i) & CMDLENMSK)] - 0x30;
./Firmware/procMenu.c:1038:    } else if (cmdbuf[((cmdstart + i) & CMDLENMSK)] == 0x30) // 0 could be anything
./Firmware/procMenu.c:1041:        if ((cmdbuf[((cmdstart + i) & CMDLENMSK)] == 'b') || (cmdbuf[((cmdstart + i) & CMDLENMSK)] == 'B')) {
./Firmware/procMenu.c:1043:            while ((cmdbuf[((cmdstart + i) & CMDLENMSK)] == '1') || (cmdbuf[((cmdstart + i) & CMDLENMSK)] == '0')) {
./Firmware/procMenu.c:1045:                number += cmdbuf[((cmdstart + i) & CMDLENMSK)] - 0x30;
./Firmware/procMenu.c:1048:        } else if ((cmdbuf[((cmdstart + i) & CMDLENMSK)] == 'x') || (cmdbuf[((cmdstart + i) & CMDLENMSK)] == 'X')) {
./Firmware/procMenu.c:1050:            while (((cmdbuf[((cmdstart + i) & CMDLENMSK)] >= 0x30) && (cmdbuf[((cmdstart + i) & CMDLENMSK)] <= 0x39)) ||    \
./Firmware/procMenu.c:1051:                             ((cmdbuf[((cmdstart + i) & CMDLENMSK)] >= 'A') && (cmdbuf[((cmdstart + i) & CMDLENMSK)] <= 'F')) ||    \
./Firmware/procMenu.c:1052:                             ((cmdbuf[((cmdstart + i) & CMDLENMSK)] >= 'a') && (cmdbuf[((cmdstart + i) & CMDLENMSK)] <= 'f'))) {
./Firmware/procMenu.c:1054:                if ((cmdbuf[(cmdstart + i) & CMDLENMSK] >= 0x30) && (cmdbuf[((cmdstart + i) & CMDLENMSK)] <= 0x39)) {
./Firmware/procMenu.c:1055:                    number += cmdbuf[((cmdstart + i) & CMDLENMSK)] - 0x30;
./Firmware/procMenu.c:1057:                    cmdbuf[((cmdstart + i) & CMDLENMSK)] |= 0x20; // make it lowercase
./Firmware/procMenu.c:1058:                    number += cmdbuf[((cmdstart + i) & CMDLENMSK)] - 0x57; // 'a'-0x61+0x0a
./Firmware/procMenu.c:1062:        } else if ((cmdbuf[((cmdstart + i) & CMDLENMSK)] >= 0x30) && (cmdbuf[((cmdstart + i) & CMDLENMSK)] <= 0x39)) {
./Firmware/procMenu.c:1063:            number = cmdbuf[((cmdstart + i) & CMDLENMSK)] - 0x30;
./Firmware/procMenu.c:1064:            while ((cmdbuf[((cmdstart + i) & CMDLENMSK)] >= 0x30) && (cmdbuf[((cmdstart + i) & CMDLENMSK)] <= 0x39)) // consume all digits
./Firmware/procMenu.c:1067:                number += cmdbuf[((cmdstart + i) & CMDLENMSK)] - 0x30;
./Firmware/procMenu.c:1078:    cmdstart &= CMDLENMSK;
./Firmware/procMenu.c:1085:    if (cmdbuf[(cmdstart + 1) & CMDLENMSK] == ':') {
./Firmware/procMenu.c:1087:        cmdstart &= CMDLENMSK;
./Firmware/procMenu.c:1090:        cmdstart &= CMDLENMSK;
./Firmware/procMenu.c:1099:    if (cmdbuf[(cmdstart + 1) & CMDLENMSK] == ';') {
./Firmware/procMenu.c:1100:        cmdstart = (cmdstart + 2) & CMDLENMSK;
./Firmware/procMenu.c:1102:        cmdstart = (cmdstart - 1) & CMDLENMSK; // to allow [6:10] (start send 6 10 times stop)
./Firmware/procMenu.c:1110:     if(cmdbuf[(cmdstart + 1) & CMDLENMSK] == 'x')
./Firmware/procMenu.c:1112:             cmdstart = (cmdstart + 1) & CMDLENMSK;
./Firmware/procMenu.c:1115:     if(cmdbuf[(cmdstart + 1) & CMDLENMSK] == 'd')
./Firmware/procMenu.c:1117:             cmdstart = (cmdstart + 1) & CMDLENMSK;
./Firmware/procMenu.c:1120:     if(cmdbuf[(cmdstart + 1) & CMDLENMSK] == 'b')
./Firmware/procMenu.c:1122:             cmdstart = (cmdstart + 1) & CMDLENMSK;
./Firmware/procMenu.c:1125:     if(cmdbuf[(cmdstart + 1) & CMDLENMSK] == 'w')
./Firmware/procMenu.c:1127:             cmdstart = (cmdstart + 1) & CMDLENMSK;
./Firmware/procMenu.c:1135:        cmdstart = (cmdstart + 1) & CMDLENMSK; // remove spaces
./Firmware/procMenu.c:1143:    cmdstart = (cmdstart + 1) & CMDLENMSK;
./Firmware/procMenu.c:1189:    cmdstart = (cmdend - 1) & CMDLENMSK;
./Firmware/procMenu.c:1200:    j = (cmdstart - 1) & CMDLENMSK;
./Firmware/procMenu.c:1204:        if ((cmdbuf[j] == 0x00) && (cmdbuf[(j + 1) & CMDLENMSK] != 0x00)) // did we find an end? is it not empty?
./Firmware/procMenu.c:1209:            while (cmdbuf[((j + k) & CMDLENMSK)]) {
./Firmware/procMenu.c:1210:                UART1TX(cmdbuf[((j + k) & CMDLENMSK)]); // print it
./Firmware/procMenu.c:1213:            historypos[i] = (j + 1) & CMDLENMSK;
./Firmware/procMenu.c:1218:        j = (j - 1) & CMDLENMSK;
./Firmware/procMenu.c:1232:        while (cmdbuf[(historypos[j] + i) & CMDLENMSK]) // copy it to the end of the ringbuffer
./Firmware/procMenu.c:1234:            cmdbuf[(cmdend + i) & CMDLENMSK] = cmdbuf[(historypos[j] + i) & CMDLENMSK];
./Firmware/procMenu.c:1237:        cmdstart = (cmdend - 1) & CMDLENMSK; // start will be increased before parsing in main loop
./Firmware/procMenu.c:1238:        cmdend = (cmdstart + i + 2) & CMDLENMSK;
./Firmware/procMenu.c:1239:        cmdbuf[(cmdend - 1) & CMDLENMSK] = 0x00;
./Firmware/procMenu.c:1725:    cmdstart = (cmdstart + 1) & CMDLENMSK;
./Firmware/procMenu.c:1749:    cmdstart = (cmdstart + 1) & CMDLENMSK;
./Firmware/procMenu.c:1818:    cmdstart = (cmdstart + 1) & CMDLENMSK;

Code: Select all
./Firmware/basic.c:1189:                cmdstart=(cmdstart+1)&CMDLENMSK;
./Firmware/basic.c:1219:                i&=CMDLENMSK;
./Firmware/basic.c:1280:                                cmdstart=(cmdstart+1)&CMDLENMSK;


So far I don't know yet, why basic code does not like a bigger CMDLENMSK value, sadly don't have the free time to figure out yet...
mikeb
Newbie
Newbie
 
Posts: 30
Joined: Fri Sep 09, 2016 2:50 am

Re: Bus Pirate - Community Firmware 7.0

Postby USBEprom » Sun Oct 09, 2016 9:28 am

mikeb jjang!
Good explanation!
Daebak!, i get it.
Meanwhile I compiled a new firmware by myself.
Since BP_ENABLE_PIC_SUPPORT and BP_ENABLE_PC_AT_KEYBOARD_SUPPORT now have been fixed by agatti (https://github.com/BusPirate/Bus_Pirate/issues/7) I have included them.
Whising me 256 characters for the command line I changed line 502 in configuration.h, lines 496-505, in this way:

/**
* How big the serial command buffer can be, in bytes.
*
* @warning This must be set to a power of two, ie. 256, 128, 64, 32, etc.
*/
#ifdef BUSPIRATEV3
#define BP_COMMAND_BUFFER_SIZE 256
#else
#define BP_COMMAND_BUFFER_SIZE 256
#endif /* BUSPIRATEV3 */


Then in the same file I changed lines 304-319 in this way:

#ifdef BUSPIRATEV3
#define BP_ENABLE_1WIRE_SUPPORT

#undef BP_ENABLE_BASIC_SUPPORT
#define BP_ENABLE_DIO_SUPPORT
#define BP_ENABLE_HD44780_SUPPORT
#define BP_ENABLE_I2C_SUPPORT
#define BP_ENABLE_JTAG_SUPPORT
#define BP_ENABLE_PIC_SUPPORT
#define BP_ENABLE_PC_AT_KEYBOARD_SUPPORT
#define BP_ENABLE_RAW_2WIRE_SUPPORT
#define BP_ENABLE_RAW_3WIRE_SUPPORT
#define BP_ENABLE_SMPS_SUPPORT
#define BP_ENABLE_SPI_SUPPORT
#define BP_ENABLE_SUMP_SUPPORT
#define BP_ENABLE_UART_SUPPORT
#endif /* BUSPIRATEV3 */


Practically I have activated all the disponible options discarding BASIC because there is not enough space available in the memory of the PIC into the Bus Pirate v3.
I compiled with those settings and I got a firmware that seems to work.
It has 11 options in its menu:

Bus Pirate v3.5
Community Firmware v7.0 - goo.gl/gCzQnW [HiZ 1-WIRE UART I2C SPI 2WIRE 3WIRE KEYB LCD PIC DIO] Bootloader v4.4
DEVID:0x0447 REVID:0x3046 (24FJ64GA002 B8)
http://dangerousprototypes.com
HiZ>m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. KEYB
9. LCD
10. PIC
11. DIO
x. exit(without change)


It passes the selftest, it has 256 characters for the command line, flashrom is working and all is fine for what I can understand.
Well!
Now, since in the SPI option (5) there are only the standard speeds as follow:

(1)>5
Set speed:
1. 30KHz
2. 125KHz
3. 250KHz
4. 1MHz


I'd like to add others new because I need more high speeds.
If I am not wrong the speed limits for SPI with Bus Pirate v3 are 8MHz for MASTER mode and 10MHz for the SLAVE.
So, if still I am not wrong, new speeds could be added as follows:

0b00000000, /* 31 kHz - Primary prescaler 64:1 / Secondary prescaler 8:1 */
0b00001100, /* 50 kHz - Primary prescaler 64:1 / Secondary prescaler 5:1 */
0b00011000, /* 125 kHz - Primary prescaler 64:1 / Secondary prescaler 2:1 */
0b00011100, /* 250 kHz - Primary prescaler 64:1 / Secondary prescaler 1:1 */
0b00011101, /* 1 MHz - Primary prescaler 16:1 / Secondary prescaler 1:1 */
0b00010110, /* 1.3 MHz - Primary prescaler 4:1 / Secondary prescaler 3:1 */
0b00011010, /* 2 MHz - Primary prescaler 4:1 / Secondary prescaler 2:1 */
0b00001011, /* 2.6 MHz - Primary prescaler 1:1 / Secondary prescaler 6:1 */
0b00001111, /* 3.2 MHz - Primary prescaler 1:1 / Secondary prescaler 5:1 */
0b00011110, /* 4 MHz - Primary prescaler 4:1 / Secondary prescaler 1:1 */
0b00010111, /* 5.3 MHz - Primary prescaler 1:1 / Secondary prescaler 3:1 */
0b00011011, /* 8 MHz - Primary prescaler 1:1 / Secondary prescaler 2:1 */


I need to change lines 67-71 of spi.c in order to accommodate the new ones.
That is ok, but what about to change entries in order to activate them?
Seems to me the modify affects too many files, how can I do?
I do not even know if the modify I have in mind is possible with the Bus Pirate v3.
Maybe there is not enought space to accommodate the new entries.

Thanks.

Be seeing you.

U.Sb
USBEprom
Full Member
Full Member
 
Posts: 129
Joined: Wed Mar 14, 2012 4:09 pm

Re: Bus Pirate - Community Firmware 7.0

Postby joeblack » Sat Oct 15, 2016 5:31 pm

Hi USBEprom, would you share your latest compilation for BP V3.
(everything enabled, without basic)
would like to test your settings without to download the whole compile stuff for now.

greetings
joe
joeblack
Newbie
Newbie
 
Posts: 8
Joined: Sat Oct 15, 2016 5:23 pm

PreviousNext

Return to Bus Pirate Development