CamDo Solutions makes GoPro cameras do more. We create specialty products and solutions for remote monitoring and control.

csi Firmware Documentation

csi Firmware Documentation

Videos

Script Commands

The following table lists the commands for the HERO4 “autoexec.csi” script file

Command

Argument

Description

sleep

time in seconds

Waits the specified time.  Example: sleep 1.5

mode

photo
video

Switches to the specified mode [Lite]

photo
video
videoTimeLapse
videoWithPhoto
photoContinuous
photoNight
multiBurst
multiTimeLapse
multiNightLapse

Switches to the specified mode [Pro, Cloud]

setting

list

Lists the available settings for a camera in csiLog.txt.

(name) (value)

Sets the setting if not set already. A complete list of settings can be found below this table.

Example, “setting AutoOff 1”

shutter

press

Takes a picture or starts a video recording

stop

Stop a video recording

wifi

on
off

Turns WiFi on or of [Pro, Cloud]

wifiEnableMonitor

N/A

Checks if WiFi is disabled when USB data is plugged in.  Enables after USB data connection is removed.  Runs indefinitely.  [Pro, Cloud]

shutdown

N/A

Turns off camera (forced)

standby

N/A

Turns off camera, leaves WiFi on if it was on

videoLoop

videoTime
diskFreeMB
singleVideo(0 or 1)

Loops taking videos of the specified videoTime in seconds.  If the singleVideo flag is 1, this just takes one video and returns.  Either way, the command will delete old media until the amount of disk specified is free.  [Pro, Cloud] [BETA]

upload

RouterSSID
RouterMAC
RouterConnectTimeout
OverallTimeout
(photos|thumbs)
dropbox CAMDO_USERID 

Uploads photos or thumbnails to a remote dropbox server

Eg:

upload MyRouter_guest 11:AA:22:BB:33:C4 30 120 photos dropbox name@email.com_12345


Upload To Dropbox Notes:

The script must first take a single new image before attempting the upload command. WiFi cannot be active at the start of the upload command. The upload command will activate the camera’s WiFi in client mode for the connection to an available open WiFi network with the information described in the script for the transfer of files. The upload command of the script should follow the syntax outline below:

mode photo

shutter press

upload RouterSSID RouterMAC RouterConnectTimeout OverallTimeout (photos|thumbs) dropbox CAMDO_USERID

shutdown

 

As an example of the upload command:
upload MyRouter_guest 11:AA:22:BB:33:C4 30 120 photos dropbox name@email.com_12345

 

where:
upload = Initiation of the upload command line
MyRouter_guest = The SSID of the WiFi router being used
11:AA:22:BB:33:C4 = The MAC address of WiFi router being used
30 = The script will skip the command if a connection to the router is not established within 30 seconds
120 = The script will continue to transfer new files for a maximum of 2 minutes
photos = Will upload full sized images
dropbox = Will direct the upload to the dropbox server
name@email.com_12345 = is the user ID provided by CamDo that will remain while a subscription is valid

 

Below outlines the function and requirements of each portion of the upload command:

CAMDO_USERID - is your email address followed by a five digit number that will distinguish the folder where the images will be saved. This ID will be provided by CamDo after purchasing the Cloud Firmware.

dropbox - distinguishes that the command is for uploading an image to Dropbox.

(photos|thumbs) - if you want to upload the full sized photo, use the photos command. If you want to only upload smaller thumbnails (approx. 1000 pixels wide), use the thumbs command.

OverallTimeout - is the maximum amount of time in seconds that the camera will attempt to upload before disconnecting. If the file is not transferred, it will be cashed and another attempt to upload will occur after a successful transfer.

RouterConnectTimeout - is the maximum amount of time in second that the camera will have to verify the connection to the selected WiFi network before the command line is skipped. If the connection is not established, the image will be cached and another attempt to upload will occur after a successful transfer.

RouterMAC - is the MAC address of the router. Change for your particular router normally available in the router admin pages. Can also use arp -a command from the command line to find if not obvious in the router interface. The format for the MAC address must be that every two characters of the address are separated with a colon (:).

