Make: Projects

“Raspberry Eye” Remote Servo Camera

Build a DIY pan/tilt webcam sentry, and watch it from anywhere online.

thing

Webcams are a fun and useful tool. Being able to control where they’re looking remotely, though, takes their usefulness to a whole new level. Whether you’re watching your pets while you’re away or allowing friends to participate in an event from the other side of the world, a web-enabled remote servo camera puts the end user in control of the experience.

Put a Pi on the Web

The Raspberry Pi provides a perfect base platform for creating internet-connected devices. When researching how I was going to connect my device to the web, I ran into Make:’s very own Matt Richardson’s post describing how to use the Flask framework to easily create projects for the web on the Raspberry Pi. Flask allows you to take your existing Python apps (the preferred language for developing applications on the Raspberry Pi) and add in an HTML template to provide a web-page interface for the end user. In this project I provide an HTML template document that’s pretty bare-bones, so it’s easily understood by anyone who wants to look under the hood and also provides a good starting point if you want to customize it for yourself.

Stream Video from the Pi

The next tool needed was a way to send video from the Pi across the web. When using a less powerful system like the Pi, every little bit counts, and the real-time compression and streaming of video can be a huge drain on a system. After trying a couple of different options I opted to use MJPG-Streamer. The performance from MJPG-Streamer was hands-down the best of any service I tried on the Raspberry Pi.

Control the Servomotors

Finally I needed a way to control the servos for the pan/tilt mechanism. The standard library on the Pi for accessing the I/O pins is called GPIO. While GPIO makes it easy to do basic actions, its software-based PWM system is very inaccurate and temperamental for controlling servomotors. After running into problems and having a few friends review my code to ensure I wasn’t going mad, I decided to abandon GPIO in search of a better solution. The winner was an alternative to GPIO called RPIO. With RPIO, I had access to a semi-hardware driven PWM signal. This final piece brought it all together into a fully functional project and a great starting point for connecting your world to the web!

All the code for this project can be downloaded from Github and the 3D models from Thingiverse.


NOTE: eLinux has a list of Pi-compatible USB webcams. This project was built using the C260 webcam, which may no longer be available. The C525 reportedly “works fine without powered hub” but was un-tested with our design. The C270 reportedly “works fine with external power” in the form of a powered USB hub. The 3D design files are for the C260/270 but the premise for the design can be modified for the webcam of your choice.

Steps

Step #1: Flash the SD card.

PrevNext
“Raspberry Eye” Remote Servo Camera
  • The OS for this project is Raspbian, a Linux OS built especially for the Raspberry Pi. Most of the default settings are still in place including the password (raspberry). After you complete all of the installation pieces, you should log into the system and run raspi-config and change your password and set any other settings you might wish to change (time zone, keyboard settings, etc.).
  • There is a lot of configuration needed to the Raspbian image to make this project work. To make things easier I have prepared the OS ready to go — all you need to do is download the PiCam image from http://cdn.makezine.com/make/WeekendProjects/HomeSentrySecurityCamera/PiCam.img and flash it to your SD card.
  • Flashing the image could be an article just in and of itself — every time I play with a Pi, there is a a new and easier way to do it. For this project, follow the guide from the Raspberry Pi Foundation at http://elinux.org/RPi_Easy_SD_Card_Setup. I'm running a Mac, so I used the very simple ApplePi-Baker app and it was easy as well ... pie.

Step #2: Make (or buy) the 3D-printed case.

PrevNext
“Raspberry Eye” Remote Servo Camera

Step #3: Prepare the servo power cable.

PrevNext
“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera
  • Start by cutting off the small, Micro-B end from one of your 2 USB cables. (Leave the other intact.)
  • Strip 1" of the outer insulation and you'll find 4 wires inside (black, red, white, and green).
  • Strip about 1/4" of insulation from the black and red wires. Using a multimeter, verify that these are your power and ground wires.
  • Trim away the cable shielding and cut the white and green wires flush with end of the main cable insulation.

Step #4: Soldering the cable.

