All posts by Biolapse

Lotta stuff going on. Robots, Failures, Successes, etc.

Hey everybody!

It’s been a while since my last update. I have been pretty busy as of late. Some successes, some failures, lots of progress.

New Studio Controller Progress

Lets start with the new Biolapse Studio Controller. This is my top priority at this point as my older controller has been having issues,  we will get into that a bit later when I discuss my current shoot.

What is it? What is it used for?
Basically it is a fancy egg timer with relays. The plants need day time and night time cycles. You can shoot with 24 hour lighting but after a few days it can stress the plant.  I use LED grow lights for the day cycle and they work very well, but they have a horrible pink color cast to them and you don’t want to take pictures with those lights on. Instead they need to shut off, and then have a nice photography fill light turn on, then take the picture. Afterwards the fill lights need to shut down, and the grow lights need to turn back on. The BSC (Biolapse Studio Controller) is designed to make that happen. It is also responsible for triggering the cameras and Dragonframe, as well as controlling the temperature and humidity of the room.

The old BCM (Biolapse control module) serves this purpose for now but I have been running into reliability issues. I have spent an enormous amount of time learning how to film plants, and it sucks when I have a perfect timelapse ruined because the old controller is failing on me.

Out with the old. In with the new.

The new controller is all about flexibility, reliability, and redundancy. It has a variety of protection mechanisms in place to ensure that during a power outage that shooting is not interrupted. It has two power rails. The first one just plugs in the wall, and if the power goes out do does everything attached to that rail.  So the grow lights, water pumps, humidifiers, heaters, coolers and other non-critical functions will not be on a battery backup. In case of a power outage, those can all shut off for hours and it will not have any effect on the shoot.  All the critical functions are on the other power rail. This includes the studio lights, cameras, motors, etc. If any of these shut off, it could potentially ruin a shoot. The reason for having two power rails is to prevent non-critical elements from draining the backup battery.

The BSC will also control all the environmental controls, and pumps for automation of the watering systems, and even have the intelligence to know when something is not working correctly and attempt to resolve it on its own.

I spent quite a bit of time working on the code for the new controller using some breadboards, a display, and arduino mega mounted on a piece of plywood. It was enough for me to start framing out the code and to determine how I wanted the display, menu, and control systems to work out. But this sort of design is limited as I cannot attach everything to it.

Bread-boarded prototype for the new studio controller

Once I had made the main design decisions it was time to go ahead and build the hardware, then finish up the software on the new hardware.

I decided to build the new one in a server chassis. I like this design as it has plenty of working space inside, and is rack mountable, so if I ever get a proper studio (maybe sooner than later) I can rack mount it along with the DMC-16 signal generator and the chassis I use to house the stepper drivers.

Kyle was kind enough to help me out by printing some adapter panels for the chassis for all the inputs, outputs, and display.

3d printed panels house the outlets, the power rail switches, external triggers and power inputs.

The front panel on the chassis was removed and replaced with this nice green one from Kyle.  It has a Test Shot button, an Option Button, a Motor Power kill switch, a dial for menu navigation and a 3.5mm input jack.  The chassis built in USB ports, power switch, and reset switch on the front will all be wired in and 100% functional as well.

Green 3D printed face plate

I spent quite a bit of time wiring up the two power rails, switches, and jacks to the 8 solid state relays and the smaller strip of mechanical backup relays. I am pretty pleased with how it came out. I used various colors just to make it easier to trace down the wires and connections if i run into problems. it is very easy to end up with a jumbled mess of wires, and that is what happened on my last studio controller. I wanted this one to be nice and organized.  There are two sets of relays as mentioned, the larger 8 solid state relays are the primary, and they will be the ones doing the switching 99% of the time. The backup relays are “Normally Closed” meaning they keep the connection when not powered up, and break the connection when powered. There is going to be a light sensor that the controller will use to ensure that when it is prepping the lights before triggering the cameras that the grow lights shut off. If one of the solid state relays starts to fail and the grow lights do NOT shut off, it will engage the relay several times to see if it can get the lights off.  If they still do not turn off, it will kill the power via the mechanical backup relay.  This will ensure that the problem of the “Pink Frames” I keep running into will never happen again.

