Giter Site home page Giter Site logo

somerandomperson / the-bus-pirate Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 1.0 17.91 MB

Automatically exported from code.google.com/p/the-bus-pirate

License: Other

Assembly 6.20% Shell 0.15% Batchfile 0.05% C 49.07% HTML 0.68% Objective-C 1.64% C++ 22.84% TeX 0.47% Python 7.67% Perl 2.46% QMake 0.15% C# 3.68% Makefile 4.93%

the-bus-pirate's People

Contributors

bethnull avatar elafargue avatar frankalicious avatar mattcallow avatar piopawlu avatar schamp avatar

Forkers

bopopescu

the-bus-pirate's Issues

BP gets locked in bit-bang mode.

What steps will reproduce the problem?
    1. Use RealTerm to send 27 bytes of 0x0.
    2. BP resturns with "BBIO1BBIO1BBIO1BBIO1BBIO1BBIO1BBIO1BBIO1" 
which is correct.
    3. Try to exit bit-bang mode by sending 1 byte of 0xF.
    4. BP responds with "BBIO1" which is incorrect.
    5. Doesn't matter how many 0xF are now sent, cannot exit bit-bang 
mode. Also appears you cannot enter any deeper modes, I2C, SPI etc. BP 
always responds with BBIO1.

What is the expected output? What do you see instead?
The BP should exit bit-bang mode and report:
    Bus Pirate v3
    Firmware v4.2 Bootloader v4.2
    DEVID:0x0447 REVID:0x3043 (B5)
    http://dangerousprototypes.com

Funnily enough if you use the same procedure but only send 26 bytes the BP 
responds correctly.

What version of the product are you using? On what operating system?
    Bus Pirate v2.go
    Firmware v4.2 Bootloader v4.2
    DEVID:0x0447 REVID:0x3043 (B5)

Please provide any additional information below.

This is causing a problem when trying to script the BP and reset it from 
an unknown state. It is very easy to get it locked up.

Original issue reported on code.google.com by [email protected] on 17 Mar 2010 at 3:00

Add servo control

For the servomotors, a frequency of 300Hz could be sufficiently low (the
period should be between 3 and 20milliseconds). And then, the time at the
high state will determine the output angle of the servomotor (between 0.5
and 2.5ms approximately, depending on the type of servomotor).

So either you can set a frequency between 400Hz (=2.5ms at the high state)
and 2KHz (=0.5ms at the high state) to drive the servomotor. Or you can set
a fixed frequency of 300Hz for example and change the duty cycle to change
the output angle of the servomotor.

Original issue reported on code.google.com by [email protected] on 2 Nov 2009 at 7:39

A CRC generator

Add some facility to quickly calculate CRC values of a packet. Could use
the PIC24 hardware CRC generator.

Original issue reported on code.google.com by [email protected] on 31 Mar 2009 at 2:28

Protocol: LIN

Add LIN protocol. 

Check the Microchip MCP2021 transceiver.

Original issue reported on code.google.com by [email protected] on 31 Mar 2009 at 2:37

0Tis Elevat0r C0mpany R3mote Stati0n Pr0tocol

This Is a Syncronous Serial Protocol

There have 2 lines. Data and Clock.
Every frame has 128 Clock Cycles.
Cycles 4 a 63 - Main CPU send information for Output 
Cycles 68 a 127 - Main CPU Receive information of inputs.

The first Cycles 0 to 3 and 64 to 67 are sync singals. Status and Command
for Write or Read

Original issue reported on code.google.com by [email protected] on 5 Sep 2009 at 4:10

Protocol: OBD-II

Add the automotive OBD-II protocols. 

What type of physical layer interface is required?


Original issue reported on code.google.com by [email protected] on 31 Mar 2009 at 2:33

parameter name mismatch

What steps will reproduce the problem?
1. Use python script to set bitbang mode
2. Try to use the raw_set_pins function in BitBang.py
3.

What is the expected output? What do you see instead?
Pins are set.  Pins are not set.

What version of the product are you using? On what operating system?
BitBang.py r168, OS X 10.5.8

