Skip to content

Herbert 1701 Species D Generations 1 & 2

The previous Herbert robotic life-forms all had a single logic circuit and while some made use of different components, the results were the same from a logic point of view. If the robot has enough power then do something. Not a very exciting logic circuit, but something necessary for all life, even artificial life. We can continue to use this simple logic design in one form or another, even with very advanced life-forms. Slightly modified it can become: If you are hungry then eat. For now we will leave it as is and continue by adding more logic circuitry to the robots.

The simplest logic circuits available are the same as the logic operators taught in any introductory computer class: NOT, AND, OR & XOR. These logic chips can be made to suit the purposes of the next stage in robotic life-form evolution, but would require a lot of additional support circuitry. Lacking space on the demo platform, we will instead opt for an integrated circuit that can accomplish our next task: which direction is the better power source?

To answer this question Herbert 1701 Species D will make use of a comparator chip. In simplest terms, a comparator takes two inputs and determines whether one input is higher than the other. Generally the inputs are voltage levels that are being compared. The comparison between the two voltages usually produces one of two outputs, either a ground level or an open circuit.

Continue reading "Herbert 1701 Species D Generations 1 & 2"

Herbert 1701 Species D

As life would have it, the Maxim Maxim kicked in during my search to find the items needed to create a proper Photovore competition arena. I had figured the 250W halogen bulb would prove the most difficult to find, but it was the first item knocked off my list. The "common items" -- such as wooden dowels or Melamine board -- seem to be outside of my reach; short of paying a hefty shipping cost. Instead, I have decided to move on.

Based upon the tests and competition I was able to perform with the Herbert 1701 Species C robots it was pretty clear that the variable trigger solar engine is the route to go, proving far superior in most tests, particularly low-light and bright-light conditions. Therefore, this will be the species and generation that continues forward. At least for the time being.

Test Platform TopTest Platform SideSeeing as I have little wish and no money to create new circuit boards for each generation of the Herbert 1701 Species D robots, I have opted to build a simple test platform. While this is nothing fancy -- consisting of a solder-less breadboard, a sheet of plastic, a wheel and some motors -- it will work for the purposes of testing different circuitry configurations, as well as varying components.

As can be seen in the platform images, I have built out the variable solar engine using the Maxim MAX8212 voltage monitor. Throughout this species of Herbert artificial life form I will continue to use this same circuit and will be changing around everything else.

Continue reading "Herbert 1701 Species D"

Herbert 1701 Species C Generations 4 - 6 Builds

I want to start off by apologizing for an inaccuracy in the Herbert 1701 Species C schematics. I had grown so accustomed to using reverse biased LEDs as photo sensors that I placed the photodiodes in a reverse biased position in all of the schematics. This, of course, is incorrect as photodiodes function in a forward bias position. The charge circuit for Herbert 1701 Species C Generation 6 is correctly biased as it makes use of an infrared LED instead of a photodiode and should remain reverse biased. All of the affected schematics have been updated to fix this screw-up on my part.

Moving on, I have been building out each of the three species C robotic life forms, generations 4, 5 and 6. Although I will not be labeling each as a separate generation, there are many aspects of the mechanical build that are subject to the same evolutionary process that I have been following for the circuit designs. Use of different components and their placement have just as profound an effect on the effectiveness of each Herbert as the initial circuit design, even more so in some instances. Just as with the trial and error used in those circuit designs, the builds have required much redesign and tweaking.

Beginning the design phase, I had decided on an outer shell to hold the various sensors and solar panel in place. I produced this outer shell using a two piece mold process, which will be used for the depictions in the upcoming tutorial. While this design seemed like a good idea in principle, the application left a lot to be desired. Herbert 1701 Species C Generation 4 was the guinea pig for this design and would have likely yelled at me for my idiocy if it were capable of such.

Continue reading "Herbert 1701 Species C Generations 4 - 6 Builds"

Robot Sensors

Spend enough time around robot hobbyists or their message forums and you will come across the two "How Do I" topics that popup over and over again. It depends on the time of year and climate as to which topic is more popular, but the first is "How do I build a flying robot?" To be honest, this question made the mode of transportation for the You Design It project a foregone conclusion before voting even started. Flying is really cool and the number two dream of every man, woman and child, hence the reason so many roboticists want to create a flying robot (the number one involves Rebecca Romijn and the Mystique costume).

That is all well and good (Mmmmm, Mystique), but this entry is more concerned with the second of those questions, "How do I implement robotic vision?" It seems like everyone in the robotic world is obsessed with hooking up a 500 gigapixel camera to their robot and letting their robot see exactly like we humans do. Even more so, they all want object recognition thrown in their as well. This is such a popular request that there are a dozen opensource and inexpensive retail projects out there dedicated to allowing hobbyists to do exactly this. Of course none of these projects ever have the disclaimer that the hobbyist is going to be incredibly disappointed with the outcome, but they will. Oh yes, they will.

In order to see (ha! a pun) why robot hobbyists are going to be disappointed, let us backup a moment and look at the human brain. The human brain is arguably the most complex and powerful logical processor in the known universe (some more than others). Even if you made a silicon processor the same size as the human brain, it would still not compare in power because organic brains are analog processors, not digital (they all lied to you in school when they told you the brain uses binary). In addition, a brain is made up of multiple sections dedicated to performing specific tasks, with one of the larger sections being dedicated to visual processing (striate cortex, prestriate cortex, etc). Basically, a brain is a lot of very powerful analog computers working in parallel and roboticists want to make a single 8-bit 16MHz processor accomplish the same functionality, plus handle all the other sensors, motor control and logic programming. Disappointmentville here we come.

I can fully understand why someone would want to build a flying robot that can see and fully appreciate Rebecca Romijn, but it is not going to happen at the hobby level easily. Throw in a few more processors, reduce the pixel count and make it a 16 color count, and suddenly you are in the realm of possibility. Rebecca is not going to look good at that resolution though, so let's look at other options instead.

I said in the Herbert 1701 Species C Gen 1 & 2 entry that sensors get skimped on for robots, and to explain what I mean by this I am going to once again jump to biology. We all know the five senses, but most biologists can tell you there are more (and none would fall into the X-Files anywhere). Magnetic field detection is well documented in migratory animals, many snakes (and other animals) have specialized sensors for detecting heat (thermoception), everyone knows bats deal with ultrasonic sound waves, and the list goes on. Robots have all these senses available to them and more, yet rarely will you see more than a couple sensors on a given robot.