Now that the power rails and relays have been installed and wired up, it is time to move on to the logic and control system. In order to ensure solid reliability, I had designed a new circuit board and ran a small prototype batch. The old controller just used a hacked PCB from one of my old chrono-controllers with a cheap proto-board to make connections.

The pathetically poor wired up inside of the current controller. 4 relays, no customer PCB’s, weak wiring, it is amazing it has lasted me as long as it has.

The new one provides the ports to control 8 solid state relays, 8 mechanical backup relays, 9 camera outputs, multiple input triggers, the humidity sensor, display, clock module, LED indicator lights and everything else.

The new custom PCB designed for this project. This was the first run, unfortunatly it was not without flaws but I am able to work past those and correct the design so I can have new ones made.

I immediately ran into some problems with the new board when wiring up the rotary encoder (dial). I don’t want to get too in depth on it, but I was able to work around the problem so I can continue writing the code and testing it, but new boards will need to be designed and ordered.

I still need to test a few of the input and output triggers, but I am waiting on some jumper wire to be delivered. Tomorrow I plan to have an all day coding session to see how far I can get with the code. I already have menu templates built out, things are in a pretty good place. I need to build the watering system, the eeprom burn, a few other things then I can move onto the actual run engine.  While I am a bit disappointed I have to correct my PCB design and get new ones made, its not really that big of a deal and shouldn’t slow my progress down.  It will be a few weeks before Ill have all the code worked out anyway. I hope to have the board redesigned and ordered by next weekend.

Finn Failure!!

Finn connected to the lab computer for testing and debugging.

Finn is on my shit list for now and sitting in the “Time Out” corner. It keeps dropping connection to Dragonframe. I had it connected and running down in the studio, and 3 times in 6 days Dragonframe failed on me. Once I removed Finn, everything started working. Lil’ Wayne is still connected and solid, and has the same circuitry, just different physical hardware for the robotics.  Rather than debugging this in the production environment and have it continually mess up my shoot, I pulled it out and purchased another Dragonframe license and put that on a new laptop I picked up for a lab environment. This will let me test out new moco gear and ensure it is stable before bringing it into production.  I know the PCB is good as Finn now has a black matte clone that is waiting for delivery to its new owner this weekend, and that system sat in the lab connected to Dragonframe and ran for a week flawlessly. The Arduino within should be good as those are pretty rock solid. I suspect the issue might be the power source. When it was connected in the studio it was running off the same power supply as any of my other 12v devices. That power hub only provides 2 amps per channel, and Finns clone uses a 4 amp supply, while Lil Wayne uses a 6 amp supply.  Right now all the motors and power supply have been removed from Finn, the only connection is the Arduino to the Laptop, and it has been 2 days without a drop. If remains stable through the weekend that would be a strong indicator that the Arduino is good and the power supply is the culprit.

Trouble on the set!

Ugh. This is driving me nuts. So this last shoot has been a mixture of excellent success, and lousy failure.

The Good: Otto is running perfectly. The connection to dragonframe is rock steady, and I have made 8-9 changes to the current sequence it is filming to adjust the focus and make sure things are on track and it has all worked flawlessly.

The Bad: When making adjustments to Otto, I i did not shut off the axis for Lil Wayne in Dragonframe. So I would move the system about 15-30 frames out then make all the proper adjustments, but since I did not disable the axis for Lil Wayne, when I would apply a  keyframe it applied to Lil Wayne too and screwed up its motion. Not a HUGE deal, that footage is pretty much waste but I made an important discovery and that is anytime I make an adjustment on Otto, I absolutely have to disable Lil Waynes axis control from the arc moco page, make the adjustments, and then turn them back on. I will add them to my shoot process checklist and I wont be making that mistake again.  I am kind of bummed though, because I really liked the scene Lil Wayne was capturing.

LCD view of Lil Waynes camera filming a nepenthes with hanging pitchers.

 

The UGLY.

This is the worst thing. Everything was running beautifully, I was working on tracking another Nepenthes Pitcher nub as it grew out and started forming into a pitcher. Unlike last time, it ended up facing the correct direction, and everything was running perfectly. Then disaster struck, and the BCM failed to shut the grow light off for 7 images.

