Need help selecting, mostly looking for least friction dev tools for SparkFun "Thing" boards on Linux/Mac

Hello,
I’m looking at a few SparkFun Things for a quick project. I haven’t done much embedded in a few years but one thing I remember from the past is that there was some certain trouble getting toolchains running on Linux/BSD/MacOS. Arduino was always easy, Atmel was not difficult. MSP430s were a bit more work, requiring or at least leaning towards TI’s IAR platform.

I just want to write some quick code, compile it, and send it over (what appears to me as) a serial port of some sort. I’d rather not be forced into a specific IDE or GUI environment for something simple.

Hardware wise, I’m looking to get 5+ ADC lines, 8-10 bit would be fine, but around 20k samples/sec reliably, with enough RAM to store them for 1-2s and then sending over serial. A 115200 baud serial port might be able to do what I need but I think it makes more sense to capture and then send as I’m looking for tight timing and don’t want the serial port causing sampling delays. Anyways this RAM requirement and speed is what steered me to something beyond an Arduino

So far I am looking at:

  • SAMD21
  • Artemis
  • ESP32 WROOM
  • RP2040
  • Thing Plus Matter (Bluetooth serial might be handy, but looks like again there’ a push for an Eclipse based IDE?)

So if being able to make a quick project, Arduino is really the way to go. And keep in mind you are not bound to Arduino IDE. If you really need power, look at something like the Arduino Due. It’s 84MHz, got 512KB flash 96KB SRAM, 70 digital, 12 PWM, 12 ADC, and 2 DAC. The analogue input can go way beyond 20K samples, I believe having read 1M max.

And ESP is always a good option, but older ESPs have really bad ADCs, but the newer ones are good. Flexible IDE choice is also there.

The SAMD and such are not the “easy and quick” project things, but they are really good once you get the hang of it.

Artemis, RP2040, and Thing Plus Matter are some that I don’t have experience with.

As for how much RAM you need.
8-bit: 20kS/s * 2s * 1 Byte = 40 KiB So no problem with the Arduino, but some older and cheaper boards might struggle.
Higher, but max 16-bit: Assuming no advanced things like sharing memory space between samples, which can slow things and by just a pain in general, you’ll need 2 bits for each sample, so 80 KiB total.

In the end, just take something you are familiar with and get going from there. Many modern devboards meet your specifications.

1 Like

Thanks for the insights. I should clarify 20k samples/sec * the number of lines I want to monitor, probably 5, so that’s 200KiB for 2s. Hopefully that’s feasible on processor speed and ADC capabilities, I’ll find out as I go. I’m fine writing C and have dabbled in ASM but these ESPs are pretty high clock speed so I think it will be okay. And I may wish to go higher on sample rate to get more accurate measurements, down the line, we’ll see how the project evolves. Looks like the Due is not available from SparkFun, and the new ones are twice the cost of the ESP based Arduino Nano and Thing ESP, so with your endorsement of that chip line I think I’ll give each of those a shot.

I appreciate the feedback

No problem, feel free to ask if you’re not sure about something. Keep in mind that max sample rate is usually for one pin. If you want to sample multiple pins, it alternates between them, meaning you’ll also need 5 times the sampling speed.
Regarding the due pricing, it is indeed quite a bit lately.

Good luck with your project!

1 Like