To satisfy and encourage my daughter’s love for birds, we decided to let her have chickens. We talked about the different options on getting them, and we settled on building our own incubator and hatching eggs. I thought that building an incubator would be a way to introduce engineering to my daughter and I thought “how hard could it be anyways”. Turns out it was harder than I thought. My daughter quickly assembled a carton box with a wire mesh and a light bulb. I was surprised at her urgency and came to the realization that I was a collaborator and not an instructor. My daughter introduced me to the Chickscope website where I saw the instructions she was following to build an incubator. She instructed me on the need to control the temperature, the humidity, and the rotation of the eggs. Suddenly, the building of the incubator became a research project and an engineering challenge.

I pointed out how the carton box was not an adequate insulator and ways we could improve it. We had received a meat order from out of state that had come packaged, and well insulated. That was our starting point. The first incubator gave us Lucky, an OEGB, on the first batch, and Miracle, another OEGB, on the second batch. They are now popular and have their own instagram account at Bantamtrickchickens.

Forward three years later, the year of COVID-19, and the need for an improved incubator came up. This time, we wanted to ensure that we only hatched hens. My daughter attempted an embryonic hormonal test. However the hormone kit had expired by the time we used it. I also wanted redemption. Hatching 1 out of 6 eggs on 2 different batches was disappointing. The humidity control didn’t work, the relay that turned the light bulb on and off was noisy, and the rotation of the eggs was rough. All of these have improved on the second iteration of the incubator and are now worth writing about.


The Hardware

Bator2020 is made up of sensors, fans, a servo, an Arduino, and a Raspberry Pi. The Arduino is the brain, or main controller, of the incubator. It interfaces or connects to the sensors, fans, the servo, and the Raspberry Pi. The Raspberry Pi provides the user interface, the start command to the Arduino, the collection and graphing of data, and the emailing of alerts. It also takes pictures and videos when it senses movement, which is when hatching begins.


The Enclosure

The enclosure is made of Plexiglas and 1-inch insulation on the perimeter and 1½-inch insulation on the lid and bottom side. It’s dimensions are 14 ¼ x 11 ¼ x 11 ¼ inches on the outside and 12 x 8 x 10 inches in the inside. Plexiglas was chosen for its insulation and clear properties. The idea was to be able to see the eggs hatch. One side lacks insulation so we can see the interior of the incubator. We used duct tape to hold the enclosure together and as a hinge on the top side. We also made a hole on the top side to allow ventilation and to control humidity. The hole is loosely covered by a sticky note. There is also another hole on one side to allow air in, as well as the different wires for the fans and sensors through. The side hole is loosely covered with a cotton ball. The viewing side also holds the peltier transducer with the hot fan, the cold fan, and the sponge and can holder (SCH).




The Temperature Control

The temperature control is achieved through the use of a peltier transducer ($19.99), a fan that circulates the hot air, and a MAX31855 ($14.95) that connects to a type K thermocouple. The MAX31855 is placed on the outside, and it measures the ambient temperature with its built in temperatue sensor. The thermocouple is used to measure the inside temperature. The Arduino, or GrovePi, turns on the hot fan when the incubator is enabled via the command from the Raspberry Pi. It turns on the peltier transducer if the temperature is lower then 37.5C or 99.5F. If the temperature is higher, the peltier transducer gets turned off. The Arduino checks the temperature every half a second. The Raspberry Pi takes a snapshot of the temperature every 5 minutes.

The Humidifier

There are multiple parts to the humidity controller. The HTU210 ($14.95) sensor measures the relative humidity (RH) inside the incubator. It can also measure temperature, but it is not used to control the peltier transducer. The desired humidity is programmable via a command from the Raspberry Pi. If the sensor’s humidity is lower than the desired humidity, then the cold fan is turned on. The cold fan is inside the incubator and attached to the viewing side of the enclosure. There is also a frame that holds magnets and aligns the fan with the SCH. The magnets attract other magnets on the SCH. This mechanisms enables a tight connection to the viewing side while offering convenience when refilling the water. The viewing side of the enclosure has an opening that allows the fan to pull in hot and humid air from a sponge on the outside. The SCH is also on the outside. The can is filled with water and can last for up to 7 days before it needs to be refilled. The sponge remains humid by capillary action; it pulls water from the can. The SCH has an opening that allows water into the sponge holder section. There is a second opening that allows air into the can. The atmospheric pressure and the vacuum in the can ensures that the water empties slowly or on a need basis. A piece of aluminum foil is placed with the sponge and reaches its outside. Another piece of aluminum foil is placed inside the incubator and reaches its outside. When the SCH is placed or attached, the aluminum pieces make contact and heat transfers from the inside of the incubator to the outside. The Raspberry Pi sends an alert email when the humidity drops to less than 39 RH. The alert is an indication that the can needs to be refilled with water.