7 images in the middle of the capture were taken with the grow light still turned on.

Unfortunately this is virtually un-recoverable. I am shooting at 1 hour 25 minute intervals, if I chuck those 7 images out I lose about 11 hours of footage and the jump from the last good frame to the next good frame will have too much of a jump. This is all right when the Nepenthes is getting ready to open. I cannot color correct for these either, even if i could, they scene is illuminated from a different lighting source and during those 7 frames all the light will be from the wrong. This is why I have such a huge urgency to replace the failing BCM. I have been shooting this for about 4 weeks now. That is a lot of wasted time. With any luck the new studio controller will be up and running and I will never have this problem again, and this is the reason I am adding a light sensor and backup relays to ensure 100% that the lights shut off as expected. The new one will also give me an error log to report any relays that are not functioning as expected., and everything will be re-assignable, and I will be even be able to command the system remotely.  Right now the old studio controller is the only thing holding me back.

So whats on my plate in the next few weeks?

Well, first I need to get the studio controller finished. Next I plan to start working on a new robot. Going with a crane style setup this time. Call me spoiled, but after working with Otto, Pan, Tilt, and Slide just does not cut the mustard anymore.  A crane setup will give me almost the same level of control I get from Otto in a smaller package.

I am also looking to build a proper studio. Talking to contractors the last couple weeks and this is a very realistic goal at this point.

Studio has been dark. The BSC.

I have not been shooting anything the past 2 weeks and it is driving me up the wall. I am hoping to correct that in the next few days, but the past couple weeks I have just been super busy.

Bread-board prototype of the BSC (Biolapse Studio Controller)

 

I have not been sitting on my ass though. I a building another Project3 robot for a client that wants a plug and play dragonframe moco system. I have also been busy working on the BSC (Biolapse Studio Controller), and it is shaping out to be a beast, and I cant wait to get it finished and in the studio. This is going to be a direct replacement of the older BCM (Biolapse Control Module) I have been using.

On the tail end of my last shoot, the BCM started failing to shut off the grow light again. I think it is just getting old. I have already replaced the arduino and the relay, the wiring inside it sorta sucks, as I really just threw it together. It has served me well the last several years but it is time to replace it.  This weekend I plan to pull it apart and replace the internal wiring, I have already replaced the relays and the arduino, it has to be the shitty prototyping board I used to make some connections.

For those who are wondering, the BCM is a fancy intervalometer that coordinates the lighting system and environmental controls.  This next version is going to be a heavy upgrade on all levels. The BSC will be built like a tank and should get me by for the next 20 years.

Warning, I am about to get nerdy on this one. 

