Psinewave 12:50pm, 9 June 2008
Hi all,

Here's my newest way of getting a sync signal from my camera to my strobes!

Commander Photon Lives!

I call this the Commander Photon system! ("Command the photon" ... get it? *groan* )

Originally I was going to implement a Strobit (see here and here) and in fact the hardware is quite capable of running the Strobit protocol. However, whilst the Strobit protocol is very well thought out, there were some things I wanted it to do that just wouldn't have fit into the existing framework so I reluctantly decided to go my own way.

These are just initial prototypes to get the software sorted, built on general purpose development boards (being able to output debugging messages to a console and being able to type commands in from a keyboard makes developing microcontroller code SOOOOO much nicer) but the next prototype will be small enough to fit INSIDE that Minolta Program 4000 AF flash you see in the picture (in the space that the AF assist lamp used to sit in) and will be powered off the flash's onboard battery.

Here are some of the highlights of the proposed system - items in bold already verified on the prototype:
- Legal ISM band at 915MHz (at least in Australia and the US, haven't checked Europe but if it isn't it's easy enough to switch modules)
- Fast('ish) sync (current version does 1/160 easily and reliably and 1/200 most of the time, should be possible to improve)
- Minimal (make that no?) false triggering (at least the one sitting next to me has been switched on all day and hasn't fired incorrectly once - my PT-04s would have fired a pile of times by now)
- Standard batteries (2xAAA)
- Usable range (rained most of today, I'll do a range test tomorrow, I'd be surprised if it doesn't make 50m line of sight)

And perhaps a couple of surprises - items in bold are currently working on the prototype! Others are planned.
- Control the power of the flash from the camera (for flashes that support a quench signal - such as the Minolta Program 4000 AF - also working on making it control some Sunpak PZ40X flashes I have)
- Each unit can be a member of one or more of up to 64 6 groups (so a flash can respond to a signal on more than one group and the camera can trigger more than one group at a time)
- Any unit can be receiver or transmitter (except of course for those built into flash units) at the same time
- Over 200 different channels (that is, 200 channels, each with 6 groups)
- Channels can be set in the field without computer reprogramming
- Units can relay signals (so if you say need to go round a metal object and the receiver can't see the transmitter, simply put a 3rd unit somewhere where it can see both and set it to relay)
- Any unit can control the camera with half/full press (and when the camera fires it'll trigger the relevant units in sync)

The system is based around an Atmel AtMEGA series microcontroller (AtMEGA64 in the prototype, a smaller AtMEGA8 L-series in the final as it'll run at below 2.8V) and a HopeRF RF12B/BM radio module (which will also run at below 2.8V). And unless your flash requires high voltage sync, apart from a power supply those are literally the only components you'll need!

At this stage it's still very much a prototype and it'll be a while before the software is ready to use with any great seriousness (although I will be using these at the Sydney Strobist SYD-SA4 meet this weekend!) let alone any thoughts of considering contemplating preparing to evaluate the prospect of trying countenance the possibility of putting together a kit ... but I've been surprised at how smoothly this has gone so far so if the demand is there, who knows! :-)

Incidentally, if you've ever played with a microcontroller, there's seriously no need to wait for this (and you could probably do a better job than I've done so far) - the radio modules are (when I got them) $3.30 USD each (plus $20 to ship up to 40 of them) straight from HopeRF, Atmel micros are a few dollars from your local supplier (if you don't have one or they're charging an arm and a leg and you don't mind slightly iffy service, try Futurlec), the circuit is so simple you don't even need a circuit board (I'll be wire wrapping my next prototype directly onto the pins of the micro and holding the lot together inside the flash with a few spots of hot glue) and all you need to program the micro is a computer with a serial port, PonyProg, a few bits of wire, a few resistors and a transistor.

EDIT: Whoops, that's either 6 groups of multiple membership (any device can be in one or more) or 64 groups of single membership ...
Faralla 10 years ago
Wow, this looks very promising. I didn't even hear about the strobit project before, but was about to order myself a set of cactus v2s.
But this projects seems like much more fun ;)
Do you have any more details already?
After a quick research it seems, that I only can get my hands on some RFM12 transceivers. the only differnce to the RFM12B seems to be the input voltage range. Can you verify this? And do you think these can also do the trick?

fumbling cat [deleted] 10 years ago
Oh man, the relay mode is a absolute must have!!!

You know what that means :) :) :)

Great stuff!!
Psinewave 10 years ago
You can get the RFM12B direct from HopeRF by following the link I posted (it's on the left under "Integrated FSK modules" and directly under the RFM12 link) ... I've not used the RFM12 so I don't know if it's compatible but if you've already got some I've got no reason to suspect it won't work (although it might use a different protocol).
elv0000 10 years ago
That looks great how it is now, but its a little hard for the rest of us to get excited when we can't do anything with it (like the strobit).

Is there any way possible you could pre program the bit that needs the code and just sell that and give instructions on what else you need to buy and how to put it together? (Just for basic flash triggering no power leves etc).
Psinewave 10 years ago
Well at this stage it's working on an AtMEGA64 prototype board, which is complete overkill if you just want a flash trigger ... my order from Futurlec with the AtMEGA48V's came in a couple of hours ago, once I get that up and running I'll post a full code listing for the basic trigger plus instructions on what to buy and how to put it together ... the basic trigger with groups, etc. will certainly be GPL opensource (and if I end up making it also talk Strobit it'll need to be GPL on principle anyway), still haven't decided with the flash power stuff or the "other" stuff that I'm working on :-)

I'll see what I can do about selling programmed chips but at the end of the day, it's so easy to program these things with free/open source software and a programming cable can be made for a dollar worth of components so it might well not be worthwhile (especially as I'm in Australia so shipping to most people will be non-trivial). If you already play with electronics, it really is a lot easier than it might seem at first! :-)
fumbling cat [deleted] 10 years ago
When will one be available for beta testing? :)
Faralla 10 years ago
Psinewave, I was looking at HopeRF, but didn't find any shipping information to germany.
Psinewave 10 years ago
They don't give any pricing details there - you need to add the devices to the cart, tell them where you are and go "request quote" and they give you the shipping details in an email. You don't get an answer instantly from an automated system but you do actually get to deal with a real person who actually answers your questions, which is rather refreshing :-)
Psinewave Posted 10 years ago. Edited by Psinewave (member) 10 years ago
Well I've done a bit more range testing ... I can quite safely say this will go through 2 floors of steel reinforced concrete quite reliably at settings that sync at 1/160 (and well away from windows/stairwells so the signal can't cheat) ... also goes the full length of our office cubicle farm through people, metal venetian blinds and whatnot ... it's only maybe 20m so not a good test (although in the same environment my PT-04 eBay specials only went halfway and even then unreliably) but it's a good sign I think! :-D