RouterSSID - is the wireless network's SSID. The SSID is case sensitive and cannot contain spaces or symbols, with the exception of hyphens (-) and underscores (_). Note that the wireless network must be an open network ie no security. You can hide the SSID and use MAC address filtering for security.

  • If you want to use MAC address filtering for the GoPro just run the script and watch your 'wireless clients' on the router. You'll see the GoPro connect and you can note down the MAC address. The MAC address of the GoPro can also be found in the version.txt file of the SD card.
restConnect notes:

Script on camera should contain needs the following command line to allow the camera to connect to the WiFi router as a CLIENT (camera normally sets itself up as a host):

restConnect RouterSSID RouterMAC

As an example:
restConnect tndguest C2:E9:84:57:F2:C3

 

where:
tndguest = The SSID of the WiFi router being used
C2:E9:84:57:F2:C3 = The MAC address of WiFi router being used

Once the camera has connected, you can then use a browser to issue commands. A handy tool is to use a free Chrome App like Postman to issue the HTTP GET commands. The following commands can be issued to the connected cameras. The commands can also be saved and scripted in Postman so the commands can be sent off to each of the cameras. Very quick way to validate the idea. Another nice thing is that you can see the camera response in Postman.

Form of the command to be issued (note the command is case sensitive):
IP/rest/modeVideo
IP/rest/modePhoto
IP/rest/shutterPress
IP/rest/shutterStop

where IP is the IP address of the connected camera.

Here is an example of a GET command to be issued in Postman.
192.168.0.110/rest/modeVideo
192.168.0.110/rest/modePhoto
192.168.0.110/rest/shutterPress
192.168.0.110/rest/shutterStop

192.168.0.110 was the IP address of the camera - this needs to changed to reflect the actual IP address of your particular camera. This can be seen via your WiFi network router by looking at connected devices. If you want to keep the IP address static, you can bind the camera MAC address to the desired IP address within your router.

An easy way to find the camera MAC address is by looking in the MISC/version.txt file on the camera SD card (called "wifi mac" in the file).

 

Below outlines the function and requirements of each portion of the restConnect command:

RouterMAC - is the MAC address of the router. Change for your particular router normally available in the router admin pages. Can also use arp -a command from the command line to find if not obvious in the router interface. The format for the MAC address must be that every two characters of the address are separated with a colon (:).

RouterSSID - is the wireless network's SSID. The SSID is case sensitive and cannot contain spaces or symbols, with the exception of hyphens (-) and underscores (_). Note that the wireless network must be an open network ie no security. You can hide the SSID and use MAC address filtering for security.

  • If you want to use MAC address filtering for the GoPro just run the script and watch your 'wireless clients' on the router. You'll see the GoPro connect and you can note down the MAC address. The MAC address of the GoPro can also be found in the version.txt file of the SD card.
IPchanger notes:

The IP address is chosen by a new “ip.csi” file that needs to be saved on the SD card. The IP address must be 6 characters long as the last digit (always .9) is omitted.

ip.csi contents:

5.10.8

 

# ip.csi file format:

# First line of file must contain an IP address prefix

# excluding the last octet, which is always .9

# The IP address must also be exactly 6 characters long

#

# Examples:

# 10.9.2 -> Camera has IP address of 10.9.2.9

# 5.10.8 -> Camera has IP address of 5.10.8.9

# 1.1.1 -> INVALID, not 6 characters long

Setting Lists

Setting List (HERO4 Black):

CamDo Solutions Controller, version: 0.8.3


List of settings supported:
setting VideoFormat (NTSC | PAL)
setting VideoPreset (0-59)

