Skip to content
/ COMB Public

COMB(Common Open Modular robotic platform for Bees): An Open-Source, Modular Platform for Experimental Access to Honey-Bee Colonies

License

Notifications You must be signed in to change notification settings

praked/COMB

Repository files navigation

COMB — Common Open Modular robotic platform for Bees

COMB is an open-source, modular robotic platform for experimental access to honey bee colonies. Hardware Files have been made publicly available at Zenodo Repository

License: MIT


Why COMB

  • Modular: swap subsystems without rewiring the whole rig.
  • Open: C/C++ firmware and MATLAB tools included.
  • Reproducible: documented build and flashing steps.
  • Extensible: add sensors, actuators, and UI modules as needed.

Repository layout

COMB-main/
├─ Controller_Code/                 # Firmware for different robot modules
│  ├─ DanceRobot/                   # Waggle dance robot (simulates bee dances)
│  ├─ ScannerRobot/                 # Scanner robot (maps and inspects comb structures)
│  ├─ WingFlapperSanDiego/          # Wing flapper robot (PCB wing actuators for local signaling)
│  └─ README.md
│
├─ Encoder_Code/
│  └─ virtual_motor_encoder_teensy/ # Teensy sketch emulating motor encoder signals
│
├─ Keypad_Design_Code/
│  ├─ Keypad/                       # Keypad firmware and build files
│  └─ Readme.md
│
├─ Dance_Model_Matlab/              # MATLAB models and tools
│  ├─ dance_model.m
│  └─ write_dance_model_to_cpp_variable.m
│
├─ LICENSE
└─ README.md

Features

  • Controller firmware for multiple robot types (dance, scanner, wing-flapper).
  • Virtual encoder utility to simulate quadrature signals using a Teensy board.
  • Keypad firmware for modular user input.
  • MATLAB scripts to define and export dance models to C++.
  • Fully open-source under MIT License.

Requirements

  • MCUs: ESP-IDF supported boards (for controller code), Teensy (for encoder utility), Arduino-compatible boards (for keypad).
  • Toolchains:

Quick start

1. Clone

git clone https://github.com/praked/COMB
cd COMB

2. Build firmware

  • DanceRobot / ScannerRobot / WingFlapperSanDiego
    • Use ESP-IDF:
idf.py set-target esp32
idf.py build
idf.py -p <PORT> flash
  • Virtual encoder (Teensy)

    • Open Encoder_Code/virtual_motor_encoder_teensy.ino in Arduino IDE, select your Teensy board, and upload.
  • Keypad firmware

    • Open Keypad_Design_Code/Keypad in Arduino IDE, set pin mapping, and upload.

3. MATLAB tools

cd('Dance_Model_Matlab');
addpath(genpath(pwd));
dance_model
write_dance_model_to_cpp_variable

4. Configuration

  • Adjust pin mappings and constants in commands.h, gpio.h, and main firmware files.
  • Virtual encoder ticks per revolution must match controller firmware expectations.
  • Ensure all modules share common ground and correct voltage rails.

About

COMB(Common Open Modular robotic platform for Bees): An Open-Source, Modular Platform for Experimental Access to Honey-Bee Colonies

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published