If I don't Serial.print(), nothing happens..?!

Haha, the compiler will balk at errors, but not mistakes. There are so many "mistakes" that might actually be what the writer intended that it would be hard for a machine to make a judgement.

You can get some helpful advice around common mistakes by going to the IDE Preferences and dialing up the warnings and verbosity.

Then need the red ink that now spills not just for errors, but a good handful of stupid mistakes that might not be either stupid or mistaken, rather just unusual and you get a friendly "didja really mean to paint the cat" or whatever.

Using = where == appears vastly more frequently is the kind of thing that helps with.

a7

Just letting you know that the fact that you're using a SparkFun Pro Micro is an important detail; next time please add the board that you're using in your opening post :wink:

And the SparkFun Pro Micro indeed does not have a LED on pin 13 :rofl:

Yeah, foiled by a poorly named const, "LED_BUILTIN". I've since read annoyance at the lack of a portable way of turning the lights on/off on boards.

Oh well, live and learn. Happily I'm a step closer to a working prototype now! And a few more people might know to flag use of that as a potential problem! One mistake, two benefits, win/win.

Have you tried initializing the BMI160 without relying on Serial feedback? It might be worth adding a few visual cues (like quick LED flashes) to confirm whether setup is completing properly when you're running off battery.

Exactly what I was doing, and fooled by the fact that the TX LED flashes when the serial print happens, but the LED is on D17, not LED_BUILTIN (D13).

Live and learn!

TX LED is pin 30. There are macros for the RX/TX LED pin numbers, too.

#define LED_BUILTIN 13
#define LED_BUILTIN_RX 17					
#define LED_BUILTIN_TX 30