0: 4K, Wide, NTSC: 30FPS / PAL: 25FPS
1: 4K, Wide, NTSC: 24FPS / PAL: 24FPS
2: 4K-SuperView, Wide, NTSC: 24FPS / PAL: 24FPS
3: 2.7K-16:9, Wide, NTSC: 60FPS / PAL: 50FPS
4: 2.7K-16:9, Wide, NTSC: 48FPS / PAL: 48FPS
5: 2.7K-16:9, Wide, NTSC: 30FPS / PAL: 25FPS
6: 2.7K-16:9, Wide, NTSC: 24FPS / PAL: 24FPS
7: 2.7K-16:9, Medium, NTSC: 60FPS / PAL: 50FPS
8: 2.7K-16:9, Medium, NTSC: 48FPS / PAL: 48FPS
9: 2.7K-16:9, Medium, NTSC: 30FPS / PAL: 25FPS
10: 2.7K-16:9, Medium, NTSC: 24FPS / PAL: 24FPS
11: 2.7K-SuperView, Wide, NTSC: 30FPS / PAL: 25FPS
12: 2.7K-4:3, Wide, NTSC: 30FPS / PAL: 25FPS
13: 1440p, Wide, NTSC: 80FPS / PAL: 80FPS
14: 1440p, Wide, NTSC: 60FPS / PAL: 50FPS
15: 1440p, Wide, NTSC: 48FPS / PAL: 48FPS
16: 1440p, Wide, NTSC: 30FPS / PAL: 25FPS
17: 1440p, Wide, NTSC: 24FPS / PAL: 24FPS
18: 1080p-SuperView, Wide, NTSC: 80FPS / PAL: 80FPS
19: 1080p-SuperView, Wide, NTSC: 60FPS / PAL: 50FPS
20: 1080p-SuperView, Wide, NTSC: 48FPS / PAL: 48FPS
21: 1080p-SuperView, Wide, NTSC: 30FPS / PAL: 25FPS
22: 1080p-SuperView, Wide, NTSC: 24FPS / PAL: 24FPS
23: 1080p, Wide, NTSC: 120FPS / PAL: 120FPS
24: 1080p, Wide, NTSC: 90FPS / PAL: 90FPS
25: 1080p, Wide, NTSC: 60FPS / PAL: 50FPS
26: 1080p, Wide, NTSC: 48FPS / PAL: 48FPS
27: 1080p, Wide, NTSC: 30FPS / PAL: 25FPS
28: 1080p, Wide, NTSC: 24FPS / PAL: 24FPS
29: 1080p, Medium, NTSC: 60FPS / PAL: 50FPS
30: 1080p, Medium, NTSC: 48FPS / PAL: 48FPS
31: 1080p, Medium, NTSC: 30FPS / PAL: 25FPS
32: 1080p, Medium, NTSC: 24FPS / PAL: 24FPS
33: 1080p, Narrow, NTSC: 120FPS / PAL: 120FPS
34: 1080p, Narrow, NTSC: 90FPS / PAL: 90FPS
35: 1080p, Narrow, NTSC: 60FPS / PAL: 50FPS
36: 1080p, Narrow, NTSC: 48FPS / PAL: 48FPS
37: 1080p, Narrow, NTSC: 30FPS / PAL: 25FPS
38: 1080p, Narrow, NTSC: 24FPS / PAL: 24FPS
39: 960p, Wide, NTSC: 120FPS / PAL: 120FPS
40: 960p, Wide, NTSC: 60FPS / PAL: 50FPS
41: 720p-SuperView, Wide, NTSC: 120FPS / PAL: 120FPS
42: 720p-SuperView, Wide, NTSC: 60FPS / PAL: 50FPS
43: 720p, Wide, NTSC: 120FPS / PAL: 120FPS
44: 720p, Wide, NTSC: 60FPS / PAL: 50FPS
45: 720p, Wide, NTSC: 30FPS / PAL: 25FPS
46: 720p, Medium, NTSC: 120FPS / PAL: 120FPS
47: 720p, Medium, NTSC: 60FPS / PAL: 50FPS
48: 720p, Medium, NTSC: 30FPS / PAL: 25FPS
49: 720p, Narrow, NTSC: 240FPS / PAL: 240FPS
50: 720p, Narrow, NTSC: 120FPS / PAL: 120FPS
51: 720p, Narrow, NTSC: 60FPS / PAL: 50FPS
52: 720p, Narrow, NTSC: 30FPS / PAL: 25FPS
53: WVGA, Wide, NTSC: 240FPS / PAL: 240FPS
54: 1080p, Linear, NTSC: 60FPS / PAL: 50FPS
55: 1080p, Linear, NTSC: 48FPS / PAL: 48FPS
56: 1080p, Linear, NTSC: 30FPS / PAL: 25FPS
57: 1080p, Linear, NTSC: 24FPS / PAL: 24FPS
58: 2.7K-16:9, Linear, NTSC: 30FPS / PAL: 25FPS
59: 2.7K-16:9, Linear, NTSC: 24FPS / PAL: 24FPS
setting VideoLowLight (Off | On)
setting VideoTimelapseRate (0.5 | 1 | 2 | 5 | 10 | 30 | 60)
setting VideoWithPhotoRate (5 | 10 | 30 | 60)
setting VideoSpotMeter (Off | On)
setting VideoProtuneEnable (Off | On)
setting VideoProtuneWhiteBalance (Auto | 3000K | 4000K | 4800K | 5500K | 6000K | 6500K | Native)
setting VideoProtuneColor (GoPro | Flat)
setting VideoProtuneExposure (Auto | 1/12.5 | 1/15 | 1/24 | 1/25 | 1/30 | 1/48 | 1/50 | 1/60 | 1/80 | 1/90 | 1/96 | 1/100 | 1/120 | 1/160 | 1/180 | 1/192 | 1/200 | 1/240 | 1/320 | 1/360 | 1/400 | 1/480 | 1/960)
setting VideoProtuneIsoMode (Max | Lock)
setting VideoProtuneIso (6400 | 1600 | 400 | 3200 | 800 | 200 | 100)
setting VideoProtuneSharpness (High | Med | Low)
setting VideoProtuneEv (+2 | +1.5 | +1 | +0.5 | 0 | -0.5 | -1 | -1.5 | -2)
setting PhotoRes (12MP-Wide | 7MP-Wide | 7MP-Med | 5MP-Med)
setting PhotoContinuousRate (3in1 | 5in1 | 10in1)
setting PhotoNightShutterDuration (Auto | 2 | 5 | 10 | 15 | 20 | 30)
setting PhotoSpotMeter (Off | On)
setting PhotoProtuneEnable (Off | On)
setting PhotoProtuneWhiteBalance (Auto | 3000K | 4000K | 4800K | 5500K | 6000K | 6500K | Native)
setting PhotoProtuneColor (GoPro | Flat)
setting PhotoProtuneIsoMin (800 | 400 | 200 | 100)
setting PhotoProtuneIso (800 | 400 | 200 | 100)
setting PhotoProtuneSharpness (High | Med | Low)
setting PhotoProtuneEv (+2 | +1.5 | +1 | +0.5 | 0 | -0.5 | -1 | -1.5 | -2)
setting MultiRes (12MP-Wide | 7MP-Wide | 7MP-Med | 5MP-Med)
setting MultiBurstRate (3in1 | 5in1 | 10in1 | 10in2 | 10in3 | 30in1 | 30in2 | 30in3 | 30in6)
setting MultiTimelapseRate (0.5 | 1 | 2 | 5 | 10 | 30 | 60)
setting MultiNightShutterDuration (Auto | 2 | 5 | 10 | 15 | 20 | 30)
setting MultiNightlapseRate (Continuous | 30sec | 1min | 2min | 5min | 30min | 60min)
setting MultiSpotMeter (Off | On)
setting MultiProtuneEnable (Off | On)
setting MultiProtuneWhiteBalance (Auto | 3000K | 4000K | 4800K | 5500K | 6000K | 6500K | Native)
setting MultiProtuneColor (GoPro | Flat)
setting MultiProtuneIsoMin (800 | 400 | 200 | 100)
setting MultiProtuneIso (800 | 400 | 200 | 100)
setting MultiProtuneSharpness (High | Med | Low)
setting MultiProtuneEv (+2 | +1.5 | +1 | +0.5 | 0 | -0.5 | -1 | -1.5 | -2)
setting Led (Off | 2 | 4)
setting Beep (Off | 70% | 100%)
setting OnScreenDisplay (Off | On)
setting AutoOff (Never | 1 | 2 | 3 | 5)



