The Adafruit Itsy Bitsy M4 does work as I2C Slave. Has anyone seen a solution?

Thank you to Mr. Nick Gammon for all the terrific I2C "how to" articles. I have been a huge fan of using I2C in my projects and refer to the articles often.

I hope I am not violating any rules. I'm really not sure what constitutes a "double post" in this case, but if contacting Adafruit Customer Support Forum (soliciting product support) constitutes an apparent taboo of "double posting", then it's my mistake and I won't make it again. Please don't admonish me for it - I've well-earned my "Newbie" status but I'm learning how these forums work.

I'll try to be brief as possible with this question setup. The board I'm using is the Itsy Bitsy M4. At 120 Mhz, I use it via SPI for very nice TFT displays. I was trying to send data to this display setup using I2C. That's when problems began and I've discovered that this product does not include/provide I2C SLAVE capability. That is, SLAVE functionality is "not supported", according to Adafruit. The board functions great as a I2C MASTER but once configured as a SLAVE (Wire.begin(slave_addr), and an 'onReceive' event occurs, the Itsy Bitsy M4 locks up the I2C bus. Configured as a MASTER and another Arduino board the SLAVE, the I2C bus percolates just fine. The M4 simply doesn't support SLAVE functionality, I find.

I have searched high & low for Wire library "patches". Some have been suggested for the SAMD21 but not the M4 SAMD51. I am corresponding with Adafruit and hoping they will come through but in the mean time, I thought I'd ask if anyone here may have come across a patch/fix.

To avoid any confusing detractors caused by my posting I2C basic MASTER/SLAVE code that I use, I'll say that the sketches are stripped down, bare bones, I2C comms that work as expected between two Arduinos as long as the Itsy Bitsy M4 is MASTER. If it helps to know this, I did connect logic analyzer throughout the testing process to confirm bus activity, data content and waveform characteristics.

I'm hoping to find that someone's been able to create I2C SLAVE functionality for the Itsy Bitsy M4 and will throw me a bone. I come here only after exhausting my limited expertise. I worked for a good 5++ days trying to get this to work. before discovering that SLAVE capability was never functional on this particular device.

Thank you. Any help, I know, is a gift of your knowledge and time.

PS: In general, is a workaround possible by changing the Wire library?

Hi Govner!

I am also having the same issue as yours. Have been successful in making itsybitsy m4 as MASTER but SLAVE no chance.

In my project, I want to address itsy bitsy's from a RaspberryPI, and I am able to do that just fine with arduinos.

Lets hope we find a solution and can share with you some code!

Jamolinaesca:
Lets hope we find a solution and can share with you some code!

Thank you. My workaround is just not cutting the mustard. I will certainly let you and others know the minute a solution is found or update of the board is issued or I abandon hope, whichever comes first.

Regards!

Govner:
I hope I am not violating any rules. I'm really not sure what constitutes a "double post" in this case, but if contacting Adafruit Customer Support Forum (soliciting product support) constitutes an apparent taboo of "double posting", then it's my mistake and I won't make it again. Please don't admonish me for it - I've well-earned my "Newbie" status but I'm learning how these forums work.

Dont think that counts as double posting, most often people seek the free support offered by volunteers in here at the first instance.

The situation for support for commercial products seems quite poor, and I notice it in other forums. Commercial firms make and sell products for a profit but are quite poor at providing customer support.

SRNET, (karma+1)

Thank you for the reassurance I was seeking about adherance to all the rules. You might get a smile in hearing my tale that proves yet again that "ignorance of the rules is no defense". After reading "Before Using this Forum", I sadly discovered that I inadvertently - though guillty as charged - royally violated a forum protocol rule and rightfully received a two-week time out awarded by a moderator. My blunder was really more of a violation of common sense -- duh. I grin about it now, chalking it up to experience and what I refer to as that type of "deep learning" we all occasionally get throughout life. Anyway, thank you for the nice comment. I'll keep "checking my six" for moderators as I go along now that the redness has faded from my wrists. (TIC) All in good fun.

Seriously, thanks. GOV