Saturday, October 24, 2015

Hacking a GoPro Hero3+ Black to take long exposures

I wanted to make a photo for our photo club’s monthly assignment with a long exposure by attaching my GoPro Hero3+ Black on the hood of my car with the Suction Cup mount. 

The problem was that the Hero3+ Black (I’ll call it “H3+B” from here on) tries to shorten the exposure time as much as it can by increasing the ISO, which is the opposite of what I needed it to do. I wanted to keep the ISO low, and increase the shutter open time to a few seconds to get light smears.

I searched DuckDuckGo for a solution and found this page ( by Konrad Iturbe. 

Konrad has worked out an autoexec.ash boot script that is copied to the top level of the MicroSD card  for the H3+B. He also lists a table of values that are put in the script at the X and Y values that determine the shutter speed in seconds.

How-To when using a Mac:

What you need:

GoPro Hero3+ Black. Some people have had some success with Hero3+ Silvers and Hero2’s as well, but I don’t own any of those. Some or all of these older cameras may need a modified version of the script.

A MicroSD card from SanDisk, Lexar, or Delkin. According to Konrad's site, not all cards can support this hack, but I wonder about that since I tried a Kingston 16GB card and it worked fine. Check Konrad’s site for a list of known working cards. I think the key issue that many people have is that the autoexec.ash file isn't saved properly in UNIX format.

A MicroSD card adapter, and a card reader of some type. If you have a MicroSD card, it should have come with an adapter to fit a standard-sized SD slot. Again, reports are that not all card readers seem to work properly. I’m using an old Griffin Simplifi from 2007. It works fine for me. I doubt that the card reader is much of a factor, but I've seen bizarre stuff happen with cheap hardware over the years. 

A text editor that can save the text file as UNIX format. This is VERY important! I’m on a Mac running OS X 10.11, and I tried TextEdit and BBEdit 10.5.13, neither of which worked no matter how I twiddled with the Save dialogs.

If the file is not in UNIX format, it will be ignored when the camera boots. Instead, I used nano, which is installed with all recent versions of Mac OS X. Worked like a champ, and it's free.

Here we go!

Step 1: Set the GoPro to have the power-on default mode to be the Single Still Image mode, which is the icon of just the camera, not the time-lapse one. Shut the camera off, and remove the SD card. Put the SD card in your computer.

Step 2: Open the Terminal program. It is in Applications > Utilities. A window like this will open.

Step 3: Type (or copy and paste) the following command into the Terminal window.

nano ~/Desktop/autoexec.ash

and press Return. This will start the nano editor and create an empty text file on your Desktop called autoexec.ash.

Step 4: Copy this code and paste it into nano in the Terminal window. 

t app appmode photo
sleep 1
t ia2 -ae still_exp P X Y
sleep 1
t app button shutter PR
sleep A

Step 5: You will be editing lines 3 and 6. Using the arrow keys on the keyboard (nano doesn’t respond to mouse movements), navigate the blinking cursor up to line 3 and over to the P character. Delete the P, and enter the ISO you want the GoPro to use. I entered 100.

Step 6: Next, navigate to the X in the same line, and delete it. In its place, I entered 55, which translates to about 6 seconds of exposure time. 

Step 7: The Y value is supposed to be the lens aperture, but GoPros have fixed apertures, which is 2.8 on the H3+B. Delete the Y character, and enter the same value that you did for the X. For some reason, both the X and Y values need to be the same.

Step 8: Using the arrow keys, navigate down to line 6. Delete the A, and replace it with a value in seconds that you want between exposures. I used 9 seconds.

Except for saving the file, you’re done. Here’s what my nano window looks like.

Step 9: Check over your values and make sure you didn’t add any blank lines to the script. When ready, press Ctrl-X. The bottom of the nano window will read “Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?” Press Y, and then, if you are happy with the name of the file, press Return. This will save the file and close nano.

Step 10: Go back to the Finder, and drag the newly modified autoexec.ash file to the SD card. Put the file in the top (root) level of the SD card, like this: 

Step 11: Eject the SD card from your computer. Put the SD card in the GoPro and power it up. When the camera comes up, it will take one picture with your ISO and shutter speed changes, and then reboot the camera and take another picture. It will keep doing this until you power the camera off again.


The P value is the ISO setting. Use 100, 200, or 400 to get less noise in your images. 

The A value is the shot interval amount in seconds. In use, the actual time between shots seems to be longer than the value entered because there is some time added due to the script rebooting the GoPro. I think the time is from the moment when the exposure starts to the start of the reboot. If your exposure is 5 seconds, and A is set to 4 seconds, I’m not sure what would happen. Remember that the camera needs some amount of time to write the picture to the memory card. Also, if you want to stop the camera and the interval is too short, you might have a hard time getting the camera to stop. As I play with this, I’ll see if I can figure out what a minimal setting would be.

The X and Y values determine the shutter speed. Values range between 2 (8.5 seconds) and 1000 (0.000158328 seconds). Below is a table copied from Konrad’s site. In the right column, the Exposure Times are in European format, which uses commas as decimal points instead of the American style of using periods. So if you are in the US, read 8,5 as 8.5.

Value (number to write in hack file)Exposure Time (seconds)

If you don't want to go through editing autoexec.ash files, Edward Czajka has a collection of pre-configured files that you can download through DropBox. It's here:

How to return the camera to normal operation

There are two ways to get your camera back to it’s normal configuration. One way is to format the memory card while it’s in the camera. This will delete the autoexec.ash file, and it will also delete all your pictures on the card, too. So think carefully before doing this!

The other way is to delete or rename the autoexec.ash file from the memory card manually using your computer. I’ve read that some people with an Android phone and a compatible card reader have done this. 

Alternatively, and probably easiest, you could carry two memory cards, one with the autoexec.ash file, and another one without it. Switch out the cards in the camera as you need.

Will it damage the GoPro?

Probably not. The script seems to just direct the camera as to what to do at boot. But of course, this is a non-official hack, so if something goes wrong, don't blame me. 


Here's a picture I tried. ISO 100, 3.3 seconds (X & Y setting of 160).
It's been cropped in Lightroom.

Friday, October 16, 2015

History has found us

A staffer from the popular TV show American Pickers contacted us about a month ago about some pictures of antique gas pumps we had taken on our first trip to New Mexico in 2010. We sent them a few, and they used them on this week’s show! If you want to watch the episode, it is currently available here:

It’s the episode entitled Like Father, Like Daughter

It will also re-air on the History Channel on Oct. 21 at 8:00 pm ET, and later that same night on Oct. 22 at 12:01 am ET, so set your DVR to record it.

In the show, the stars Mike and Frank are interested in purchasing a Frontier Oil sign. As they negotiate, Mike has a voiceover with our pictures onscreen, talking about the history of Frontier.

The pictures only appear for a few seconds, but it was fun to see them on a TV show. 

We sent them color photos, and the editors at AP changed them to sepia and added other treatments.

Here’s one that we sent…

and what they did with it….

Some others….

They asked us how we wanted to be credited, and we just told them “just put copyright Todd Hakala” and “copyright Rozanne Hakala”, thinking that they would use the © symbol. But no, they did exactly what they were told!