The humidifier can reach 65 RH, provided that the lid is tightly closed. This finding came about when my wife needed a place to put her laptop while printing. She placed it on the top lid and I was pleasantly surprised when the humidity kept rising and reached 65 RH. The graph below shows 4 hours of testing. The temperatures are in Celsius. 37.5C is 99.5F, and 25C is 77F.


The Egg Rotator

The egg rotator consists of a servo and custom 3D printed parts. The base holds the servo and the egg slider. The servo has a half circle that connects to the egg slider. When the Raspberry Pi starts the incubator, the servo begins rotating the eggs one degree every minute. On day 18, the Raspberry Pi sends a command to the Arduino to stop the rotation. The half circle radius is 1/3 the radius of the egg slider. The egg slider can hold 6 small eggs.




The Arduino and The Firmware

The GrovePi ($29.99) is an Arduino board that fits on top of the Raspberry Pi. The source code for Bator2020 is available at github and is open source. It makes use of libraries from Adafruit for the MAX31855 and the HTU210 sensors.


The Raspberry Pi

The Raspberry Pi ($35) can be used to program the GrovePi and interfaces to it via UART. The incubator program is also available at github and is open source. It makes use of Django project or framework and so it is a web app. It is mainly python programming but it has a little bit of html, javascript, and css. The dygraph javascripts are used to graph the collected data.


The User Interface

The user interface provided by the Raspberry Pi is a web site. It presents a form to the user as shown below. After starting or submitting the incubation form, the incubator turns on and the graphs is updated every 5 minutes. If the humidity or the temperature drops, an alert email is sent with the current temperature and humidity. The interface also provides controls for testing the system. The snapshot provided for the humidity was captured by using the System test. The program is smart enough to recover from a power outage and it will send an email reporting the time lapse.


Capturing The Hatching Event

The first iteration of the incubator made use of motion, a package that captures images when it senses motion. It uses a web cam and can create videos. The images or videos could then be emailed and thus become an alert. We captured over 8GB of videos due to the frequent turning on and off of the light bulb. The motion algorithm assumes that a change on pixels is an indication of movement. The second iteration of the incubator will use an external light which will not affect the temperature inside the incubator and won’t generate excessive amounts of videos. I didn’t get to run motion on the last batch but maybe I’ll integrate it into the project so that it only gets enabled on the 19th day. Here is a video of Lucky hatching,

The Results

But how well does it perform? The snapshot below is from the first iteration of the incubator. As noted at the beginning, the humidity controller did not work. On this batch we placed 6 eggs. On day 6 we candle lit the eggs and determined that only 3 were developing. On day 20, 1 of the 3 remaining eggs hatched, Lucky. Another one was missing an eye, had a deformed beak, and had deformed toes. The other probably died on day 14 as its organs and yolk were visible when performing a necropsy.


The snapshot below shows the second batch on the first iteration of the incubator. It was just as bad as the first one. We placed 6 eggs and on the 4th day only 2 were developing. On day 20, only one hatched, Miracle.


The third batch was incubated with the second iteration of the incubator and compelled me to write this article. The peltier transducer replaced the light bulb. The number of sensors increased, as well as their quality. The new humidifier actually worked. For the first 18 days, the humidity was maintained at 41 RH. I picked 41 because I could not remember the recommend value while writing the algorithm. The dips or drops on the humidity were due to the sponge drying out. I had not developed the SCH and so I was soaking the sponge every morning and evening. There was also a weekend that we went out. After the 18th day, the humidity increased. It didn’t reach the 65 RH as I had not figured out that weight on the lid was needed. The graph shows that after the first egg hatched, we kept opening and closing the incubator. It was mainly my daughter who kept checking. We placed 8 eggs. 6 were placed on the rotator and 2 on the corners. On the 5th day, we determined that 3 were developing and a 4th one was questionable. On the 9th day, we determined that the 4th egg had not developed; it looked the same as on the 5th day. On this day, my daughter attempted the embryonic hormonal test where she extracted fluid with a syringe and then used wax to cover the small opening. On day 19 ½, the first egg hatched, Rosy the turken. On day 20, the second egg hatched, Luna. Finally, on day 20 ½ the third egg hatched, Lemongrass. They all hatched on their own and did not have any physical problems.



One more batch was planned, but we ran out of time in 2020. Some time in 2021, we will run another batch. Maybe other improvements can be implemented. Maybe the rotator can be redesigned to accommodate more eggs and of different sizes. I’ll definitely provide an update.
  • Love
Reactions: GooseLuver