Please provide any additional information below.
Line 107 uses the "config" parameter, but the function declaration
specifies the "pins" parameter as such:

106        def raw_set_pins(self, pins):
107                self.port.write(0x80 | config)

Line 171 (function cfg_pins) uses pins in the call to self.port.write().

Original issue reported on code.google.com by [email protected] on 22 Dec 2009 at 2:43

Protocol: DMX512-A

Add the DMX industrial lighting protocol.

Transceiver/physical layer? RS484?

Original issue reported on code.google.com by [email protected] on 31 Mar 2009 at 2:38

SPI protocol snooper

This can be implemented by using the hardware SPI slave mode. 

The primary challenge is buffering incomming data while the Bus Pirate
converts the raw value into ASCII for the terminal. This will probably
require reconfiguring the UART and SPI to use their buffers, and using
interrupts to move bytes from the SPI slave buffer to a larger processing
buffer.

Original issue reported on code.google.com by [email protected] on 31 Mar 2009 at 2:14

PC keyboard library should have bit read/write timeout

Keyboard protocol depends on the keyboard to give the clock signal. If
there's no keyboard, or an incorrect connection, the Bus Pirate just hangs
while waiting for the clock pulse. This should be corrected with a timeout
in the read and write bit functions.

Original issue reported on code.google.com by [email protected] on 29 Apr 2009 at 7:03

I2C protocol sniffer

Add a macro to the I2C library that reads activity from a bus and prints it
to the terminal until stopped with escape.

Since the hardware I2C module doesn't work this will be a bit challenging,
fortunately I2C isn't a high-speed protocol. Best solution is probably to
use the pin change notification interrupts to detect start and stop
sequences, and clock in the bits. This will need a buffer to hold decoded
bytes while the Bus Pirate converts the raw values to ASCII characters for
display.

Original issue reported on code.google.com by [email protected] on 31 Mar 2009 at 2:18

python library for the Bus Pirate

I have started writing a python library for the bus pirate. It's ugly and
messy, but I was able to use it to dump the firmware from the SPI chip on
the DS Lite.

The source code is available at http://github.com/audiohacked/pyBusPirate

You can contact me if you need more information.

Original issue reported on code.google.com by [email protected] on 22 Sep 2009 at 12:43

Pulse-width modulator, frequency generator

Add a configuration menu and pulse-width modulator to the AUX pin.

Will require:
1. Routine to assign and setup the PWM hardware on the AUX pin.
2. Menu to configure period and duty cycle (in KHz, MHz, ms?).


Original issue reported on code.google.com by [email protected] on 31 Mar 2009 at 2:21

"Wait until interrupt" command

A new syntax command that pauses until the state of the AUX pin changes.

Might include:
1. Configurable direction (H->L, L->H).
2. Escape command/timeout to avoid a stuck device.

Original issue reported on code.google.com by [email protected] on 31 Mar 2009 at 2:23

Protocol: CAN

Controller area network protocol.

What type of physical layer transceiver is needed?

Original issue reported on code.google.com by [email protected] on 31 Mar 2009 at 2:34

JTAG Probe Chain Macro Only Finds First Device

What steps will reproduce the problem?

1. Connect the Bus Pirate to a board with more than one device on the JTAG
chain. I used a Digilent Spartan-3 Starter board which has an XC3S200 FPGA
and XCF02S Flash PROM on the JTAG chain.

2. Run the JTAG Probe Chain macro.


What is the expected output? What do you see instead?

Only the first device on the chain, the XC3S200, is detected.


What version of the product are you using? On what operating system?

Bus Pirate v2go. Firmware v2.1-RC2.


Please provide any additional information below.

In the code for the probe macro, in jtag.c around line 202, there is a
while-loop which scans the chain. There is an if-test for a timeout/limit
of 250 devices. The test has the wrong comparison operator. It has a "<"
instead of ">" so it breaks out of the while-loop on the first iteration.

Original issue reported on code.google.com by [email protected] on 25 Aug 2009 at 3:44

Global scratch buffer

The current JTAG programmer uses its own scratch buffer. It would be better
to have a global scratch buffer that is assigned a pointer in the setting
struct and passed to modules as needed.