Setting List (HERO4 Silver):

CamDo Solutions Controller, version: 0.8.3
List of settings supported:
setting VideoFormat (NTSC | PAL)
setting VideoPreset (0-43)

0: 4K, Wide, NTSC: 15FPS / PAL: 12.5FPS
1: 2.7K-16:9, Wide, NTSC: 30FPS / PAL: 25FPS
2: 2.7K-16:9, Wide, NTSC: 24FPS / PAL: 24FPS
3: 2.7K-16:9, Medium, NTSC: 30FPS / PAL: 25FPS
4: 2.7K-16:9, Medium, NTSC: 24FPS / PAL: 24FPS
5: 1440p, Wide, NTSC: 48FPS / PAL: 48FPS
6: 1440p, Wide, NTSC: 30FPS / PAL: 25FPS
7: 1440p, Wide, NTSC: 24FPS / PAL: 24FPS
8: 1080p, Wide, NTSC: 60FPS / PAL: 50FPS
9: 1080p, Wide, NTSC: 48FPS / PAL: 48FPS
10: 1080p, Wide, NTSC: 30FPS / PAL: 25FPS
11: 1080p, Wide, NTSC: 24FPS / PAL: 24FPS
12: 1080p, Medium, NTSC: 60FPS / PAL: 50FPS
13: 1080p, Medium, NTSC: 48FPS / PAL: 48FPS
14: 1080p, Medium, NTSC: 30FPS / PAL: 25FPS
15: 1080p, Medium, NTSC: 24FPS / PAL: 24FPS
16: 1080p, Narrow, NTSC: 60FPS / PAL: 50FPS
17: 1080p, Narrow, NTSC: 48FPS / PAL: 48FPS
18: 1080p, Narrow, NTSC: 30FPS / PAL: 25FPS
19: 1080p, Narrow, NTSC: 24FPS / PAL: 24FPS
20: 1080p-SuperView, Wide, NTSC: 60FPS / PAL: 50FPS
21: 1080p-SuperView, Wide, NTSC: 48FPS / PAL: 48FPS
22: 1080p-SuperView, Wide, NTSC: 30FPS / PAL: 25FPS
23: 1080p-SuperView, Wide, NTSC: 24FPS / PAL: 24FPS
24: 960p, Wide, NTSC: 100FPS / PAL: 100FPS
25: 960p, Wide, NTSC: 60FPS / PAL: 50FPS
26: 720p, Wide, NTSC: 120FPS / PAL: 120FPS
27: 720p, Wide, NTSC: 60FPS / PAL: 50FPS
28: 720p, Wide, NTSC: 30FPS / PAL: 25FPS
29: 720p, Medium, NTSC: 120FPS / PAL: 120FPS
30: 720p, Medium, NTSC: 60FPS / PAL: 50FPS
31: 720p, Medium, NTSC: 30FPS / PAL: 25FPS
32: 720p, Narrow, NTSC: 120FPS / PAL: 120FPS
33: 720p, Narrow, NTSC: 60FPS / PAL: 50FPS
34: 720p, Narrow, NTSC: 30FPS / PAL: 25FPS
35: 720p-SuperView, Wide, NTSC: 100FPS / PAL: 100FPS
36: 720p-SuperView, Wide, NTSC: 60FPS / PAL: 50FPS
37: WVGA, Wide, NTSC: 240FPS / PAL: 240FPS
38: 1080p, Linear, NTSC: 60FPS / PAL: 50FPS
39: 1080p, Linear, NTSC: 48FPS / PAL: 48FPS
40: 1080p, Linear, NTSC: 30FPS / PAL: 25FPS
41: 1080p, Linear, NTSC: 24FPS / PAL: 24FPS
42: 2.7K-16:9, Linear, NTSC: 30FPS / PAL: 25FPS
43: 2.7K-16:9, Linear, NTSC: 24FPS / PAL: 24FPS
setting VideoLowLight (Off | On)
setting VideoTimelapseRate (0.5 | 1 | 2 | 5 | 10 | 30 | 60)
setting VideoWithPhotoRate (5 | 10 | 30 | 60)
setting VideoSpotMeter (Off | On)
setting VideoProtuneEnable (Off | On)
setting VideoProtuneWhiteBalance (Auto | 3000K | 4000K | 4800K | 5500K | 6000K | 6500K | Native)
setting VideoProtuneColor (GoPro | Flat)
setting VideoProtuneExposure (Auto | 1/12.5 | 1/15 | 1/24 | 1/25 | 1/30 | 1/48 | 1/50 | 1/60 | 1/80 | 1/90 | 1/96 | 1/100 | 1/120 | 1/160 | 1/180 | 1/192 | 1/200 | 1/240 | 1/320 | 1/360 | 1/400 | 1/480 | 1/960)
setting VideoProtuneIsoMode (Max | Lock)
setting VideoProtuneIso (6400 | 1600 | 400 | 3200 | 800 | 200 | 100)
setting VideoProtuneSharpness (High | Med | Low)
setting VideoProtuneEv (+2 | +1.5 | +1 | +0.5 | 0 | -0.5 | -1 | -1.5 | -2)
setting PhotoRes (12MP-Wide | 7MP-Wide | 7MP-Med | 5MP-Med)
setting PhotoContinuousRate (3in1 | 5in1 | 10in1)
setting PhotoNightShutterDuration (Auto | 2 | 5 | 10 | 15 | 20 | 30)
setting PhotoSpotMeter (Off | On)
setting PhotoProtuneEnable (Off | On)
setting PhotoProtuneWhiteBalance (Auto | 3000K | 4000K | 4800K | 5500K | 6000K | 6500K | Native)
setting PhotoProtuneColor (GoPro | Flat)
setting PhotoProtuneIsoMin (800 | 400 | 200 | 100)
setting PhotoProtuneIso (800 | 400 | 200 | 100)
setting PhotoProtuneSharpness (High | Med | Low)
setting PhotoProtuneEv (+2 | +1.5 | +1 | +0.5 | 0 | -0.5 | -1 | -1.5 | -2)
setting MultiRes (12MP-Wide | 7MP-Wide | 7MP-Med | 5MP-Med)
setting MultiBurstRate (3in1 | 5in1 | 10in1 | 10in2 | 10in3 | 30in1 | 30in2 | 30in3 | 30in6)
setting MultiTimelapseRate (0.5 | 1 | 2 | 5 | 10 | 30 | 60)
setting MultiNightShutterDuration (Auto | 2 | 5 | 10 | 15 | 20 | 30)
setting MultiNightlapseRate (Continuous | 30sec | 1min | 2min | 5min | 30min | 60min)
setting MultiSpotMeter (Off | On)
setting MultiProtuneEnable (Off | On)
setting MultiProtuneWhiteBalance (Auto | 3000K | 4000K | 4800K | 5500K | 6000K | 6500K | Native)
setting MultiProtuneColor (GoPro | Flat)
setting MultiProtuneIsoMin (800 | 400 | 200 | 100)
setting MultiProtuneIso (800 | 400 | 200 | 100)
setting MultiProtuneSharpness (High | Med | Low)
setting MultiProtuneEv (+2 | +1.5 | +1 | +0.5 | 0 | -0.5 | -1 | -1.5 | -2)
setting LcdBrightness (High | Med | Low)
setting LcdLock (Off | On)
setting LcdSleep (Never | 1 | 2 | 3)
setting LcdPower (Off | On)
setting Led (Off | 2 | 4)
setting Beep (Off | 70% | 100%)
setting OnScreenDisplay (Off | On)
setting AutoOff (Never | 1 | 2 | 3 | 5)



