The new Auto-everything Bike Cams test is turning into a programming project, in which I’m learning the GoPro Labs language to program my camera to do what I want.
Other than on the GoPro Labs Full List of Action Commands, I haven’t actually seen a good description of how to program more than just for single-shot settings, of which there are good tools, so I’ll try my hand at an explanation.
A nice thing about the GoPro Labs tools is that they both let you output the QR code and share a URL. To start, I’ll stick with the defaults and share the doohickeys with simple controls, but we’ll have more control when hacking the raw code, so… we’ll get there!
First, here’s what I’d like to accomplish:
- Turn on with USB power
- Record while moving
- Upload when finished [see: !U ]
- Repeat! [see: !R ]
Here’s what’s going on with the USB Power Trigger:
Actions start with an ! – with variables as numbers and other letters within each action
!uN – uSB power: turn on, No action (optional: !uXN X=seconds to wait after powered on, 0-60)
!S – Start capture in the camera’s default mode
!uXE – End command X seconds after USB power is off (0-300/5 minutes)
!R – Repeat whole command
For testing, I’ll stick with ending 10 seconds after USB power is off, which shuts off the camera, and the !R repeats the next time the power comes on.
Next, let’s try out IMU Detection. The Inertial measurement unit (IMU), lets you start and stop recording when either the gyroscope, accelerometer, (or both!) reach a set level of movement. Sounds cool – let’s try it out:
Let’s stick with the defaults, so it’s easy to follow along…
!S – Start capture when:
I6 – Inertial measurement unit reaches sensitivity level 6*
D1 – Delay start for 1 second
H5 – Hold for 5 seconds after sensitivity drops to end level
!R – Repeat
*(note: stop level of 0 not shown, but would be I6-2 if set to stop when it drops to level 2)
My next step was to dump the IMU code !SI6D1H5!R into the default USB Power Trigger’s “command to perform” box, which cranks out this combo code. Now I get to figure out how two !Repeat commands play together…
Now, if you’ll excuse me, my parents gave my son a late-season pumpkin that we’ve left outside, and now he’s excited about figuring out what’s gnawing on it. Sooo… I’ll be taking a detour to figure out the Video Motion Detection controls!
I’ll report back.
And if anyone has ideas for taking the camera code to the next level, do let me know!