Diablo resources


More resources for using Diablo to control powerful robots.

piborg's picture

We now have a working Arduino library for controlling Diablo using the two-wire connections (I2C)

The library is attached to this post, it comes complete with an example program. Please be aware that the wiring instructions included with the example are out of date - corrections and diagram below.

The data power connection which is labelled V-Logic must be connected to either a 2.5V, 3.3V, or 5V source. This should match the voltages used by the I2C lines.

The 5V pins are outputs and available to power other electronics from the on board DC/DC up to a shared maximum of 1.5A.

Edit: Corrections for the updated version of Diablo (rounded corners).

steelsquid's picture

I can not find any specifiication on the size of the board and where the holes is?
Do you have a drawing of that?


piborg's picture

The Diablo is 65 x 110 mm in size, the height is 18 mm from the top of the connectors to the bottom of the PCB.

There are mounting holes in each of the four corners, they are 7 mm in from each side.

I'm currently using the PBR and Diablo libraries for an arduino project, but i keep getting this error of multiple definitions.

Arduino: 1.6.5 (Windows 8.1), Board: "Arduino Uno"

DiabloArduino\Diablo.cpp.o: In function `ReadInReply()':
C:\*********\Documents\Arduino\libraries\DiabloArduino/Diablo.cpp:17: multiple definition of `ReadInReply()'
PicoBorgRevArduino\PicoBorgRev.cpp.o:C:\********\Documents\Arduino\libraries\PicoBorgRevArduino/PicoBorgRev.cpp:17: first defined here
DiabloArduino\Diablo.cpp.o: In function `DiabloMotorsOff()':
C:\**********\Documents\Arduino\libraries\DiabloArduino/Diablo.cpp:114: multiple definition of `rdBuffer'
PicoBorgRevArduino\PicoBorgRev.cpp.o:C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire/Wire.h:73: first defined here
collect2.exe: error: ld returned 1 exit status
Error compiling.

what can i do to fix this?

I over came this by renaming a few of the functions and the rdBuffer to unique names. mostly by adding a 'p' or 'd' to the end of the name.

piborg's picture

Glad to hear you got the problem sorted.

The Arduino compiler wants all of the functions from each file to have a unique name.
Because the Diablo and PicoBorg Reverse libraries use some common functionality they are listed in both files.

The easiest thing to do is comment out the copies of rdBuffer and ReadInReply in one of the two libraries so they share the same copy.

Your alternative of renaming the function and variable is a little more effort, but means the libraries will work both independently and as a pair.

Subscribe to Comments for "Diablo resources"