
What is the MicroEngine
The MicroEngine is a small light weight time lapse engine based on an Arduino and the DFRobot LCD Keypad Shield. The project was started in order to learn more about programming Arduino's. The aim was to have a small device that can be used to create time lapse sequences in a studio. A few features of the MicroEngine are:
- Basic time lapse function with a delay between 1 second and 24 hours.
- Advanced time lapse function. This function can trigger relays before the actual image is shot. I use it to power off plant growth lights and to power on studio strobes. That way every image is taken under the same conditions.
- Studio setup mode where all relays are powered on.
- Camera remote control. A bulb shutter speed of 24 hours can be set.
- Lightning based camera trigger (under development).
- Laser trigger that can be used for high speed photography (under development).
- Support for Nikon focus tab.
- Configuration is stored in the EEPROM of the device.
- Can be operated by using the 5 buttons on the LCD shield

How to build it
The device is built around the following three parts:
- An Arduino Duemilanove.
- DFRobot LCD Keypad Shield.
- Home built Arduino camera shield.
The camera shield is used to connect the camera to the Arduino. The current version is based on an Arduino proto shield. The schematics are based on the OpenMoco schematics. The basics for that can be found here.
The software can be downloaded from Sourceforge. Real coders will find that the Sketch is not alway written how it is supposed to be. Note that this started out as a rough prototype and Arduino learning experience. You are free to contribute and clean up the code is you like.
The following image shows the camera shield. Note that you need female headers with long pins so that the shield fits the underlying Arduino.
.
This image shows the device when it is used during a time lapse sequence. You can also see the counter that is running backwards so that you can see when the next image is shot.

Using the MicroEngine in a studio
The device can be used to power on/off 220Volt devices. One relay can be set to power off before the shot, one relay can be set to power on before the shot. The time before the actual shot that the relays are put on/off can be set in the settings menu of the device. The following images show the box that I am currently using for this. The relay board can be found on here: http://www.sparkfun.com/commerce/product_info.php?products_id=9096.
The camera shield with a camera and the relays connected:

The inside of my 220V power block:

The assembled 220V power block:

What is next?
The next item that will be added on the camera shield is a real time clock. The RTC that will be used is I2C based. That way time lapse sequences can be shot during configurable intervals. This should also make it possible to have better control on relays. You could for example have your plant growth lights on during a specific time frame of the day. Note that the current version of the software and camera shield use analog pin 5. That must be modified since the Arduino I2C library uses analog pin 4 & 5.

