Posted on Leave a comment

Mani Wheel Rig

A detail of our open-hardware rig, Mani Wheel, which you can make or buy, is addressed in this article.

In the previous post we published two 360-degree videos of Japanese Cat/Rabbit Islands. These clips are made by using the following hardware and software:


Hardware

  • 6x GoPro Hero 3+ Black
  • 6x MewPro Cable
    Plug’s enclosures removed. A newly designed, dedicated PCB disk is utilized to simplify solder works.
  • 3D printed top/bottom disk lids made of ABS
    (STL/IGES files are downloadable from our GitHub repo.)
  • GoPro Dual Hero
  • 2x MewPro Genlock Dongle
  • Adafruit Bluefruit LE UART Friend – Bluetooth Low Energy (BLE)
    Connected to the serial lines (RxD/TxD) of Dongle #0. And the whole system is controlled through BLE from the terminal application installed on iPhone or PC. (Note: In GenlockDongle source code, the serial baud rate must be modified from the default of 57600 to 9600 for Dongle #0.)

Software

  • Kolor Autopano Video Pro
    Exact sync is detected by the software automatically.
  • YouTube 360 Video Metadata Tool
    This is necessary for uploading 360-degree video to YouTube.

The hardware items are connected as in the following figure:
no-master-6-cam

In addition to the above diagram we actually used

to supply 5V power to Dual Hero and Dongles through the USB connector. However, this can be done by any USB battery pack.

The following is top view of our Mani Wheel Rig:
topview
Two Dongles (black small/large casings) and a Lipo battery can be seen. Next photo shows the inside of Dongles’ casings:
topview2inside
Opening and removing the orange top lid enables us to look inside of the hexagonal cavity consisting of six cameras. There sits a dedicated PCB disk to simplify soldering:
toplidremoved

Note: We can sell 3D printed lids (top and bottom) and dedicated PCB disks starting from 200.00USD. Please ask us for detailed pricing of the items and/or extra soldering charge if you don’t want to do it by yourself.

UPDATE 22 May 2017: We received a STL file from Julien Brault-Chénier at LEOFILMS.CA. Thank you, Julien! The file can be 3D-printed and fit to use in place of our top lid so that the Mani Wheel rig can hold one more camera for shooting the zenith. (The STL file is also downloadable from our GitHub repo.)

Posted on Leave a comment

360° Videos at Cat and Rabbit Islands, Japan

We have uploaded two 360-degree videos shot using six GoPro Hero 3+ Blacks and MewPros.

Note 1. Please watch these clips in HD settings and use the navigation wheel at the top left corner. Currently 360-degree viewing is possible in Chrome, Edge or Firefox.
Note 2. If you are viewing them on iPhone please launch the YouTube app and flick to turn around. Current Google Cardboard app for iOS doesn’t support any 360-degree video view of YouTube yet, meantime with VR glasses as Google Cardboard please try in360Tube app.

1. Japanese Cat Island 360°

youtubeiconiOS: Open this video in YouTube app

2. Japanese Rabbit Island 360°

youtubeiconiOS: Open this video in YouTube app

These footages were taken using our original “Mani Wheel” rig:

Rig holding 6 cameras
Mani Wheel Rig holding 6 cameras

Note 3. We are now preparing for selling parts of the rig. So please wait a few days if you want to buy or make it.

Posted on Leave a comment

First Frame Sync Bug Fixed

The bug caused the first frame asynchronous in either double dongle or no master configurations is fixed now.

New source codes for MewPros and Dongles are always available at our GitHub repos.

Single dongle configuration didn’t suffer from the bug. It always syncs the first frame. But the following improvements for all configurations have been made:

  • Power on camera without crash
  • Shortened stop recording delay
  • I2C and serial command data collisions are well prevented

Example Videos

The following two videos are shoot in no master configuration as in the next figure:
no-master

Video by GoPro #1:

(Download MP4)

Video by GoPro #2:

(Download MP4)

In the videos above you can see a stopwatch command is running in the window (precisely, the laptop is a Mac OSX machine and the command is
while :; do gdate +%s.%6N; done
to show the current system time again and again in microsecond accuracy).
Using the videos you can check all frames from the first are synced. And if you are very cautious the video by GoPro #2 has extra one frame at the end as compared to the other. But don’t blame MewPro for this extra frame. We can say Dual Hero also sometimes has these kind of extra frames at the end of a footage, and you can safely cut them when editing for your final video products.

Acknowledge

The bug was firstly found by the researchers at Shandong Univ – Virginia Tech (SDU-VT) team. And also some other university researchers and professional videographers pointed out the bug but it was very difficult to fix for us until recently.

Note: The SDU-VT team told us that they published a result obtained by using MewPros:
Matt J. Bender, Hunter G. McClellandy, Andrew Kurdilaz, and Rolf Müller, “Recursive Bayesian Estimation of Bat Flapping Flight Using Kinematic Trees”, AIAA Modeling and Simulation Technologies Conference, 2016-0945, 4-8 January 2016, San Diego, California, USA. http://arc.aiaa.org/doi/abs/10.2514/6.2016-0945 (see VI. Acknowledgements section as there is a mention to MewPro 🙂 )

Posted on Leave a comment

How To Use HVprog2

HVprog2 is an Atmel STK500 clone for programming in HVSP/PP, ISP, TPI, and PDI. This post explains how to use HVprog2.

Note: This and the previous posts are nothing to do with GoPro nor genlock. These discuss some programmers for AVR microcontrollers.