I do understand that the organisms people associate with just the five basic senses fall into the "very complex evolved species" classifications. So now it is time to shame that belief with a little more biology. Most single cell bacteria (yes, we are talking micro-organisms here) have both a wider variety of senses and a higher count of sensors than ASIMO, one of the most advanced robots in the world. There are bacteria that are not only covered with touch sensors, but some can even tell you which direction is north from south, know which way is up from down in pitch black liquid while at a zero buoyancy, can sense temperature, know whether there is light or not and how bright it is, and even sense minute chemical changes in the surrounding environment. Single cell organisms. And you want to put two IR sensors on your robot and say that is "enough"?

If the robotic community (hobby and professional) is going to have a hope for making complex robots, we are going to have to loosen up on the sensors a bit. There is a limit to the number of I/O (input/output) ports available on a microprocessor, thus a limit to the number of sensors, but that just screams that maybe you should have more microprocessors to support more sensors. Ugobe understood this a bit when they designed Pleo: more sensors meant more "life-like", which also meant more processors. Granted Ugobe just went belly-up, but that has nothing to do with the sensor count and how much more realistic Pleo was compared to other "toy" robots.

The evolution project artificial robotic life forms are very limited in the number and type of sensors currently, but it is an evolution project. These robots are starting off very simple and evolving into more complex organisms, where, I imagine, the number and variety of sensors will increase with the growth. I am intentionally evolving the Herberts in this manner to increase my own understanding of robotics, and also to generate the best options for each generation. That's my excuse for not having more sensors and processors in each robot (yet), what is yours? Really, when you design a multi-thousand dollar robot (yes, I am talking to you Mr. Universities like MIT, Carnegie Mellon, & Stanford, as well as companies like Honda and everyone who enters the DARPA Grand Challenge), you have given up the right to any excuse.

Herbert 1701 Species C Generations 5 & 6

The strong survive. That is one of those statements thrown around when talking about evolution or natural selection. It is also one of those statements that people opposed to the idea of evolution warp to mean something other than what was intended. Sort of like a woman slapping a man for shouting out "bare run" as he passes her during a jog through the woods. An ultra-feminist takes the verbal words to mean "nude run", where-as a non-biased person would have understood that the man was shouting a warning about a "bear" and that the woman should "run" as a result. It is why scientists rarely use the phrase "the strong survive" any longer.

Natural selection is a much better term that means the same exact thing. An animal of the same species with one genetic trait is more likely to survive than one with a different genetic trait. Which one survives depends entirely on the environment and the other animals around (including ones from the same species). Take for example two moths; one moth is dark brown, the other light brown. Which moth survives? If the two moths are in a forested area where the tree bark is a dark brown, the first moth is more likely to survive. It does not mean the second moth will die out, just that it is less inclined to survive in its given habitat. If the environment has no predators for the moths, then both moths are equally likely to survive.

Evolution Project - Herbert 1701 Species C Generation 5 SchematicHerbert 1701 Species C Generation 5 is an example on this concept. By changing the trigger voltage to a higher value (around 5.6V) we produce a simple adaptation over Generation 4. Up until this point there have been pretty clear reasons behind changes in each generation or species of Herbert. More efficient use of energy, the inclusion of sensors, and the ability to move all have simple logical advantages when implemented correctly (and we covered "correctly" for each as needed). The change in Species C Gen 5 does not provide a definitive advantage over the previous generation, nor is it a definitive disadvantage.

I previously discussed how additional voltage can produce an advantage by offering more power to the motors for stall situations. The disadvantage is that it will generally take longer to reach the trigger point for that higher voltage, and under low light levels that trigger point may never get reached. So which is the winner, a higher or lower voltage trigger point? That is what is unclear.

Evolution Project - Herbert 1701 Species C Generation 6 SchematicWere I a gambling man, my money would be on some sort of balance between voltage levels. Even better would be a variable trigger voltage based on the amount of light that Herbert was currently basking in. Herbert 1701 Species C Generation 6 is the embodiment of this concept. Using an IR LED in a reverse bias configuration produces a max8212 solar engine that varies the trigger voltage based on the amount of IR light available. The configuration shown in this schematic produces a trigger level that varies between approximately 2.68V in low light conditions and around 5.7V in direct Florida sun. It is this variable solar engine that is at the heart of Species C Gen 6.

It might seem as if the variable trigger level would provide an advantage over generations 4 and 5, but like the moths, the advantage depends entirely on the environment. The most efficient method of determining advantages or disadvantages for each adaptation would be through nature's very own Natural Selection process. And that is exactly what I intend to do with each of these three generations. The winner of this selection process will be the generation that I will continue to evolve forward, the others will be shelved (temporarily at least).

Not wanting to bias the selection process in anyway, I will not be determining the environment. Instead, the robotics community has already decided upon the environment that they feel provides the best test of a solar robot's (phototropic artificial robotic lifeform's) ability to survive: The Photovore Competition. The competition rules I have opted to use are the BEAM Photovore rules straight from Robogames. Two Herberts enter, one Herbert leaves.

If only I had an audio track of Tina Turner saying that last bit.

Herbert 1701 Species C Generations 3 & 4

Thus far, Herbert has come along a fair ways during the Evolution Project. From a simple solar engine circuit, to a species with sensors and the capability of movement. In the world of robotics this really seems like a simple thing. In the world of evolutionary robotics this is a huge change. An artificial robotic life form that "just is," to one that is capable of self-sustaining behaviors. That really is huge.

The self-sustaining behaviors are still limited in Species C Gen 2. While Herbert moves towards brighter light sources, it will run into problems in the event of shadows or darkness. Once again we wind up with little comatose Herberts.

The reason for this behavior is the nature of the photodiodes in Herbert's circuitry. When there is minimal or no light hitting each photodiode the current flow to the NPN transistor base (ZTX1047A) is negligible, resulting in the transistor not turning on. Effectively Herbert goes to sleep when there is too much of a shadow over its sensors, regardless of how much energy it has in reserve (the capacitor). Not exactly a high survival genetic trait.