PrevNext
“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera
  • Cut 3 lengths of heat-shrink tubing: 1/2" (1) and 3/8" (2).
  • From your jumper wire kit, take out the row of headers and snap off 2 sets of 2 headers.
  • Slide the 1/2" section of heat-shrink over all the wires and down the USB cable a few inches. You want to make sure it doesn't get heated up while you're soldering.
  • Carefully wrap the bare end of the red wire around the short ends of both pins on one of your 2-pin headers.
  • Solder the wire in place, ensuring it's firmly connected to both pins.
  • Do the same thing with the black wire, wrapping and soldering it to both pins of your second 2-pin header.
  • Place one 3/8" section of heat-shrink tubing over each set of headers and slide them down to cover your solder joints. Slide the 1/2" section of heat-shrink up so it covers the white and green wires you trimmed off earlier.
  • Using your soldering iron or preferably a heat gun, warm the heat-shrink tubing to seal it in place.

Step #5: Mount the pan motor.

PrevNext
“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera
  • Run the servo cable from one of your servos down into the large rectangular hole on the top of the project case, and try to push the servo into place. There's a wide spot where the halves of the servo body are joined; if it gets stuck, use a small file or sandpaper to slightly open the hole on the top of the project case until you can fully insert the servo.
  • When the servo is pushed all the way in, use a screwdriver to tighten the 2 long mounting screws that were included with your motor.

Step #6: Add the tilt motor.

PrevNext
“Raspberry Eye” Remote Servo Camera
  • Run the connector from the second servomotor through the small rectangular hole in the top of the case. Both servo cables should now be run into the inside of the case.
  • Don't mount this servo yet.

Step #7: Wire the motors.

PrevNext
“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera
  • Run the jumper ends of the cable you built through the circular hole on the back of the case top.
  • Plug the black header pins into both servo connectors, into the holes matching the brown wire from each servo.
  • Plug the red header pins into the center connector hole on both servo connectors, matching the orange wires.
  • Finally, get 2 purple jumper wires from your jumper wire kit and plug one into each the remaining holes on the servo connectors, matching the yellow wires.

Step #8: Attach the tilt motor.

PrevNext
“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera
  • Push the tilt servo into the servo-shaped hole on the larger of the 2 printed arms. It should be a tight fit, but you might need to clean the hole a little with the file or sandpaper if there's too much drooping from the overhands.
  • Screw the motor into place with the 2 long bundled screws.

Step #9: Connect the servos to the Pi.

PrevNext
“Raspberry Eye” Remote Servo Camera
  • The 2 purple jumper wires that you connected to the servos need to be plugged into the Raspberry Pi. These are the control wires that will send the signal to change the servos position.
  • The signal wire from the pan motor (the one attached to the project case) will plug into I/O pin 23. That's the 8th pin down on the outside of the I/O connectors.
  • The signal wire from the tilt motor is plugged into I/O pin 22. This is the 8th pin down on the inside row.

Step #10: Power it up.

PrevNext
“Raspberry Eye” Remote Servo Camera
  • It's time to plug everything in for the first time. Slot your formatted SD card into your Pi. Plug in your Ethernet cable from your network. Since this is your first time booting up it might be useful to also plug in a USB keyboard, mouse, and a HDMI monitor.
  • Plug both USB cables into the dual-port USB charger and plug the unmodified USB cable into the back of your Pi beside the SD card. Your Pi should now boot up.

Step #11: Zero the servos.

PrevNext
“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera
  • To connect to the Pi remotely, you'll use the SSH utility built into Mac and Linux. (If you are a Windows user, you can use Putty as an SSH client. Hey Microsoft, get us native SSH!)
  • From a terminal window type in: ssh pi@picam and hit Return. If you can't connect, try to ping picam. If you receive the error message ping: cannot resolve picam: Unknown host then use your monitor and keyboard to find your IP address (use the ifconfig utility) and then connect by using the IP address like this: ssh [email protected].
  • Once you're connected, change your directory to picam with: cd picam
  • Run the picam.py Python script as root: sudo python picam.py You should see the output: Using hardware: PWM PW increments: 10us Initializing channel 0... add_channel_pulse: channel=0, gpio=23, start=0, width=154 init_gpio 23 add_channel_pulse: channel=0, gpio=22, start=0, width=154 init_gpio 22 * Running on http://0.0.0.0:80/
  • After starting the script you should hear both of the servos move into their starting position.
  • Hit Ctrl+C to terminate the program. When you're back at the terminal prompt, type: sudo shutdown -h now to shutdown your pi. Once the shutdown is complete usually about 30 seconds, be sure to unplug your power cables before continuing.

