I've finished my test rig: Mega2560 + Seeed SD Card Shield + Adafruit LSM6DS33
It works. Had to switch from the Uno due to memory requirements. I can log 30 seconds of data at 100hz sample rate. So I'm OK with proof of concept.
Now it time to move to first prototype changing from the LSM6DS33 to 3 BNO085 (Adafruit)
2 or 3 MPU-6050 (Adafruit)
Sparkfun 8 channel Mux
2 SparkFun QwiicBus - EndPoint.
I realize I cannot continue to power from the 3.3v line on the Mega. Suggestions on how to power this would be appreciated. A mains based power supply will work for now but eventually I want to make this a mobile device with it own mini-display and small keyboard .
It's not called a prototype for nothing. I started with an UNO but the 2k of ram got eaten up by the datalogger and Adafruit library. So I switched to the Mega. So now the test rig works (one sensor high speed data logger).
Time to move to prototype #1. 5 or 6 sensors which adds a I2C Mux. Extended length I2C bus via Qwiic + a CAT5 or better cable to accommodate placement of sensors. The Mux alone consumes 400mw. I really think it is time for an external power supply. YMMV
Mega2560 mated with a Seeed SD shield. One sensor is mounted on a Velcro strip to allow mounting on the arm between the shoulder and elbow. Two more sensors are mounted on the back of a glove, one above the wrist and the other over the back of the hand. Two or three other sensors are mounted on finger sheath for the thumb and the forefinger and perhaps the mid--finger. Since many of these share the same I2C address, an 8 port bus multiplexer is used. Since the distance between the various sensors and the Mega exceeds the allowable length at which I2C can reliability work. To over come this, the span between the Mega and the mux board is spanned with a CAT5 cable and two QwiicBus - EndPoint SparkFun QwiicBus - EndPoint - COM-16988 - SparkFun Electronics.
This is the target configuration for the first prototype. As with all explorations it is subject to change.
Sounds to me that it worked on the Uno. But my question was about the sensors. My answer was to use a buck converter to provide 3V3 for the sensors and not use the Arduino as a power supply because it is only good for 50mA.
"50mA" is from the ancient versions of the Uno, when the 3.3volt supply came from the USB <> serial chip. Current UNO and Mega boards have a dedicated 3.3volt/150mA regulator.
High time the datasheets are corrected.
Believe me, after a week of regression hell, I can safely say, 2K ram of the Uno is not sufficient to run ExFatLogger with a Adafruit LSM6DS33 and Adafruit's std library. It might be possible if you hacked the Adafruit library and the "std" data definations and structures. Adafruit has a very nice "one size fits all" set of data structures. You use the same structures for many (all?) Adafruit sensors. Work great at the expense of data space which you don't have a lot of.
I got the unmodified ExFatLogger working and then proceeded to make one small addition and re-test it in each iteration. As soon as I added
the datalogger would start processing but crash and re-start with no data logged. I switched to the mega and finished my integration with no more memory problems. YMMV