Paul Gröneveld @ Fab Academy 2016 >>> Final project development

<<<< go back


On this page the development of the final project is explained. The context of the project and explanation of the project is described in the first week assignment.

Initial plan by hands sketch

In the drawing below the basic principle of the Beesbot is shown. Drawers that can slide in and out automatically. This way frames can be taken out of the hive for different reasons, like; inspection, intervention and/or reordering them.


The full video from this basic idea is shown below. Here the basic ideas behind working with the frames outside the hive are explained in a stop motion.

Complete hive

Over the weeks this idea developed into a more detailed version as shown in the video below. This is a CAD model in Solidworks.


The different areas for development are: Electronics, Software, Drawer system and H-bot. These will be explained below.


The position of the electronics in the beehive is shown below with a red circle. Here is enough space for the pcb's and the power supply.


The electronic design is modular. One shield with a fabkit is capable to drive four stepper motors. In total two of these sets are needed and optionally this could be more because there modules are connected by I2C. The first module is the master and the others are the slaves.


To elaborate more into the necessary connections a hand sketch was made on to the Solidworks files.


The first fabkit and shield with the motor drivers are the most important PCB's to start with. This will be used to operate the drawers. Later the next modules can be added. The next modules have the exact same hardware, only the power supply needs to be switched into a different position, to avoid a double supply.


Schematic Shield

Below the schematic from the shield is presented. The main functions of the shield are:
1. connecting the replaceable motor drivers to the replaceable Fabkit
2. providing 5 V to the Fabkit and motor drivers
3. Providing power to the motor drivers
4. Make I2C possible
5. Make network possible


Board design Shield

It was decided to make a double sided board with most of the traces at the bottom of the board, this to make soldering the through hole components possible. The power and the GND are the thick traces to make high current possible. On the left upper corner the voltage is regulated to 5V. On each corner there is a replaceable motor driver and big capacitor. On the right side in the middle there is the connection to the power supply.

Both layers:


Bottom layer:

Most of the traces are at the bottom layer of the board, as shown in the picture below.


Top Layer:

The regulation of the voltage and the necessary components are positioned on the top side of the board. All other traces are there to make crossing of traces possible by using via's.


Schematic modified fabkit

The main function of the Fabkit is the same. Here the board design is modified to thicker traces. Our LPKF-milling machine makes milling of 0,2 mm possible. Designing thicker traces make soldering the processor much easier.


Board design Modified fabkit

In the board design below it is clearly visible that the traces are as thick as possible, to make soldering easier.


Beesbot Shield and Fabkit by fablacademypaul on Sketchfab


From Google drive: Files from shield
Files from modified fabkit

From this site:
Modified fabkit board
Modified fabkit schematic

Shield for modified fabkit board
Shield for modified fabkit schematic

From Sketchfab: PCB-Solidworksfiles

Before making and stuffing

To check if the different components were not intersecting each other I decided to import the Eagle board design as a picture into my Solidworks assembly. This design was used to position the components in 3d in order to check possible interference.


Making and stuffing

Below a picture from the two pcb's assembled into the beesbot.


After measuring through the board and testing, it turned out there only were about four bad soldering in the vias. These were the first I made and I found it difficult. To improve soldering I used a thin wire through the holes. To avoid frying the motor driver each driver was measured through separately.


Due to the limited time and due to the lack of experience in writing code, it is kept very basic for this moment. The different stepper motors be operated with the code below.

Future improvements are:
1. adding the switches
2. adding the specific movements
3. adding input sensors for operation

   Simple demo, should work with any driver board

   Connect STEP, DIR as indicated

   Copyright (C)2015 Laurentiu Badea

   This file may be redistributed under the terms of the MIT license.
   A copy of this license has been included with this distribution in the file LICENSE.
#include <Arduino.h>
#include "BasicStepperDriver.h"

// Motor steps per revolution. Most steppers are 200 steps or 1.8 degrees/step
//#define MOTOR_STEPS 200
//#define MOTOR_STEPS2 200
#define MOTOR_STEPS3 200
//#define MOTOR_STEPS4 200

// All the wires needed for full functionality
//#define DIR 7 //rechts boven
//#define STEP 6 //rechts boven

//#define DIR2 4 //links boven
//#define STEP2 5 //links boven

#define DIR3 8 //links onder
#define STEP3 9  //links onder

//#define DIR4 12 //recht onder
//#define STEP4 10  //rechts onder

// Since microstepping is set externally, make sure this matches the selected mode
// 1=full step, 2=half step etc.
//#define MICROSTEPS 1
//#define MICROSTEPS2 1
#define MICROSTEPS3 1
//#define MICROSTEPS4 1