Step #12: Attach the servo arms.

PrevNext
“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera
  • Now that the servos are zeroed, you can attach the arms to them. Start with the larger, pan arm. Place it so the long side of the arm is running parallel with the long side of the case and the servo motor, on the same side as the USB and Ethernet ports on the Pi. Press the pan arm down onto the servo gear then screw it into place with the small screw.
  • Run your zip tie through the bottom holes of the tilt arm. The ends should be facing up and not zipped together yet.
  • Angle the tilt arm so you can push the axle on the end of the arm into the hole in the pan arm. Once in, you should be able to press the tilt arm onto the servo gear on the pan arm. Screw it into place with the remaining small screw.

Step #13: Attach the camera.

PrevNext
“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera
  • Place the camera on on the arm and secure it by tightening down the zip tie. Make sure you pull it down tightly so the zip tie doesn't hit the screw head or arm bellow.
  • Plug the camera into one of the Raspberry Pi's USB ports and plug your SD card, network, and power cords back in.

Step #14: Launch the camera.

PrevNext
“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera“Raspberry Eye” Remote Servo Camera
  • Once your Pi has booted back up, SSH into it again.
  • This time you'll start the camera! First move to the folder containing the program you'll use to stream the video. From your terminal prompt type: cd ./mjpg-streamer/mjpg-streamer
  • Now launch mjpg-streamer with the command: ./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www" & You'll see some errors but these are related to unused modules. Your Camera light should turn green and at the end of your output you should see: o: www-folder-path...: ./www/ o: HTTP TCP port.....: 8080 o: username:password.: disabled o: commands..........: enabled
  • Now you can use the Ctrl+C keys to get back to the terminal prompt. Type cd and Enter to return to the root directory.

Step #15: Wrap it up.