Troubleshooting

Where can I download sample autoexec.csi scripts.

A few common scripts can be downloaded at the bottom of this page: http://cam-do.com/pages/csi-firmware-patch-for-gopro-hero4-black-and-silver-cameras

The autoexec.csi script doesn't do anything.

Are you running the lite version with WiFi active?

The Lite version of the HERO4 firmware does not allow WiFi to be active. If WiFi is turned on, the script will not run on startup. The Lite version also has a maximum for 6 command lines.

Have you used the correct csiController file?

Look at the csiLog.txt file on the SD card. Error messages are shown there. For example, “Error: csiController did not match camera ID” would indicate that the csiController file on the SD card is not the one created for that camera. Each csiController is specific to the GoPro camera’s serial number.

Has the filename of the script been changed from “autoexec.csi”?

When installing or editing the "autoexec.csi" script, a lot of programs automatically convert the file into a standard text document. If the file name is changed in any way, such as "autoexec.csi.txt", or “autoexec(1).csi”, the camera will not run the file on startup.

Are you using an SD card with the required read and write speeds?

The GoPro HERO4 camera requires an SD card with a minimum read and write speed of 30MB/s (U3) for reliable operation. Our website has a link to an SD card speed tester to determine if your card has the required speeds for use with the GoPro: http://cam-do.com/pages/sd-card-speed-tester If you need to purchase a new SD card, you are strongly advised to use an SD card from the recommended list on GoPro's website, http://gopro.com/help/articles/Block/microSD-Card-Considerations.  Use of cards not on the list, especially SanDisk Ultra cards, will greatly increase your chance of trouble with your setup. Note that some SD cards have the same product name as the cards on the list but only have a U1 rating. Make sure the SD card has a class 10 and U3 rating since underperforming SD cards can prevent proper functioning of your GoPro camera's features.