Evolution Project - Herbert 1701 Species C Generation 3 SchematicHerbert 1701 Species C Generation 3 is the solution to this problem. The addition of resistors in parallel with the photodiodes ensures that current will always flow to the transistor bases. This means that while Herbert has energy, the motors will turn and Herbert will continue on in its never ending quest for brighter light. How much the motors will turn depends on the size of the resistors used: too large of values and there is not enough current, too small of values and the photodiodes are effectively removed from the circuit. It is a balancing act that is determined by the characteristics of the photodiodes. While I am certain there is an electrical formula to determine the proper value, I used the trial and error method to come up with a value of approximately 50k ohms.

The next area of improvement for Herbert is in the form of additional senses. Species C Gen 3 possesses the ability to move toward brighter light sources, but will happily charge headlong into a wall and make a futile attempt to move the wall while expending all its energy.

Evolution Project - Herbert 1701 Species C Generation 4 SchematicCombating this overly ambitious and self destructive behavior, Herbert 1701 Species C Generation 4 develops a rudimentary sense of touch. As can be seen in the schematic, this rudimentary sense of touch occurs through the addition of two momentary (normally open) switches. In the robotics world these are generally termed tactile sensors. When one of these tactile sensors is triggered it causes near full current flow to the base of the corresponding NPN transistor, bypassing the photodiodes and, hopefully, causing Herbert to turn away from the object it touched.

A little side note here. When it comes to parts for solar robots, I almost always purchase from Solarbotics. Their prices are fair, their customer service is exceptional, and their quality is generally excellent. They are the premier for solar robotic supplies. As much as I love the company, I hate their omnidirectional tactile sensors. Perhaps it is just me, but I can never assemble these things to work well. And at $4.50 a pair, they are too expensive for me to be screwing up as often as I manage. Instead of trying "to get it right" any longer, I have created my own style of tactile sensor, which is basically the exact reverse of the Solarbotics tactile sensors. I will be posting a tutorial on the creation of these tactile sensors shortly, which I feel are less expensive overall and easier to assemble correctly, each and every time.

Returning back to Herbert, you may have noticed a lack of bread boarding for these two generations. That is because I have begun creating a fully functional artificial robotic life form with this species. This means using etched PCBs and actually soldering in parts. But rather than limit the PCB to a single generation, I have opted to include space for the components of generations four, five and six. So please ignore the through holes and solder pads that contain nothing in the following pictures (ignore the solder job as well, it was the only class I missed in Nuke school).

Evolution Project - Herbert 1701 Species C Generation 4 Circuit Evolution Project - Herbert 1701 Species C Generation 4 Circuit

Should anyone so desire it, the ExpressPCB board layout can be accessed here: Herbert 1701 Species C Generation 4 PCB

If you decide to etch your own board, three circuit boards will fit on the standard RadioShack 2-sided copper PCB board and I have included the ExpressPCB board layout for printing both sides onto transfer film here: Herbert 1701 Species C Generation 4 Double Sided PCB Print Out

Lastly, the electrical component part list can be downloaded here: Herbert 1701 Species C Generation 4 Parts List. All of the connector components are not required if you wished to solder each to the PCB directly (labeled "OPTIONAL" on the sheet). I'm on a budget, so I reuse what I can by using connectors.

Herbert 1701 Species C Generations 1 & 2

Sensors are a very import biological component and yet they are something that get skimped upon when it comes to the field of robotics. Skimped upon not in terms of cost, but more in terms of volume. This does not pertain to the current evolutionary cycle of Herbert; it is just something I wanted to mention. I promise I will get back to that gripe at some future date, for now we have a new species of Herbert to uncover.

The addition of Herbert's first two little sensors has opened a whole new world to the poor little critter. Where once there was only darkness, now there is darkness and light (and a bunch of shades in between). What's more, it is a focused light; the very light spectrum that breaths life into Herbert. This new found sense should logically be used for something, and in the very simple organisms that have been the Herbert 1701s, it can be.

Herbert 1701C-1 SchematicEnter Herbert 1701 Species C Generation 1. Now that we have previously determined which came first (that being senses), Herbert has been able to evolve into that which came second: movement. Gone are the trademarked (and traditional) green LEDs of Herbert past; replaced with the simplest robotic form of movement: the motor. Biologically, the wheel is something that is far from simple, but when it comes to electromechanical life the wheel is where it is at.

Herbert 1701C-1 Breadboard
The bread board version of Herbert now seems to lose something once movement has been added, however it still serves as a suitable test bed for initial circuit layout. It also shows us the basic function of Herbert Species C Gen 1; the more light each sensor receives, the faster the corresponding motor turns. Pretty simple, yet a little on the inefficient side.

Herbert 1701C-2 SchematicThe phototropic world is a very energy unfriendly one. Sunlight provides a source of energy to life forms each day, but pound for pound it is not high on the scale of power level. This would be one of the reasons you do not see many trees walking around (there is that one oak, but besides him, not many trees at all). With the addition of the ability to move comes the additional need to not only make the most efficient use of the energy Herbert has, but also to conserve a little more of that energy. Herbert 1701 Species C Generation 2 accomplishes this task through the use of a few different components.

Herbert 1701C-2 BreadboardThe first change is in the value of R2, up from 740K to 820K resistance. This changes the activity voltage range for Herbert to an "on" value of 3.24V and an "off" value of 2.09V. Only a slight increase in voltage as a result, but for bringing a motor out of a stall condition during startup, it helps. In case you do not know, a stall condition is the state where the motor is not turning. Because of Newton's silly little laws of physics, an object at rest tends to stay at rest. This means it takes a little more oomph to get the wheel turning. It also means that once the wheel starts turning, it takes a little less energy to keep it going along. Wasn't that fun and interesting information?

Speaking of stall conditions, because you didn't just get more information than you needed, there is a second changed out component in Gen 2; the primary capacitor, C1. The value of C1 was increased from 1000uf to 4700uf, giving Herbert around 4.7 times more energy reserve to help avoid those pesky stall conditions. It also means it will take Herbert a little longer to fully charge up that capacitor before his brain turns on and says "We have energy, let's roll out!"

