On the 650D (And I assume others) you can output an IR signal to an external flash to trigger it, and I believe the camera (As well as others) can receive signals too but I'm not as interested in that right now. What I would like to know is if the transmission is hardcoded or can it be accessed through a module or scripting? Is there an API that can let me control it or if not how would I go about writing C code to do so? Thanks.
Nobody suspects the Canon TV-B-Gone
I know there's an IR led (I think it's under the black dot on the hand grip) and the flash-trigger + settings can be read with a IR-transistor with an Arduino.
I don't know where you found this info. It's the first time I read about it and the black dot is an IR sensor AFAIK.
e.g http://www.cnet.com/au/how-to/how-to-use-canons-wireless-flash-system/
and yeah, it seems the on-camera flash somehow triggers it and not the black dot. Maybe it's not IR after all.
It's most definitely not IR and Canon's flash communication protocol (for non-RT devices) is not that much a secret.