Go Down

Topic: Compatibility with newer shields (Read 3694 times) previous topic - next topic


Hi, i planed to buy an Due board, but i wanted to know if it is compatible with the newer versions of the official shields, like the motor shield, the ethernet shield or the wifi shield. Since they have an ioref pin, i thought they could adapt their voltage output to the Due. But I wanted to be sure.


Oct 28, 2012, 04:13 pm Last Edit: Oct 28, 2012, 04:18 pm by Graynomad Reason: 1
If a shield implements the IOREF signal that they should be compatible.

After looking at the schematics I'm pretty sure the WiFi and Enet shields are compatible and I think Massimo has said as such, not sure about the motor shield. The control signals go directly to the L298 chip, so the next thing to do is google for a data sheet for that chip, just to answer a simple question like this.

I searched all three product pages and the is not a single mention of Due or IOREF.

EDIT: On the motor board A2 and A3 go to connectors with 5v on one pin, this is a potential problem depending on what you plug into those connectors.

Rob Gray aka the GRAYnomad www.robgray.com


Thanks, i looked for the data sheet of the l298 and it is possible to set the inputs pins to high with a minimum of 2.3V, so it should be ok if i disable the sensing current pins.


Oct 28, 2012, 05:04 pm Last Edit: Oct 28, 2012, 05:07 pm by jsmith45 Reason: 1
A2 and A3 are clamped to within 0.15V of IOREF by the schottky diodes.

The only issue with the board is that the Brake lines are not guaranteed to work. Looking at the datasheet for the xnor chip: when the VDD is 5V, there is no specification of the output if you try to use 3.3V as a logic high input. However, the internal design of the chip very strongly suggests that it will simply do the right thing. Worst case: you live without the brakes, but no damage to the Due or shield.

Edit: No need to disable the current sensing pins. They already have a maximum output of 3.3V according to the product page, apparently for this very reason.


If a shield implements the IOREF

Is there documentation somewhere on just what you are supposed to do to "implement IORef"?
Is it supposed to be a power pin, or just a reference?  (It's wired directly to 3.3V power on Due, and 5V power on Uno R3, which MIGHT mean that you can simply use it as THE power supply for shields that can work from either voltage.  But not necessarily!)


The idea of 3.3V and 5.0V is that you use that for the VCC of your logic on the shield.
The ioref is then used as the Arduino-facing side of a dual-voltage buffer/driver chip -- optocoupler, level converter, that kind of thing.

Massimo Banzi

BTW I have created a playground page where anybody can report shields that are working with the Due.


Massimo Banzi

Motor shield working with the Due http://j.mp/YogqR8


I have been trying to get my arduino wifi shield to work with the due but I keep getting weird library path errors. I downloaded the 1.5.1r2 IDE but that did not have the the wifi library installed. So i added the library and I get this error when trying to run the network scan example code.

In file included from c:\users\felix\desktop\arduino-1.5.1r2\hardware\tools\g++_arm_none_eabi\bin\../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/include/stdio.h:46,
                 from C:\Users\Felix\Documents\Arduino\libraries\WiFi\/utility/debug.h:13,
                 from C:\Users\Felix\Documents\Arduino\libraries\WiFi\WiFiClient.cpp:6:
c:\users\felix\desktop\arduino-1.5.1r2\hardware\tools\g++_arm_none_eabi\bin\../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/include/sys/types.h:93: error: conflicting declaration 'typedef short unsigned int u_short'
C:\Users\Felix\Documents\Arduino\libraries\WiFi\utility/socket.h:71: error: 'u_short' has a previous declaration as 'typedef uint16 u_short'
C:\Users\Felix\Documents\Arduino\libraries\WiFi\WiFiClient.cpp: In member function 'virtual int WiFiClient::read(uint8_t*, size_t)':
C:\Users\Felix\Documents\Arduino\libraries\WiFi\WiFiClient.cpp:107: error: no matching function for call to 'ServerDrv::getDataBuf(uint8_t&, uint8_t*&, size_t*)'
C:\Users\Felix\Documents\Arduino\libraries\WiFi\utility/server_drv.h:23: note: candidates are: static bool ServerDrv::getDataBuf(uint8_t, uint8_t*, uint16_t*)

If someone got their due to work with the wifi shield how did you set up the IDE?


I have also been unable to compile the WiFi shield examples for the Due , getting the same error. I installed the Wifi library through the "add library" menu item.

The failure to compile for the Due appears to be conflicting typedef's for u_short:

Line 93: typedef unsigned short   u_short

Line 71: typedef uint16    u_short;   /**< 16-bit value */

Massimo-- what are the plans for Tinkerkit compatability for the Due? 

At the moment I'm guessing that only the Tinkerkit connectors on the Motor Shield R3 currently provide a way to interface Tinkerkit modules with the Due.  I'm also assuming that the Tinkerkit Mega Sensor Shield V2 is not compatible with the Due because it is not a R3 shield.  Is this fairly accurate?

Thanks for some great products and innovative designs for teaching and learning!  I'm really enjoying working with my new Due (and trusty Mega and Uno projects, etc)


Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131