I guess the big test will be on Sunday at the SYD-SA4 meeting! :-)
fumbling cat [deleted] 10 years ago
I cannot believe that this thread got so little response from the group.
Why is that? Because everyone is expecting the friggin' RadioPoopers Junior? Because you said 1/160? I can't get it!
Psinewave Posted 10 years ago. Edited by Psinewave (member) 10 years ago
Well I can quite understand it. If electronics isn't your hobby then this isn't for you. The entry barrier for a RadioPopper Jr, PocketWizard, Skyport, Pulsar, Cybersync, etc. is just cash, pure and simple. The entry barrier for a CommanderPhoton, Strobit or similar is not so much cash (the parts being way less than a Skyport or the like) but more patience and skill with a soldering iron.

I'm increasingly finding the intersection between that and photography to be less than I expect.

Which is fine with me ... if everyone was running around with homebrew triggers that can do everything a Multimax can do and more, it'd make me less cool! ;-P
brettmaxwell 10 years ago
i dabble with electronics and know what you mean regarding many things not being as hard as they initially seem. this is another one that seems too hard for me. i would love it if you put up a webpage or blog with detailed instructions!!
Psinewave 10 years ago
I'll put up detailed instructions once I've got the version working with the final set of components (specifically an AtMEGAx8 series) - it's currently running off an AtMEGA64 which is overkill. My target circuit though is almost exactly like the reference example circuit that HopeRF provides.