PrevNext
“Raspberry Eye” Remote Servo Camera
  • Now that all the systems are assembled and working, it's time to bring it all together.
  • From your terminal, move back to the picam directory: cd picam and launch the PiCam app: sudo python picam.py
  • Once the app has launched, open your browser (we've tested this in Chrome and Firefox) and go to: http://picam/ You should now see the output from your camera and control buttons to move the camera's view. Each button press moves the camera 10º.
  • To access the camera from the outside world, you can setup port forwarding on your router (every router is different, so look up instructions for yours). If you do, you'll need to open 2 ports to redirect to port 80 for the page and 8080 for the video. For more information on port forwarding and running your own server on your Pi, check out this article from RaspberryWebServer.com.

Conclusion

The "Raspberry Eye" Remote Servo Cam will get you started with a basic snooping using your Pi, but there's a lot more you can do to extend the features. You can add WiFi, create a custom enclosure for outdoor deployment, or even increase your stealth by concealing the project in a common household object like a cereal box or a book.

For those not satisfied with the local network limitation on accessing the Raspberry Eye Remote Servocam, you can set up port forwarding and expose your project to the internet. However, be aware that there are no security or access control steps taken in the project — you're on your own for securing your Servocam.

Regardless of how you decide to hack your project, we want to hear about it in the comments below.

Matt Stultz

Matt Stultz

Matt is a community organizer and founder of both 3D Printing Providence and HackPittsburgh. He's a professional software developer which helps fuel his passion for being a Maker!


  • Christian St. Cyr

    Awesome job Matt! What printer are you using to make the case? I can imagine an octoprint mega server that would point the camera at one of the many printers you have in the room that happens to be printing.

    • Matt Stultz

      Yeah, it would be fun to integrate with Octoprint too.

  • Dan Miller

    Great project, looks just like the one I made a year ago… Check out https://www.youtube.com/watch?v=rYKhGfZbj-0

    • http://www.weblicationpro.com Cameron

      can you make this wireless?

      • Dan Miller

        Thank you for the comment. Yes, this could be made wireless. It already uses wireless networking, so all that needs to be done is power the Raspberry Pi with a battery pack and then it would be wireless. I assume you would want a substantial battery pack to power the setup for a considerable amount of time…

        • http://www.weblicationpro.com Cameron

          thanks for the replie but how do i make the wifi wireless because atm it pluged in by ethernet, i need it to work over wifi but im not very good with raspberry pies, im just starting out

          • Dan Miller

            I don’t know how the MAKE version is setup, but on the one in my video all you have to do is:
            1) boot to the GUI, plug in the USB wireless network adapter, Scan, Select the desired network, enter the network key into the PSK field, and write down what your new IP address is.
            2) Edit the python script that references the IP address and put your new IP address in
            3) Edit the HTML script that references the IP address and put your new IP address in
            4) If you want to see the video stream from outside your network, then you will need to open a port on your router for your new IP address. You should be able to lookup your router type and find instructions on how to do this.

            Good Luck!!!

  • Mohammad Omar

    hi thanks for your 3D design, when I try to print the 1st arm I get 3 piece, do I have to glue it ? or can you modify the design and make the 1st arm as one piece?

    • Matt Stultz

      That is really strange. I will check the file to make sure there are no errors. What slicing engine are you using and what printer are you trying to print this on?

      • Mohammad Omar

        every thing print in good way, just 1st arm I get it 3 piece, the 2nd arm the internale arm was printed as one piece

        Thanks for your support

        • Steve Bentley

          I looked at the geometry of the stl file and for the arms; it’s a little malformed. It looks as though each original arm was created as three pieces and then exported as a whole. The issue is that this will result in overlapping geometry that the slicer has to stitch together. It doesn’t look like a boolean was used to join the elements or if it was, the boolean had a hard time. But on the up-side, I’ve found the arms print much better if you print them as 3 pieces per arm and then glue them together. This way the holes need no supports and as such are spot on (mine didn’t even need screws for the pitch servo it fit so well) and the inside of the holes are circular and smooth.
          I’ll upload a new fixed version of the file shortly, for both all-together printing and printing in pieces. In the mean time, does the Up! have a radio button in the print settings to resolve holes and reversed normals? (my Afinia does – same printer – different software front end). You could try that.

      • Mohammad Omar

        this is my printer

  • Goddard

    Looks cool, but I wonder if anyone could sell the parts since I don’t own a 3D printer, or should I just buy a printer?

  • http://vincentcolombo.com vcolombo

    I made this over the weekend, but I don’t have the software set up yet as I don’t want to flash my Pi with a new OS. I built this to use with my OctoPi box and I’d like to get the software, install it on my existing OS, and customize OctoPrint to have camera controls. I don’t know if I’m missing it somewhere in the article, but is there somewhere to download the code for whatever Raspbian software you included? A Git repo or something?

    Thank you!

  • tbitson

    Any reason this project can’t use the RaspPi camera module?

    • http://www.bartbania.com/ Bart Bania

      who said it cannot? it’s just ‘better’ IMHO as it uses device you already might have at home and doesn’t involve spending hell load of money on a raspi camera

  • Chris

    I’m having the problem with python that gives me NameError: global name ‘servo’ is not defined. Any ideas?

  • Steve Bentley

    Great project Matt,
    Remote access and servo control were like falling off a log, but getting the webcam to work with the web interface had me stalled. The chosen web cam works (have tested it with the “motion” library and with the mjpg-streamer port), and I can run two browser windows – one with the streamer port and one with the servo control, and that works. I just get the missing image icon above the servo direction buttons in the web interface. No other devices save the servos are plugged into the pi and it’s being fed by a 2 amp usb power source just for fun. Is there a browser plug-in I am missing for camera streamer in the web app? (latest firefox on OSX)

    I have noticed, depending on the browser and site you view the Make project in, the terminal command that fires off the mjpg-streamer does not always have the spaces in the right places. So if someone were to copy and paste that string, and not be totally Linux savvy (or sleepy, like me – or is that “lazy”?), the wrong spaces, and sometimes a hyphen where a line wrap occurs on the web, can get put into the terminal by accident. And then of course a whole slew of errors appear.

    I’ve edited this comment and added the following but left the comment intact so it might help others.
    What I’ve discovered of course is that since I have to use the actual pi’s IP on my particular network to get through the ssh instead of ssh pi@picam, I also have to edit the HTML in the browser page by inspecting the missing streamer “image” element and change the html from http://pi@picam:8080 to the actual IP of the pi along with the port.
    So for others who have to get to it the same way, you can just edit the HTML file (/home/pi/picam/templates/picam.html) and change the http://picam:8080 to http://theIPofYourPiHere:8080, and then it will just pop up when you hit the web page in a browser.

    Cheers

    • Steve Bentley

      So I took this to the next level and opened up two ports on my router so I could access the camera from anywhere. Why two ports? This LAN DNS issue cropped up again (see previous post). The first public port passes the incoming request to private port 80 for the servo control python script and a second public port allows the resulting picam.html page
      to access the mjpg-streamer on private port 8080.
      The picam.py worked great with one port open but the only way to make the streamer appear simultaneously was to hardcode the WAN IP of my router and the second public port into the picam.html file. Without the LAN DNS hiding the address of the WAN router address and public port, I feel like the front door of my network is hanging open for all to see. Apart from fixing this LAN DNS issue (which I am attempting) is there another way to get the html page to send back the port it needs for the streamer when the web app is out there in the world? Would the default picam:8080 addressing really work from a browser outside my LAN even if I didn’t have this LAN DNS issue?

      • JD

        Steve, did you come up with an answer to this question? I’m running into the same problem of requests from outside LAN only able to view (and use) the python buttons. No stream however.

        • Nw

          I second Steve’s question. Anyone found a good solution?

  • Lauro Moreno

    for all of you out there, there IS security. you can enable it when you start the webcam with mjpg-streamer

  • Patrick Clark

    Great article Matt! I just got it all up and running within 20 minutes and I am not a command line person!

    I am using a USB webcam but I want to use the Raspberry Pi camera module AND I want to just output a 1 or a 0 in order to turn on and off the air conditioner in my garage at home. (the webcam will allow me to monitor my garage and also to see if the AC is on by the movement of a couple little plastic tassels I taped to the vents!)

    So how hard is it to use the Pi camera module and to switch to just a binary output on the GPIO pins instead of PWM?

    Thanks!

    • simon walker

      Just wondered if you had managed to get the pi camera module working with picam? If so how and where could I see the code? Thanks.

  • Jacob Cone
    • Hacnstein

      download or write?

  • Jacob Cone

    OK….so I was trying to load this on a B+ which did not work. Now that I am using the B model, and it is loading, but it is asking me for picam login:
    any ideas?

    • Hacnstein

      pi and raspberry

  • Hacnstein

    As for the log in prompt, user is pi and password is raspberry. When writing the img file to the SD using the imaging software in Windows 7, I found that using a 4GB card worked, the 16GB card errored out at 66% with write errors.
    My issues I have not fixed, so HELP?? The initial running of picam halts at the end of pio23, motors never move. (Step 11). So, I went on, if I use port 8080 I get a message that jpg stream was successful with a small preview window, if I go to port 80, I get the controls and the servos move, but the image is not there, just a placeholder for it.

  • Lucas BARRAU

    I have make my own, i have used a Logitech C170 (18€) and it’s works fine without powered hub.

    I currently working on a boot up script using rc.locals

    I have also set a little password using a function of mjpg-streamer “-c username:password” but i think it’s need to be improved.

    Thank you Matt !

  • Omri

    Hi,
    I’m doing this exact same project in my university(but a little different) and have a few questions.
    I’m using CodeBlocks for the control from far computer-how do I access to the computer’s RAM to upload pictures, and where can I find a web protocol to tranfer from one computers RAM to another?
    I know it’s a little bit heavy but do you know any sources that can help me start with that? I want to first transfer data between 2 computers and then connect the Rasbery pi.
    thanks, Omri.

  • Alejandro Saucedo

    hi there i have a problem with one of the parts of the case. The part called pan it’s not manifold well in the program where i’m printing it says that it’s not manifold what can i do

  • Guest

    yup it’s not booting on the B+…is there place I can get the files separate so I can add it to my current version of raspbian?

  • Guest

    any reason why this wouldn’t work on a B+? maybe the OS is not compatible? Because it fails to load the image you uploaded, it just gives a black screen and nothing happens

  • Antonio C

    I love this project by the way! I was thinking of making one myself when i found your post..great job..but still B+ compatibility would be nice..

  • http://www.weblicationpro.com Cameron

    how would you make this wireless because i am doing a school project and im looking to put this on a robots arm, any help?

    • Antonio C

      add 2 battery packs (1 for raspi, 1for servos) and a usb wifi dongle and your set..dont buy the B+ because it wont work..get the older B model.. obviously you have to configure the dongle for the network you are under….

  • http://www.weblicationpro.com Cameron

    thanks for the support, has anyone got any good links to help me get started with raspian?

  • simon walker

    great article. I have managed to get this working with an of the shelf webcam and would really like to make it work with the raspberry pi camera module. Can anyone direct me to where I can see how to do that? Thanks.

  • azwinabdul

    hey want to ask i try it on raspberry b+ and the image can’t run on it. so i try to built it from sratch. anyone can help me i am stuck because i didn’t know where i can put picam.html. there is a error like this jinja2.exceptions.TemplateNotFound
    TemplateNotFound: picam.html

  • JD

    Great article, thanks Matt. I’ve been toying with this for a few weeks now, and I had to compile and run things differently for the b+. I used servoblaster to control the servos instead and that worked great: I can easily control the servos from outside my LAN. However, my video feed only works on the local network. Outside of the LAN the browser page just shows the missing image icon.

    I imagine it has something to do with the img src = ” ” line in the template html. But I’ve tried everything, including using the outside IP/?action=stream, and it won’t work. Any ideas out there?

    Thanks again

  • AJAY KUMAR

    will this stores/records the video into a local computer

  • AJAY KUMAR

    will it store videos in local machine?

  • http://makezine.com/projects/raspberry-eye-remote-servo-cam/ Mehmet

    I was just wondering way the “Raspberry Eye, remote servo cam” no longer has steps to the build. It was here a few days ago, but now there is no longer any steps posted. Can this be fixed?

    • Matt Stultz

      I think we are currently undergoing a wordpress theme upgrade and this is just an error. I will report it to the team and I have a feeling it will be back up and running soon.

  • Jordan Tassell

    Hi there, is this project at all possible using a B+?

  • Brad Beeson

    Thats cool. Hey, want to see some quality 3d printed art? Check out: 3dprintedart.weebly.com

  • Seanavus

    Hi All,

    I just completed my Raspberry eye and it works great.

    Here are the areas where I got stuck:

    1) My Raspberry Pi is not able to supply power to the two servos via the USB cable. I had to provide external power to the two servos. If doing this, you need to have common ground like in the picture below. Also, the 1kohm resistor for each servo control wire helps a ton with signal noise.

    2) See @Steve Bentley’s post if you are unable to connect to the PiCam via chrome–>In PiCam.html, change the line http://pi@picam:8080 to http://TheIPofYourPiHere:8080. Or if port forwarding, change it to http://The IPofYourRouter:8080.

  • Elijah Knake

    Hey I followed all the instructions and I found the site of the picam and I can move the view around but I can’t actually see the picture. What is wrong?

    • Elijah Knake

      My camera won’t show any image. It shows the missing image icon. I think the problem might be related to the pi not receiving or being able to send the image. Again I can still control the motors I just can’t see an image.