Artemis I2C ports limited to certain pins only

Worth putting something out there about this.

I took the pin flexibility from the “Designing with the Sparkfun Artemis” a bit too literally, and assumed I could assign ANY pins to be the I2C port. From checking the datasheet, the Advanced I2C example and a few other things, it appears this is not the case, although there are 6 possible pairs of pins to choose from. Fortunately I allowed sufficient test pads and a Qwic connector, that I could hack fix the PCB design and see the BME280 working as an I2C slave.

Here is what had me:

https://learn.sparkfun.com/tutorials/de … un-artemis

Pin Flexibility

Gone are the days when pin 12 was for SPI and pin 2 was for interrupts. The Artemis has 48 GPIO which can all be configured in a variety of ways. Up to 6 I2C ports, 6 SPI ports, 2 serial ports, 10 analog pins, numerous PWM pins are all available to you. We’ve setup the Arduino core so that it’s as simple as saying Wire.begin(5, 6) and SPI(13, 15, 21);. Now we can finally stop trying to use software serial and start using dedicated ports.

Stephen – thanks for letting us know. I’m not sure exactly how that wording made it into the documentation (particularly b/c currently there are not any ‘.begin()’ functions for the Wire or SPI ports that accept pins as arguments – instead the pins associated with the particular port are determined at object creation by simply selecting which IOMaster peripheral to use).

I will make it more clear by editing that document!