Using multiple TTL serial cameras with beagle bone. PLEASE help arduino sucks.

Hi all,

I am working on my graduation project and need advice on using the beagle bone. I want to control up to 6 of these cameras: https://www.adafruit.com/products/397 to take a picture at the same time when my accelerometer detects free fall. I have been using the arduino UNO and have been able to take 2 pictures at the same time when free fall is detected, but now when i connect another camera the arduino can’t handle it. Could this be done with the beagle bone? Is there a way to transfer my arduino code to beagle bone, it will be great since it has taken me a long time. Please help, i will greatly appreciate it.

Its going to be pretty difficult to get a 38,400 baud “take photo” command out to six cameras at once when you get a signal from your accelerometer. Without some real-time patches, Linux may have a response latency of 100 msec for a user-space program and with them 50 usec for an interrupt-driven kernel-mode driver. (That you get to write!) I think you could do it by using one of the PRUs to bitbang that command to six different GPIOs at the same time. Then the PRU would have to bitbang the six Rx GPIOs (since BBB doesn’t have enough UARTs) to capture the images. Or maybe each camera will store its image until you send it a “download” command? Then you could use three GPIO outputs to control an 8-way MUX chip, so you could receive the images one at a time from each camera using one of the UARTs.

You could also try using a little bit of programmable logic (like a CPLD) so you could use some GPIO pins to select the camera destination for one UART’s output. Then you could select the destination as “all cameras” when you send the “take photo” command, and each individual camera when you send a “download” command.