I'm a little flat out with "real life" at the moment so apart from SYD-SA4 this Sunday my Strobist stuff is probably going to have to take a back seat ... but hopefully this will be up soon! :-)
rudy__ 10 years ago
Zedooo wrote:
I cannot believe that this thread got so little response from the group.
Why is that? Because everyone is expecting the friggin' RadioPoopers Junior? Because you said 1/160? I can't get it!

Why would anyone be that interested in this project? Is it going to save them any money? Not likely. Very few people are technically capable of pulling this off successfully.

And yes the stated 1/160s shutter speed is not very good. The ebay triggers can do as high as any curtained camera can do. If they have a good RF link they will have only a 640uS delay in the trigger pulse.

I find the project interesting but I know what it could take to get it done. I have been designing electronics for manufacture for over 25 years. Considering the amount to get this done you would be better off buying a decent set of radios. Only if you would rather spend you time making electronics rather than another hobby does this make sense.
Psinewave Posted 10 years ago. Edited by Psinewave (member) 10 years ago
I'd like to point out BTW that whilst I quote 1/160, it is very nearly able to do 1/200 with just the faintest black bar at the top - and I'm using a very "dumb" protocol (I send the command byte 3 times to guarantee it isn't spurious or corrupt, combined with preamble, sync, etc. this ends up being 9 bytes), if I use a shorter packet 1/250 would seem quite doable. The eBay triggers I have do 1/250 on a good day but they're all over the shop most of the time and I can really only count on them to give me 1/100 with any measure of reliability (and that's if they trigger at all - which is a different matter entirely) - I understand they're analog and the receivers go "flash" when they see a signal at a particular frequency so this doesn't surprise me that much.

But yes, like I said, if you don't enjoy tinkering with electronics, buy a commercial unit. You'll beat your head against walls less (unless you're unlucky enough to get one of the dud Cactii in which case you'll probably beat your head more). A bit like why I can't understand why people bother knitting sweaters when you can just go buy one and be done with. ;-)

If however like me you DO enjoy this as much as you do taking photos, you can not only save money, you can also make them do pretty much whatever you like with a little bit of C code! :-D

Oh BTW Rudy, I was rather amused ...
"Why would anyone be that interested in this project? ..."
"I find the project interesting ..."

I guess you fall into that wonderful intersection of photo geeks and electronic geeks as well huh? :-D
Psinewave Posted 10 years ago. Edited by Psinewave (member) 10 years ago
OK just did a range test, with current settings (57kbps, 9 byte message - shouldn't need that but haven't gotten around to figuring it out yet) I got to 80m (262 feet) clear line-of-sight over grass before I got unreliable triggering (transmitter at shoulder height, receiver at about 1m off the ground).

I'm sure with better antenna placement I could probably go a little further (the antenna was against my body - I can see why the antenna on a PocketWizard sticks up the way it does!) but even without it, I can't see myself needing that sort of range anyway.

Our building also has a wall that's covered in a metal grid (supposed to do double duty as an architectural feature and a guard against the morning sun) with a spacing of about 30x150mm and a tree directly in front of that ... shooting through the whole thing cut my range down to somewhere around 35-40m ...

I'm sure I could get better range if I dropped the transmit rate (and hence lowered the sync speed) - at the lowest of 1.5kbps (I'd guess I'd be syncing at 1/100 or thereabouts) these things are rated to 300m (almost 1,000 feet!) ... maybe it might not be a bad idea to make this selectable so you can choose insane range or high speed sync (I can't see many situations where you'll need both - and if you do there's a decent chance you're a pro in which case you'll have some PocketWizards!).

Overall, for what I've spent in time and money on the project so far, I'm pretty pleased. :-D
ripe images 10 years ago
interesting project. even though i know very little about electronics. I like to hear about the results that you have gotten from your own project. I always like to know why things work and how it does what it does. and for you to explain things the way you do shows me a little bit on how things like this work. thanks
fumbling cat [deleted] 10 years ago
You're the man, Psinewave!
Jon_Senior 10 years ago
If you're using the HopeRF units, why are you broadcasting at 57kbps? One of my interests with these units was the higher broadcast speeds, which will naturally lead to a faster sync speed. Does the high speed really knock the distance down that much?
rudy__ 10 years ago

Oh BTW Rudy, I was rather amused ...
"Why would anyone be that interested in this project? ..."
"I find the project interesting ..."

I guess you fall into that wonderful intersection of photo geeks and electronic geeks as well huh? :-D

Enough to understand and appreciate the scope of the project but not enough to do it. If I was retired and had a lot of time on my hands then I would be interested in doing something like this.

You are right in that anyone doing this would be doing it for the same reason as someone who knits a sweater. You making you radios is your hobby and you get pleasure out of the accomplishment. Good for you. Most other people just want an inexpensive tool to do their own photography.
relu.rori 10 years ago
Totally agree with the hobby/accomplishment idea. This looks like fun.
Psinewave Posted 10 years ago. Edited by Psinewave (member) 10 years ago
@Jon: I did a test a few days ago with how fast I can sync with different bitrates and different length packets. Note that I'm using pretty much the same settings as in the example code that HopeRF provides which are almost certainly conservative, I'm sure there are tweaks to change this (these modules have a metric truckload of settings you can change via commands through the SPI interface including modulation bandwidth, bitrate, power, filter sensitivities, etc.) but I wanted to get something working quickly, then improve it once I have a working system. Some of these settings were also run up on an oscilloscope to get the delays.
// 1B = 12500 syncs to 1/100 with 6 byte packet
// 08 = 38314 syncs to 1/160 with 6 byte packet, 6 byte delay 3.26ms, 7 byte delay 2.64ms, 8 byte delay 2.84ms - 3.58 (no, this isn't a mistake!)
// 06 = 49261 syncs to 1/160 with 6 byte packet
// 05 = 57471 syncs to 1/160 with 6/7 byte packet (almost 1/200)
// 04 = 68966 syncs to 1/160 with 7 byte packet (almost 1/200)
// 04 = 68966 syncs to 1/200 with 6 byte packet
// 03 = 86207 syncs to 1/200 with 6/7/8 byte packet (just), 8 byte delay 1.9ms
// 02 = 115200 syncs to 1/200 with 6/7/8 byte packet

I haven't done a range test at different speeds but I'm finding that as you go up in speed, you also get more noise matching the synchronic pattern - which means you get more false packets which means you get a greater chance of false triggering so you need a longer packet with more checking in it. 57kbps seemed like a reasonably happy medium where things sorta worked so I left it there for the time being whilst I tackled other things.

Now the thing is, there is some weirdness where at some settings, a change in packet length (for short packets - 6-9 bytes or so) doesn't change the amount of time it takes for the packet to go across and sometimes a short packet actually takes longer to fully receive than a long one (I'm using a hardware interrupt on the receiver and done various things to make sure the sync line is going down the moment I get a full packet so it shouldn't be delays in the software). I'm suspecting there might be some buffering happening somewhere on the HopeRF side and with the short packets I'm using, it's delaying to make sure there isn't any more coming before it triggers the interrupt - I haven't had a chance to have a look into it yet (an afternoon with an oscilloscope should tell me pretty conclusively) but I'm sure there are a variety of ways of making this sync faster (continuous transmission, checking buffers, seeing if there's a way of adjusting modulation settings to reduce noise, etc.). In fact, as I understand the Strobit boards, at the same bitrate and packet length, sync faster than my current settings do so I know that I can go faster with different settings (I haven't had a good look at what settings they're using as it has been a while since I've read PIC assembler but I should probably have a peek when I get a moment).

Still, I figure it's more important to get the whole system, board design, controller (I'm having all sorts of interestingness re-learning how to work with MCUs without bootloaders!), etc. up and running before I tinker with the software to get the sync speed up (because that won't require a change in hardware) ... so I'll probably be stuck on 1/160 or 1/200 for a while yet.

@ripe images, Zedooo, rudy_216, relu.rori, thanks for the encouragement! I guess the point about me telling people this isn't that hard is that if you're already interested in electronics but think this is too hard, it might well not be. Of course, if you're not that keen on sitting over a soldering iron and listening to your meter go "beep" as you try and find your broken trace, well, rudy is right, this isn't for you :-)
rudy__ 10 years ago
I haven't looked at the details of this radio but by experience (limited) with radios for data transmission is that there is buffering and the radio will delay a send in order to fill the set packet length. If it does not get enough to fill the packet it will eventually send what it has. This might be why you are getting the delay.