The last difference between Generations 1 & 2 is the transistors. As previously mentioned with Species B Gen 2 & 3, the transistors used in a circuit can make a difference in the circuit's efficiency. Herbert 1701 Species C Gen 2 takes this one step further. Gone are the 2N2907 and 2N2222 BJTs, replaced with ZTX968 and ZTX1047A BJTs, respectively. The replacement transistors provide for much greater efficiency under low voltage conditions than any of the previous transistors the Herbert species made use of. David Cook did a complete comparison in his Bipolar Transistor H-Bridge Motor Driver article. The results of his testing were actually a huge eye opener, but you can read all that for yourself.

With the completion of Species C Gen 2, Herbert is getting closer to something that more closely resembles the common views of biological life. Herbert is also getting closer to a critter that I will actually be building out, as opposed to merely bread boarding. Not quite there yet, but soon it will be. And then there will be nothing that can stop Herbert! Muahahahahaha! Ahem. Sorry.

Herbert 1701 Species B Generations 4, 5 & 6

When last we left our hero he was trapped behind the age old conundrum: "Which came first, the chicken or the egg?" Mere seconds from impending doom our hero deftly cracked open the egg into the flour and used the concoction to batter-dip the chicken, resulting in the beautifully prepared fried chicken that now rests upon the serving platter. We rejoin our hero as he sits down to enjoy a well earned feast.

Enough of that goofiness. The real question here is: Which came first, the movement or the senses?

Up to this point in the Evolution Project our artificial life forms have been very simple creatures capable of little more than gathering energy, knowing when enough has gathered and expending said energy. Actually nothing "little more" about it; that is all they have done. I think it is time for evolution to change all that.

Movement would be a phenomenal thing at this point. Movement would provide some action to observe and make the ALs more "lifelike". Obviously, movement needs to come first. And with movement, the little Herberts could go forth and wander the world as the free spirits they were intended to be. Until they wandered into a shadow that is; and eventually they all would. Then for all intensive purposes the little Herberts would slip into comas never to be heard from again.

Evolutionarily, movement on its own is a bad thing. Movement expends lots of energy. Movement brings life forms to danger not otherwise present. Movement also brings a life form to an energy source or allows it to flee from danger. The difference between good and bad is the addition of senses.

Senses tell a life form something about its environment. They provide information. While senses, or sensors as the case may be, on their own can gather information, without a means to act on that information the sensors are useless. But they are not harmful. They may expend a bit of extra energy or none at all or even generate energy on their own. Either way it is inconsequential compared to the energy used from movement, especially movement without purpose; and far less dangerous. "Which came first" are the senses. Any other way and the species would have died off.

The next logical step, or maybe illogical step, for Herbert would be the development of some type of sensor to better understand the world around it. Being that Herbert is a phototroph of sorts it would stand to reason that part of its physiology would become more sensitive to light patterns as the species evolved, eventually becoming something akin to a light sensor.

Herbert 1701 Species B Generation 4 introduces this concept in its design with the addition of photoresistors (or photoconductors or CdS cells). CdS cells change the resistive quality based upon the amount of light that falls on the cell. As the resistance changes (decreases for more light, increases for less light), the amount of current that reaches the base of each 2N2222 transistor changes, which in turn changes the amount of energy that passes through each transistor and the ajoined LED.

One of the problems with CdS cells is they are notorious for inconsistencies from one cell to the next. To combat this problem, our Herbert generates an adaptation seen already in the Herbert 1701 A Species with the addition of a balancing mechanism (obviously that gene was passed on). This allows a more equal distribution of energy flow across both LEDs than through the CdS cells themselves.

There is one further problem that the addition of the CdS cells creates. Herbert is a phototroph, meaning it generates its energy from light (the actual definition includes conversion of CO2 and water, but for this phototroph will do). The solar cell that Herbert uses, like the majority of solar cells out there, are more sensitive to the near infrared spectrum of light. The further away from the 850nm mark, the less energy the solar cell generates.

Why is this important? The CdS cells that Herbert 1701B Gens 4 & 5 have are most sensitive to the visible light spectrums, somewhere around 520nm. So while they can detect light, it is not the most efficient detection of light; and in some cases completely useless detection. Herbert 1701 Species B Generation 6 solves this problem by adapting the light sensors once again to something more specific to its needs: photodiodes.

Replacing the CdS cells with photodiodes provides a few advantages to Herbert 1701B Gen 6 over previous generations. The first is the more focused light detection found in the photodiode, in this case around the 850nm spectrum. Second, photodiodes generally react faster to changes in light levels than do CdS cells. This means Herbert 1701B Gen 6 is quicker on its feet, umm, board than Gens 4 & 5. The third is that photodiodes, which are placed in a circuit reversed in polarity from a normal diode, not only provide the needed sensitivity to light, but they also generate a small amount of energy. In a creature that needs to be as power conscious as possible, this is a big plus.

As the amount of light passed over each sensor varies, so too does the amount of current that can flow through the paired trademark green LED that Herbert uses to expend energy. In the plant world, this would be the equivalent of a leaf turning bright green in the sun and brown in the dark. Except in Herbert's case, the leaf does not fall off and die, merely waits to reenter the sunlight.

Oh. Almost forgot. It was the egg. Seriously.

Herbert 1701 Species B Generations 2 & 3

As noted with the release of Herbert 1701 Species B Gen 1, species B is an improvement over species A in the area of efficiency. A good chunk of this improvement is in the form of the MAX8212 Solar Engine versus the previous Miller SE, but you might have also noticed a difference in the transistors used in the B species. The difference was a move from the previous 2N3904 (and not seen but complimentary 2N3906) bipolar junction transistors to 2N2222 and 2N2907 BJTs (the 2N2222 you will see in the schematics below). A small upgrade, but it fell inline with an evolutionary move to a more efficient species.

If your eyes glazed over reading the last paragraph, don't worry, mine did too. I had to mention it for the sake of full disclosure on this project. And now we can move on. No wait. I'm sorry. A quick note on the difference between PNP & NPN transistors (2N2907 is PNP, 2N3904 is NPN). I'll skip the really boring stuff and just say the major differences are that PNP turns on with a low voltage (ground or -) to its base and allows current to flow across it to a load (the LEDs); the NPN is opposite, turning on with a positive voltage (current really) and allows current to dump out of a load and pass through it to ground. The reason this is important is that one device moves holes (PNP), the other moves electrons (NPN); and electrons move faster. So we like NPN. There, done.