What se Borsa Gucci Replica
What se Borsa Gucci Replica lo Gucci Outlet rendono possibile per voi per permettersi un aspetto elegante,stile di vita di una principessa.Gucci Sito Ufficiale Replica Conservare Online!Le sono perfetti l'ultimo accessorio per ogni vestito.Borse Gucci Se siete stati a morire proprio quella borsetta di lusso o in borsa progettista,Scegli aspetto moderno replica per un assaggio,un'esperienza,un lifestyle.Gucci Borse ora è possibile trovare offerte incredibili sugli accessori di marca Gucci Borse Outlet a prezzi scontati fino al 70% al dettaglio.
Iconic le créateur de
Iconic le créateur de Louboutin Homme traite son prodigieux succès remporté par ses semelles rouges signature avec magnanimité impressionnante.Christian Louboutin Mais le designer fran?ais a vu rouge,lorsque le géant Yves Saint Laurent aurait posé le pied sur la pointe des pieds par le déploiement de son propre ensemble de rouge à fond les talons.
Gucci a leurs rubans rouges et verts, et je ne prendrais pas ce ruban et de le mettre dans mes Louboutin Femme. Pourquoi? Parce que j'ai un certain respect ", a déclaré Chaussures Louboutin, dont les réalisations ont porté sur les talons de Hollywood A-Listers y compris Blake Lively, Sarah Jessica Parker et Scarlett Johannsson.
Gucci Gucci Bags Outlet is
Gucci Gucci Bags Outlet is the biggest-selling Italian brand.Will the Gucci Bags 2012 hobo be making a comeback for spring? If Gucci has anything to say about it, the answer is “yes.” Gucci Men AND Ladylike satchels and small crossbody bags have been the currency of the accessories industry for the past several seasons, so much so that Gucci Spring 2012's Gucci Sunglasses 2012 stable of chain-strapped hobos was more than a little surprising to see.Brand New Gucci Shoes Sale!2011 Style gucci outlet,60% OFF.
I kind of love the idea of
I kind of love the idea of super slim pomegranate
that gets super
slim done in the process. And that's why this year (after two years
of living in this house) I've taken on http://www.superslimdietpill.com as
my new chore. Usually we just pay super slim pomegranate weight loss
capsule to keep up with slim
pomegranate, but it's kind of super slim green lean body capsule.
I have to tell you though slim pomegranate me and
Josh are pomegranate diet pills.
Computer people, yes, but not the super slim pomegranate pills. I'm
convinced that keeping up with super
slim green lean body capsule will help me with my weight loss goals. I don't
know many overweight super
slim or gardeners, do you?
Hope to see you sharing such
Hope to see you sharing such a good thing . I believe you will find their own style of glasses . Now please look at this Oakley Sunglasses, You can come to this website and see what may have your favorite glasses .Discount Oakley Sunglasses here will be your favorites as the way to show your fashion lifestyle. And our quality is guaranteed .
Be able to see this really
Be able to see this really lucky , I am grateful ! Here I would love to introduce you the elegant and fashionableLouis Vuitton UK We are the best store provided various . Louis Vuitton Outlet you good partner whether in traveling, working or life service.
whoops
whoops
setting up set
Andre,
Thanks for your reply. I tried the example as suggested, & I'm having partial functionality. I noticed a few things. First, when "Set Studio" is ON then only the stage lights are ON. When OFF only the growlights are ON. This looks promising... When microcontroller is powered OFF, my LED growlights are ON [this seems odd & probably relates to buckpuck LED controller integration with Arduino]. When I toggle the "Set Use Studio" option to OFF then LED growlights are ON and stage lights are OFF. When toggled to ON then both light sources are ON. Does this mean anything to you?
I'm wondering if I need to modify some of the code pertaining to the lights since my LEDs may behave a bit differently. When I initiate Set functionality by clicking SELECT button on shield during "Mode advanced", the timer starts counting down but the growlights remain on cycle after cycle and the stage lights never turn on...
enabling set functionality
Andre-
I'm having a bit of trouble enabling the set functionality. I count 16 submenus & am not real clear what exactly needs to be enabled for a basic set project (camera interval time, on options, and off options)? It would be great to see an settings example or clarify the options?
Set interval-
Set Shoot Count-
Set Playback FPS-
Set Exposure-
Set Bulb Speed-
Set Start Delay-
Set Use Studio-
Set On Delay-
Set On Idle (on/off)-
Set On Start-
Set on End-
Set Off Delay-
Set Off Idle (on/off)-
Set off start-
Set off end-
Set studio post-
I can understand that this
I can understand that this not not very clear. The issue is that the settings menu should have sub menus so that groupings of settings are more clear. I have tried this based on a menu library. That didn't work because it used too much memory. Making the settings menu more user friendly costs a lot of time and I think we don't need it.
That doesn't solve your problem. You are right. I have to write some sort of manual so that these settings are more clear. I hope to find some time for that. But for now:
- set the interval to your time lapse interval (00:10:00 = 10 minutes for example).]
- Set use studio to yes.
- Set on delay (relay that is switched on before the shot) to for example 00:09:00 (that is 1 minute before the shot is taken)
- Set off delay (relay that is switched of before the shot) to for example 00:09:40 (30 seconds before the shot).
- Set studio post is the amount of time before the off relay is turned on again and the on relay is switched off just after the shot is taken. I use 10 seconds mostly.
Is this helping you out? Stay tuned for the real manual :-).
It is very easy to add some
It is very easy to add some code to trigger the camera within two seconds. Have a look at the file: MicroEngine_Camera. The function time lapse_loop, which is heavily based on the OpenMoco time lapse controller, contains the following:
// if the camera is not currently exposing, and our
// timer has elapsed, fire camera...
exposing = true;
if(timelapse_advanced){
// Only use the set shutterspeed in advanced mode
camera_on(convert_shutter_speed_idx_to_ms(configuration.camera_speed_idx));
} else {
// Use preset shutterspeed in basic mode
camera_on(BASIC_MODE_TRIGGER_SHUTTERSPEED);
}
if (configuration.camera_cycle > 2){
// There is time for updating the display
print_message(1, "Time: 00:00'00\"");
print_number_of_shots(2, ++exposure_count);
}
} // end if not exposing and timer has elapsed
A quick and dirty hack would be to add:
delay(2000)
digitalWrite(CAMERA_PIN, LOW);
Just after:
This is a very dirty hack since the controller doesn't check if this two second interface is smaller than the overall cycle delay. It is also not using a timer interrupt as it is used by the "real" camera trigger code. But it should work for your purpose.
It is also my idea to control growth lights with the MicroEngine. I only have to add this check in the loop. I will do that as soon as my other project allows me to put time into this.
Your link about the lightning detection was/is where I got my inspiration from. But I am planning on using a bit more hardware based on a flash slave controller that I am working on too.
developing a USB Timelapse Controller
Cronix, I have been talking to a hardware programmer about creating a timelapse controller like the Little Bramper, but based on the USB interface.. in theory this should allow you to overcome the 30ms limitation of Bulb Mode AND allow you to control ISO (and therefore do ISO as well as shutter speed ramping)
Now that I've totally spilled the beans, I need someone to help me build the device (you *could* also do this on a smartphone.. any USB host really)
I'll do it myself if I have to.. but I don't care who gets the credit, I just want to develop a more complete and robust solution.
Daniel Lowe
http://danieldragonfilms.com
adapting
I've done some time-lapse set work in the past and am attempting to upgrade my set. So I'm at square one and pondering how to proceed. I'm new to Arduino and not a programmer but have programmed enough to not be completely intimidated. I've made a lot of progress with portions of the project but am just getting going with the programming. I've downloaded your three files and will have a look at the sketches.
I just saw some content concerning a lightning trigger-
lightning trigger
great progress
Wow this is really becoming an impressive bundle! I noticed that you can find a slightly cheaper real-time clock here (Maker Shed). I was originally thinking of controlling a powerstrip with the Microengine that could then allow me to simply plug in an appliance timer to regulate the specific LED connections but I can see how this is not ideal. So look forward to seeing this added so that grow lights can be controlled to run during specific time ranges (8AM to 10PM). I generally work with Canon Rebel DSLRs which have inferior shutter lock-up to control shake. Though I have a hack for an older Rebel Model enabling it to work more like a Canon XXD series, my newest model requires one remote actuation to raise and lock the shutter and a second to take the picture. Any ideas on code to insert that could fire two successive shots with ca. 2sec lapse to better enable mirror lock-up?
I've got to go do some LED wiring (grow lights) and ordered the LCD controller pad shield.
New functionality in de current DEV version
I have just uploaded my latest development to Sourceforge. The main change is that the MicroEngine now includes a timelapse calculator:
d on the parameters set in the settings menu.
Next on the to do list is a further integration of the real time clock into the functionality of the MicroEngine.
I guess it is possible to add
I guess it is possible to add stepper support in the MicroEngine. I don't really see a need for it. The real time lapse engine has full support for this. We MicroEngine supports a laser trigger and lightning trigger (both need more testing). This uses up all available pins. My advise is: use the real TLE if you need stepper support.
I have been playing with the
I have been playing with the real TLE, but I like that yours supports an onboard LCD screen with menus and buttons...
Great project
Thanks for the excellent post. I got same lcd shield and going to try your to run your code.
Andre when do you think you
Andre when do you think you would have the RTC and software updated? Also can you post a schematic of the hardware you added to the Arduino.
Thanks
RTC
I have soldered the RTC on my camera shield yesterday. I can connect to it via the I2C protocol. Issue is that the clock is resetting to a strange point every 15 minutes. I guess the software can be fixed quickly as soon as I get a grip on this issue.
When would you need this? Remember that you need to have the LCD shield when you want to run the MicroEngine.
Please have look at http://openmoco.org/node/33. I am using the same schematics. There is no difference there between the full blown TLE and the MicroEngine. I am using an other pin assigment because the LCD shield needs a lot of pins too. The source shows all the pins that I am using. Here is an overview of the upcoming MicroEngine pin assignment that will include the RTC:
/* 4-10 are used by the LCD */
#define CAMERA_PIN 13
#define FOCUS_PIN 12
#define LASER_PIN 11
#define BACKLIT_PIN 10
#define ALT_OUT_PIN 3
// We are out of pins because the display used a lot. The next one is analog pin 3 aka pin 17
#define ALT_IN_PIN 17
// Analog pin definition
#define KEY_PAD_INPUT_PIN 0
#define LIGHTNING_TRIGGER_ANALOG_PIN 1
#define LASER_TRIGGER_ANALOG_PIN 2
// Analog 4 & 5 are used for I2C (RTC)
You can connect the relay cards from Sparkfun directly on pin 3 and 17 if you need them.
Do you have any more progress
Do you have any more progress to report on this cool project of yours?
I just ordered an LCD Shield so I could play with this, I like the idea of doing some studio TL shots. :)
A few questions...
The link you gave to your software, links to a page with three .pde files. How do I get all three on the Arduino at the same time??? (I know it's a dumb question, but programing is still VERY NEW to me. )
So you said there is no difference between the full blown TLE and the MicroEngine, but the pinouts you list in your last post, the ones on the linked schematic and the ones called out in the TLE all seam to be different... Confused...
your code sample shows Camera_PIN as 13
the schematic shows Camera PIN as 11
and the current TLE has it as 14 (analog 0)
Brian
Just put the three files in
Just put the three files in one directory on your PC/Mac. You can then use the Arduino development environment to open and compile them. You can find the IDE on www.arduino.cc
The schematics (use of optocouplers etc) that I am using is the same as the schematics that I mentioned. You just have to connect it to other pins on the Arduino. This is mainly because the LCD shield uses a lot of pins. Follow the pins as described in my code and you are fine.
Ok, I'll give it a try when I
Ok, I'll give it a try when I get the LCD Shield. Thanks.
Just connect the shield and
Just connect the shield and upload the sketch on the Arduino. That should give you an impression of how it all works. You don't need the camera electronics at first.
LCD shield
My shield finally came in from across the Pacific... I literally just attached the LCD shield and loaded the sketches. Got this warning, "'LCD4Bit_mod' does not name a type".
Missing library
You need to install the library for the LCD shield. You can find it here:
http://www.yerobot.com/products/manual/LCD4Bit_mod.zip
Unzip the zipfile and put the content into your Arduino/libraries folder. You need to restart the Arduino.cc IDE so that the new library is recognized.
adding to sketch
I'm an Arduino newbie so eventually realized that I also needed to add mstimer2 library. Got the full sketch installed & will navigate around the LCD keypad to see how it works while waiting for some additional hardware components. Maybe my New Year's resolution will be to get it all integrated and ready for a trial!!! Still very cool!
Canon dSLR not firing
So I'm getting my camera to fire when using other intervalameter sketches (e.g. Arduino Intervalometer Basics) but not the microengine's... I'm shooting with a Canon dSLR and have the Nikon Focus option disabled. Camera was set to full manual with manual focus engaged on the lens. The LED on the Arduino board flashes on cue but not the camera... Any suggestions? Also, has the realtime clock functionality been added? If so then what realtime clock sketch do you recommend downloading?
Use the DEV
Are you using the DEV version from sourceforge? I have looked at the code and cannot find anything that shouldn't work on a Canon. Can you please use a low shutterspeed (you can set it in the settings menu of the MicroEngine). The default is 1/250s. Maybe that's too fast?
Regarding the RTC; it is partially implemented. What are your specific requirements?
get the DEV version
Don't forget to get the DEV version from Sourceforge. The current production version is very outdated. Please get your version here:
http://openmoco.svn.sourceforge.net/viewvc/openmoco/MicroEngine/branches/dev/MicroEngine/
That version contains RTC support and most of the features that you are looking for. I only need to add some code so that certain actions are restricted within a time frame.
Questions...
Ok, I got my LCD shield today and also built my camera interface shield. On my camera shield, I added a LED to each of the pins that feed the Optocoupler. The LEDs operate parallel to the Optocoupler for a visual indication of the input signals sent to the Optocoupler. I then loaded up some basic code that alternated HIGH - LOW between pins 12 & 13 and tested the Optocoupler output and Camera cable and verified it was working.
Next, I loaded up the Micro Engine code and took some time to dig around in the menus and get familiar. I'm guessing the "Exposure time" in settings is used for shooting on bulb, but what is "Bulb speed" setting? Also what are "Enable in/out", "Input delay", "Output delay", "In/Out post del", "Lightning thresh", "Laser threshold" used for?
When I exited the settings and pressed select to start the basic timelapse, both LEDs on my camera interface board started to blink at the 3" interval I had set as expected, but my camera (a Canon 5DII) was not shooting. I could hear and feel the camera trying to focus, but it would not shoot, so I went back into the settings again to find the "Nikon focus pin" option I had seen, and set it to Disabled. This time only the LED for Shutter (pin 13) flashed but the camera would still not shoot, so I flipped the Auto/Manual Focus switch on the lens to Manual and it immediately started shooting. What do you think is happening here? Is the time allowed for Focusing too short? I guess I would be shooting timelapse with Auto Focus off 99% of the time anyway right. :) Though I could see a use for it on a moving dolly.
Focus delay
Ok, this one took a while. I have just added a configurable delay when the (Nikon) focus pin is enabled. This delay gives the auto focus time to work before the actual picture is taken.
You need to download the DEV branch when you want to test this.
Focus Time
You definitely have to hold the focus line long enough to actually lock in focus. On my K7 I usually have to hold the focus line for 1-3 seconds when in auto-focus before triggering a shot.
!c
Wow
Wow a customer. Someone is using the MicroEngine. It's a bit late here in Europe right now. I will answer your questions is more detail tomorrow. The in/out stuff is for the relays that I use in my studio. Lightning is for lightning detection (partly implemented), laser for a laser trigger.
Time for focus could be too short; I have to look that one up.
Andre, how hard would it be
Andre, how hard would it be to add control for one stepper motor like the full OMTLE has?
(It would only need two pins right?) I have been digging around in the code, but I'm still so new to coding I'm not getting anywhere.