At work we are currently adding data radios to our communications network of our products. We normally communicate to devices with an rs485 serial network. We have a number of different devices with a lot of different packet sizes. The protocol and timing was defined years ago. Adding in the radios has been one big head ache. We would send out a packet (our device packet) and because it does not match the packet size the radio wants to see we get delays or gaps in the data when we are back to wire on the other end. Thankfully I'm the hardware guy and the software and firmware programmers have to deal with this.
strobe_flash Posted 10 years ago. Edited by strobe_flash (moderator) 10 years ago
Having seen Psinewave using this today, all I can say is "respect" - the man knows his stuff. Of course it looked totally ghetto because what you see in the pic above is how he uses it at present - but that just added to the mystique, and besides he didn't electrocute anyone :)
shonkathan 10 years ago
I used to design electronic hardware so, yeah "respect". I am now the proud owner of 3 x PWs and so "convenience" makes me happy.

@rudy: I have seen the packet alignment issue you speak of . If this is indeed a feature of Psinewave's device then byte padding could help (shooting blanks) . This follows on to some form of Forward Error Correction (FEC) that takes advantage of standard buffer lengths.
rudy__ 10 years ago
Yes if this is the issue then he can pad the data. Most likely the radio should have a setting for the number of data bytes to to send on. Since there should not (hopefully) be variable data lengths this should be easy to take care of.(if it is the problem)
Psinewave Posted 10 years ago. Edited by Psinewave (member) 10 years ago
Thanks for the support guys! And yes it was great fun ... and I was quite pleased, it never missed a beat during the main event!