The reason I mentioned all this is in order to keep species B as a more efficient critter than species A, we want to switch back to using NPN transistors. The problem is that the MAX8212 outputs a low signal when it is active, and as I just mentioned PNP turns on from a low signal. Thus a PNP transistor is needed, but there is hope because the PNP transistor dumps out a positive voltage, which we can use to turn on NPN transistors. And that is a good thing.

Here we have exactly that in the form of Herbert 1701 Species A Generation 1A. The poor little guy is not exactly a remarkable change in generations, so rather than a full jump ahead, it gets a letter added. Good stuffs, except it isn't.

Rather than the nice efficient energy usage of Gen 1, this Herbert behaves much in the same way as Species A. That is to say the LED flashes as Herbert charges and discharges the capacitor. The LED flashing is Herbert's way of telling us that it has used up all his energy and has to rest for a moment. Not quite the spritely little Herbert that it once was. So where did the energy go?

The answer is in more glazed eye stuff: Across the base to emitter junction of the 2N2222. The current flow to the base straight off the 2N2907 is just too high compared to the current flow across the LED to the collector, and so all that extra juice dumps straight to ground; leaving Herbert feeling empty and lethargic. Poor poor Herbert. No one to talk to, play with, or be with.

Hope is restored to the B species in the form of a couple extra resistors. The 10K/1M resistor combination that Herbert 1701 Species B Generation 2 developed drops the current at the 2N2222 base to a more reasonable level, keeping Herbert chock full of electrons to keep that LED glowing bright. Herbert with your LED so bright, won't you guide my sleigh tonight. Then how the Herbert's loved him. Sorry.

Herbert 1701 Species B Generation 3 follows in Species A's footsteps, although perhaps "light path" would be a better term. Two cells pumping out light where before there once was one. The difference is that this species continues to maintain enough energy to keep both "cells" illuminated without problem.

While not the greatest leaps in evolution, these are building blocks that will allow Herbert 1701 to continue on a path towards... well towards something else. And that is what evolution is all about. Next up, we will determine which came first; the chicken or the egg. Won't that be fun?

Evolution Side Notes

I figure now would be a good time to cover a few items related to the Evolution Project that don't really fit anywhere else. First up, I should give credit where credit is due and that begins with the schematics I draw up.

The program I have been using for schematic design is ExpressSCH, which is part of the ExpressPCB software package by expresspcb. It is a free download and, should you so choose, gives you direct price quotes from expresspcb for the PCB drawings you create. While it doesn't contain as many different components as other packages I have used, it has one of the easiest methods for creating your own custom components.

Another nice feature is that you can link a schematic created in ExpressSCH to a PCB board created in ExpressPCB, which can save you a few headaches in checking the connectivity between components. It also allows you to export your schematic to a bitmap file, which I then crop, resize and covert to jpg for upload to the great and powerful blog.

On the subject of schematics, I should mention that I haven't designed any of these circuits from the ground up. I have instead followed in the footsteps of the best and brightest and stolen from everyone else. That is part of the whole Intelligent Design aspect of the Evolution Project. This should be no big surprise, as I didn't invent the Miller Solar Engine, Andrew Miller did. In turn, he stole parts of it from other circuit designs.

Most of what I come up with is from memory. Once upon a time I was trained as a Nuclear Electronics Technician, which meant I knew transistor theory better than most EE professors from MIT. Being trained as a Nuke ET didn't mean you had that level of knowledge, but in my case I really did. While everyone else was memorizing the latest material, I was drawing out amplifiers and latches, but that is another story. Years of disuse later and I have a very hard time pulling that information out from the recesses of my brain, but it is still there someplace and allows me to figure out what components to put where and what I should change.

For all the other stuff that doesn't come directly from my mind, I have many Internet sources for inspiration. A snippet of a circuit from here, a modification on my own, and a snippet of a circuit from over there. That is where the previous and future circuits come from. For those curious few people, here's my top list of go to websites for those snippets (in no particular order):

2. BEAM Wiki. I've mentioned these first two a few dozen times already, and will continue to do so throughout this project.
3. Society of Robots. I use this site so much for refresher material that it has a permanent link on the sidebar over there.
4. David Cook's Robot Room. I own both his books from when I reemerged into robotics. The books combined with the website have tons of good information and circuit designs.
5. Manufacturer datasheets.
OK, got all the credits out of the way. The last side note on this project is in what you see versus what you don't see. The schematics, bread boarded circuits and completed ALs that get posted are the things that work or the necessary step to get from something that worked to another something that worked; such as Species A Gen 2. In coming up with what works, there are a lot of schematics and bread boarded circuits that do not. Some things look good on paper, but behave badly in reality.

Until all the electronics theory resurfaces in my brain (or I take a refresher course) there will be quite a many of these designs that get built out, but never discussed. Even once I have all that knowledge back, there will still be plenty of these designs. That is what makes it evolution, those species that can not survive die off and those that can live on; even if it just on paper (or in this case the web). It's my process, and I hope it explains some of what we will be seeing here as the project continues.

Herbert 1701 Species B Generation 1

The previous species of Herbert 1701s have all made use of a Miller Solar Engine, thanks to its simplistic design and low level of parts required. There are other solar engine designs that would work about equally, some better, some worse; it just depends on the application and part availability. If you have an interest I would encourage you to take a look at the variety of different solar designs at

There is one problem with the majority of solar engines out there, including the Miller SE, and that is the lower voltage levels that each handles. A portion of the SEs make use of the 1381* chip to determine the turn on and turn off voltage levels, which requires replacing that chip with a different 1381* to raise or lower the "trigger" level. Despite that, the base voltage levels for the 1381* designs remain quite low. Other designs use various diode combinations, again producing lower voltage levels. There are methods of increasing the voltage trigger level for most of these designs to higher levels and perhaps we shall delve into those during a revisit to Species A, but for now it is time for a new species to emerge.

The reason a higher voltage trigger level is desirable at this point is the need to allow for further growth and evolution. Many components exist and can be used that would work fine in the 3V range, but if something requires more power it can be a problem. To that end, we will evolve our existing Herbert to a new species, one that possesses a different style of SE at its heart; the Maxim MAX8212 Voltage Monitor.

