Introduction: How to Make a Working CubeSat With OV2640 Sensor

The Arducam-M-2MP is an optimized version of Arducam shield Rev. C, and is a high definition 2MP SPI camera, which reduces the complexity of the camera control interface. It integrates 2MP CMOS image sensor OV2640 and provides miniature size, as well as the easy to use hardware interface and open source code library. The Arducam mini can be used in any platforms like Arduino, Raspberry Pi, Maple, Chipkit, Beaglebone black, as long as they have SPI and I2C interface and can be well mated with standard Arduino boards. Arducam mini not only offers the capability to add a camera interface which does not have in some low-cost microcontrollers but also provides the capability to add multiple cameras to a single microcontroller.


2MP image sensor OV2640, M12 mount or CS mount lens holder with changeable lens options, IR sensitive with proper lens combination, I2C interface for the sensor configuration, SPI interface for camera commands and data stream, All IO ports are 5V/3.3V tolerant, Support JPEG compression mode, single and multiple shoot mode, one-time capture multiple read operation, burst read operation, low power mode and etc., Well mated with standard Arduino boards, Provide open source code library for Arduino, STM32, Chipkit, Raspberry Pi, BeagleBone Black, and has a small form of factor.

Functions: Single capture mode, Multiple capture mode, JPEG compression, Rewind Read operation.

Our goal for this project was to use this sensor to film a model of Mars. We accomplished this by taking a shortcut. Our criteria for success were our goal was to simply recieve video footage of the surface of the model of Mars. Our constraints were to access the video footage off of an SD card, but due to some unforseen issues with the code we needed to find another way.

Step 1: Step 1- Acquire Materiels


OV2640 camera module


3D print of a cubesat

Male to Female wires

16 foot cable

Cardboard cutouts for fins

Step 2: ​Step 2: the Cubesat

Firstly, we need to build the CubeSat that our Arduino will go in. The CubeSat will be 3D printed with a polylite PLA filament. It took us roughly 5-7 hours to print and we used a blueprint from online. Our base was a little different and we made a separate shelf in order to hold the Arduino.

Also attached are the preliminary and final sketches of our CubeSat.

Link to CubeSat 3D printer layout:

Step 3: Step 3- Assembling the Arduino

For the Arduino, we used a code template that programs the Arduino to take live pictures and frame-by-frame capturing. We wired the Arduino using another template where it attaches the camera and the Arduino together and connects directly to the computer with the 16 foot cord. This allows for live video streaming and instant results.

Link to code/files:

Step 4: Step 4: Putting It All Together

For the final product, you will need to make a hanging system so it can spin in a circular motion while staying still. We made ours with strings and a clip at the end. The clip hangs from the spinning mechanism in the ceiling. This will rotate the Arduino around “Mars” and keep it secure. The arduino must be placed securely in the cubesat and turned on and wired up. You can just tie simple knots around the middle and the clip. The camera will be facing downwards and capture video and photos. You need to make sure that the cubesat is not susceptible to breaking if it falls.

Step 5: Final Results

We were able to get photos off of our CubeSat as well as live video streaming as the CubeSat was orbiting. The attached photos are evidence of our trial process. Our period was 1.667 seconds per cycle, and our frequency was 0.6 cycles per second. The length of our string was 0.51 meters, and our CubeSat flew at a 52 degree angle. The radius of rotation was 0.503 meters, and the mass was 0.125 Kg.