Although once we left the pub to do a little more shooting it started playing up (receiver would work fine for a few minutes then stopped responding and needed a reset after which point it would work fine for another few minutes) ... back home it's working perfectly ... I suspect it might have gotten wet (this has to be one of the rainiest photo shoots I've done!) and was getting random shorting somewhere.

Regarding buffering, yup this is bearing all the hallmarks of that (in my timing tests note that the delay goes DOWN when moving from a 6 to 7 byte packet) but the strange thing is the documentation doesn't make any mention of buffering (but then again I've found at least one error in the documentation and it is rather sparse) - it says I should be able to go right down to 3 byte packets (0xAA preamble, sync and payload). I guess it's possible that it WILL send a 3 byte packet but it'll wait until it's sure you're not sending any more before actually doing it. I should be able to get the signal from the module just before the RF modulator stage (you normally send your data to the module via a specific data command on the SPI bus rather than manually bit-banging into one of the pins) so I might try probing that with an oscilloscope and see what it's actually doing. That and have a bit of a play some more with the settings.
madeinoz PRO 10 years ago
Well done Psinewave!!!! Good to see another aussy DIY trigger ;D

I'm was only getting 1/125 on the prototype of the Strobit, this is mainly due to a number of factors, mainly bit banging the SPI interface and a low MCU clock rate, and of course no interrupts, just polled Tx/Rx, so you have gone faster than I have atm. I've not done any more testing as I've been building a new house and just moved in - there goes the free time for the next 2 years......

I'm not too sure what speed Jan was able to get on his M08 that he posted on flickr a few weeks back, but he has sent me all his design files, PCBs, Schematics and source to be put online, so they should be up shortly. Jans is based also based on the Atmega8.

At the higher datarates how are you getting the data out? SPI? I was told by tech support that at the higher datarates you should use the FSK/Data line to send/receive the data and use the FFIT with FIFO interrupt set to 1 bit so it interrupts on every bit received.

Have you tried changing the AFC modes, as there are different ways of handling the Sync Patterns? May help.