The MAX8212 can be used in solar designs similar to other SEs, at the cost of additional resistors to the circuit. The benefits of the MAX8212 are a lower power consumption (compared to many other voltage monitoring SEs) and the ability to vary the voltage trigger level by varying the resistors. Both of these things make sense from an evolutionary stand-point; energy efficiency is a highly desirable genetic trait and if a life form is to continue to evolve and grow, it will require more energy to handle the various systems that take shape. After all, what would be the sense of developing a tail to swim with if the fish lacked the energy to move it? That species would die off pretty quickly.

The basic design around a MAX8212 Solar Engine is simple; three resistors are used between power, two pins and ground. The two pins are Hysteresis output (HYST) and Threshold (THRESH). The other pins involved are power (V+), Ground (GND) and Output (OUT). In a nutshell, the three resistors flow energy from the power source to ground, across HYST and THRESH, and as the laws of energy would have it, they drop the entire voltage level down to nothing in the process. The magic happens based on how much of that voltage each resistor drops along the way.

By varying the resistor values, we can set how much voltage hits each pin for any given supply voltage. A spreadsheet to determine these resistor values can be found here, as well as a little schematic showing where they go. The MAX8212 contains a self regulating 1.15V reference source and a comparator. When the voltage on the THRESH pin hits 1.15V the comparator notices this and sets the OUT pin to a low level. This low level will remaining active until the supply voltage drops down to a preset amount. The preset amount is determined by what is going on at the HYST pin and, by a strange coincidence, the voltage level sitting at the HYST pin when the THRESH pin hits 1.15V happens to be the turn off voltage (Vl). Basically it is magic.

You can use the spreadsheet to determine the resistor values needed; just enter the On Voltage (Vu), the Off Voltage (Vl) and first Resistor (R1) Value. The Maxim datasheet recommends an R1 value in the 10k ohm to 10M ohm range. Higher values are better as they allow the circuit to consume less current, but too high can result in insufficient current for the comparator to use. It is a balancing act.

Using the base MAX8212 design, we can combine it with most of the same components used in Herbert 1701 Species A Generation 1, merely replacing the voltage trigger with the new MAX8212 trigger, and replacing the transistor with a PNP type transistor to create Herbert 1701 Species B Generation 1. The schematic shown depicts the finished design for this species of Herbert, with resistor values that will turn the circuit on when the capacitor charges to around the 3.15V level and turn it back off when it drops down to about the 2V level.

With Herbert all built out into a solder-less breadboard we can see the new AL in action. Drum roll please. In light, the green LED illuminates and Herbert expends energy. Pretty similar to our previous Herbert species except where Species A would flash the LED as the circuit charged and discharged, Species B stays lit under the same conditions. This is because of the greater efficiency of the MAX8212 SE design, which I believe I mentioned previously. While the new species does very little that is new, it is a more efficient design and will allow for better, stronger, faster and prettier generations to come. And that is what evolution is all about.

Herbert 1701 Species A Generations 2 & 3

Strange things happen in the biological world when dealing with evolution. Some of these things work, some do not. One such evolutionary change that occurred somewhere along the line is that a single cell organism split into two duplicate cells, but rather than detaching completely, those two cells remained joined together as one organism. This event did not happen overnight and was actually set in motion through multiple generations of changes, eventually resulting in the first multicell organism.

Multiple cell organisms are where the cool stuff begins to happen. There are plenty of interesting and diverse single cell organisms out there, each of which has some very fascinating characteristics and traits. We can and do continue to learn from these single cell organisms, but when it comes to developing higher level functions you need multicell organisms and cellular specialization. This is where I will continue the next phase of the Herbert 1701 evolution projects.

While I am not an expert in taxonomy, I do believe that a single cell organism and a multicell organism would probably be classified as different species, regardless of how close those cells are in all other regards. Of course, in layman terms algae is algae, whether it clumps into multicell plants or stays as a single cell plant life. Despite this, for my own classifications I will be keeping these next two circuit designs as part of Species A. I am sure this will not be the only Herbert 1701 classification that does not make sense from a taxonomic point of view, merely the first.

Herbert 1701 Species A Generation 2 represents the splitting of generation one into two identical, but joined structures. As you can see from the schematic, this generation shares a power source between the two "cells", but otherwise is just a duplicated design. For anyone familiar with solar engines, this is the base design for miller solar engine powered solarbots: one solar cell with two circuits feeding two loads.

The interesting thing that comes about as a result of this new generation of AL (artificial life form) is not in the design so much as the actual function of the circuit. Placed in an appropriate light source one might expect the AL to react with both green LEDs flashing in sync, but as most persons who have built an electronic circuit or two could have told you, it does not. Instead one of the two solar engines activate, flashing the green LED, while the other circuit stays dormant without flashing. In bright enough light (direct Florida sunlight), both cells do flash, but not in sync and not for the same durations.

The reason for this phenomenon is the basis of evolution, and is the reason I bring it up. Despite both cells in the AL consisting of the same components, the two cells do not behave identically. This is because there is no such thing as a perfect copy. Each set of components has slight variations from the other, producing different electrical reactions; in this instance one cell activates at a slightly lesser voltage than the other, draining the source of energy before the other cell has the chance to activate. Were this to happen in nature, the second cell would die off; likely bringing the first, more dominant cell down with it.

In organic cells this behavior occurs on a fairly regular basis. When an organic cell splits, its sets of genetic coding split and duplicate. In the case of DNA there is a built-in mechanism that checks to ensure a near perfect copy; there is no such mechanism for RNA. RNA mutations are far more common and is the reason why RNA viruses are more difficult to fight against, they adapt too quickly.

Were Herbert 1701 Species A to have a chance of surviving this cellular multiplication, further mutation would be required. First, the original capacitors I removed in gen one from the standard miller solar engine across the 1381 leads would need to be added back. Basically this would be similar to an organic cell being able to store its own energy for use. The second change is the addition of a balancing mechanism that would have to appear during the split, in this case a 100K potentiometer between the circuits and ground. This balancing mechanism would be automatic in an organic life form, for the sake of keeping costs down it will have to be manually balanced.

