Thursday, August 29, 2013

Post split activity


The day after the split the new hive's bee began to slowly emerge. 
Some of these emerging bee appear to have returned to the old hive and very few of the remaining bees forage. 


Foraging activity in the old hive appears to hive picked up now that the entrances aren't clogged with surplus bees.  Currently, there appears to be a lot of pollen foraging.  



I also got to watch a newly emerged cicada as it perched on the top of the new hive and waited for its wings to expand and harden. 




Hive Splitting

For a number of reasons I decided, last weekend, to split my large hive into two hives.  Normally, I wouldn't think of doing so in late summer, but I think that, under my specific circumstances, it was a prudent choice.

As rare as it is for European honey bees to swarm at this time of the year, I suspect that, within the next few weeks, my hive would have swarmed.  Over the last month or two I've observed a massive upswing in the hive population and a growing number "queen cups" being constructed.  Along with this increase in population, there's also been a growing clump of bees accumulating at the front of the hive.  These bees (several thousand) occupied both the inside and outside of the entrance area of the hive to the point that all of three holes at the top of the entrance were completely blocked.  Then, most recently, I noticed a small cloud of bees whirling about in front of the hive.

Normally, if I lived in a more isolated area, I would have placed a few empty beehives in the area and hoped that, when the bees did swarm they would settle in one of these hives.  However, as a responsible citizen in a residential area, I believe that it is in everyone's interest (including the bees) to try to be proactive, which is why I split the hive.

While researching hive splitting, I found a number of different methods, but in the end, I decided to just move a third of the comb to the other hive.  I felt that this proportion would allow the original hive to continue as a strong hive and still give the new hive a fighting chance.  About two thirds of the comb had a lot of brood and eggs in various stages of development, while the other third was loaded with honey.  In order to survive, they need to grow a new queen, have her mate successfully, build up their population and put enough pollen and honey away to last the winter.  I'm not sure if the new hive will survive, but I think it was necessary for me to do and I'll try to help them as much as I can.  

Saturday, August 24, 2013

Humidity Cicuit Update

After rechecking the parameters for the HCH-1000, I observed that the normal operating frequency range is actually 1kHz - 100kHz, so I reset my desired frequency to 2kHz and recomputed the Ra and Rb values.  The resulting adjusted resistances were: 43,000 and 1,100,000 Ohms. 

I tested the circuit with these values by simulating it in KTechlab.  For the simulation, I created one circuit with a capacitance set to 310pF and a second circuit with a capacitance set to 350pF.  The simulation produced outputs with the expected variance.  

Circuits with different capacitors (310pF on left and 350pF on right) with corresponding waveform outputs.  
KTechlab has good visualization, but I wasn't able to find a good numerical output (I admit I didn't try very hard), so I added a function to my previously posted T555.py script that graphs the calculated frequency.

 The next step is to build the prototype and test it.

Saturday, August 17, 2013

Bottom boards reattached

When I constructed the two hives, I gave one of them a removable bottom board and wire screen.  During the summer, when the outdoor temperatures get into the 90's (Fahrenheit), having only a screen bottom allows the bees to regulate the hive temperature more easily and also allows debris to fall through.  Lately, though, temperatures have been getting cooler with night-time lows down in the 50's, so yesterday I reattached the bottom board. 

Monday, August 12, 2013

Placing the camera amongst the hive brood

Recently, I had the idea to try to place the hive camera within the brood section of the hive to see if I could get close up video of the bees as they grow.  To do this, I decided to try to make the camera as much a part of the hive as much as possible by persuading the bees to embed the camera within the wax comb.  To encourage this process, I adhered wax-soaked cotton string along the top of the wooden bar and along the sides of the camera housing and placed it in the brood area of the hive during a routine inspection.  


 During my last routine inspection, I check the camera to see how things were going.  It appears the bees are on their way toward embedding the camera.  Interestingly, based on the color of the wax, this comb is not entirely made from fresh wax as it was in the spring when I first introduced the bees.  At least some of the wax appears to have been re-purposed from other locations in the hive. 





Sunday, August 11, 2013

Bees still eating more sugar

Yesterday, I again checked the level of the sugar syrup I had placed in the hive the day before and it was once again empty.  I, again, filled the container with concentrated syrup and plan to check it this afternoon.  

Saturday, August 10, 2013

Building the humidity sensor circuit

With the wife out-of-town on business, I've been able to spend some time experimenting with the circuitry I'll need to construct the capacitive humidity sensor.

Previously, I had constructed a prototype based upon schematics I found on the Internet for an Arduino weather station, which used the same HCH-1000 sensor.  I tested the circuit in KTechlab and it seemed to simulate very well.  However, in my rush to produce the circuit, I made some mistakes while adapting it to a much smaller SMD populated circuit, and ended up burning my finger quite badly during testing.  It's a long story, but, needless to say, I've relearned my lesson.  Whenever you are building a circuit, it's always better to have a full understanding of what's happening within that circuit rather than just assembling it from a schematic. 

