How I Built A Huge Mega Giga-Panoramic Robot

Oct 28, 2014

Xavier Gonzalo

We love it when our readers get in touch with us to share their stories. This article was contributed to DIYP by a member of our community. If you would like to contribute an article, please contact us here.

How I Built A Huge Mega Giga-Panoramic Robot

Oct 28, 2014

Xavier Gonzalo

We love it when our readers get in touch with us to share their stories. This article was contributed to DIYP by a member of our community. If you would like to contribute an article, please contact us here.

Join the Discussion

Share on:


Today I want to share how I created a few huge, Gigapixel photos, using a DIYed panoramic head. Actually, it is not a panoramic head because it not only goes right and left, but also up and down.

I’ve been a big fan of panoramic photography and of landscape in general for a long time. But four years ago I was climbing a mountain and the view from the top simply took my breath away. I felt an urgent need to share the image with people don’t climb and therefore will never get access to such views.

Here is the thing though, standard photos do not have enough details. Our eyes have far more resolution that your standard digital camera, so a new project began: I wanted to build the best Gigapan Robot – an automated panoramic head for DSLR.

[editor’s note: things get highly nerdy techy from this point on]

I got inspired by some pro grade products, but could not find one that fits my needs: total control and A LOT of weight. The idea is to move a Nikon D90 (about 650 grams) body mounted with a Sigma 150-500mm lens (1.9 Kg) at small increments on two axis overlapping images in both the vertical and horizontal axis.

Giga-Panoramic Robot V1.0


Incandescently, just a few days prior to climbing, my  friends (Alex & Joan) gave to a quick down about Arduino: it’s a small micro controller with open source software and a lot of expansion options: control motors & sensors and interact with inputs and outputs just like a small PLC.

I’ve had some PLC experience so I was up for the task. only two minor items remained: learn Arduino and build a robot.

My first step was to buy an Arduino UNO and a stepper motor. This stepper motor moves by small increments, around 200 steps for a complete turn. If I can control the movement of the motor , I can control the movement of the camera, now I just needed the write the software.

I took me six months, but I had my robot finished, it was time to test it out.

My first photo – 1098 shots nearing 10 GigaPixels – turned Ok after rendered with AutoPanoGiga.


But while the final results were good photo-wise, I needed to make some improvements to reduce the weight and size of the robot. It was impossible to bring the robot over the mountains. To get it up I would have to split the thing between more than a handful of people, the weight of all parts it’s over 35 kilos.

Giga-Panoramic Robot v2.0


Next step was to do some software optimizations, install two wheels and add two aluminum. Now it’s easier to lag around. I still had a big risk of damaging a stepper motor while hiking on rough terrains at the mountains, so this v1.5 was not good enough for me, and I decided to re-design the robot over the next winter.

For the version 2.0 I used a geared stepper motor for the horizontal axis movement, and stronger motor for the others axis.

YouTube video

for control I am still using an Arduino platform, and using switches I can modify the settings of the robot (stuff like zoom, camera type, overlap %, and more).

With this robot I created a 99GPx Gigaphoto  of my village, S.ria, a potash village in the center of Catalonia, near Barcelona . It is made out of 4520 single shots. And the magnification is astounding: Nikon d5200 body + Sigma 150-500 @ 500 mm + 1.4x teleconverter.

Both robots are heavy and they both weight about a ton (or at least this is how it feels). Another caveat is the difficulty to move with the needed accessories (battery for the robot, lens, camera, tools, support for the robot), so finally I decide to create a new robot which would be cheaper and lighter.

Giga-Panoramic Robot XS


Building on the experience I accumulated building the previous two robots, I tried to optimize all sizes and weights. It was time to design the Panoramic Robot XS !

For this robot I used an aluminium box for install inside the x-axis stepper geared and all electronics parts (Arduino MEGA2560R3, two L298N drivers for the steppers motors, a relay for remote camera shot switch, a step-down voltage converter to reduce the 12v of UPS battery to 5v of the motors NEMA-17, switches, LCD, plugs, etc…)

This is the parts list:

  • Metal plate (1-1.5 mm): We need a plate approximately 800 x 200 mm.
  • Metal box . I use an aluminium  Hammond 1590FBK
  • Two NEMA-17 stepper motors . I spend a lot of time to found it! The problem appears of the height of the box. I use a Kysan 1040222 buyed on eBay .
  • One Arduino MEGA2560
  • One LCD i2c screen of 20×4 characters.
  • Two L298N drivers for arduino control.
  • Dc to DC Step down converter with 12/24v input and 5v 10A output.
  • Belt GT2 y and two pulleys of 36 teeth. Same than used in 3-D printers
  • Bearing Unit Conveyor Roller

