busvoodoo
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
busvoodoo [2017/12/15 11:08] – [firmwares] kingkevin | busvoodoo [2018/03/11 22:29] (current) – delete page kingkevin | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | The BusVoodoo is a multi-protocol debugging adapter. | ||
- | This tool allows to quickly communicate with various other electronic devices. | ||
- | |||
- | ===== features ===== | ||
- | |||
- | The BusVoodoo is a multi-protocol debugging adapter. | ||
- | |||
- | It comes it two versions: | ||
- | * light: provides everything to works with up to 5V protocols using the 2x5 pins I/O connector. It comes in a case (with general pinout label), USB cable, and a 10 pins female to female dupont cable (20 cm). | ||
- | * full: adds RS/CAN functionality and dedicated RS/CAN connector (with HV output) with 5 pins female to female dupont cable (20 cm), an OLED display (e.g. to indicate protocol specific pinouts), a proper 2x5 colored IDC cable to 10 pins dupont (30 cm), and a 8-channel 24 MHz logic analyzer (sigrok compatible Saleae Logic 8 clone). | ||
- | The light version can be converter to a full version by populating the components on the bottom side of the PCB (and cutting the display and RS/CAN slots in the case) | ||
- | |||
- | Device features: | ||
- | * compact rigid case: 49.3x27.7 mm | ||
- | * host connection: USB 2.0 (mini-B, full speed: 11 Mb/s) | ||
- | * 2 light indicators: red for power, red+blue for activity | ||
- | * 2 target device connectors: general purpose I/O connector (0 to 5.5 V) and specialised RS/CAN connector (not populated on light version) | ||
- | * 1 display connector (OLED screen provided in full version) | ||
- | * 1 internal debugging and automation connector (2x4 pins with 2 mm pitch) | ||
- | * re-flashable with [[# | ||
- | |||
- | I/O connector: | ||
- | * 2x5 pins header (IDC, 2.54 mm pitch) | ||
- | * pinout (from top left to bottom right): | ||
- | - ground | ||
- | - 5 V output (directly from USB), software switchable | ||
- | - 3.3 V output (up to 250 mA), software switchable | ||
- | - 0 to 4.8V adjustable voltage output (up to 500mA), connected to the embedded pull-up resistors (target device voltage can be input), 0 to 6 V ADC | ||
- | - 6 I/O pins, 3.3 V in push-pull mode (protected using 220 Ohm resistors), 1.6 to 5.5 V in open-drain mode using strong 2 kOhm embedded pull-up resistors (with internal adjustable voltage regulator or external power source) | ||
- | |||
- | RS/CAN connector: | ||
- | * 1x5 pin header (IDC, 2.54 mm pitch) | ||
- | * 3.3 to 18 V adjustable voltage output (up to 30 mA), to program devices using high voltages | ||
- | * RS-232 port (with hardware flow control) | ||
- | * RS-485/ | ||
- | * CAN port (not terminated) | ||
- | |||
- | === not the World' | ||
- | |||
- | Since the begging of electronics probably every engineer developed his own dedicated programming or debugging tool. | ||
- | This is just mine, packed with features and made available for all. | ||
- | |||
- | === not a smart device: === | ||
- | |||
- | While it is packed with features, it is just a debugging and hacking tool and you are the brain behind it. | ||
- | You still need to know about electronics (e.g. the difference between push-pull and open-drain driving modes) and have a basic understanding of the protocol you want to talk. | ||
- | |||
- | === not an Internet-of-Things device: === | ||
- | |||
- | It comes with no network connectivity. | ||
- | Its purpose is to debug and hack devices locally, not to provide a gateway to remotely control other devices. | ||
- | |||
- | === not the ultimate all-in-one device: === | ||
- | |||
- | The BusVoodoo is a compact device which supports a lot of [[# | ||
- | But it is not intended to replace all the other special purpose adapters (USB to UART, JTAG, ...) which probably can better solve specific task because their are: more stable, simpler, more powerful, faster, more stable, cheaper, or more available. | ||
- | Thus the BusVoodoo is a good choice to start with, but if you want better performances switch to a device designed for each particular task. | ||
- | |||
- | === not community driven: === | ||
- | |||
- | This device is not the result of a collaborative work in a forum with 1000 pages and chaotic status. | ||
- | I developed it and actively support it. | ||
- | I also actually also use it in my everyday work, and thus have an interest of keeping the quality high.\\ | ||
- | Nothing prevents you from building it yourself or forking it though. | ||
- | Both hardware and software are open-source and available here, and you are welcome to submit bug reports or patches. | ||
- | |||
- | ===== protocols ===== | ||
- | |||
- | The signals can be driven using 3.3 V push-pull mode, or 1.6 to 5.5 V open-drain mode with 2 kOhm embedded pull-up resistors (can be increased using external resistor). | ||
- | |||
- | ^ protocol ^ support ^ comment ^ | ||
- | | UART | hardware | 2 UARTs available, 1 with hardware flow control | | ||
- | | SPI | hardware | with multiple Chip Select | | ||
- | | I²C | hardware | with embedded pull-up resistors | | ||
- | | I²S | hardware | with master clock | | ||
- | | SD/eMMC | hardware | with 1 or 4 data lines | | ||
- | | SMBus | hardware | with embedded pull-up resistors | | ||
- | | LIN | hardware | | | ||
- | | ISO-7816 | hardware | | | ||
- | | RS-232 | hardware | with hardware flow control, only in full version | | ||
- | | RS-485 | hardware | no termination resistor, only in full version | | ||
- | | RS-422 | hardware | no termination resistor, only in full version | | ||
- | | CAN | hardware | no termination resistor, only in full version | | ||
- | | 1-Wire | software | | | ||
- | | MicroWire | software | | | ||
- | | WS2812b | sofware | dedicated LED light protocol | | ||
- | | DHT11/DHT22 | software | dedicated humidity/ | ||
- | | TM1637 | software | dedicated 7-segment display protocol | | ||
- | | IR | software | various InfraRed protocols, planned | | ||
- | | JTAG | software | planned | | ||
- | | SWD | software | planned | | ||
- | | cJTAG | software | planned | | ||
- | |||
- | note: the status of each protocol support is not documented yet (WiP) | ||
- | |||
- | no matter which protocol you are using, the hardware has been designed to provide one additional UART port | ||
- | |||
- | ===== firmwares ===== | ||
- | |||
- | Since the BusVoodoo uses native USB, it can be [[flashing|re-flashed]] to clone other USB device. | ||
- | This allows to convert the BusVoodoo into a dedicated/ | ||
- | |||
- | alternative firmwares: | ||
- | * USBtinyISP or AVRISP to program Atmel AVR MCUs | ||
- | * [[https:// | ||
- | * PICkit2 to program PIC MCUs, using the high voltage output of the full version | ||
- | * AVR Dragon to rescue Atmal AVR MCUs using the [[http:// | ||
- | |||
- | note: the alternative firmware are not implemented yet | ||
- | ===== history ===== | ||
- | |||
- | Whenever I go to conferences I like to take apart devices I find there. | ||
- | The problem is that I can't bring always bring all the adapters: UART, JTAG, I2C, ... there are just too many, and in the end I never have the right one.\\ | ||
- | The alternative I found was just to take a development board (e.g. the cheap and compact [[stm32f1xx# | ||
- | This comes with peripherals for the major protocols (UART, SPI, I2C) and for the rest I just to implement them is software ([[https:// | ||
- | The drawback is that I need to program the micro-controller every time, reference manual at hand, and this takes at least 30 not so exiting minutes. | ||
- | Now come the BusVoodoo. | ||
- | |||
- | The BusVoodoo is a USB adapter with pre-programmed support for numerous protocols, allowing to communicate with other device without hassle. | ||
- | It appears as a serial device. | ||
- | Use a terminal emulation program to connect to it (e.g. [[https:// | ||
- | |||
- | ===== alternatives ===== | ||
- | |||
- | I am not the first one having this problem and creating such a device. | ||
- | Probably every hardware hacker comes to the same point and develops his own solution, using parts he is familiar with, and suited for the tasks his is struggling with. | ||
- | And there probably never will be a perfect device capable of everything since the needs are different, but a bit of help is always welcome. | ||
- | |||
- | The closest alternative to the BusVoodoo is probably the [[http:// | ||
- | The name BusVoodoo is also inspired from the Bus Pirate and is kind of an homage, and the more I develop the BusVoodoo the more I learn about the Bus Pirate and like it again. | ||
- | |||
- | Advantages of the Bus Pirate over the BusVoodoo: | ||
- | * it is a mature product (v3 is, v4 isn't) | ||
- | * it supports the [[http:// | ||
- | * it is cheap ($30) and readily available | ||
- | |||
- | Advantages of the BusVoodoo over the Bus Pirate: | ||
- | * it uses a native USB interface instead of a USB to UART chip, allowing for greater speeds and to be flashed as other devices (using the clone firmwares). The [[http:// | ||
- | * it has an adjustable voltage regulator for the pull-up resistors, allowing 1.6-5.0V logic | ||
- | * it supports more protocol in hardware (eMMC, SMBus, I2S, ...) | ||
- | * it also supports other protocols in software | ||
- | * it supports higher voltage/ | ||
- | * no need to always have the [[http:// | ||
- | * it comes in a nice and compact case (and some other accessories like USB cable and I/O cable) | ||
- | * it supports CTRL+C and CTRL+D on top of the [[http:// | ||
- | * and probably the most important aspect: it is actively developed and has user support | ||
- | |||
- | The Bus Pirate is not the only alternative though. | ||
- | There is also the [[https:// | ||
- | And there is the [[http:// | ||
- | |||
- | But BusVoodoo will never replace dedicated tools (USB to UART dongle, JTAG adapter, flash programmer, ...) or prevent from using a development board to control all nifty protocol details. | ||
- | The BusVoodoo is more of a quick all-in-one first approach tool. | ||
- | |||
busvoodoo.1513336110.txt.gz · Last modified: 2024/01/07 17:49 (external edit)