Now we have a proper multicell artificial life form that can survive just as well as the single cell. In proper lighting the AL behaves as originally expected, the two green LEDs light up and dim in concert; gathering and expending energy as a single unit. Herbert 1701 Species A Generation 3 is a thing of beauty that, combined with the prior generations, has shown the very basis of evolution, as well as the difficulty in achieving successful new creatures through this process.

Herbert 1701 Species A Generation 1

I have mentioned previously that all my robots are named Herbert. It would only make sense that I would have a sound logical reason for this choice of name, but of course I do not. Truth be told, the name comes from the song Starface by White Zombie, which actually comes from an episode of Star Trek.

In order to keep each Herbert separate (in my mixed up mind at least), I attach a number to the end; thus Herbert 1, Herbert 2, and so on. I figure I should keep this same naming convention for the Evolution Project, but would like to avoid any overlap between robots I build "just because" and those designed as a part of the project. To that end I have opted to use the moniker of 1701 for all evolution project robotics, or rather artificial life forms. And yes, 1701 is the number of the Enterprise in Star Trek. It seems my geekiness knows no bounds.

The project begins in the realm of solar power. Evolutionary it makes sense; energy for life must come from some place and without another life to tap into (consume) there is no other available source of sustainable energy. For robotics this means solar cells. The second part of this is the consuming of said energy to perform some arbitrary task or another, even if it is just to regulate the energy. These two parts could be met by attaching a resistor to a solar cell and calling it a day. This is not enough for the project, as the goal is artificial life and therefore will need something more to meet those requirements. That something more comes in the form of a solar engine.

There are a variety of solar engines that can be created, many of which are outlined on the BEAM Wiki and at Each engine has different strengths and weaknesses, as well as different levels of complexity. For now, simpler is better; provided the core requirements for artificial life are met. One of those requirements is Organization and logic circuits. For this I have chosen the "Miller" solar engine. The design and function of a Miller solar engine are described very well in the above websites, so I will spare you the details and only cover the application and changes I have made.

The base Miller solar engine provides a logic circuit to our little life form. When voltage reaches a certain point from the solar cell, the circuit turns itself on and expends the energy across some load. For the sake of simplicity that load can be a resistor, but then it would be quite boring and we would never be able to witness the metabolism or response to stimuli (in this case the stimuli is light energy). Instead we will use an LED as the load and to fall in line with what would really be the simplest artificial plant life possible, it will be a green LED.

The only other change that is made to the base Miller solar engine is the removal of the second capacitor (usually labeled C1 in schematics). The second capacitor allows the voltage trigger mechanism (in most cases a 1381 IC) to remain "on" past its normal shutoff point. This provides power to the load for longer periods of time, which is helpful for heavier loads such as a motor. For a simple diode it is not needed, and the removal gives us a little more of a living effect. Thus we have a completed schematic for the first artificial life form in the evolution project, Herbert 1701 Species A Generation 1.

For all cases throughout this project I will create a circuit design and corresponding schematic. Where it is possible, this schematic will be put together on a solderless breadboard to test and tweak the design, as well as show proof of concept. Some generations I will build out the completed circuit to create the actual artificial life form, but others I will not. It will really depend on the differences between generations and species, the cost and availability of parts, and the level of circuit completion required to test the life form's function.

In this instance I performed all three. It is after all the first of the Herbert 1701 series and should be available for generations to come to look back upon and say, "This is where we came from." Alright, maybe not for that last part. In the case of Herbert 1701A Gen 1 I went the freeforming (creating a circuit without breadboard) route, as it provides a smaller footprint. The soldering is a little trickier, but it creates a nice compact circuit that, despite its simplicity, manages to look pretty cool. So without further adieu, I present the first of the Evolution Project artificial life forms: Herbert.

Let There Be Light

Somewhere in all humans, whether it is buried under layers of the subconscious or right at the forefront of the mind is the desire to create. For some this means making babies, for others it is writing or building bridges or cooking, and for some it is robotics. Throughout our lives, most of us will create across a variety of fields, but we usually find a special area or two that we are passionate about. Obviously for me one of those fields is robotics.

When I talk to people who are wishing to get into hobby level robotics I invariably try to steer them towards starting with solar robots (solarbots) or BEAM Robotics. There are a number of reasons for starting with solarbots over any other style of robotic platform that I use in an attempt to persuade entrants towards the "Light Side" (get it? Pretty clever huh?) of the field. Outlined below are a few of the more prominent reasons:

1. Variety of Skills Used - a big reason for starting with solar powered robotics is the number of different robotics based skills that are used and learned when building a robot of this type. In my opinion, basic electronics and soldering skills are a must have for any hobby roboticist to possess, and while these skills can be learned with mcu (microcontroller unit) based and battery operated robots, solarbots are less complex in design and thus easier to grasp the basic skills from. I have also noticed that most BEAM/Solar roboticists tend to understand what they are building better than those who use other platforms.

2. Simplicity - as I just stated, solarbots tend to be far less complex in design compared to their battery operated and mcu-based cousins. Simplicity means easier to understand and easier to complete. I have seen far too many people entering into the robotics field who try to build something complex in nature, only to wind up falling flat on their faces and abandon the project (and the field) entirely. Completing robots stirs up desire to build more robots and that keeps people in the game.

3. Costs - not always a problem, but robotics is not a cheap hobby. With $50, a bunch of scrounged components, some free time and a little scouring the SOR Forums you can build the $50 robot depicted at Society of Robots website. For under $10.00 and a free afternoon you can build a solarbot. Solarbots do not use batteries and generally do not use mcus (two of the three most expensive components for a robot), thus are much less expensive. Again, completing robots stirs up desire to build more robots.

4. Efficiency - solarbots are powered by the sun. Solar cell technology sucks (in the range of 20% efficient). Robots of this nature must be very efficient in order to operate, which teaches roboticists great methods of producing energy efficient designs. You will thank yourself in the future for learning how to get the most out of the energy available.

After going through my spiel the majority ignore me and take on a momentous robot building task, which they plan to have wash their dishes, mow their lawn, bring them beer and provide intellectual conversation. As a result, few complete their robots, fewer still stay with robotics. I equate it to trying to run a marathon before learning to crawl. It is what it is.