I have several upgrades planned.

  1. I am moving away from mechanical relays to solid state relays, and rather than just having four, it will control eight. These are much higher quality than the cheapo Sainsmart 4 channel relay that I had been using,  and being solid state they do not have any mechanical parts to wear out.
  2. Custom made circuit boards. The old BCM uses one of our chronocontroller boards hacked in with a blank prototyping PCB for the connections. This is where I think a lot of the problems stem from. Using a new PCB instead of jumpers for those connections will keep things nice and tidy and more reliable.
  3. Assignable switched outlets. The current BCM uses four relays, each has a specific task, one handles the Grow lights, one for the fill lights, another for the humidifier, and the last for a heater. They are hard set for these functions, and if i want to change them I have to re-write the code. The new BSC will have eight switched outlets that can be assigned for different purposes.  Lets say I am using one of the relays to provide power to a heater in switched outlet 1, if it starts having problems I can just move the heater cable to outlet 2 and reassign the heating function to that outlet and continue with the shoot, and then pull the BSC apart and replace that relay afterwards.
  4. Switchable Dual Power Rails. Like the fist BCM, this new one will also sport dual power rails, one that can connect to a battery backup, and one without the battery backup. I use this already as if there is a power outage I don’t want the grow lights sucking up all the battery power, I want to reserve the battery power for the fill lights, camera, logic board, etc. The humidifier, heater, grow lights, none of these need battery backup, if they shut off for an hour it is not going to cause any problems.  On this new BSC each outlet will have a toggle to take them from one power rail to the other, where as the BCM had them hardwired.
  5. I am adding function groups to cluster several relays together for specific functions.  So i can assign outlet 1 through 4 as grow lights, 5 and 6 as fill lights, then 7 for the humidifier and 8 as a spare.  When using the manual relay function to turn them on and off, 1-4 will all turn on and off together.
  6. Extra functions.  Right now the BCM only controls 4 relays to cover Grow lights, Fill lights, Heater, and Fogger. This will be expanded to include the ability to control a Cooler, Dehumidifier, Pump, etc.
  7. 3 Day/Night zones. Controlling multiple grow light ones for up to 3 different day/night times for different zones to accommodate shooting on multiple sets and being able to meet the requirements for various plants.  I might have one that stays on 24/7 for filming flowers blooming while another one works with 12/12 hour cycles for a plant, and the 3rd doing 16/8 for another. All these would still be disabled before shooting.
  8. Improved display and control setup
  9. Multiple triggers with assignable skips.  When filming a Nepenthes I like to keep my intervals at an hour or longer, but when filming flowers 10-15 minutes is better. I plan to give it 8 camera trigger ports, of which can be set to only trigger every X amount of shooting sequences. With this, I can film Nepenthes at 1 frame per hour, while I film 6 frames per hour on a flower.
  10. Metric output. Every time the system runs an event it will log the data to a terminal session on a computer.  This will help with debugging in case any issues arise.
  11. Interval ramping. I like the idea of gradually increasing/decreasing the intervals between frames. This can be used to adjust the capture speed without making an obvious change in the rate of growth, it also would allow for some interesting effects as well.
  12. Physical Build is going to be far more substancial, everything from the upgraded Arduino to the upgraded solid state relays, to the Server Chassis I will build this one into. This is going to be a heavy duty overbuilt beast.

Everything above has already been coded in, and now that it is starting to shape up I have to make a few final decisions before having the PCB’s manufactured and delivered.

A couple other ideas I am considering

  1. Adding a light sensor to monitor and ensure that a light has in fact shut off before it takes an image. When running into the issue with the BCM not shutting off the grow lights, it does not always fail and continue to fail, sometimes it only fails for a single frame.  By giving it the ability to make sure the light has shut off, it something sticks it can pause and try to turn the relay on or off multiple times to see if it can “jiggle it free”, then take the image and resume.
  2. Pump control. I already have this in the first BCM, but most never use it. It may be worth adding in to automate watering.
  3. Optional audible warning pre-trigger.

Project3 Final

Well Project 3 is done, and I’m calling this one Finn.

(Note, these are NOT real time speeds, this routine was shot as a timelapse with 10 second intervals on both robots)

This one was a real pain in the ass due to some errors I made. I wanted a nice finish so I spent quite a bit of time cleaning the aluminum and prepping it to be painted. Even after hours of prep, once the paint dried some of it immediately flaked off.  I decided to give my hand a powder coating, which is not something I have ever done before, but first I had to strip it back down to the metal. I picked up some excellent paint stripper from Ace Hardware, which also melted the gloves I was using and gave me some minor chemical burns. I found the best way is to use long pliers and some steel wool.

I picked up a powder coating system and practiced on a couple pieces of scrap metal and it worked great. It is not a pro-grade job for sure, but considering this was my first attempt at it, I feel i did pretty good. Just make sure you have a good hobby oven for this sort of thing. I have a convection oven i use for cooking circuit boards which was perfect, just sit the grate at the very top and hang the pieces from it.

Unfortunatly when I took the Pan/Tilt frame out of the oven, one of the welds broke loose. The motor mounts were not going to come off, so I had to either order new motor mounts and delay the process, or strip it all again. So I learned that paint stripper works well with powder coating as well. A few more minor chemical burns later, I cleaned it all up, re-filed the areas for the weld, and re-welded it. This time it is very solid though, once it cooled down I wrenched on the parts trying to break them loose and they are not coming apart. re-powder-coated it again, and this time I was golden.

The final build went pretty easy. I did have to re-tap some of the screw holes where the powdercoating got in, but that was not a big deal.