In the previous post we showed a hardware/software mod of original Atmel STK500. Inspired both by Atmel STK500 and its mod we designed a clone programmer called HVprog2.

There already exists another hardware clone of Atmel STK500 whose name is HVprog, and it claims to be able to program in HVSP/PP and ISP. HVprog2 is an improved version of HVprog, thus it has a similar name, and it can actually program AVR chips not only in HVSP/PP and ISP but also in TPI and PDI.

Comparison With STK500 original/mod, HVprog and HVProg2

The below is a comparison chart of AVR programmers:

STK500 STK500 mod HVprog HVprog2
Schematic available no need (*1) available available
Atmel official firmware OK NG OK OK (*2)
ScratchMonkey firmware NG OK NG OK (*2)
Recover RSTDISBL fuse OK OK NG (*3) OK
HVSP/PP, ISP programming OK OK unreliable (*3) OK
TPI/PDI programming NG OK NG OK (*2)

Note 1: STK500 mod is simply made of original STK500 with few chips removed/replaced.

Note 2: We can use Atmel official firmware if the microcontroller is ATmega8535 but TPI/PDI is not possible in this case. If the microcontroller is one of ATmega16/32/64/128 or ATmega164/324/644/1284 then not only HVSP/PP and ISP but also TPI/PDI is possible by using ScratchMonkey firmware.

Note 3: In order to recover the reset disable fuse the target voltage must be controlled. HVprog lacks the circuit for this, thus it’s impossible to unprogram the fuse bit. Moreover, examining STK500 and HVprog schematics we can find the former inverts XTAL1 signal but the latter where the same firmware is used. As a result, the inversion cause timing problems in every session and makes HVprog unreliable.

HVprog2 Overview

Here is the schematic of HVprog2:
HVprog2

If you are going to use ScratchMonkey exclusively then IC2 74HC165 and its bypass capacitor C3 can be omitted. These parts are for hardware version identification only by Atmel’s firmware.

We recommend you to use a DIP IC socket for IC1 because it enables upgrading/swapping the microcontroller in the future.


The following image is a copy of HVprog2 using PCB sold in our shop.
HVprog2

The PCB is designed for thru-hole electronic parts wherever available, and is easy to assemble/solder.

The 6 pins marked JP1 (top right) are for PC connection conveniently aligned for using ubiquitous Sparkfun FTDI breakout board or its clone: If you use 5V version of the breakout then the whole HVprog2 programmer runs in 5V logic, and this is necessary to program in HVSP/PP or TPI. Or using Sparkfun’s 3.3V version then HVprog2 is also in 3.3V logic that matches PDI programming.

The 20 pins marked HV_PROG (bottom right) are for target connections. These pins are ordered to be compatible with those of AVR Dragon. This means we can refer AVR Dragon’s comprehensible documentation for wiring/breadboarding in HVSP/PP.

Software

To burn a software JP2 on HVprog2 board must be set to 1-2 (SELF). Then connecting another ISP programmer to 6 pins marked ISP (near center left) will do the job.

As already stated in the above there are currently two possibilities for HVprog2’s firmware depending on which microcontroller is installed:

  1. ATmega8535: Atmel’s firmware for original STK500
  2. ATmegaATmega16/32/64/128 or ATmega164/324/644/1284: ScratchMonkey

Case 1. Atmel’s original firmware is included in any Atmel Studio 4/5/6/7 packages: The name of the binary is STK500.ebn but the file format is not usable with a usual programmer such as avrdude. We need to convert its format “.ebn” to “.hex” using EBN2HEX.exe before burning the binary to the microcontroller (please google and find a download site for EBN2HEX.exe as we cannot find its official webpage). For your information we set ATmega8535’s fuses as S8535C and CKOPT unprogrammed, SPIEN programmed and SUT_CKSEL=”Ext. Crystal/Resonator High Freq; Start-up time: 16K CK + 64ms”.

Case 2. We use ScratchMonkey. The preparation/compile/upload process is the same way described in our previous post.

Target Connections

HVSP/PP. In either Cases, to program in HVSP/PP we can follow the connections to target described in Device Connection Sheets, AVR Dragon’s manual: Refer the connector named HV_PROG.
Note: No need to connect VCC to JTAG as HVprog2 has no such connectors.


ISP. To program in ISP use the ISP connector (JP2 must be set to 2-3).
Note: The VCC pin on HVprog2’s ISP6 connector is always powered by FTDI’s VCC pin.


TPI/PDI. Since HVprog2 is a clone of STK500 or STK500 mod, avrdude requires to be modified as we did in the previous post.

To program a TPI microcontroller two external 510 ohm resistors are required. The HVprog2 board must be powered by 5V version of FTDI breakout board. And use the connection in the following schematic:
TPI
5V, MOSI, MISO, SCK, and GND are located at “ISP” connector (JP2 must be set to 2-3). And VTARGET is at pin 19 of “HV_PROG” connector, RESET5V at pin 5 of “HV_PROG”, and RESET12V is at pin 5 of “ISP” or pin 18 of “HV_PROG” connector. Use signals in TPI connector of the schematic if the reset disable fuse is not programmed. Otherwise use signals in TPI HV connector since high voltage TPI requires the target voltage to be controlled.

To program a PDI microcontroller two external 510 ohm resistors are required. The HVprog2 board must be powered by 3.3V version of FTDI breakout board. And use the connection in the following schematic:
PDI2
(The parts included in dashdots are unnecessary.)

3V3, MOSI, MISO, SCK, and GND are all located at “ISP” connector (JP2 must be set to 2-3).