Next , It was time to do a lot of holes in the aluminium box and start assembling

I used a metal plate to support the Y axis, and we fixed the camera using a 1/4-20 bolt. Since this place will only perform with one camera, we wanted to make it fixed on the camera’s Nodal Point. The nodal point would then correspond to the center of both axis. For the horizontal and vertical axis, it was easy, we only needed to calculate the distance from the hole to the center of both axis. The difficult part is finding the d3 value. You can use this guide, or just google for it.

giga-pano-nodal-02 giga-pano-nodal-01

Now, again, it was time for assembling the electronics parts, wiring the steppers motors, the drivers and connecting power supply.

And the last step was uploading the Arduino code. If you are building this and need the code, please contact with me (via the comments or the contact details supplied below).


Using this last robots I create Gigaphotos of about 30 GPx. This is the resolution I get using a Nikon d5200+ Tamron 70-300 @300mm. It takes about 1,000 per panorama. If you thought the camera part was hard, wait till you feed 1,000 photos to your computer ;).


I have another robot optimized for a Sigma 150-500mm lens, more stronger. The electronics and code are the same, I only had to change the mechanics of it to support more weight. With the bigger robot I can create 99 GPx photos composed of over 4500 shots each.

About The Author

Xavier Gonzalo  is a climber and a photographer based in Spain. You can see his panoramic work here. You can also read more about his panoramic robots (in Spanish / Gooogle translated) here. Lastly, you can visit Xavier’s youtube channel here.

Filed Under:

Tagged With:

Find this interesting? Share it with your friends!


We love it when our readers get in touch with us to share their stories. This article was contributed to DIYP by a member of our community. If you would like to contribute an article, please contact us here.

Join the Discussion

DIYP Comment Policy
Be nice, be on-topic, no personal information or flames.

Leave a Reply

Your email address will not be published. Required fields are marked *

