XBEE I/O line passing and Canon Hack Development Kit demo (video)
Ron Czapala
Posts: 2,418
xanadu's panoramic camera project revived my interest in the Canon Hack Development Kit (CHDK).
I wanted to be able to set up a wireless remote sensor which would trigger a shutter release of the camera when movement was detected.
I studied the Martin Hebel and George Bricker "Getting Started with XBEE RF Modules" tutorial to refresh my XBEE knowledge and recalled the XBEE "I/O Line Passing" feature.
I decided to experiment with XBEE I/O Line Passing in junction with CHDK and created a little video of the result.
I used X-CTU to configue the "Base" and "Remote" XBEEs to use two of the digital I/O pins and control two LEDs and also release the camera shutter via the USB Remote cable on the "Base" XBEE.
Neither XBEE in this demo is connected to a microcontroller but I would probably use a propeller and motion sensor to set the input pins on the remote XBEE causing the camera to snap a picture.
Luckily I found an instructables project with example XBEE settings. That person used a servo along with a shutter release cable rather than running CHDK on the camera.
NOTE: I am using Parallax 5V / 3.3V XBEE adapters but the I/O lines (jumpers, LEDs and USB camera cable) are using 3.3V.
(To view in 1080P HD, watch on Youtube)
I wanted to be able to set up a wireless remote sensor which would trigger a shutter release of the camera when movement was detected.
I studied the Martin Hebel and George Bricker "Getting Started with XBEE RF Modules" tutorial to refresh my XBEE knowledge and recalled the XBEE "I/O Line Passing" feature.
You can set up virtual wires between XBee / XBee-PRO Modules. When an RF data packet is received
that contains I/O data, the receiving module can be setup to update any enabled outputs (PWM and
DIO) based on the data it receives.
I decided to experiment with XBEE I/O Line Passing in junction with CHDK and created a little video of the result.
I used X-CTU to configue the "Base" and "Remote" XBEEs to use two of the digital I/O pins and control two LEDs and also release the camera shutter via the USB Remote cable on the "Base" XBEE.
Neither XBEE in this demo is connected to a microcontroller but I would probably use a propeller and motion sensor to set the input pins on the remote XBEE causing the camera to snap a picture.
Luckily I found an instructables project with example XBEE settings. That person used a servo along with a shutter release cable rather than running CHDK on the camera.
NOTE: I am using Parallax 5V / 3.3V XBEE adapters but the I/O lines (jumpers, LEDs and USB camera cable) are using 3.3V.
(To view in 1080P HD, watch on Youtube)
Comments
CORRECTED
I moved the yellow LED from the XBEE on the right (with the "B" label on the PCB) to XBEE on the left (with the "A" label on the PCB)
Also, I moved the jumper on the I/O #1 pin from module A to module B.
Now the jumper on module A will control the RED LED on module B
and the jumper on module B will control the YELLOW LED on module A
I set the DIO Change Detect "IC" value to zero on both XBEEs - apparently it does not need to be set.
EDIT: Turns out that it is best to set both the IC (Change Detect) AND the IR (Sample Rate) values.
The Change Detect should be sufficient, but if there is interference, the Sample Rate adds more reliability that the pin state change will be transmitted and received:https://www.youtube.com/watch?v=CLQEo2Ow1Qs
Here are the XBEE settings I used for the I/O Bi-Directional Line Passing demo.