The reason the script has problems on slower SD cards appears to be in the timing of the boot sequence when the camera starts up. In some cases, the card is not ready to communicate with the camera at the time the camera looks for the script. As a result, the camera might crash or the script is not seen and the camera continues its boot sequence as if no script was present.

 

The upload to dropbox script takes an image but no image is uploaded

Make sure to adjust the upload command line to contain your personal router information. Check the csiLog.txt of the SD card to determine the error code.

Does your router provide the required WiFi connection settings?

The GoPro requires an open WiFi network (no password) that broadcasts a 802.11n signal at 2.4GHz and maintains a stable connection to the internet. Some routers, typically 3G & 4G routers, have a power/data saving mode that needs to be disabled.

Is your router's WiFi signal in range of the GoPro camera?

The router should be placed as close as possible to the GoPro to ensure a strong signal. If you check the csiLog.txt on the SD card after the GoPro has searched for a connection, the log will display all WiFi networks in the area and the signal strength of each network as seen by the GoPro camera.

Has your subscription to the HERO4 Cloud firmware expired?

 

What is the format of the Cloud firmware script’s upload command line?

The format for the upload command line should be:

upload RouterSSID RouterMAC RouterConnectTimeout OverallTimeout (photos or thumbs) dropbox CAMDO_USERID

 

