SparkFun OpenLog Artemis Geophysical Application

For a geophysical project I have in mind three Sparkfun modules look good:

  • SparkFun OpenLog Artemis DEV-16832

  • Qwiic PT100 - ADS122C04 SPX-16770

  • SparkFun Qwiic Mux Breakout - 8 Channel (TCA9548A) BOB-16784

I would like to setup a sensor array of consisting of several different accelerometers and one or more SM-24 geophones.

Using an Openlog Artemis the response for each sensor could be recorded for the same event.

Each sensor’s response could then be evaluated to get an idea of the sensitivity, limitations and quirks for each sensor as compared to the SM-24 geophone response.

The Qwiic PT100 - ADS122C04 has a 24-bit ADC capability, which is good. Temperature measurement (not needed for the project), cost and a single channel limitation makes it a less attractive choice.

Would a SparkFun Qwiic Mux Breakout - 8 Channel (TCA9548A) breakout allow me to use one Qwiic PT100 - ADS122C04 to capture signals from up to eight sensors?

or would a better project design incorporate a couple of ADC’s such as an ADS1115 16-Bit ADC with multi-channel capability? I’d loose 8-bits but the project cost would be lower and 16-bit seismometers aren’t uncommon.

OpenLog_Artemis_Geophone_Logger-master.zip includes the binary files for the OLA firmware. Which highlighted a big hole in my computer knowledge. I have been able to glean .bin files are a way to compress a number of related files into one file. I am guessing the OLA .bin file contains the function definitions used in Arduino *.ino files. Other than that I do not have a clue how .bin files are created and what they contain.

Is there a Github link for the source code for the OLA .bin files?

I have searched and not been able to find a Sparkfun *.bin file(s) guide covering what they contain, how they are built and the logic behind their use.

Is there a Sparkfun .bin file guide I am not finding?

Eventually I would like to use a MicroPython or CircuitPython programming environment. Can MicroPython and/or CircuitPython be used with the Openlog Artemis?

Thanks for the help.

Hi there,

Wow. This sounds like an interesting project!

Something to bear in mind is that the OpenLog Artemis will capture data from the sensors consecutively. There will be a short delay between reading one sensor and the next, while the Artemis communicates with each sensor over I2C.

Yes, you certainly can read up to eight ADS122C04’s using a single Qwiic Mux. And you can daisy-chain up to eight muxes, allowing you to read up to 64 sensors. The same comment about reading the sensors consecutively applies though, and there will be a small additional overhead as the software instructs each mux which port to use.

We carry the 4-channel ADS1015 in Qwiic format but it is not currently supported by the OLA. This is certainly something we could investigate though.

https://www.sparkfun.com/products/15334

The binary files are the compiled Arduino code. We provide those: as they can be easily uploaded with the firmware upgrade tool; and to save you the trouble of having to install all of the sensor libraries before you can compile the code.

You will find upgrade instructions here:

https://github.com/sparkfun/OpenLog_Art … UPGRADE.md

The firmware (Arduino) source code is available here:

https://github.com/sparkfun/OpenLog_Art … og_Artemis

I’m afraid the OLA does not support CircuitPython and we’re not likely to add support in the near future. The next big step for us will be to update the firmware so it can take advantage of Mbed OS and provide access to the sensor data over BLE.

Good luck with your project!

Paul

Thank you for the links and information.

Using eight ADS122C04’s would break the budget for the project.

What I was thinking of was connecting multiple accelerometers/geophones to a Qwiic Mux then insert one ADS122C04 between the Qwiic Mux and the OLA. Am I being to optimistic?

Asking an unfair question - any idea of how long the short delay between reading sensor would be (1, 5, 10 millisecond or even less?)

A two to four millisecond sample interval is typical for most seismic data. A number of algorithms can be applied to help shift/correct small sampling interval differences.

I’m a little confused what is means if the OLA does not support a module.

For multi-channel ADC modules - If a module isn’t supported by the OLA does that mean it cannot be used with the OLA or can we place code in a program that will run on the OLA and get/send data to a module?

A Sparkfun Binary File Learn Guide covering what they are, what they contain, how they are built and the logic covering when/why they are used would be interesting reading.

Jim

Hi Jim,

I think you might be confused about what the Qwiic Mux does? I2C (Qwiic) is a digital communication interface (bus) and each device on the bus needs to have a unique address. The Qwiic Mux allows you to attach eight of the same device, which have the same address, so they can be read individually. The Qwiic Mux is not an analogue switch.

You can of course buy many different accelerometers which have I2C interfaces. But I have yet to see a geophone that has I2C ‘built-in’. The combination of ADS122C04 and geophone is the only solution we currently offer.

The delay between reads depends on two things: the sampling rate that the ADC supports (the ADS122C04 supports 2kHz sampling); the speed of the I2C bus. I2C can run (typically) at 100kHz or 400kHz. Each reading requires a number of data transfers. For the ADS122C04, this could require approximately 100 clock cycles. So the bus can support full 2kHz sampling with 400kHz transfers. But that is only one sensor. If you want to read multiple sensors at 2kHz, you have a problem… The easiest solution would be multiple OLA’s with synchronized readings. But I guess that blows the budget too.

The OLA can support any I2C device, in theory. What takes the time is adding each device to the OLA’s software so it can be read automatically - without the user needing to write any code. So we are prioritizing support for the most popular devices / sensors. We currently offer out-of-the-box support for around 20 devices.

Something I should do is write a “how to” guide showing how to add a new sensor to the OLA. I’ll add that to the things-to-do list. I’ll also find time to better explain binary files - thank you for the suggestion.

Best wishes,

Paul

Thank you.

Sparkfun’s three modules still look like they would make up a good core for the project. Holiday sales are coming soon so I have added them to my Sparkfun order list.

From your information it is clear I need a better approach - perhaps starting with one sensor and slowly expanding the number of sensors.

I can then get a better idea of sampling delays and how a Qwiic Mux should be used.

I plan to setup a standardized method to deliver a uniform shock/waveform. That should help minimize event differences.

I look forward to reading your ‘how to’ add a sensor to the OLA and understanding binary files. In the mean time its back to the Internet to read about binary (*.bin) files.

Thanks you. Your patience, help and advice is appreciated.

Jim

Hi Jim,

It took a while - :wink: - but I finally found time to update the OpenLog Artemis Geophone Logger firmware so it will work on more boards and with more ADCs. Please see:

https://github.com/sparkfun/OpenLog_Art … s/tag/v2.0

https://github.com/sparkfun/OpenLog_Art … one_Logger

https://github.com/sparkfun/OpenLog_Art … n/Binaries

https://github.com/sparkfun/OpenLog_Art … UPGRADE.md

https://github.com/sparkfun/Artemis-Firmware-Upload-GUI

Best wishes,

Paul