Don't get me wrong, solarbots are not the only place to start and be successful in robotics. Many people have gone different routes (I started with a step-by-step robot some 24 years ago). Either way, the moral of the story is to start simple and understand what it is you are doing. In case you are persuaded towards solarbots, there are many great places on the web to help get you started with solar robotics, two such places are and the BEAM Robotics Wiki.

The reason for this long introduction is that this is the place where I will start the Evolution Project. Solar power. In the beginning, life on Earth consisted of simple creatures that harnessed the power of the sun (or volcanic heat vents) to survive. The simplest of life forms; and thus the simplest of artificial life forms. 'Let there be light.' And there was light.

The Evolution Project

Before I really begin to delve too deeply into what I am terming The Evolution Project, I thought I should come up with some sort of definitive goals or objectives, as well as rules and guidelines for those goals. And what better day to write down some scientific methods for an evolution project than on Charles Darwin's 200th birthday. Before this morning I had no idea that it was his birthday, but coincidence is a mistress I have learned not to question too much. As I have mentioned, I love serendipity.

As per the basic ideas outlined in my Thinking Evolution entry, I believe starting small and building in pieces is essential if we are ever to make great progress in the field of robotics. Granted, serendipity always seems to play a role in discovery and some people will make leaping strides purely by what would seem to be accidental in nature. It happens all the time in scientific pursuits. However, for this project I want to understand what is happening as it happens and not have to look back to figure out the "Wow! How did it do that?" stuff. Thus, the previous guides outlined will be applied.

The question is, "What really is the goal of this?" Obviously something to do with robotics and evolution, but what? Well, let us strip away the robotics part and instead go with something else. Something grander. How about two somethings? Sure, why not...Life and Intelligence?

Both of these things are very difficult to define overall, and subject to plenty of debate. Life in particular does not even hold a complete definition, it is subject to change based on who you ask (much like what makes up a planet. Poor, poor Pluto). The overall answer to what is life is similar to another controversial subject and the rulings made by judges on the subject: porn. It is difficult to define, but I know it when I see it. The same can be said for the definition of life.

There are a few hard and fast rules that most scientists agree on when it comes to whether something is alive or not. I will use some of these rules, but seeing as I will not be using all of them I really have no justification having a goal of creating life. Despite all my strengths, I fall short of anything close to god-like (Just don't tell my ego I said that) and so we will say "Artificial Life".

The intelligence part, while not so heavily debated, is another one of those words that falls into the porn category for definition. You might think the obvious thing to do is go with Artificial Intelligence, but I am not. Artificial is fake, or in this case mimicking. I do not want to create something that mimics intelligence; I want something that displays it. That possesses intelligence of its own. I might not be able to create true life out of electronics and machinery, but I can create intelligence. Or at the very least will strive for that.

Now for the formalized goal. Drum roll please. The Evolution Project will be a progressive selection and building process of artificial life forms, such that each new generation should be superior to or better able to survive than the previous; with the ultimate goal of one or more generations of Intelligent Artificial Life Forms. Good goal. Simply, I want to make an Intelligent Artificial Life Form.

Onto the definitions and guides. The Artificial Life guidelines that I will be using will be taken straight from what Wikipedia considers a consensus of the characteristics of a life form, and I will add or subtract from these characteristics to accommodate the artificial portion.

1. Homeostasis: Regulation of the internal environment to maintain a constant state; for example, electrolyte concentration or sweating to reduce temperature. (Pretty self explanatory and something not all species need to do. We will take this one and add: ) as needed to survive.

2. Organization: Being structurally composed of one or more cells, which are the basic units of life. (We are not dealing with cells, but electrical and mechanical components. Hence the artificial part. Instead: ) Being structurally composed of one or more logic circuits, which are the basic units of electromechanical life.

3. Metabolism: Consumption of energy by converting chemicals and energy into cellular organizational components (anabolism) and decomposing organic matter (catabolism). Living things require energy to maintain internal organization (homeostasis) and to produce the other phenomena associated with life. (The only part here that does not apply is the decomposing organic matter. We will add that the artificial life form must be capable of deriving its own energy under its normal environmental conditions of its own accord. If you have to plug it in, it can not be an artificial life form, however if it can dock itself into a wall outlet and draw power on its own, then it is like you or I going to the fridge for food.)

4. Growth: Maintenance of a higher rate of synthesis than catabolism. A growing organism increases in size in all of its parts, rather than simply accumulating matter. The particular species begins to be multiplyied and expand as the evolution continues to flourish. (Obviously single cell organisms don't always grow, but the evolution part we will hold onto.)

5. Adaptation: The ability to change over a period of time in response to the environment. This ability is fundamental to the process of evolution and is determined by the organism's heredity as well as the composition of metabolized substances, and external factors present. (As defined, adaptation depends on characteristic number seven. By calling it Intelligent Design and with some experimentation, I will be providing the evolutionary adaptation. At least for the beginning.)

6. Response to stimuli: A response can take many forms, from the contraction of a unicellular organism to external chemicals, to complex reactions involving all the senses of higher animals. A response is often expressed by motion, for example, the leaves of a plant turning toward the sun (phototropism) and chemotaxis.

7. Reproduction: The ability to produce new organisms. Reproduction can be the division of one cell to form two new cells. Usually the term is applied to the production of a new individual (either asexually, from a single parent organism, or sexually, from at least two differing parent organisms), although strictly speaking it also describes the production of new cells in the process of growth. (Until nanotechnology has progressed to the level that nano-devices are capable of rearranging compounds at the molecular level, this is something that needs to be skipped. Also of note, the primary reason for reproduction is to continue the species; but if a form of life existed that did not die, would it have the need to reproduce? Over population would become a huge issue if every part of a life form could be repaired or replaced and the life form could live forever. I think evolution would cause the loss of reproduction for such a species.)

Once you strip off characteristic number seven and add the few caveats, I think this will work for our guidelines of what constitutes artificial life. The intelligence part I will define myself:

Capable of making complex decisions based upon a response to external stimuli, prior experiences or both; combined with the ability to accumulate knowledge of said decisions and experiences in an effort to improve upon current and future decision making responses.

Basically, I will know it when I see it.

This is the Evolution Project. These are my goals and guidelines. It will take time and patience. It will take learning on my own part. It will be fun.