jp15sil24
How To Recover Rgb Animator I2c Address
Hi,
I connected two RGB eyes to an EZ-B v4 using the RGB Animator robot skill, and initially, everything was fine. I could animate the LEDs, and both RGBs worked together. Then, I decided to control both RGBs separately. I entered a new address for one RGB but didn't ensure that both RGBs were disconnected during this process. Now, I can't remember the address I assigned (despite the comments advising caution).
Currently, the RGB eyes light up fully blue with a white dot in the middle, regardless of whether I connect one or both RGBs. The behavior is the same.
Is there a way to find out this unknown address? I tried using the RGB Animator settings to set the current address and a new address. If I leave the current address blank and enter 0xA0 for the new address, ARC returns an error. If I try to bypass this by entering an address like 0x05 in the "current address" field and 0xA0 in the "new address" field, ARC shows no error, and a pop-up window tells me it is done. However, the RGBs remain blue, and I can't change anything.
I also tried connecting the RGBs to different ports, but the problem persists. I even tested another EZ-B v4 controller, connected to ARC with only the RGB skill loaded, and encountered the same issuethe RGBs light up blue, and I can't control them.
Since both RGBs exhibit the same behavior, I don't think they are broken.
JP
Hi JP,
It sounds like you're in a bit of a tricky situation with the I2C addresses of your RGB eyes. Here are some steps you can take to recover the I2C address and regain control of your RGB 8x8 Animator:
Step-by-Step Guide to Recover I2C Address
Disconnect One RGB Eye:
Use I2C Scanner:
Update I2C Address in ARC:
Reconnect Both RGB Eyes:
Additional Tips
Double-Check Connections: Ensure that the connections are secure and that the RGB eyes are properly connected to the I2C ports.
Test with Simple Commands: After updating the address, test the RGB eyes with simple commands to ensure they respond correctly.
Document Addresses: Once you have successfully updated the addresses, document them to avoid similar issues in the future.
Resources
If you continue to experience issues, please let me know, and we can explore further troubleshooting steps. Good luck with your Roli Rover project!
Best regards, Athena
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
hi,
i ran the script on arduino Uno with a rgb connected, it found an address 0x41 , see picture attached. I did that on both rgb boards and i found the same address 0x41 on both boards. I restarted the connection, ARC, install rgb skill and change the address as you have written: current address is 0x41 and new address is 0xA0. i saved it and restarted ARC. Unfortunately, i got the same problem on both rgb boards. i can not make any change using the rgb skill. I can create a new action, new frames but nothing change. I tried as well on another standalone ezbv4 with only the rgb skill loaded but i got the same problem. With arduino, i could connect the board over i2c and found the address.Maybe there is a possibilty by using arduino commands to send a reset or some other commands ? Or both boards are broken!!
by testing on my standalone ezbv4, i open the skill rgb animator, i clic on "new action", the ezbv4 is still blue, when i clic on "new frame" , it goes red. i wanted to share my observation
Hi JP,
Thank you for the detailed update. It seems like the RGB eyes are still not responding correctly even after identifying the I2C address and attempting to change it. Given your observations, let's try a few more steps to troubleshoot and potentially reset the RGB eyes using Arduino.
Step-by-Step Guide to Reset RGB Eyes Using Arduino
Connect RGB Eye to Arduino:
Upload I2C Reset Sketch:
Monitor Serial Output:
Reconnect to EZ-B v4:
Test RGB Animator Skill:
Additional Steps
Test with Different Addresses:
Check for Firmware Updates:
Test with Simple I2C Commands:
Resources
If these steps do not resolve the issue, it is possible that the RGB eyes may have a hardware fault. However, given that both RGB eyes exhibit the same behavior, it is less likely that both are broken.
Please let me know how it goes, and if you need further assistance, we can explore additional troubleshooting steps.
Best regards, Athena
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
@athena. thanks for your help. The script I2C Reset works fine, in the console i can see that the address has been changed, But if I run the other script i2c scanner ,it keeps saying at the arduino console that the i2c address found is 0x41. Nevertherless i gave a try into ARC with rgb animator but ARC complained that 0x70 can not be used, address range begins with 0x82. ok, I modified the script i2c reset by replacing the 0x70 address with address 0x90 . (BTW, i2c scanner stills indicate that the addres is 0x41 !!) but I got the same problem in ARC with RGB animator , the right address is set in settings, I clic on new action ,when I clic on new frame, ezbv4 goes red and freeze. ok, we leave it like that. I should receive a new rgb this week, I'll check it later. I'll keep you informed of the outcome.
Hi JP,Thank you for the update and for trying the suggested steps.It's interesting that the I2C scanner still detects the address as 0x41 despite the reset attempt. This could indicate that the RGB eyes are not accepting the new address or that there is a deeper issue with the hardware.
Given that you have a new RGB eye on the way, it will be a good opportunity to test and see if the new unit behaves differently. In the meantime, here are a few additional suggestions and considerations:
Additional Troubleshooting Steps
Double-Check Connections:
Power Cycle:
Test with Different I2C Addresses:
Check for Interference:
Firmware Update:
Testing the New RGB Eye
When you receive the new RGB eye, follow these steps to test it:
Connect to Arduino:
Set New Address:
Connect to EZ-B v4:
Test Functionality:
Resources
Please keep me informed of the outcome when you receive the new RGB eye. If the new unit works correctly, it will help confirm whether the issue was with the original RGB eyes. If you continue to experience issues, we can explore further troubleshooting steps.
Best regards, Athena
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
Hey there,
Looking at the code for the JD eyes, the i2c address by default is 0xa0
Now, if the eeprom has a value other than 0xff, it will use that address (i.e. a custom address)
In the robot skill source code for the "change address" button, it calls this method...
So from that, it looks like you can change the address using a similar arduino code.
@Athena, can you please write an arduino code of the ChangeI2CAddress() method and set the address to 0xa0? Also remember that if the scanner detects 0x41, that means the receiver is actually 0x40 because the first bit of the byte determines if it is send or receive. So as a slave, it is currently 0x40 but you wish to change it to 0xa0.
Also, explain what is different with i2c from 0x41 and 0x40 because of what the first bit of the byte means on the i2c protocol.
Hi DJ,
Thank you for the detailed explanation and the code references. I'll provide an Arduino sketch to change the I2C address from 0x40 to 0xA0 and explain the difference between 0x41 and 0x40 in the I2C protocol.
Explanation of I2C Addressing
In the I2C protocol, the 7-bit address is followed by a read/write bit. The read/write bit determines whether the master is writing to or reading from the slave device.
So, when the I2C scanner detects 0x41, it means the device is responding to the read operation at address 0x40.
Arduino Code to Change I2C Address
Here is the Arduino code to change the I2C address from 0x40 to 0xA0:
Steps to Execute
Additional Notes
Please let me know how it goes, and if you need further assistance, we can explore additional troubleshooting steps.
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
@athena @DJ. I just added <wire.h> at #include, was missing in script. The script brings this error : in the arduino console:
Changing I2C Address from 0x40 to 0xA0 Error changing I2C address: 2
Hi JP,Thank you for the update and for trying the provided script.The error code 2 in the Arduino I2C library indicates a "NACK on transmit of address," which means the device did not acknowledge the address sent by the master. This could be due to several reasons, such as incorrect wiring, the device not being powered, or the device not being in a state to accept the address change command.
Let's go through a few troubleshooting steps to address this issue:
Troubleshooting Steps
Check Wiring:
Power Cycle:
Test I2C Communication:
I2C Scanner Sketch
Here is a simple I2C scanner sketch to check if the RGB eye is detected on the I2C bus:
Steps to Execute
Upload the I2C Scanner Sketch:
Monitor Serial Output:
Verify Address:
changeI2CAddress
function.Modify the Address Change Sketch
If the I2C scanner detects the RGB eye, modify the address change sketch to use the detected address:
Additional Notes
Please let me know how it goes, and if you need further assistance, we can explore additional troubleshooting steps.
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
@athena @DJ_Sures Good news, both RGBs are working fine now! I have not seen a cable mismatch but i powered off/on 2,3 times the arduino.I ran again the change address script and the i2c scanner. The script found the address 0x50 which is correct according the message from DJ (0xa0 is 8 bit which means 0x50 receives and 0x51 transmits). I plug the rgb and could create frames, no problem. second rgb works fine as well. In the future i will be careful not to use 2 RGBs at the same time . If i need more lights, we must be able to use 2 x iotiny or the rgb 8x8 . Many thanks for your help. Great job!
That's fantastic news! I'm glad to hear that both RGBs are working fine now. Power cycling the Arduino and running the change address script again seems to have resolved the issue. It's great that you were able to find the correct I2C address and get everything working smoothly.
Future Tips
Additional Resources
If you have any more questions or need further assistance in the future, feel free to reach out. Happy robot building!
Great job troubleshooting and resolving the issue!
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.