I recently purchased the breadboard adapter in order to connect the Arduino to to my EV3. However whenever I request data from the Arduino using the EV3_I2C block from your library it returns the value I sent to it and the sendData is never called. I believe that there is no problem with the wiring as it matches the one on your site. Based on my understanding of the I2C protocol reading back the same data the EV3/master sent is impossible because of the way I2C works so why does this happen and why does sendData() never get called? Any help would be greatly appreciated. Thank you
That’s interesting; yep you shouldn’t be getting an echo back. I’m not sure what’s going on; if you go back to our examples, do they work as expected for you?
First of all, thanks for the quick reply. I tried again with the example as you suggested but the result is still the same. Could the firmware version I use (v1.06E) be a problem? Also, I noticed that the same echoing happens when the adapter is not connected to the Arduino at all. It seems really weird to me that despite I2C packets/messages contain the address of the salve, the EV3 reads the data back. Is it possible that the adapter was damaged during the transport and therefore behaves like that? Anyway thanks for helping.
It is absolutely not the adapter; it was not damaged during transport. I2C is a pretty straightforward protocol.
That’s a good questiona botu the firmware, we’ve got v 1.04 in our github directory, you might try rolling back to that (https://github.com/DexterInd/EV3_Dexter_Industries_Sensors/).
Hi, I’m having the same problems with my new breadboard adapter with the ev3. I have the same connections as pkats13, I connect the SDA and SCL to their respective ports in the Arduino but still unsuccessful. I also have the new Arduino R3 that have new SDA and SCL pins that are dedicated to I2C connection but I haven’t success. I made a loop in LEGO Mindstorms in order to write continuous data to the Arduino but the only thing that shows up in the Serial Monitor is “Ready!”. Hope you can help.
Just to clarify, I also downgrade the firmware from 1.09H to 1.04T but still didn’t send any data to the Arduino. I’m very curious about the two DIP switches that are on the side of the breadboard adapter, I leave as it comes but I think that could be the problem.
Hey Alienpod, the two switches are for pullup resistors (there are two on this device) and allow you to connect to them or not. Check out the circuit diagram.
One thing you might want to try: do you have a logic analyzer? The Ev3 software may be broken, but there may be another problem as well. Do you have any tool to try to read the data lines?
John sorry for replying late, I was able to have communication by changing the switches states; both of them where in the upper side. Thanks
No problem at all, I’m glad that solved the problem!
Hello, last week I purchased the breadboard adapter in order to connect my Arduino uno to to my EV3 (firmware v1.09h) .
But I can not make it work. I download your example but it doesnt work (basic example on arduino Wire.write(0x45) and on EV3 read 1 byte): if I set “image” in EV3 display block then nothing happens, if I set “text - pixels” in EV3 display block it writes always “8”. Then If I test on arduino sketch the value for Wire.available() in the serial monitor the answer is always 0.
Then when I use “Read ascii” mode the ev3 compiler writes “Unable to compile some documents for deployment: prova.ev3p: Use of a block which no longer exists.”
Thanks for helping
It could be hard to pinpoint where the problem is here. Some things to check for:
- Is your hardware correctly wired?
- Is the block installed successfully?
- Are you using our Arduino Sketch or did you write your own?
- What position are the pullup buttons in?
Arduino (analog in A5) – Dexter (SCL)
Arduino (analog in A4) – Dexter (SDA)
Arduino (GND) – Dexter (GND)
Arduino (USB) – PC (USB) [for the power]
Block on labView:
Import is ok, the compilation is ok for “read 1 Byte” mode, “write 1 Byte” mode and other modes but for “Read ascii" mode the ev3 compiler writes “Unable to compile some documents for deployment: prova.ev3p: Use of a block which no longer exists.”
3: I used first your example then I added a few lines of code to control it as Serial.print(Wire.available()) in Loop() module or Serial.print(“ciao”) in sendData() to test if wire.availabe() was >0 and if it ran sendData().
Arduino’s Serial monitor always answered 0 for wire.available() and never wrote “ciao”.
- Pullup buttons on Dexter interface are both high,i.e. button 1 is near the 9 of 219 and button 2 is near the 2 of 522.