With this in mind, I spent much of yesterday re-immersing myself in the properties of our good friend the 555 timing circuit.  About two or three years ago, I had used the 555 to build a heterodyning ultrasonic bat detector, but I haven't worked much with them since and forgot most of the basics.  Specifically, I'm referring to astable operations in which the 555 is configured with two resistors and a capacitor to create a multivibrator (i.e. oscillator).  Adjusting either of the two resistors or the capacitor will change the nature of the oscillation frequency. There are a few useful equations which can be used to determine the outcomes of different combinations of resistors and capacitors, which I have captured in an annotated Python script called T555.py. 

# -*- coding: utf-8 -*-
"""
Created on Fri Aug  9 12:20:02 2013

@author: dan
"""
# capacitance is in Farads and resistance is Ohms

#Calculates the charging time of the capacitor (C) for resistor a (Ra) and resistor b (Rb). 
def chT(Ra,Rb,C):
    cT = 0.693*(Ra+Rb)*C
    return cT

#Calculates the capacitor discharge time   
def dT(Rb,C):
    diT = 0.693*Rb*C
    return diT

#Calculates the time for both capacitor charge and discharge
def TT(Ra,Rb,C):
    cT = chT(Ra,Rb,C)
    diT = dT(Rb,C)
    T = cT + diT
    return T

# Calculates the oscillation frequency output produced by Ra, Rb, and C  
def Freq(Ra,Rb,C):
    O = 1.44/((Ra+(2*Rb))*C)
    return O

#Calculates the duty cycle produced by the resistors and capacitors, which is a proportion comparing the charge time to the discharge time. 
def dC(Ra,Rb):
    D = float(Rb)/(Ra+(2*Rb))
    return D

#Calculates the combined value of both resistors based upon the known oscillation and capacitance
def AB2(O,C):
    ab2 = 1.44/(C*O)
    return ab2

# Calculates the individual values of Ra and Rb based upon the known duty cycle, oscillation, and capacitance
def AB(D,O,C):
    ab2 = 1.44/(C*O)
    Rb = ab2*D
    Ra = ab2-(Rb*2)
    print "Resistor A: " + str(format(int(Ra),","))
    print "Resistor B: " + str(format(int(Rb),","))

# Reports calculations for charge time, discharge time, total time, frequency, and duty cycle. 
def rt(Ra,Rb,C):
    cT = chT(Ra,Rb,C)
    diT = dT(Rb,C)
    T = cT + diT
    O = 1.44/((Ra+(2*Rb))*C)
    D = float(Rb)/(Ra+(2*Rb))
    print "Charge time (seconds): " + str(cT)
    print "Discharge time (seconds): " + str(diT)
    print "Total time (seconds): " + str(T)
    print "Frequency (Cycles per Second): " + str(O)
    print "Duty cycle: " + str(D)



In addition to the above script, I also wrote a script called Farads.py that gives you easy conversions between commonly used Farad units.  I did this because I loath making these conversions.

# -*- coding: utf-8 -*-
"""
Created on Fri Aug  9 13:57:53 2013

@author: dan
"""

def cF(number,faradunit):
    if faradunit == "F":
        F = number
    elif faradunit == "mF":
        F = float(number)/1000
    elif faradunit == "uF":
        F = float(number)/1000000
    elif faradunit == "nF":
        F = float(number)/1000000000
    elif faradunit == "pF":
        F = float(number)/1000000000000
    else:
        print "faradunit must be F, mF, uF, nF, or pF"
   
    mF = F*1000
    uF = F*1000000
    nF = F*1000000000
    pF = F*1000000000000
   
    print "farads:      " + str(format(F,",")) + " F"
    print "millifarads: " + str(format(mF,",")) + " mF"
    print "microfarads: " + str(format(uF,",")) + " uF"
    print "nanofarads:  " + str(format(nF,",")) + " nF"
    print "picofarads:  " + str(format(pF,",")) + " pF"



Once these scripts were placed in my "site-packages" folder, I was able to use the following workflow:

At 55% relative humidity, the HCH-1000 has a normal capacitance of 330 pico Farads.  Let's say that I want to measure the capacitance of the HCH-1000 500 times per second (I still haven't figured out what the ideal measurement frequency would be for Arduino, so this is just a place holder) and a duty cycle of 0.50.  In python I would do the following:

>>> import Farads as F
>>> F.cF(330,"pF")

the program would then return:

farads:      3.3e-10 F
millifarads: 3.3e-07 mF
microfarads: 0.00033 uF
nanofarads:  0.33 nF
picofarads:  330.0 pF

next, I type:

>>> import T555 as T
>>> T.AB(0.49,500,3.3e-10)

note that I use 0.49 and not 0.50.  This is because  0.50 is and ideal number that produces an Ra value of 0.

The results are:

Resistor A: 174,545
Resistor B: 4,276,363

Now, using a table for commonly used resistor values, I see that 180,000 and 4,300,000 Ohm resistors are likely to exist.  It may be likely that these slight changes to the resistance values will have little effect, but I can test is to be sure:

