Lightfield Camera Array Usage Instructions

General Overview

There are four machines that run the camera array: Nerdup, Wordup, Allthat, and Abagofchips. Each one runs one block of cameras in the array (one big blue box of controller cards, essentially.) For the most part, they are identical, except for Nerdup. Nerdup has a special card that has been programmed to generate a timing signal that gets sent to the rest of the array for synchronization. This means that any demo must include Nerdup.

The machines are running special wacky kernels that won't play nicely with Linux updates. This means that these machines _should not_ be connected to the real Stanford network. Right now they are connected to each other in some mini network, don't mess with it.

All of the controller cards are connected to their respective machines through a tree of firewire connections. Strung between the controller cards is a network of ethernet cables that deliver timing signals (not internet traffic.)

There is a KVM switch with keyboard and monitor sitting on the desk behind the camera array. For actual demos you'll want to borrow a projector from the admins to use instead of the monitor portion.

Machine Status

Nerdup - Something wrong with the graphics card, so it shouldn't be used for displaying the demo. It is required for the running demo, however, so deal with it.

Wordup - At startup it complains about a previous fan failure. Just hit F1 (or whatever it prompts you for) to finish the boot up.

Allthat - Presumably working fine? Have not booted it in years.

Bagofchips - Presumably working fine? Have not booted it in years.

Starting up the demo

  1. Power up Nerdup and Wordup by pressing the power buttons on their cases.
  2. Check their status on the KVM switch, make sure they are booting properly and dismiss any warnings. Note that these machines haven't booted for a while, so they'll likely want to do a filesystem check. This can take some time, so plan ahead for it.
  3. Login using username "bonzo" and password "ieee1394".
  4. Once the terminal is up on each machine, enter the following commands:

    nerdup]$ startx
    wordup]$ startx

    Nerdup's graphics card sometimes causes the default X windows resolution to be too high for the monitor to sync to, so the screen can go blank. If this happens, you can fix it by hitting CTRL-ALT-MINUS (that's control, alt, and minus key) a couple times.
  5. When X is launched, open up a terminal window and type the following commands:

    nerdup]$ cd lfca_warp/src/camctrl
    nerdup]$ ./redo1394

    wordup]$ cd lfca_warp/src/camctrl
    wordup]$ ./redo1394

    This initializes the firewire driver. You can ignore the warnings it gives.
  6. Now it's time to start up the actual camera controller application. Do the following commands:

    wordup]$ ./camctrl -pseudoclient
    nerdup]$ ./camctrl

    The pseudoclient thing tells the wordup machine to be a slave to the timing signals from nerdup.
  7. Turn on the power strips for the camera array.
  8. Check that the boards show up in the GUI on wordup. In the main window hit the "Startup Boards" button for each machine (both nerdup and wordup). All boards should acquire some board ID numbers and such, and now have three colored lights next to their names (red, green, and blue). Check both nerdup and wordup for this bit too.
    This step programs the boards for the array operations. Apparently they only have a tiny bootloader burned in, so we must program every time we turn on the array.
  9. Calibrate the cameras on your display machine (wordup). Open up the image display window (should be minimized or hidden behind the main window.) Open the "Tools" menu and select "Edit SAP Parameters." Now hit the button labelled "Load Homographies and Shifts." This loads up the pre-baked calibration matrices stored on the hard drive.
  10. Wait. Keep an eye on the terminal window, when the calibration loading is done, it'll say so.
  11. Almost done. Hit the button labelled "Grab Multi-MPEG" on wordup. The terminal should say something along the lines of "waiting for master signal." Now go back to nerdup and hit "Grab Multi-MPEG".
  12. The video should be streaming at this point on wordup--Nerdup will also be streaming video at this point, but it will be garbage because we didn't calibrate it... don't worry about it. The image display window can be moved off screen if you click on it and use the arrow keys. The top image is the synthetic aperture image, while the bottom is the view of a single camera somewhere near the middle. You can change the focus using the SAP Parameters window we opened earlier (Tools->Edit SAP Parameters.) SAP Focal depth controls the focus. Depth factor controls the range of focal distances reachable in the slider. For our lab setup, this should be set to 0.1.
  13. Yank the KVM's output video cable out and connect it up to the projector (collected from the admins).
  14. Adjust the lighting in the room if necessary.
  15. Impress the visiting people.

What to do when stuff breaks

What to show during the demo

Only one row of cameras is used in the demo as set up above. Typical things to show are focusing through people, showing the difference between horizontal and vertical occluders, and commenting on vignetting. Play around, find neat things to do.

Shutdown Procedure

  1. Hit "Grab Multi-MPEG" to stop the streaming on both machines.
  2. Close out the camctrl app on both machines.
  3. Power down the array using the plug strips.
  4. Shutdown both nerdup and wordup through the normal OS logout stuff (right click, log out, shut down, wait patiently).
  5. When the terminals say "Power Down", it's safe to hit the power buttons on the machine cases. Do so and wait until the next demo day.