#GoPro HERO4 (A tale of firmware leaks and marketing)
Written by /u/konrad-iturbe (Konrad Iturbe) and with help of /u/OverByThere's leaked firmware.
The GoPro HERO4 Black Adventure edition is 4x times more powerful than ever.
HERO4 cameras:
- HERO4 Black (BANZAI)
- HERO4 Silver (HAWII)
FEATURES (black only, silver is like a shitty hero3+ black):
- port c:/ is SD
- port C:/ is camera internal storage
- BANZAI codname
- Update path is c:/update/camera_firmware.bin [NOTE: Ambarella A9 chip does not read the update like traditional HDX-firmware.bin and WFX-app.bin and the other files]
- autoexec.ash still exists, so like in the hero3 / hero3+ the hero4 may have all the features, but not shown in the GUI menu. With autoexec.ash is easy to unleash those features like in previous cameras.
- Ambarella A9 chip like suggested in rumors all across the net
- GPS, Environmental data logging (temperature, humidity, etc...)
Same resolutions as in the HERO3+ blackMisleading dataCompatible with bacpacsNew bacpacs (marketing!), and compatible with the HERO dual 3d system (probably same HERO3+ case)- Full integration with 3D HERO bacpac
- LCD bacpac commands (seems the bacpac comes with the camera)
- Connection to external wifi (for uploading media to a GoPro site and from there to social media)
- New value in protune: Native WB
- new modes: Multi shot and quick capture
- Photo mode now have a "photo settings" section in the settings (seems photo has more parameters than just the resolution setting)
- The GoPro HERO4 star feature: Multi shot, a dynamic burst that shoots pictures with more imaging settings
- Show the camera info in the settings or in LCD bacpac touch
No WVGA 480...Misleading data- Night mode for pictures
- Same pic res as HERO3+black
- Same protune settings as HERO3+Black
- LCD sleep (such as in smartphones)
- Network and smart wifi settings
- BLUETOOTH!!!
- Streaming to the internet using secondary GOPs (http://en.wikipedia.org/wiki/Group_of_pictures)
- IDR streaming (http://www.streaminglearningcenter.com/articles/everything-you-ever-wanted-to-know-about-idr-frames-but-were-afraid-to-ask.html)
- Protune shutter exp (2s, 5s, 10s, 15s, 20s, 30s)
- Submodes, new modes that merge different modes (submodes available: photo, multishot, video and quick capture)
- NightLapse, night timelapses made easy
- NightLapse has intervals from 15s to 60m
- uCode with orccode binary loaded on SD
- Ambarella ImgProc lib (Image processing) (http://docs.opencv.org/doc/tutorials/imgproc/table_of_content_imgproc/table_of_content_imgproc.html) /Supports 3A/
##RESOLUTIONS:
Here, data is misleading, the settings.json says that these are the resolutions:
- WVGA 240
- 720p 120
- 720p SuperView 120
- 960p 90 100
- 1080p 60 80
- 1080p SuperView 60 80
- 1440p 48 50
- 2.7K 24 25 30
- 4K 12.5 12 15
#####But, the firmware says that these are the resolutions:
- 4K 30 Wide
- 4K 25 Wide
- 4K 24 Wide
- 4K 15 Wide
- 4K 12.5 Wide
- 4K 2 TLV 30
- 4K 2 TLV 15
- 1440 2 TLV 30
- 1080 2 TLV 30
- 4K 2 TLV 25
- 4K 2 TLV 12.51440 2 TLV 25
- 1080 2 TLV 25
- 4K 24 Wide SuperView
- 2.7K 60 Wide
- 2.7K 50 Wide
- 2.7K 48 Wide
- 2.7K 30 Wide
- 2.7K 25 Wide
- 2.7K 30Wide SuperView
- 2.7K 25 Wide SuperView
- 2.7K 24 Wide
- FHD 120 Wide
- FHD 100 Wide
- FHD 90 Wide
- FHD 60 Wide
- FHD 50 Wide
- FHD 48 Wide
- FHD 30 Wide
- FHD 25 Wide
- FHD 24 Wide
- FHD 80 Wide SuperView
- FHD 60 Wide SuperView
- FHD 50 Wide SuperView
- FHD 48 Wide SuperView
- FHD 30 Wide SuperView
- FHD 25 Wide SuperView
- FHD 24 Wide SuperView
- FHD 30 Wide SuperView
- LPFHD 25 Wide SuperView
- LPHD 120 Wide
- HD 100 Wide
- HD 60 Wide
- HD 50 Wide
- HD 30 Wide
- HD 25 Wide
- HD 120 Wide SuperView
- HD 100 Wide SuperView
- HD 90 Wide SuperView
- HD 60 Wide SuperView
- HD 50 Wide SuperView
- FWVGA 240 Wide
- FWVGA 200 Wide
- WQVGA 30 WideLP
- WQVGA 25 WideLP
- 2.7K AR43 30 Wide
- 2.7K AR43 25 Wide
- QXGA 80 Wide
- QXGA 75 Wide
- QXGA 72 Wide
- QXGA 60 Wide
- QXGA 50 Wide
- QXGA 30 Wide
- QXGA 48 Wide
- QXGA 25 Wide
- QXGA 24 Wide
- 2.7K 50 Medium
- 2.7K 48 Medium
- 2.7K 30 Medium
- 2.7K 25 Medium
- 2.7K 24 Medium
- HD 50 Medium
- HD 30 Medium
- HD 25 Medium
- WQVGA 30 Medium LP
- WQVGA 25 Medium LP
- QXGA 60 Medium
- QXGA 50 Medium
Strange! :)
COMMANDS:
t imgproc
slock n + : lock n
� slock n - : unlock n
LCD settings (touch I suggest)
Usage: t drv lcd [command]
command
enable
disable
get_brightness
set_brightness [val]
write_cmd [reg_addr]
write_data [reg_addr] [data]
set_pattern [x_start] [y_start] [width] [height] [val]
�enable��disable�config��get_brightness��lcd brightness = %d
Read the system temperature
Usage: t drv cable <show|enable|disable>
Show, eable, or disable the current 10 pin USB cable status
Usage: t drv buzzer beep <on msec> <off msec> <num>
start <on msec> <off msec>
stop
enable
disable
volume [percent]
config <on ticks> <off ticks> <clock div> <pulse div>
Beep/Start/Stop beep at certain speed
Usage: t drv rtc time [yyyy-mm-dd-hh-mm-ss]
wake [sec]
Blink/Start/Stop LED at certain speed
Usage: t drv led blink <top|bottom|front|back> <blue|red> <on msec> <off msec> <num>
start <top|bottom|front|back> <blue|red> <on msec> <off msec>
stop <top|bottom|front|back> <blue|red>
enable <top|bottom|front|back> <blue|red>
disable <top|bottom|front|back> <blue|red>
Read the battery level in mV
Usage: t drv battery
Turn on/off SD card temperature logging
Usage: t drv templog [on|off]
Usage: t drv tasks <stack>
Usage: t drv sdstr <sd id> <3|6|12|18>
Usage: t drv voutstr <3|6|12|18>
Humidity:
Usage: t drv hdmiphy <current> <preemphasis>
t appc wireless pin
Show BLE pin code
Usage: t appc capture [command]
command
start starts capture
stop stops capture
still starts still capture
Usage: t appc stream [command]
command
start starts stream
stop stops stream
t appc fwupdate [command]
start [waiting]
ready [prompt]
reset
download
cancel
boot_fw
isrequired
iswaiting
isinprogress
state
notify [start|fini|failed|download|downfail|downcan|downrdy|battlow]
ptb
cal [save|restore] file.bin
rmdir path
Usage: t appc status [command]
show
lowbatt
overtemp
version
battery
rtf
beep on off num
file_counts
power_save
blue_led on off num
av_mgr
power_save_disable
Bluetooth: t appc wireless bt dut [on|off]
Usage: as3715 battv
as3715 bt <on|off>
as3715 dumpregs
as3715 charger_disabled <set|clear|get>
as3715 charger_status
as3715 ibattemp
as3715 poweroff
as3715 read_gpio_in <gpio number>
as3715 readb <regaddr>
as3715 reset
as3715 suspend <ddr powered?> <ath powered?> <wifi enabled?> <bt enabled?>
as3715 wifi_3v3 <on|off>
as3715 wlan <on|off>
as3715 writeb <regaddr> <value>
as3715 warmboot <ddrvolt> <corevolt>
as3715 usealtfreq <usealt>
as3715 redled <on/off>
as3715 blueledmux <a9/ath>
as3715 blueled_back_a9_ctrl <disable|enable>
as3715 blueled_top_bottom_a9_ctrl <disable|enable>
Usage: t frw imgcap [command]
command:
start starts image capture
stop stops image capture
lowlight [on/off] sets low light state
� mctf [none/on/off] mctf override "none" = no override
"on" = mctf on "off" = mctf off
Note the override is only applicable in 4K modes
��� clocks [IDSP Clk] [Core Clk] [Cortex Clk] overrides the capture clock frequencies
setting clock value to 0 is no override
get_counts get sof and last-pixel-ready event counters
rst_counts reset sof and last-pixel-ready event counters
ticks_dump dump burst capture ticks
�� load video num fullpathname load IQ parameter file from SD card
Buttons stuff:
press <button id> [duration in ms]
release <button id>
id: mode/power - 0
shutter - 1
settings - 2
lcd - 3
Some shitty and pretty useful stuff:
Usage: t camdata <nv|mfg> <param> [<set-value>]
nv params:
wifi_mac
bt_mac
cam_sn
cam_pn
crc
len
ver
mfg params:
site_result
lens_vendor
crc
len
ver
##FILES:
cherokee.conf
gopro.conf
##Streaming options Wifi:
"scs_version": "2.13-northshore",
"status": "",
"errno": 0,
"services": [
{
"name": "gpStream",
"version": 1,
"start_url": "/gp/gpExec?p1=gpStreamA9&c1=restart",
"stop_url": "/gp/gpExec?p1=gpStreamA9&c1=stop"
}
]
}
##Wifi Info and some stuff from settings.json
"commands":[{"key":"GPCAMERA_SHUTTER",
"display_name":"Start or stop capture","url":"/command/shutter",
{"key":"GPCAMERA_XMODE",
"display_name":"Set Mode and Sub-Mode","url":"/command/xmode",
{"key":"GPCAMERA_MODE",
"display_name":"Set Mode","url":"/command/mode",
{"key":"GPCAMERA_SUBMODE",
"display_name":"Set Mode and Sub-Mode","url":"/command/sub_mode",
{"key":"GPCAMERA_POWER_ID",
"display_name":"Power Off Camera","url":"/command/system/sleep",
{"key":"GPCAMERA_FWUPDATE_DOWNLOAD_START",
"display_name":"Notify start FW Update File Download","url":"/command/fwupdate/download/start",
{"key":"GPCAMERA_FWUPDATE_DOWNLOAD_DONE",
"display_name":"Notify completion of FW Update File Download","url":"/command/fwupdate/download/done",
{"key":"GPCAMERA_FWUPDATE_DOWNLOAD_CANCEL",
"display_name":"Cancel FW Update File Download","url":"/command/fwupdate/download/cancel",
{"key":"GPCAMERA_FACTORY_RESET",
"display_name":"Reset to Factory Defaults","url":"/command/system/factory/reset",
{"key":"GPCAMERA_SLEEP",
"display_name":"Power Saving Sleep Mode","url":"/command/system/sleep",
{"key":"GPCAMERA_USE_CURRENT_WIRELESS_REMOTE_ID",
"display_name":"Use with Current Wi-Fi Remote","url":"/setting/63/2",
{"key":"GPCAMERA_USE_NEW_WIRELESS_REMOTE_ID",
"display_name":"Use with New Wi-Fi Remote","url":"/command/wireless/rc/pair",
{"key":"GPCAMERA_VIDEO_PROTUNE_RESET_TO_DEFAULT",
"display_name":"Reset to Default","url":"/command/video/protune/reset",
{"key":"GPCAMERA_MULTISHOT_PROTUNE_RESET_TO_DEFAULT",
"display_name":"Reset to Default","url":"/command/multi_shot/protune/reset",
{"key":"GPCAMERA_PHOTO_PROTUNE_RESET_TO_DEFAULT",
"display_name":"Reset to Default","url":"/command/photo/protune/reset",
{"key":"GPCAMERA_SET_DATE_AND_TIME_ID",
"display_name":"Set Date and Time","url":"/command/setup/date_time",
{"key":"GPCAMERA_DELETE_LAST_FILE_ID",
"display_name":"Delete Last File","url":"/command/storage/delete/last",
{"key":"GPCAMERA_DELETE_ALL_FILES_ID",
"display_name":"Delete All Files from SD Card","url":"/command/storage/delete/all",
{"key":"GPCAMERA_DELETE_FILE_ID",
"display_name":"Delete File","url":"/command/storage/delete",
{"key":"GPCAMERA_LOCATE_ID",
"display_name":"Locate Camera","url":"/command/system/locate",
{"key":"GPCAMERA_NETWORK_NAME_ID",
"display_name":"Name","url":"/command/wireless/ap/ssid",
{"key":"GPCAMERA_AP_CONTROL",
"display_name":"Control Wi-Fi AP","url":"/command/wireless/ap/control",
{"key":"GPCAMERA_INFO_VERSION_ID",
"display_name":"Version","url":"camera_version",
{"key":"GPCAMERA_NETWORK_VERSION_ID","d1��öñéMe�ˆ��Ž�� X�isplay_name":"Version","url":"bacpac_version",
{"key":"GPCAMERA_BATTERY_LEVEL_ID",
"display_name":"Battery Level","url":"camera_battery",
{"key":"GPCAMERA_SDCARD_CAPACITY_ID",
"display_name":"SD Card Capacity","url":"sd_card",
{"key":"GPCAMERA_TAG_MOMENT",
"display_name":"Tag Moment","url":"/command/storage/tag_moment",
{"key":"GPCAMERA_RC_PAIR",
"display_name":"Pair with Known RC","url":"/command/rc/pair",
{"key":"GPCAMERA_SSID_SCAN",
"display_name":"Start Wi-Fi SSID Scan","url":"/command/wireless/ssid/scan",
{"key":"GPCAMERA_SSID_LIST",
"display_name":"Wi-Fi SSID Scan Results","url":"/command/wireless/ssid/list",
{"key":"GPCAMERA_SSID_SELECT",
"display_name":"Connect to Wi-Fi SSID","url":"/command/wireless/ssid/select",
{"key":"GPCAMERA_SSID_DELETE",
"display_name":"Delete Wi-Fi SSID from Known List","url":"/command/wireless/ssid/delete"
,"status":{"groups":[{"group":"system","fields":[
{"id":1,"name":"internal_battery_present"},
{"id":2,"name":"internal_battery_level"},
{"id":3,"name":"external_battery_present"},
{"id":4,"name":"external_battery_level"},
{"id":5,"name":"current_temperature"},
{"id":6,"name":"system_hot"},
{"id":8,"name":"system_busy"},
{"id":9,"name":"quick_capture_active"},
{"id":10,"name":"encoding_active"},
{"id":11,"name":"lcd_lock_active"},
{"id":45,"name":"camera_locate_active"}]},{"group":"app","fields":[
{"id":43,"name":"mode"},
{"id":44,"name":"sub_mode"},
{"id":12,"name":"xmode"}]},{"group":"video","fields":[
{"id":13,"name":"video_progress_counter"},
{"id":46,"name":"video_protune_default"}]},{"group":"photo","fields":[
{"id":47,"name":"photo_protune_default"}]},{"group":"multi_shot","fields":[
{"id":48,"name":"multi_shot_protune_default"},
{"id":49,"name":"multi_shot_count_down"}]},{"group":"broadcast","fields":[
{"id":14,"name":"broadcast_progress_counter"},
{"id":15,"name":"broadcast_viewers_count"},
{"id":16,"name":"broadcast_bstatus"}]},{"group":"wireless","fields":[
{"id":17,"name":"enable"},
{"id":19,"name":"state","levels":["pair_status"]},
{"id":20,"name":"type","levels":["pair_status"]},
{"id":22,"name":"state","levels":["scan_status"]},
{"id":23,"name":"scan_time","levels":["scan_status"]},
{"id":18,"name":"current_time","levels":["scan_status"]},
{"id":28,"name":"pairing"},
{"id":26,"name":"remote_control_version"},
{"id":27,"name":"remote_control_connected"},
{"id":31,"name":"app_count"},
{"id":24,"name":"provision_status"},
{"id":25,"name":"rssi_bars"},
{"id":29,"name":"wlan_ssid"},
{"id":30,"name":"ap_ssid"}]},{"group":"stream","fields":[
{"id":32,"name":"enable"}]},{"group":"storage","fields":[
{"id":33,"name":"sd_status"},
{"id":34,"name":"remaining_photos"},
{"id":35,"name":"remaining_video_time"},
{"id":36,"name":"num_group_photos"},
{"id":37,"name":"num_group_videos"},
{"id":38,"name":"num_total_photos"},
{"id":39,"name":"num_total_videos"}]},{"group":"setup","fields":[
{"id":40,"name":"date_time"}]},{"group":"fwupdate","fields":[
{"id":41,"name":"ota_status"},
{"id":42,"name":"download_cancel_request_pending",
"services":
{"live_stream_start":
{"version":1,"description":"Start real-time A/V stream using LTP.","url":"/gp/gpExec?p1=gpStreamA9&c1=restart"},"live_stream_stop":
{"version":1,"description":"Stop real-time A/V stream using LTP.","url":"/gp/gpExec?p1=gpStreamA9&c1=stop"},"media_list":
{"version":1,"description":"Supports listing of media on SD card.","url":"/gp/gpMediaList"},"media_metadata":
{"version":1,"description":"Supports extraction of metadata from a particular media file.","url":"/gp/gpMediaMetadata"},"platform_auth":
{"version":1,"description":"Supports OAuth2 cross-client authorization.","url":"/gp/gpPlatformAuth"},"fw_update":
{"version":1,"description":"Supports client-assisted Over-the-Air firmware updating.","url":"/gp/gpUpdate"}}}
###Rumors NO/Yes
#####DGISE:
"First of all GoPro Hero is a compact, rugged, lightweight (less than 100 grams) action camera with a special attachment for anything (boards, kiteboarding, surfing, windsurfing, helmets, ski poles, cars, bikes, BMXs and other that can be in motion). Everyone will be able to enjoy hours of video about your achievements and exciting emotions in 4K quality. YES
GoPro Hero 4 is really capable of recording video in 4K resolution at a speed of 30 frames per second YES, 1080p at 120fps YES and 720p at 240fps YES, which became possible with the advent of the new SoC Ambarella A9 chip (dual A9 ARM Core ® CortexTM-A9 processor 1GHz with FPU accelerator) YES for advanced applications, wireless connection YES and streaming video in social media YES.
GoPro Hero 4 will also come with a 13-megapixel photosensor NO and a completely new lens for shooting in dark YES. Multi-Exposure YES and HDR WDR tone mapping NO, electronic image stabilization YES, also improved MCTF NO. Dual sensor interfaces 12-lane SLVDS/HiSPiTM/subLVDS NO, 4-lane NO, remote viewfinder playback which is extremely easy to use NO. You shouldn’t to have special technical knowledge or skills to do it. GoPro Hero cameras are amazing because they have a waterproof housing with a flat lens for shooting under water (up to 60m). Built-in Wi-Fi module, USB & HDMI - the only thing that brings it closer to homeliness. The camera has the ability to capture still images during video recording and perform encoding H.264/ BP / MP / HP Level 5.1 and MJPEG.
GoPro Hero 4 will hit on shelves in October 2014 YES (?!?!?). Action Cameras of GoPro have become extremely popular as an excellent way to capture high-quality video at high speeds relative to the price that usually is $340."
#####Christian Today (random, more than 10 articles about HERO4 in that page):
Extreme sports enthusiasts and adventure seekers know that nothing beats a GoPro when it comes to recording live-action footage, as the camera is known to perform splendidly whatever the conditions may be. Whether it's attached to the helmet of a baseline jumper, or strapped onto the handlebars of a bike going on rough terrain, it's guaranteed to produce videos with amazing quality.YES This is the reason why fans of the brand are eagerly anticipating the latest version of the camera, the GoPro Hero 4. YES
According to Dgise.com, the GoPro Hero 4 can record in 4k resolution at a speed of 30 frames per second. YES It will also come with a 13-megapixel photo sensor, NO which is a new lens that can enable the user to shoot videos or take pictures in the dark, YES electronic image stabilization, YES and an improved MCTF, NO among others. It will also have WDR tone mapping,YES plus Wi-Fi capabilities with remote viewfinder and playback functions. YES
The new camera will also let the user record videos at a lower resolution, which results in faster video capturing, ideal for extreme sports. And yes, the camera is waterproof. YES
It is also expected to weigh less than 100 grams, ? and because it is an action camera, it includes a unique attachment that can clamp to almost anything such as skateboards, surfboards, ski poles, bikes, cars, and basically anything else that moves. YES
Aside from all these, there are rumors that the Hero 4 will be equipped with two lenses for filming in 3D, but this has not been confirmed. WTF? NO
The GoPro Hero 4 will reportedly be priced at $340 NO and is expected to be launched on October 2014. YES
###DATA FOR DEVS:
Example: C:\Jenkins\workspace\Banzai-Release\BANZAI\app_control\picture\test_pic_capture.c
- *C:* is the internal camera memory drive, like in windows os
- Jenkins is a oracle software that acts like a user
- workspace is the main dir inside Jenkins
- Banzai-Release is the code name for the HERO4 (Banzai)
- BANZAI HERO4 codename
- app-control controls of the camera
- picture picture dir with lots of .c code
##Reddit and leaked info
User on reddit, who is a sport shop employee (not given any personal data to protect privacy) posted a picture clearly seen camera model, new bacpacs and price: picture
Other user wanted to buy a gopro and the shop employee confessed that there was a GoPro HERO4 Black Adventure Edition around the corner.
With the GoPro HERO4 so near shops got the HERO4 camera to stock, and unofficial GoPro company Smartree leaked the sketches of the HERO4. See megathread: http://www.reddit.com/r/gopro/comments/2hg0rm/hero4_megathread/
gopro 4 never supported 3d hero system (unfortunatelly). Please correct that part.