The  BDIU (Biolapse Dragonframe Interface Unit) was sort of a pain in the ass. I wanted to have some sort of port in which to plug the motors, so i marked out some lines, drilled some holes, and used some files to shape the holes into rectangles. Drilled a spot for the power supply and another one for the USB and then powder coated it.

I decided to attach the box underneath, but this box could easily have some feet stuck on the bottom and be perfectly sitting on a bench or set somewhere.

The connections are stupid easy.  Add a 12v power supply (preferably 6amp, but right now its running just fine on a 2amp channel off the 12v power center I built for my studio) and a USB cable to a computer running Dragonframe and presto, instant motion control for timelapse or stop-motion animation.

I admit, the rail is a bit short, 400mm of travel. But for this kind of work longer sliders just get in the way.

So if anyone is interested in one of these, After doing the entire build, i would be happy to build them for $1500 a pop for a 4 axis system, any color you want. That would include slide, pan, tilt, and linear.  The specs would be custom to your needs and built to order. Price may or may not go up depending on the requirements.  If interested shoot me an email.

 

This time lapse is a failure. 

But even as a failure, it is the most important timelapse I have done to date. The subject is a Nepenthes Sanguinea.

When I started to film this plant, I had a rough guess as to how the plant was going to behave. I have a lot of trash footage, because unfortunately as much as I want to predict the plant, they often have a way of surprising me and either growing out of frame, or out of focus, and when that happens the entire shoot is trashed. The longer the shoot, the bigger the risk of failure, and the larger loss of time.

I have been working on a technique I call Interactive Timelapse, which is a technique that allows me to follow the plant, so if it grow outside the area in focus, I can make live adjustments on the fly and continue to film. An entire year of building Otto, learning Dragonframe, working out the bugs, improving my workflow, and learning how to resolve issues mid-shoot has led up to this failure of a time lapse, and I have never been so excited about the work I am doing.

First off, thanks to the team at Dragonframe, all the bugs are finally worked out. Otto is running perfectly. A huge thank you to Dyami for his time and energy in helping me resolve these. Once Otto was finally running 100% rock solid, I was finally comfortable to take filming to new lengths and increasing the intervals to an Hour and longer.

This one first failed about 240 frames into the shoot. I was filming the closest pitcher with the intent to move the focus to the tip on the growing leaf, then follow it through its entire pitcher development. Around frame 240 the “nub” drifted out of focus. So I stopped the routine, moved Otto about 20 frames ahead, corrected the focus, then moved back to the last frame taken, and re-started the system.

It failed again about 50 frames later, same type of issue, same type of fix. And then again right before the nub makes contact to the ground, I had mis-predicted the location it would land and had to make more adjustments. After the pitcher was growing, the grass it landed in ended up pushing it to grow away from the camera, so another focus adjustment.

All of these were corrected, so why is it a failure? My stupid BCM failed to shut off the grow lights after 3 weeks and I got about 20 frames in a row where the grow light contaminated the images, that one I can NOT recover.

However, this is a proof of concept that I CAN in fact chase plants, respond to realtime changes, and alter the program on the fly, and to my knowledge this has never been done before. 

This is a preview of things to come.

Project3 Part 3

YES!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Project3

I need to come up with a better name. But so far it is moving along wonderfully. I had to make some part adjustments, the list is NOT updated as of Aug/24/2017. I will get around to that when I have more time.

So when we left off last time, most of the parts were in, and the Pan/Tilt frame was welded together.

The motor mounts were installed next, and that was a bit of a pain in the ass. I wanted to weld them on but the welds did not take. I think it is a different kind of aluminum. I ended up squishing one of the mounts in the process, so I went the old school route and bolted them on. The easiest way is to mark the holes and drill them through BOTH sides of the frame. That gives you a small hole for the hex wrench to go through to reach and turn the 6-32 screws. Once those were in place I used some aluminum epoxy filler to fill in the holes. To make sure the screws did not back out I used locktight on the threads and covered the screw heads in the aluminum epoxy.

As for the placement of the mounts, I just sort of eyeballed it.

You can see the epoxy on the frame in the previous picture, it is covering the holes drilled in the frame used to tighten the screws to the mounts.

