KonradIT / autoexechack

Autoexec hack is a copilation of hacks for GoPro Cameras, like a GHDK (GoPro Hack Developer Kit).
http://chernowii.com
Other
467 stars 364 forks source link

Altered GoPro 2014 looping scripts to more closely mimic the function on newer GoPros #53

Closed TGYK closed 6 years ago

TGYK commented 8 years ago

Created a cascading folder system which more closely mimics the "looping" function of newer GoPros, by only keeping X amount of clips saved at any one time. Also updated documentation explaining this behavior,

bmacphail commented 8 years ago

Funny, I was just about to make some similar changes myself, when I saw your request from just an hour ago.

Edit: There are a few issues with your code. Forked it and am fixing them where I can now...

TGYK commented 8 years ago

Yikes! Just noticed my issues! I was sorta in a rush when expanding and editing for the different lengths from my original testing file!

bmacphail commented 8 years ago

No problem, I've already solved some of the issues with the 2min loop and am working on making the downtime between recordings shorter.

TGYK commented 8 years ago

I started having issues which seemed like the mv command wasn't finishing before moving on to the sleep command. Might have just been a hiccup, but it started having 2 or 3 clips in the main directory, 1 or 2 in the second, and none in the third. These test clips were only 15 seconds in length during testing. I added the sleep after each mv command, and that seemed to work for me.

I'd really like to try and find a way to do the removal of the last clip more 'properly' but there's no good way to manipulate date strings using ash. Not from what I can find, anyway. It would be nice to keep all the clips in the main 100GOPRO directory like normal behavior, but this was the simplest solution I could come up with while avoiding playing with date strings and flow structures.

ghost commented 8 years ago

You could try lu_util

Best regards,

Konrad Iturbe http://chernowii.com | http://github.com/konradit | http://twitter.com/konrad_it Sent from my Nexus

On Aug 2, 2016, 01:19, at 01:19, TGYK notifications@github.com wrote:

I started having issues which seemed like the mv command wasn't finishing before moving on to the sleep command. Might have just been a hiccup, but it started having 2 or 3 clips in the main directory, 1 or 2 in the second, and none in the third. These test clips were only 15 seconds in length during testing. I added the sleep after each mv command, and that seemed to work for me.

I'd really like to try and find a way to do the removal of the last clip more 'properly' but there's no good way to manipulate date strings using ash. Not from what I can find, anyway. It would be nice to keep all the clips in the main 100GOPRO directory like normal behavior, but this was the simplest solution I could come up with while avoiding playing with date strings and flow structures.


You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/KonradIT/autoexechack/pull/53#issuecomment-236737689

bmacphail commented 8 years ago

The problem I seem to be running into with the current implementation is that even with adequately timed delays (upwards of 20 seconds each) the 2min files just aren't being moved from the main directory to the next.

And @Chernowii, what exactly is lu_util? I can find a few references to it in your codebase, but I'm not sure what it is. Some sort of remote execution mode?

KonradIT commented 8 years ago

Hi everyone.

Does the hack work? I don't have the HERO 2014 so I can't test. Tell me when to merge.

Also, lu_util is a command to run parameters on the linux side, so for instance lu_util exec 'mv /var/fuse_d/DCIM/XXXGOPRO/GOPR0001.MP4 /var/fuse_d/DCIM/Other_Files/oldvideo.MP4'

moves the video from DCIM/XXXGOPRO to Other_Files and renames it to oldvideo

TGYK commented 8 years ago

From my initial testing on my GoPro 2014, it seems to work. I have yet to try the full-length scripts, but I can set up my camera to test them now. Will come back with my results within a couple of hours.

Edit 1: 2 minute loop works flawlessly per my testing. Edit 2: 5 minute loop works flawlessly per my testing.

Also, would you happen to know of any way to capture button presses or to establish a usb_232 connection with the 2014 GoPro so I could poke around?

bmacphail commented 8 years ago

None of the scripts seem to work as intended on my Hero 2014. The files get recorded and the camera gets rebooted just fine, but the files don't get moved around at all. Folders are there, but the video files stay in...

Crap. Just realized the problem as I was typing that. I've used my Hero 2014 for some filming before, and because the GoPro will create different folders for different "sets" of videos, the recording folder is called something different. Hold on, working on a fix in my branch.

Edit: I think that'll do it. Pushed to my branch and created a pull request for TGYK's branch, now testing...

Edit 2: Still not working, but for totally different reasons. I'll keep working on it.

Edit 3: Aaaand nope. Now I'm not even sure what the problem is.

KonradIT commented 8 years ago

You guys should use lu_util to move files around as I posted on a previous comment.

to establish a usb_232 connection with the 2014 GoPro so I could poke around?

You could try: t app test usb_rs232 1

Or dump the t app [usb] command using

t app > d:\t_app.txt
t app usb > d:\t_app_usb.txt
TGYK commented 8 years ago

What would be the benefit to telling the underlying linux to move the files about as opposed to telling iTron to do it? During my tests, I couldn't get lu_util to do much of anything, including writing things to a file on the SD card.

As far as dumping those commands.. There doesn't look like there is anything built in which resembles rs232. There's selection between MSC and MTP for the usb, but no RS232.. The only things I could come up with would be: cross-compiling some sort of usbRS232 binary, or trying to extract the existing one from a newer camera and trying that.

edit: Looking through your firmware research, I see that lu_util is listed when the 'help' command is given on the GoPro2, but when I dump the output of the 'help' command on the GoPro 2014 FW 1.09, there is no lu_util listed, leading me to believe there is no underlying linux process running, explaining why I couldn't get lu_util to do anything.

bmacphail commented 8 years ago

What I'm still confused about is what a Linux interface is doing in the firmware for a camera which shouldn't need any Linux processes at all.

TGYK commented 8 years ago

On the newer cameras, it appears to be running the cherokee webserver and handling the wireless networking bits. Seeing as the GoPro 2014 doesn't have this functionality.. It seems there is no linux process.

bmacphail commented 7 years ago

Well, at least for the time being, it looks like my SimpleLoop scripts are the most functional of all of the implementations from the newer Heros for the Hero 2014. They're fully functional, just still not as good as on the newer Heros. Maybe we could get that merged at the very least until we can figure out the rest? I'll create a separate pull request just as soon as I figure out how.