Monday, April 8, 2013

Boy Can Life Take You Away From Your Projects!

Brief Update: Been busy with life and other projects. Status of the project thus far:

  • Remote power level control via toggle shifting works.
  • Interfacing with RadioPopper power dials works.
  • Special functions via different Radio Popper level dial works.
  • LP160 flash duration not controllable in a SYNC/QUENCH fashion. :( Not without replacing the trigger circuit with your own IGBT trigger circuit or a more energy wasteful quench bank. :(

Since my last post, the LP160 has been discontinued. Remaining units have been priced at $179 at the two online stores selling the LP160(s) that are left. 

So my development into controlling and modding the LP160 will be shelved until when LumoPro's next model comes out. 

In the meantime, will be focusing on features on the RF triggers I built to interface with the LP160(s). :)

Sunday, November 11, 2012

Progress! Radio Popper and LP160 are talking!

After months of tinkering, taking voltage readings to figure out which cables went to ground and other fun stuff, I've got the Lumopro LP160 flash unit talking with the Radio Popper JRX Studio receiver.

The original goal was to directly control the IGBT circuit so that the SYNC / QUENCH pin functionality would work with the Radio Popper(s). However, this proved to be a real pain in the rear end. For one thing, there isn't much room for cables to be routed. For another, dealing with the IGBT means dealing with dual voltages, and I just want to do fairly straight up wiring and control.

Bypassing the LP160's builtin controller also means losing or having to re-implement much of the functionality of the LP160 itself. In which case... I was better off building my own flash from scratch.

So, after some tinkering and reworking my original idea, I have basically gotten the Radio Popper JRX receiver to talk to the LP160. What follows is a brief video showing me operating the LP160 through the Radio Popper JRX transmitter:

What is shown in the video:

  • LP160's display panel indicating current power levels and zoom levels.
  • LP160's flash is working.
  • With the Radio Popper JRX transmitter dial being turned, the power level on the LP160 likewise is updated. The update occurs through the LP160's power toggle, so when the power level needs to be higher than where it is at, the power level setting toggles past the end and wraps around.
  • SYNC from the transmitter works through the setup.
  • With the Radio Popper power level setting set to near minimum, I have configured my interface to allow the toggle'ing of the LP160's zoom setting.
Some bugs that made it into this version of my hardware/software:
  • Accidentally set the limit for the power level at 1/32 power, when the LP160 can go to 1/64 power.
  • Occasionally, the power toggle will skip, resulting in extra rounds toggling.
The todo(s) still remaining:
  • Getting everything to fit neatly inside of the LP160. 
  • Making sure that my solder points/etc. are clean and durable.
  • Create the pinouts to allow me to reprogram the circuit without having to take apart the LP160 again... which, btw, is a major pain. :(
Anyways, that's the update thus far. Since the Radio Popper JRX has 3 groups of power, this basically allows me to control multiple flashes' power levels, even if they don't support quench pins! This mod also allows me to change the gearing of the Radio Popper's dial. Ie, with the right calibration, I can set different functions for different power dial settings. 

The goal is to get it so that I don't need to manually change the power on my manual hot shoe flashes. With this mod, I can add the interface functionality for a few dollars per flash unit, in parts. Though I need to figure out an easier way to get into the innards of the flash unit... as it stands, the LP160 requires you to disassemble the flash head assembly before you can open the main body of the flash. 

Side note:
  • The times when I hit the SYNC button and nothing happens, there is apparently a delay built into the Radio Poppers, where the SYNC test button can't be hit more than once every half a second or so. However, tests on-camera, validates that the sync works normally when not using the SYNC test button. 

Thursday, February 9, 2012

AVR ISP Flashing ATMEGA328 with Arduino UNO Boards

Okay, so as part of my photo gear hacking fun, I'm working with Arduino UNO boards. Why? Because they are fairly straight forward, fairly forgiving, and have an awesomely easy to use interface.

So, looking around, you can pickup ATMEL atmega328p-pu MCU(s) for a pretty low price. If you want the Arduino bootloader pre-flashed, that's an extra $1+ per chip. Figuring I can just do it myself, I went a bought a bunch from JameCO of California.

Arduino UNO: The AVRisp exception

So, on the site, there is an awesome page for how to use an Arduino board as an AVR ISP programmer for another Arduino:

However, at the top of the page, there is a gotcha:

NOTE: Currently, you cannot use an Arduino Uno as an ISP programmer because the optiboot bootloader does not support this sketch. A revision for this is in progress.
So... after hitting many sites, building countless ISP or bypass circuits on breadboards, and basically banging my head against the wall, I visited this site for the umpteenth time:

And instead of trying to build a breadboard of the ISP circuit, I actually did something reasonable: I read the source code notes provided by WestfW, who wrote the OptiLoader, and you will note it says:

// If the aim is to reprogram the bootloader in one Arduino using another// Arudino as the programmer, you can just use jumpers between the connectors// on the Arduino board. In this case, connect:// Pin 13 to Pin 13// Pin 12 to Pin 12// Pin 11 to Pin 11// Pin 10 (of "programmer") to RESET (of "target" (on the "power" connector))// +5V to +5V and GND to GND. Only the "programmer" board should be powered// by USB or external power. 

OMG!! Well, since I actually had 2 Arduino UNO boards, I made the hookups and plugged in a handle AC adapter. Voila! It flashed the chip in the other board! I tested uploading the blink sketch to the newly Arduino turned chip, and it accepted it. Amazing!

So, for the countless folks out there who are otherwise happy owners of the Arduino UNO board and just want to turn a blank atmega328 into an Arduino atmega328, give OptiLoader a try. It rocks.

Note, the OptiLoader sketch handles putting the optiboot loader onto more than just atmega328(s). Check out the source code for a complete list.

Happy photo gear hacking!

Monday, February 6, 2012

LumoPro 160 Hacking Update #1

So, it's been months and I've had a chance to look over and take apart the LP160 I had on hand.

Some thoughts:
  • The LP160 internals is comprised of 2 main circuit boards.
  • One board contains the MCU that controls the interface, timings, etc. This board is almost completely made up of surface mount components.
  • Another board is the charging and trigger board. This is made up of some power components and handles the 325-330V generation as well as the high power IGBT that sends and cuts off current to the xenon flash tube.
  • A mini board in the flash tube array contains the xenon flash tube as well as the trigger voltage transformer.
After having chopped up and cut the leads between the boards, I started working on the charging circuit board. I was able to get the board to power up and charge a capacitor. However, it looks like there was some monitoring magic that was going on to cut off power. I was also not able to get the IGBT to trigger via shorting leads from the jumper block. Bummer.

Additive, Not Subtractive

So my plan of attack is now to figure out a way to implement a Quench/Squelch/Stop pin or the LP160. This would essentially make the LP160 compatible with things like the Radio Popper JrX studio/cubes. This would effectively implement method #2 I had originally thought about, where we bypass the MCU of the LP160 completely, with one exception. By implementing a Quench pin, we would leave the original MCU, manual power, and slaving behaviors intact.

Why A Quench Pin?

A quench pin is the TTL method of flash power level control in the "old days". This usually involved a thyrister as well as some kind of optical feedback. In current day usage, the quench pin is a great way of allowing for universal remote power level control. The only gotcha is that you would need to figure out the timings to apply for a given model of flash. Units like the 285HV units and various Nikon/Canon speedlites, are well known and have published timings. For the LP160, that would need to be implemented as well. Not hard, but it needs to be done to get the power levels right.

How To Add A Quench Pin To The Lumo Pro LP160?

This is something I'm working on right now. I have one LP160 that is completely dismantled and will probably never work right again. *sigh* I also have one LP160 that is intact, which I can work on customizing.  The goal is to determine the point of entry to install a stereo audio jack to implement a sync/quench pin functionality which is compatible with PocketWizard triggers and RadioPopper triggers.


I've ordered a pair of Radio Poppers ala the JRX transmitter/receiver pair. This will be used to hook up to the LP160 for manual sync while I figure out how to add the quench pin to the LP160 for remote power control + sync.

Saturday, April 9, 2011

Fun With Python and Capacitance Values

In line with my work in modifying my flash unit, I was wondering how much capacitance I could get out of a home made paper foil roll capacitor.

As a goal size, I used a typical soda can:
  • 1.31" (33.274mm) x 4.75"(120.65mm)
For the materials, I'm considering standard kitchen aluminum foil and normal printer paper with the following assumptions about thickness/etc:
  • Aluminum foil assumed to be 0.025 mm in thickness (air/water impermeable)
  • Paper thickness estimated to be 0.10 mm in thickness (rounded up from 0.097)
  • Resulting Layer thickness = 0.25 mm (2 layers of foil + 2 layers of paper)
Running the calculation, assuming concentric layers of diminishing size until the can is filled:
  • ~133 layers
  • ~1691201 mm^2 in surface area
  • ~449 uF in capacitance (estimated with K=0.30)
That's a good chunk of capacitance, especially considering that paper's breakdown voltage is 200V per mil:
  • 1 mils = 0.0254 millimeters
  • 0.10 mm = 3.937 mils
  • ~787V breakdown voltage
So.. a capacitor that can safely handle 700V with a capacitance of 400uF.

If I can reduce the thickness of each layer and of the insulator layer, I can bump the capacitance to 2200uF!! Wild. But it would be rather big and clunky. ^_^;;

In either case, solving little problems like this is also a great way of learning a language like Python.

Monday, March 28, 2011

Remote Power and Zoom Control and Readouts For LP160


  • To add remote power and zoom level controls to LP160
  • To add remote power and zoom status readouts to LP160
  • To design and implement hardware and software interface to the LP160

High Speed Sync Hack For LP160


The goal of a high speed sync hack is to give the LP160 the ability to sync the flash with cameras using shutter speeds of 1/250th of a second or faster, say... 1/2000th of a second. Various companies call this by different names: hss, fp-sync, etc.  It all amounts to the same thing: instead of one single high power pulse, the flash is strobed at high speed, but at lower intensity.

Why? At shutter speeds below 1/250th of a second, the sensor is completely exposed for a brief period of time, allowing a single short duration pulse to illuminate the scene and then expose the sensor. For faster shutter speeds, this doesn't work, because the second curtain of the shutter starts covering up the sensor again before the whole sensor is exposed... this leaves the black bar at one end of the frame. 
To work around this, you expand the duration of the flash by pulsing it, thus exposing for the entire window and avoiding a black bar edge.