Original issue reported on code.google.com by [email protected] on 31 Mar 2009 at 2:29

PirateRename doean't work on PPC macs

What steps will reproduce the problem?
Do the usual procedure to start PirateRename (unload kext etc) 

What is the expected output? What do you see instead?
Clicking to Read cause some garbage name to appear however comunication with 
chip doesn't work

What version of the product are you using? On what operating system?
Latest PirateRename (1.0) compiled by me for PPC since available precompiled 
version is Intel only.

Please provide any additional information below.
I'm on an Ibook G4 with latest Leopard and updates with latest FTD2XX driver.


Original issue reported on code.google.com by [email protected] on 15 Feb 2010 at 5:25

Integer repeat values for bulk read, clock ticks, delays, etc.

Current repeat values (e.g. r:10) are up to one byte, or 255. This change
would add integer length repeat values.

1. Update protocol libraries to pass integer repeat values.
2. Update repeat reading routine to read integer values and return integer
repeat values.

Original issue reported on code.google.com by [email protected] on 31 Mar 2009 at 2:27

Protocol: IRDA

Add infrared data protocol.

What type of tranceiver is needed? Microchip MCP2120/MCP2140a?

Original issue reported on code.google.com by [email protected] on 31 Mar 2009 at 2:36

Adapter: MIDI

Schematic complete, need Cadsoft Eagle footprint and part number for MIDI
connector.

Original issue reported on code.google.com by [email protected] on 14 Apr 2009 at 11:46

UART Live mode fix

The UART live capture on Buspirate v2go, does not work. I have tried
different versions 2.5, 3.0.

I believe that it is caused by line 174 in UART.c (current trunk - r87)

if(UART1RX()==' ')break; //escape

This line waits for input from user. 
The line should be replaced by something like:

if (U1STAbits.URXDA==1){
 if (U1RXREG == ' ') break;
}

do the checking only when data is ready in the buffer.

Original issue reported on code.google.com by michal.demin on 3 Dec 2009 at 8:24

Better PWM accuracy and resolution

Promote PWM input to HZ for better resolution and greater range of values.

Will need a long number handling routine, or promote existing integer
number routine to handle longs.

Original issue reported on code.google.com by [email protected] on 14 Apr 2009 at 11:31

Automatic Baud Detection on Transparent UART Bridge Mode

The UART bridge mode might include an option for automatic baud detection
if the target device's baud rate is unknown.

When the baud rate is unknown the bus pirate can look at a few incoming
characters and then time the received bits to figure out the proper baud rate.

After the incoming baud rate is detected, then it enters a mode where it
translates from that baud rate to the configured host baud rate (the user
defines it).

With this feature implemented the user can simply plug the bus pirate into
an unknown serial interface and read from it without going through the pain
of manually sweeping all available baud rates until ungarbled data starts
to appear.

Original issue reported on code.google.com by [email protected] on 7 Aug 2009 at 12:47

user interface (keypad/dispay)

If sniffing/capture/buffering  is one of the goals, then this could be a great 
idea.
provide an internal I/F IC2 for example that would allow a 2nd board to be 
attached as a sandwich. 
the 2nd board could carry an LCD display, SD card slot for the respective 
sniff/capture/data 
storage, and a keypad to allow the user to use the interface. associative 
support chips (how about 
an RTC) would also sit on this board perhaps even with a more robust test cable 
interface?
The best thing would be it would be an optional accessory to allow standalone 
use, everything 
(perhaps more as some functions could not be used in a standalone phase) would 
beavailable from 
the USB.



Original issue reported on code.google.com by [email protected] on 1 Nov 2009 at 7:28

Buffer terminal TX to improve bus sniffer performance

Right now it's easy for the bus sniffers to fall behind because the current
terminal transmit function is blocking (waits until it can send the bytes)
and sniffed bytes can be missed. A better solution is to buffer the
terminal output and periodically check the TX UART to see if more bytes can
be copied. Basically a cooperative multitasking setup.

Original issue reported on code.google.com by [email protected] on 28 Apr 2009 at 6:49

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.