Why is it freezing up when I hook up I2c?

I am trying to hook up the Create with an Arduino UNO using I2C. I started by hooking up 2 Arduino UNO boards using the Example master_writer and slave_receiver from the Arduino IDE v1..6.5. This works exactly as expected.

I am using the pins explorer app on the I2C pins. When I hook up the SCL and or the SDA lines, the create freezes up and I have to remove the battery to get it to reboot. Pushing the power button brings up the menu but it won't recognize any button presses. I was going to say that hooking everything up with everything powered off prevents the Create from booting. it was frozen on the logo screen while I typed this and after several minutes it booted up, but it still won't accept any input from the touch screen. I have tried this with several UNO boards, both genuine and clone, plus a couple of Megas. All with the same results.

Answers

  • Answer ✓

    Are you level shifting your I2C logic lines? Kinoma Create is a 3.3V system, while Arduinos are 5V systems.

    — Andy

  • I am not but I do have some level shifters. I will give those a try.

    So I need to go up to 5v on the SDA and SCL lines?

  • That didn't help

  • You need 3.3V on the Kinoma Create side and 5V on the Arduino side. I would unplug everything, reboot the Kinoma Create, verify that the touch screen is working (i2c bus is happy), then plug in your level-shifted signals. If the touch screen stops responding, you still have some i2c bus issue.

  • Yes that is what I did. 3.3v on the Kinoma side, 5v on the Arduino side. When it is all unplugged both devices work normally. I also tried configuring the front pins to SCL, SCA and Ground at 5v. That doesn't work either.

    The Arduino is getting power from the Kinoma with a common ground. The Arduino to Arduino tutorial on Instructables,com works that way too. Only 3 wires are required, SCL SDA, and a common ground.

  • I did get it to partially work by using the front pins. I used the slave sketch on the Arduino but had the usb connected to the pc to use the serial monitor to see the data from the Create. The Arduino did receive the data from the pins explorer but the value sent was often reported as being off by one. I kept the data sent to single bytes to simplify things.

  • I was able to send data from Kinoma Create to an Arduino without a level shifter using this KinomaJS app/Arduino Sketch combo. I included wiring instructions in the README. Not sure what you're trying to send exactly, but feel free to try those!

  • I followed the instructions and pre-configured the front pins to 5v, however the call to pins, resets the power to 3.3v. On the serial monitor of the Arduino, it prints the first 2 messages but not the third one. Perhaps it has to do with the format of the writeblock command. At least they are talking! With regard to why, I am exploring the idea of using the Kinoma Create as a front end to an agricultural robot. The Create is a sharp looking interface that can handle all the communications.

  • Ah, you are correct--I updated the call to Pins.configure to set them to 5V. Just a one line change.

    Glad it's kinda working, although it's strange that you're not seeing all 3 messages. What kind of Arduino are you using? I'm getting what I expect with an Uno:

    And that sounds like a fun project! Would love to see the final result if you're willing to share :)

  • Ok it was my mistake in thinking the spaced out letters would produce output with a space between each letter. So I was getting what was expected. I went looking for the command to set the voltage but couldn't find it in the documentation. Where is it listed? Running the app with the 3.3v setting multiple times produced erratic output, probably due to signal noise. Now that it has the 5v setup, it is consistent. However I am using an XDRduino Uno and the first line of the output is "te" but the rest of the output is perfect. I wonder where the "st" went. I will dig out a genuine Arduino board and see if it makes a difference. Thanks for your quick responses and help sorting this out. I am really impressed by how fast you respond to these issues.

  • The voltage configuration info isn't actually detailed in the documentation, although it should be (and I'll fix that soon). And let us know if you see consistent problems with parts of lines being dropped randomly--happy to look into that.

Sign In or Register to comment.