>>> T.rt(180000,4300000,3.3e-10)

Which returns:

Charge time (seconds): 0.0010245312
Discharge time (seconds): 0.000983367
Total time (seconds): 0.0020078982
Frequency (Cycles per Second): 496.997307931
Duty cycle: 0.489749430524

This close enough.  I'll write more later, but I wanted to note one more thing.  Yesterday, I checked the status of a container of sugar water I had placed in the beehive the day before to feed the bees.  It was completely empty!  They had managed to drink more than a gallon of 1:1 sugar/water solution in less than 24 hours.  In response, I created a new batch of 2:1 sugar/water solution and placed it in the hive yesterday evening.  I'll be interested in checking again today to see how far they've gotten with that batch. 

Friday, August 9, 2013

More changes

Over the past few weeks I've noticed that it's getting harder to approach the hive without being pestered by what I like to call "interrogator bees."  These bees like to fly up to your head and buzz rapidly back-and-forth.  So far they haven't done anything more aggressive, but they are very persistent. 

Another thing I've noticed has been an apparent increase in the young bee population.  These younger bees spend a great deal of their time wash-boarding, and festooning, and don't have much interest in foraging.  This preoccupation with wash-boarding and festooning, has become so intense that they have completely blocked off the upper entrance holes in the hive leaving only the bottom two holes for foragers.  What are they up to? 

 There are still few, if any, drones, and they are continuing to build up pollen reserves.  I see very little capped honey. 

Saturday, August 3, 2013

Drones are gone

I did a hive inspection yesterday and noticed that throughout the entire hive there are no drone larvae or pupae.  All comb sized for drones is either completely empty or being used to store nectar.  I also noticed no adult drones in the hive or hanging around outside the hive as they often did.  There are, however, plenty of female workers and many more on the way.  There is also some honey, a reasonable amount of nectar, and a lot of pollen.  One of the combs is even completely filled with pollen on both sides.  Nonetheless, I'll probably want to feed them a few more times before winter starts.

One interesting thing I noticed the other week on the 17th comb from the entrance was the formation of several queen cups along to side edges of the comb.  These a small up-side-down cups that worker sometimes build along the edges of combs.  They are used to grown new queens.  Although I haven't seen the queen I know that she is still laying eggs, so I'm not sure what the queen cups mean.  I'll want to keep and eye on it.  

Thursday, August 1, 2013

One full day inside the hive - time lapse

What follows is one complete day of hive videos slowed down to half the original playback speed.  Also, after the video, I've included the ffmpeg script I used to concatenate the videos. 




$ ffmpeg -i 20130731094820-timelapse.mpg -filter:v 'setpts=2.0*PTS' -qscale:v 1 i1.mpg; ffmpeg -i 20130731104820-timelapse.mpg -filter:v 'setpts=2.0*PTS' -qscale:v 1 i2.mpg; ffmpeg -i 20130731114820-timelapse.mpg -filter:v 'setpts=2.0*PTS' -qscale:v 1 i3.mpg; ffmpeg -i 20130731124820-timelapse.mpg -filter:v 'setpts=2.0*PTS' -qscale:v 1 i4.mpg; ffmpeg -i 20130731134820-timelapse.mpg -filter:v 'setpts=2.0*PTS' -qscale:v 1 i5.mpg; ffmpeg -i 20130731144830-timelapse.mpg -filter:v 'setpts=2.0*PTS' -qscale:v 1 i6.mpg; ffmpeg -i 20130731154830-timelapse.mpg -filter:v 'setpts=2.0*PTS' -qscale:v 1 i7.mpg; ffmpeg -i 20130731164830-timelapse.mpg -filter:v 'setpts=2.0*PTS' -qscale:v 1 i8.mpg; ffmpeg -i 20130731174830-timelapse.mpg -filter:v 'setpts=2.0*PTS' -qscale:v 1 i9.mpg; ffmpeg -i 20130731184830-timelapse.mpg -filter:v 'setpts=2.0*PTS' -qscale:v 1 i10.mpg; ffmpeg -i 20130731194840-timelapse.mpg -filter:v 'setpts=2.0*PTS' -qscale:v 1 i11.mpg; ffmpeg -i 20130731204840-timelapse.mpg -filter:v 'setpts=2.0*PTS' -qscale:v 1 i12.mpg; ffmpeg -i 20130731214840-timelapse.mpg -filter:v 'setpts=2.0*PTS' -qscale:v 1 i13.mpg;  ffmpeg -i 20130731224841-timelapse.mpg -filter:v 'setpts=2.0*PTS' -qscale:v 1 i14.mpg; cat i1.mpg i2.mpg i3.mpg i4.mpg i5.mpg i6.mpg i7.mpg i8.mpg i9.mpg i10.mpg i11.mpg i12.mpg i13.mpg i14.mpg > i_all.mpg; ffmpeg -i i_all.mpg -qscale:v 14 -c copy beehive20130731b.avi