// 2-wire basic config, microstepping is hardwired on the driver
//BasicStepperDriver stepper(MOTOR_STEPS, DIR, STEP);
//BasicStepperDriver stepper2(MOTOR_STEPS2, DIR2, STEP2);
BasicStepperDriver stepper3(MOTOR_STEPS3, DIR3, STEP3);
//BasicStepperDriver stepper4(MOTOR_STEPS4, DIR4, STEP4);

void setup() {
     Set target motor RPM.
     These motors can do up to about 200rpm.
     Too high will result in a high pitched whine and the motor does not move.
//  stepper.setRPM(120);
//  stepper2.setRPM(120);
//  stepper4.setRPM(120);


void loop() {
     Tell the driver the microstep level we selected.
     If mismatched, the motor will move at a different RPM than chosen.
//  stepper.setMicrostep(MICROSTEPS);
//  stepper2.setMicrostep(MICROSTEPS2);
//  stepper4.setMicrostep(MICROSTEPS4);

     Moving motor one full revolution using the degree notation

//  stepper.rotate(-30000);
//  delay(2000);
//  stepper.rotate(10000);
//  delay(2000);

//  stepper2.rotate(-10000);
//  delay(2000);
//  stepper2.rotate(10000);
//  delay(2000);

//  stepper3.rotate(-10000);
//  delay(2000);

//  stepper4.rotate(10000);
//  delay(2000);
//  stepper4.rotate(-10000);
//  delay(2000);


Beehive drawers

To explain how the drawer system inside the beehive works I start from the inside out. The drawer as shown below in green, will bee the mobile housing of beehive frames. On these frames the bees will live and produce honey. The green section has basically four side walls that will project the bees from weather influences. On two sides of the green segment there are metal plates with alignment cut outs for all the different frames. The space between the frames should be kept at a specific distance.


The red frame around the drawer will make it possible to slide open the drawer to work with the frames. The green segment can move up and down and will align to the right position because of four round shaped details on the side walls.


More frames will be necessary to make a complete hive. In order to scale down the size of the project I decided to shorten the hight of the frames with a scale of 0,5.


Bees glue the drawers together where the green segment touch each other. They do this to make their house air tight. This will optimise the energy usage in order to keep the temperature right. Before it is possible to open the drawer the green segments need to de separated from each other. Therefore it is possible to slide down each drawer 10 mm. Separating the drawers from each other works with a handle and a steel bar in between the green segments (see the blue handle in the picture below).


In the picture below there is a side view from the four drawers. On the left the drawers are touching each other in a closed position. On the right the drawers are separated from each other to be able to open the drawer.


The linear movement of the drawers will be made possible by drawer sliders as shown below.


The video below shows the movement of the drawers.

The inside of the drawer and the way the motion from the drawer works, is shown in the video below.

End switches

Each drawer from the Beesbot needs to have end switches. These will be the input devices from the system. The end switches will be simple micro switches with a leaver. Details from the moving drawer will activate the switch when it reaches the start and end point. So in total eight switches are needed to operate four drawers. It should also be possible to use only one switch per drawer, but this needs some more code. For this moment I choose for two switches per drawer. The position of the switches is indicated with a green circle in the picture below.


More in detail the switches are shown in the picture below. They are mounted on the vertical yellow side wall of the hive (witch is not shown in this picture).

When the drawer is moving outward the detail at the end of the drawer will activate the leaver of the blue microswitch in the picture below.


When the motor is driving the drawer in the other direction inward the drawer has to stop when the front panel is touching and activating the other micro switch, indicated blue in the picture below in blue.


The video below will explain the motion and activation of the drawer and leavers.


Now the basic principle of the drawer movement is clear I now will explain about the H-bot structure. The picture below shows the design of the cabinet with four drawers and in front of the cabinet there is the frame structure from the H-bot.


On each corner of the H-bot there is a wheel axle with a gear mounted on it. On the top two axles there will be stepper motors attached to it, in order to drive the system. On the horizontal axle there are four little gears to align the bicycle chain along the sides.




The long vertical axle is the X direction from the H-bot and the short horizontal direction is the Y axle from the H-bot. To minimize cost the guiding rails are made out of round prismatic wood (broom sticks).


With 3d printed wheels The triangular frame is attached to the two horizontal guides. On the vertical axles 3d printed parts align the system against torsion. In the future version different systems will be attached to the triangular frame like:
1. Camera system
2. Router for milling honey and milling on frames
3. Gripper for taking out the frames




Below the gripper (moulded part) and stabilizing part (composite part) for the beehive frames. The gripper works with a linear motion. The complete structure should be able to rotate at least 180 degrees clockwise and counter clockwise.



Below the video from the moving drawer.

Below the video from the manual moving H-bot.


From Google drive: Here you can download the complete assembly from the Beesbot in Solidworks.

Directly from this site:

Download file

Arduino code: Slide drawer with end switches