27 responses to “How I Built A Huge Mega Giga-Panoramic Robot”

  1. Stefan Avatar

    I love it! Very nice project!

  2. Xavier Gonzalo Pons Avatar
    Xavier Gonzalo Pons

    many thanks for the post. Best regards and DIY !

  3. Felipe Zabala Avatar
    Felipe Zabala

    Que yo sepa, es mejor hacer una panorámica en vertical, de esa manera hay menos errores en el compilado de las fotos (especialmente con un lente más angular) y lo más obvio, que se obtiene una mayor resolución de imagen al usar lo más ancho del sensor como la altura de la foto.

    1. juanfrito Avatar

      Yo diría que te sale la misma resolución. Lo único que cambias entre poner la cámara en vertical y en horizontal es el número de filas y columnas, pero no la cantidad de píxeles resultantes. En vertical menos filas que en horizontal, pero más columnas. Y el error en el compilado no depende tampoco de ello, sino de ubicar la cámara correctamente (evitando el error de paralaje) y conseguir que se superponga una foto a la otra lo suficiente como para tener bastantes puntos en común entre ellas.

      Dicho lo cual, cuando uso una focal corta y quiero una panorámica sencilla, uso la cámara en vertical, pero simplemente porque para la altura que quiero generalmente así consigo hacerla de una sola “pasada”.

      1. Felipe Zabala Avatar
        Felipe Zabala

        No tiene mucho sentido lo que dices,

        Si tu camara tiene por ejemplo una resolución de 5760×3840 pixeles, y haces la foto panorámica en horizontal, la altura máxima de esa foto en pixeles será 3840, así que por ejemplo tu foto panorámica mediría 12000×3840 pixeles.

        En cambio si pones la cámara en vertical puedes cubrir exactamente el mismo espacio (obviamente girando más veces la cámara) pero la fotografía final tendrá por ejempo 12000×5760 pixeles sin necesidad de cambiar el angulo en el que apunta la cámara.

        1. juanfrito Avatar

          No, no te equivoques, en vertical no estás cubriendo el mismo espacio. Haciéndola en vertical tienes más píxeles y más resolución (en la foto total), pero cubres más espacio, si las recortas dejando la imagen mostrando los mismos elementos tendrán la misma resolución.

          Es un problema común cuando piensas en términos de la cámara y no de qué quieres fotografiar. Es decir, parto de la base de que quieres fotografiar una parte concreta de, digamos, un paisaje. Yo no dejo a merced de la resolución de la cámara el que capture un arco mayor o menor (sea en vertical o en horizontal). Quiero que mi panorámica abarque una zona concreta (una calle, una montaña, una cordillera, 2 tercios de montaña y 1/3 de cielo…).

          Si fotografío esa zona concreta tendré la misma resolución lo haga en horizontal o en vertical (por supuesto esto es aproximado, nunca me van a salir fotogramas “enteros”, probablemente de una de las dos maneras, y no siempre de la misma, me sobrará algo que luego recortaré con el ordenador).

          Lo que quiero decir es que parto de que quiero fotografiar algo concreto. No voy a dejar más o menos cielo, o recortar más o menos un objeto.

          Con el ejemplo que tu proporcionas, yo no estaría dispuesto a tener una panorámica con tan poco espacio vertical, si tomara cada foto en horizontal. Probablemente haría dos filas de fotos y luego en el ordenador la recortaría, salvo que en vertical ya abarque lo que en esa dimensión quiero capturar. Si las hiciera en vertical es probable que necesitara menos fotos y menos recorte, pero al final recortaría dejando el mismo campo visual, obteniendo por tanto exactamente la misma resolución.

          Y precisamente al final de mi mensaje te comento que para panorámicas pequeñas yo también suelo tomar las fotos en vertical, como tu indicas, porque generalmente con un gran angular de una sola fila haces ya la panorámica. Pero el artículo es sobre “giga panorámicas” se trata de capturar con una focal larga muchas fotos para conseguir mucha resolución. En estos casos no hay diferencia real entre hacerlas en vertical o en horizontal, el autor habla de miles de fotografías, es prácticamente igual 50×20 fotos en horizontal que 75×13 en vertical. Es más, a veces la montura utilizada es la que te condiciona o hace más sencilla una u otra posición de la cámara.

          1. Felipe Zabala Avatar
            Felipe Zabala

            Si, es cierto lo que dices. No me puse a pensar que cuando es una giga panorámica da igual porque la cámara va a apuntar hacia arriba y abajo también. saludos!

  4. Tom Avatar

    Very nice. I’d be interested to know how long it takes to complete that sort of panorama.

    1. udi tirosh Avatar
      udi tirosh

      you should check out the videos, it will give you a rough estimation:

  5. efelectric Avatar

    Hi,could you please share the code please, sino fuera mucha la molestia

    1. Xavier Gonzalo Avatar
      Xavier Gonzalo

      Please send me an e-mail !

      1. Ahmed Sleh Avatar
        Ahmed Sleh

        pleas send me the code my e-mail

        1. Xavier Gonzalo Avatar
          Xavier Gonzalo

          I send you the code days ago…You don’t receive it?

          1. Quaggl Avatar

            Hello, I know this post is over a year old, but could you maybe send me the code too? my mail would be Thanks in advance

          2. santino Avatar

            i love to receive the code too… my email is:
            thanks a lot

  • joe_average Avatar


  • imme Avatar

    Can you please share code at

    1. Xavier Gonzalo Avatar
      Xavier Gonzalo

      Send it!

  • EVener Avatar

    Congratulations Snr. Gonzalo. That looks amazing. Have you tried your rig with a Nikon D810 or D750 body

  • Ben Avatar

    Hi Xavier !
    Amazing project, with a great result !
    The mechanic part of your construction I have already build.
    But I never got my 2 steppers working, arduino code is killing me.
    Could I have your Arduino code ?
    my mail is
    Kind greetings, Ben

  • Jan Novák Avatar
    Jan Novák

    Hey Xavier,

    I really like your project. Would it be possible to share you code for Arduino? It would be very helpful.

    Looking forward to getting your answer –


  • Daniel Johansen Avatar
    Daniel Johansen

    Hi. Great project. It is just what i been looking for. Can you please share your code?

  • Gi7mo Avatar

    hi @xaviergonzalo:disqus , awesome build!
    you could use a 2 (7.4v) or 3 (11.1v) cell lipo battery to save more weight
    the have plenty of power and are way lighter than the nimh battery you use
    but you’ll need a special loader and a “lipo warner” to protect the lipo from deep discharge ;-)

    could you share your code with me?

    thanks in advance

  • Tony Avatar

    Hi Xavier, Could I please have a look at the code ? my email is : thanks :)

  • Gintaras Skupas Avatar
    Gintaras Skupas

    Hi. I am very interested in Your project. I have built something similar. Can You share your arduino code? Thanks in advance.

  • Steinar Engelund Glæserud Avatar
    Steinar Engelund Glæserud

    Hi, do you have some blueprints of the metallplate and how things is assembled ?
    Can you share the Arduino code?

  • DEVILLE Avatar

    Hello, I am very interested in your project Giga-panoramic robot XS.
    Can you send me your arduino code? Thank you in advance.