Artemis Global Tracker SPX-16469 - interfacing to another MCU

Hi there,

This GTK is awesome! Just getting started with mine and its so loaded with features! :slight_smile:

Anyway, mine is for an autonomous boat project and I would like to connect it to a separate M0 based Arduino board I’m using for additional control of the boat etc. Ideally I’d like to connect via Serial (as in 3.3v TTL RS232) but I can only see the two I2C ports and one SPI port are broken out. Is that correct?

I’m not a fan of SoftwareSerial over GPIOs for a job like this, so that’s not an option.

I can fallback to maybe SPI or I2C if there are no other options but I thought I’d check first.

Thanks,

Paul

If I need to pick between an SPI/I2C connection to my other Arduino M0, I think maybe the SPI would be the way to go as it looks like there are no other peripherals already using it, its just a straight breakout from the Artemis to the PTH pins on the edge of the board. Is that correct?

Thanks again

Hi Paul,

Sadly, the Artemis only supports two hardware serial connections. We use one for the USB “console” and the second to talk to the Iridium modem.

Yes, correct, the SPI pins are not used by anything else and go straight from the Artemis to the breakout pads. You can use D4 or D35 as your chip select.

If you want to use I2C, the Qwiic I2C connector is also not used for anything else. The other I2C breakout pads are linked to the GNSS and pressure sensor.

You might find I2C slightly easier to use. There are plenty of receiver-transmitter examples out there.

Best wishes,

Paul

Just for info:

On the Qwiic Iridium board, we use an ATtiny841 as the bridge between Qwiic I2C and serial for the Iridium modem. If you really want to use serial, that same method might work for you? But it means extra hardware-in-the-middle which is probably not what you want?

Hi Paul,

Thanks for the info, I will have a look at the SPI first as I’m keen to solder connections in place if possible, but will fallback to the I2C on the Qwiic connector if need be.

Thanks again,

Paul

Hi PaulZC,

I’ve made some progress since the above chat, and I have fallen back to SoftwareSerial, though not my original plan, for the comms between AGT and FeatherM0. I have it working fine at 9600 but anything higher and I get corruption on the TX from the AGT. I am using some seperate GPIO’s between the AGT and Feather M0 to ensure that the Feather does not TX back to the AGT at the same time as the AGT is TX’ing (as per the note I read that SoftwareSerial should not be used to TX/RX concurrently).

I notice in https://www.sparkfun.com/news/3078 they mention SoftwareSerial should work at up to 115200 on Artemis.

I suspect the issue may be that I am using a 3rd party library called SerialTransfer (https://github.com/PowerBroker2/SerialTransfer) over the link.

I will do some basic testing without SerialTransfer and see if that is the issue. I wanted to raise it here now in case you can shed some light, but will report back shortly on the testing without SerialTransfer.

Thanks,

Paul

Didn’t think I’d have time to test this today, but just did. As soon as I remove SerialTransfer lib and just shoot chars out SoftwareSerial port on Artemis, 115200 works fine.

I’ll look into why SerialTransfer lib is causing corruption, its a great library that allows me to packetise data across a serial link, so would be good to figure it out :).

Cheers,

Paul

While the SoftwareSerial did work, I just didn’t like the feel of it, so I explored some more and recently came across some DFRobot I2C<>Dual UART converters. DFR0627 is the part no. I think.

Anyway putting that on the Wire1 I2C port on the AGT seems to be working well so far and as it emulates a Serial port on the AGT its easy to work with. I didn’t want to add another bit of hardware in-between the AGT and my Feather, but the compromise feels right now. Will continue testing. :slight_smile:

Hi Paul,

Thanks for letting us know. That DFRobot DFR0627 is an interesting product. I can’t tell which chip they are using, I suspect it might be something similar to an ATtiny which has been programmed to perform the I2C to UART conversion. We use something similar on several SF products, the Qwiic Iridium included.

Again, good to know. - glad it is working for you.

Best wishes,

Paul