Issues with Micromod Double Mainboard

Hello,

I got my double mainboard (https://www.sparkfun.com/products/20595) a few days ago but I believe it to be defective.

I got three modules with my mainboard + esp32 processor board:

  • OLED Breakout (QWIIC)

(https://www.sparkfun.com/products/14532)

  • CAN bus function board

(https://www.sparkfun.com/products/21775)

  • GPS module

(https://www.sparkfun.com/products/18378)

Anyways…my issue is that no matter what I do, I can’t get the function one slot to work. Everytime I connect a function card to it, the board refuses to boot or get into a flashable state…however, I can plug in a combination the screen + any of the other modules in the function zero slot. Function zero slot + QWIIC on default i2c bus works perfectly.

I’m able to talk to the CAN controller via SPI on the function zero port, and to the GPS receiver if its placed in that same port. I checked to make sure that there is only a single pair or pullup resistors on my i2c bus, to make sure its not that. Also, the CAN module connects via SPI. Meaning whether the function card is using i2c or SPI, either way, it won’t boot if its on the function one port.

I’m not sure if maybe there is some limitation I’m running into? Ideally I would like to be able to use all my modules at the same time…I tried to contact SF to RMA because I’ve been unable to figure this out on my own, but I’m hoping maybe its something I’m not aware of.

Thanks in advance for the help,

  • Luis

you got yourself a challenge. Looking on the different schematics some ideas on what happens

CAN board has 2 communication options : CAN-RX/ CAN-TX or SPI

CAN-RX/ CAN-TX is only connected to function slot 0. As indicated on the Micromod Double board, the CAN board can only be used in function slot 0 in case of serial communication.

The SPI Chip select CS1 for function slot 1 (pin 49) is connected to the MM-processor connector pin 70. The MM ESP32 does not connect to Pin 70. Checking some other MM processor boards: Artemis, nRF52840 and Teensy do use pin 70, but the MM SAMD does not either. Hence there is NO SPI connection possible to function slot 1 with the ESP32 nor SAMD.

So the CAN board will ONLY work in function slot 0 with ESP32 processor.

==================================================================

The GPS can be used SPI or I2C / serial.

NO SPI connection is possible to function slot 1 with the ESP32 or SAMD. (Due to CS1 as explained above)

So make sure to select I2C/Serial with the jumper J4 !!

Serial communication is not possible in function slot 1 as the ESP32 processor board does not have TX2/RX2 connected.

It leaves I2C. The I2C signals on function slot 1 are parallel to those on function slot 0. They are the same. so would expect i2C to be able in function slot 1.

Other pins are different in function slot 1 than on Function slot 0

GPS RESET connects to D12 on the ESP32. This looks to be the issue.

D12 is a special pin on ESP32 during boot ; Pulled LOW. Boot or flashing fails if pulled HIGH as it sets voltage of internal voltage regulator. !!

( p.s. GPS RESET in function slot 0 connects to D13 on the ESP32 which has no special function during BOOT)

The GPS can generate an external INT which is connected to function slot pin 53. From function slot 1 pin 53 is connected jumper J9. By default this jumper connect to G5-JUMPER on the MM-processor connector pin 73. On the MM ESP32 processor board pin 73 is connected to IO34 (INPUT ONLY). I see no issue here.

PPS connects to D27 on the ESP32. I see no issue here.

The power on GPS board can be switched off with EN which is connected to function slot pin 7153. From function slot 1 pin 71 is connected jumper J11. By default, this jumper does NOT connect to G6-JUMPER on the MM-processor connector pin 71. On the MM ESP32 processor board, pin 71 is connected to GPIO33. I see no issue here.

In short :

Looks to me that with an ESP32 Micromod processor, in combination with the CAN and GPS boards you can ONLY use function slot 0.

Thank you so much for your help.

I don’t mind replacing the processor in my solution.

Which processor board would you recommend given my use case?

A lot of the processor boards that include Wifi seem to be significantly slower than the rest…

Could you also reccomend a QWIIC BT/Wifi breakout board?

Thanks again for you help!

  • Luis

Maybe it is easier to use only function slot 0. I would not expect that often you need to use the CAN function board and GPS function board together at the same moment.

On the processor board with BT you could look at the nrf52840. The BT stack is very good and faster than the Artemis.

If you plan to use a Qwicc BT/WIFI, consider a https://www.sparkfun.com/products/17743 (ESp32). Set it as a peripheral/slave device and do coding yourself to create a bridge between Wire and WIFI or BT. Use the official esp32 library as the Sparkfun library only supports ESP32 master/controller.

I will look into the nrf52840.

Yes, unfortunately it is the case that I would need them to function at the same time :confused:

I am attempting to build a device that can track GPS coord + read engine speed and other data, simultaneously.