When using the higher datarates did you also increase the receivers bandwidth and the transmitter Deviation? as there are recommendations for different datarates this may drop your errors at the higher speeds.

Great work!!!

Psinewave 10 years ago
Hey Stephen, great to hear from you, thanks for the encouragement!

Regarding the 1/125, bear in mind I'm using a much higher datarate than you mention on your website - I'm not getting anywhere near 1/125 at 12,500kbps ... I'm still currently bit banging and polling the SPI interface all the way up to 115,200kbps with pretty much 100% reliability (in terms of MCU to RF12M communications - and across the air within the room), I'm not sure how fast your MCU ran but with the AtMEGA64 I'm using for prototyping this runs perhaps a couple of orders of magnitude faster than the RF12M can send anyway. Still, the next job is to use the proper SPI buffers on the AtMEGA processors ...

I'll have a look at the FSK/Data line as well but the impression I got was that you need to do all the synchronic pattern detection yourself with that ... did the techs say what sorts of problems one should see if one didn't do that?

I haven't changed any of the settings from the example code (except for a few that seem "obviously" wrong and didn't work when I did try them), again that's something I need to play with. You're right, I recon I could get even better range with some tweaked settings.

As for board, etc., well, like you I've been a bit busy with "real life" (although not building a house!), I've got my 2nd iteration prototype board done though (basically the module, AtMEGA168, the switches and connectors I intend to use on the final version and a bunch of wire wrap terminals), when I get time I'll have a play and see how well this goes across!
madeinoz PRO 10 years ago
I've just started playing around with the atmega168 and have not yet hooked up the RF12 to it, my original prototype was a pic16f88 using internal clock, I couldn't get anything over 12000bps, which prompted my email to them. They gave me a list of recommended clock rates and their datarates.

Hmmm you may be right with the FSK/DATA I'll have to have a look at the data sheet again try and to find the email that was their response so will forward it on if I find it. From memory I thought that if using the FIFO then all pattern detection is already done, FIFO will only start to fill when pattern is matched. But used in conjunction with the FIFO interrupt set to 1, anyway I need to look at it's been a while. I'll PM you once I find it as I may be wrong
bilmorfoto Posted 10 years ago. Edited by bilmorfoto (member) 10 years ago
Psinewave, Stephen,

So how are y'all doing with these projects? They're tantalizingly close to my reach, but I need just a little more detail to dive in. When Stephen said he was going with Atmega168 I picked up a development system and started relearning microcontroller development . I've been having a wonderful time off in Arduino-land in the meantime, but it would be great to get back to the flash project. I'm comfortable with non-SMT soldering and C programming, but bit-banging the interface to the radio is a bit out of my reach.

Is anybody close to a known working parts list, schematic, and a library for the radio stuff?


madeinoz PRO 10 years ago

I'm currently been playing in Arduino land as well :) At the moment I'm playing around with Arduino Decimilla and the RFM12 on a shield., but will move to a modified ArduinoBT PCB design (BT module replaced with RFM12). The Eagle3d pic is up on the blog for some idea of what it may look like.

I have a RFM12 library that I'm playing around with at the moment, I have not written it but found it here,, I've made some changes for the ATmega168.

fascist 10 years ago
I was so happy when I stumbled onto these projects yesterday. I am currently in arduino-land working on a recirculating mash controller for my home brewery... a bit delayed at the moment as I have to actually build the heat exchanger to get any further, but I'm infatuated with this project too now. I'd love to get something like this going for my Alien Bee's. I may have to order a bunch of RBBB's or something and have a crack. I'm fairly confident in C when I get the uninterrupted time to work on it.

Thanks for the inspiration!
amusing structure [deleted] 10 years ago
A bit offtopic, but i was unable to find the info elswhere.
About how big is the trigger voltage of the Minolta AF 4000?
Psinewave 10 years ago
The AF4000 will trigger off TTL levels, from memory though open circuit it's something like 3 or 4 volts but with a lot of internal resistance.
susanparison Posted 10 years ago. Edited by susanparison (member) 10 years ago

Fine Stuff
lole_adole 8 years ago
Nikon D3100 says:

peferct group, thank you anny for inventation
Groups Beta