CAMDO_USERID - is your email address followed by a five digit number that will distinguish the folder where the images will be saved. This ID will be provided by CamDo after purchasing the Cloud Firmware.

dropbox - distinguishes that the command is for uploading an image to Dropbox.

(photos or thumbs) - if you want to upload the full sized photo, use the photos command. If you want to only upload smaller thumbnails (approx 1000 pixels wide), use the thumbs command.

OverallTimeout - is the maximum amount of time in seconds that the camera will attempt to upload before disconnecting. If the file is not transferred, it will be cashed and another attempt to upload will occur after a successful transfer.

RouterConnectTimeout - is the maximum amount of time in second that the camera will have to verify the connection to the selected WiFi network before the command line is skipped. If the connection is not established, the image will be cashed and another attempt to upload will occur after a successful transfer.

RouterMAC - is the MAC address of the router. The MAC address for your particular router is normally available in the router admin pages. Can also use arp -a command from the command line to find if not obvious in the router interface. The format for the MAC address must be that every two characters of the address are separated with a colon (:).

RouterSSID - is the wireless network's SSID. The SSID is case sensitive and cannot contain spaces or symbols, with the exception of hyphens (-) and underscores (_). Note that the wireless network must be an open network ie no security. You can hide the SSID and use MAC address filtering for security.

For example

upload My-Router_guest 11:AA:22:BB:33:C4 30 120 photos dropbox name@email.com_12345

 

If I don’t know my router’s MAC address, how can I locate it?

The MAC address can typically be found in the router’s programming menu. If you do not know how to locate your router MAC address, it can be found using the GoPro camera. Save the Sample Dropbox script to the SD card turn the camera on in the location where the camera will be deployed. The script will automatically run when the GoPro camera is turned on using Power/Mode button on the front of the camera. The Dropbox script should trigger the GoPro to automatically take an image and turn the WiFi on to scan for available networks before turning off the camera. The first camera trigger might only adjust the camera to the new setting, so if the WiFi was not activated before turning off the camera, the camera will need to be powered on a second time to activate the GoPro’s WiFi to scan for available networks.

Remove the SD card from the camera and insert the SD card into your computer to open the csiLog.txt file. The csiLog.txt file should display a list of all available networks including the corresponding MAC address and strength of the WiFi signal as seen from the camera’s location.