The frame was painted with just your typical metal friendly rattle-can spray paint. I chose gloss white for this project.

I spent quite a bit of time cleaning the aluminum and prepping it for paint, yet i still have a couple tiny areas that flaked. I might strip all the paint off and try out powder coating.

The cradle was made from a couple pieces of 2in x .25in aluminum bars. I cut them to the desired length, then held them together with some 90 degree clamps and drilled/tapped some holes to join them together.

Now that part is out of the way, I wanted to get the head mounted to the rail.

 

The extrusion has slots with some bolts in it, makes for an easy connection.  I took a 2x2inch x 1/2 inch piece of aluminum and drilled some holes in it. 4 bolts facing down to connect to the anchors in the extrusion, and then 4 6-32 x 1 inch screws facing up into the larger hub clamp.

Easy enough. All of this can be done with a few bits and a drill press, just gotta make sure to countersink the holes so the heads recess under the surface. I did go ahead and add a hole in the middle that you cant see with a 3/8th inch tap so the pan/tilt can mount direct to a tripod.

This bracket gives a nice solid connection. My intention was to make this a 2 part connection, with the Rail mounted part using a 3/8th inch screw post, with a small 1 inch tall x 1.5 inch wide round base on the head with a 3/8th inch tapped hole. That way i could unscrew the head anytime i wanted, and even install a leveling plate in case I wanted to hold the rail at an angle. However I had one of those HOLY SHIT moments when cutting some 1.5inch aluminum stock. The piece I was cutting off ended up getting sucked up into the miter saw with a nice gunshot sound. So now my diablo aluminum blade is jacked up. This is the 2nd blade I have managed to destroy,  and at 60 bucks they are not cheap. 🙁

I wanted to get this mounted so I had to improvise with what you see here.

I am super excited about how this project is turning out.  I have to pick up a new aluminum blade so I can make the connection plate beneath the rail so I can connect it to to a tripod. Unfortunatly the extrusions walls are too thin to just punch and tap a hole, I’ll need a thicker plate beneath it and then secure it to the rail via the channel connectors.

Things I still need to work through

Finish. 
I am not overly happy about the paint. I spent quite a bit of time prepping the aluminum and it is already chipping in some spots. Being a studio queen, this would probably be fine and look great for years, but I would rather try to tackle this issue sooner than later. I have been reading up on powder coating, and I think that may be the right way to go.

Slop
The problem with avoiding expensive CNC mills on this project is that the holes for the bearings are limited to the size of the bit. if using a CNC, i could measure these in a few thousandths of an inch and get a nice tight fit. When looking at the photo, you may be able to tell that things are not perfectly held at 90 degree angles. I am looking into some possible shim ideas to tighten these up a bit.

Weight
The Pan/Tilt got pretty heavy with these motors. This is not really a problem, but the motors are a little bit overkill for this project. I think next time some heard NEMA 11’s would be more appropriate.  Aside from that, I am very pleased with how this is going 🙂

Electronics mount.
I still need a place to mount the Arduino and driver board. I have not picked out a box for it yet either.

 

Overall current impression
I have to admit, I am very pleased with how this is going. It looks fantastic, and once I get the rest of this dialed in i have no doubt this will be a very capable system and a wonderful addition to my team of photography robots. The bearings are nice and smooth, everything is held together nicely, and I cant wait to fire it up, I just have to get the tripod connection worked out first. This will probably actually be a 6 axis robot, if I can get both focus motors mounted for Focus and Zoom control, and then I plan to have this system drive a turntable as well.
So while it is not perfect yet, by the time I am done with it this will be a rock solid little robot.

Heads up, if there are any animators or timelapse photographers that are interested in a dragonframe moco rig like this please let me know. I hope to have enough information here where an enterprising person might be able to build their own, and if somebody wants to try I am always willing to offer assistance. However, if somebody wants one of these pre-built, that is also a possibility. Cost for a complete dragonframe ready system would be about $1200+ depending on rail length, any extra design considerations, etc.  Email me, Chris@biolapse.com and we can discuss it. Turnaround time is not fast (2-4 weeks depending on part availability and my schedule), but I would keep you in the loop on the progress of the build.