I am working with an OpenLog Artemis (without IMU) and would like to sample a single analog input at 1kHz, ideally at 2kHz. I have tried using both the built in ADC on that board, as well as the ADS1015 Qwiic ADC board, but am only seeing sampling rates of about 100Hz.
Have you tried the logMaxRate option? Option 6 in the Configure Terminal Output menu. Also ensure “Log to Terminal” is disabled - as those Serial prints will slow down the sampling.
Thanks for clarifying, yes I did set up log max rate which disabled serial port printing. With that I’m at about a 100Hz sampling rate, but am trying to make further improvement(s) to get to 1kHz.
To get to 1kHz, you may need to write your own code. And it will be tricky to keep sampling continuously at 1kHz while simultaneously writing the data to SD card. If you want to keep using the OLA hardware, my advice would be to start with the special build Serial Logger firmware and then adapt it for analog logging. Basically, replace the thread_serial_rx, strip out the Serial1.read and UBX / NMEA decoding parts, and replace them with analogRead. Add the analog voltages to the RingBuffer, instead of the serial data. That code uses a separate thread to write the data from the RingBuffer to SD - that’s your best chance for highest sampling and writing rates.
For higher rates, you may need to use different hardware. The DataLogger IoT 9-DoF is a good choice as the SD card is interfaced via SDIO instead of SPI. Again, you’d need to write your own code, but there are examples you could use to get started.