I saw on this webpage that the EVShield is compatible with :" EVShield attaches directly to an Arduino Duemilanove or Uno or Genuino 101", but I am wondering if it is also compatible with the Arduino/Genuino Zero? Any reason I should not use both togheter?
From what we can tell the Arduino/Genuino Zero should be compatible. It aligns with the standard Arduino 1.0 pinout. Keep in mind the EVShield supplies power to the Arduino, but it doesn't use any pins besides those and the I2C pins (Vin, 5V, 3.3V, SCL, SDA). Take a look at the Advanced User Guide.
Thanks for the confirmation! That is what we tought as the issue we have with using the Mega is the I2C pins not been located on the same pins as the UNO.
Before buying the Zero, I instaled the Arduino Zero drivers, selected the Zero board and tried to compile a simple code (EVShield-master/blinkers) and got many warning like this one:
...ArduinolibrariesEVShield-masterEVShield.cpp: In function 'void pingEV()':
...ArduinolibrariesEVShield-masterEVShield.cpp:766:9: error: 'TWCR' was not declared in this scope
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
^
Are these something that will prevent the code to run on the Arduino Zero board?
Note that I did the same test selecting the "Genuino 101" board, and got warning too (and they were different!) . So, maybe I am seeing those warnings because I do not have the actual board connected (but I only clicked on the "verify" button)?
Great test! I really like your idea of trying to compiling code before ordering a product that uses it.
Also, fixed! Here is the branch. It compiles, but unfortunately I do not have an Arduino Zero to test it on. Please let me know if it works for you, and if not what went wrong so I can fix it.
Wow.. it does compile without warning now (well only the "#warning from EVShield: Touchscreen methods are only supported on PiStorms").
Thanks a lot,
Martin
I just found out this note from the Adruino site: "Warning: Unlike most Arduino & Genuino boards, the Zero runs at 3.3V. The maximum voltage that the I/O pins can tolerate is 3.3V. Applying voltages higher than 3.3V to any I/O pin could damage the board."
Can that be a problem? I found in the EVShield-Advanced-Development-Guide.pdf that the shield use: page 1: "I2C Ports Specs: EVShield has 1 I2C Port with male pin headers. I2C Voltage: 5 Volts"
Should I use an "Adruino 101" instead which has a different note: "The board operating voltage and I/O is 3.3V but all pins are protected against 5V overvoltage." ? But the Ardunio IDE still gives me lots of error while compiling using the 101 board.
It should work. Unfortunately, we do not have one to verify this with, so we can't guarantee it. You might be better off buying a normal Arduino Uno if that suits your needs.
We are already using an Arduino UNO, the goal to use the Zero to not be limited with memory (there are lots of libaraies loaded :( ). Plus I had found a local place that have it in stock. Unfortunately, it is a little too expensive to just buy and test. Would the 101 be a safer buy (they will receive one today), but it also have many warnings when I compile with it. The goal would be to swap the UNO and have a minimum work to do on the sketch.
So you are looking for additional SRAM, or Flash? Here is a table to help future visitors to this thread (Hi!). If you have the prices from your local place we can fill that in instead (it wasn't the easiest to find reliable online prices for each board).
Those warnings are nothing to worry about. I believe I fixed them before but those changes were never merged as they were "unecessary." In any case, here's a branch without those warnings, if that makes you more comfortable. It seems those warning flags (-Wreturn-type for "control reaches end of non-void function" and -Wunused-variable for "unused variable 'a'") are not used when compiling for the Arduino Uno. However, when you compile for the Arduino 101 they are used. If you are interested in learning more go to File → Preferences look for "Show vebose output during:" and check "compilation".