Skip to content

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

84 Commits

Folders and files

Repository files navigation

Open-BEATBox

Open-BEATBox β€” Open β€” BEhavioural and AuTonomous operant Box β€” is an open-source, modular, low-cost box that lets mice take part in behavioural tasks inside their own home cage, day and night, with no experimenter in the room. It delivers food rewards, shows images on two screens, senses what the animal does, and saves everything to files on your computer.

The assembled Open-BEATBox

This repository is the project's front door. It contains the website and the machinery that publishes the manual. The designs, code and manual text live in their own repositories β€” this page explains which is which.


Start here: pick your path

I am… I want to… Go to
Curious Understand what this is and how it works Overview Β· How it works
A lab / technician Build a box Build guide Β· Master BOM Β· Assembly tutorials
A neuroscientist Run experiments with a box Getting started Β· Training stages Β· Your data
An engineer Read the hardware, firmware and protocol Hardware Β· Firmware Β· CAN protocol
A contributor Fix or improve something Contributing Β· Open points
Stuck Solve a problem Troubleshooting Β· Glossary Β· Discussions

What Open-BEATBox is for

Short, experimenter-driven test sessions are a limitation in behavioural neuroscience: the animal is handled, moved to a test room, and tested for a few minutes. Open-BEATBox brings the task to the animal. Mice choose when to take part, across their own day–night rhythm, for days or weeks.

  • Less handling, less stress β€” no transfer to a test room.
  • More data per animal β€” many more trials, and learning and motivation curves over time.
  • Reproducible β€” standard hardware, fixed task timing, automatic logs.
  • Modular and open β€” feeder, screens, tunnel, lighting and nosepoke are separate modules; hardware, firmware, software and documentation are all open.

Intended uses: autonomous operant conditioning, reward-delivery and sensor-triggered tasks, longitudinal home-cage monitoring, circadian and motivational dynamics, and reproducible behavioural testing across laboratories.

How it works, in one picture

   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   β”‚  Mouse   │◄────►│   Modules                     │◄────►│ MAIN module │◄────►│  Your PC β”‚
   β”‚          β”‚      β”‚   feeder Β· screens Β· tunnel   β”‚ CAN  β”‚ (switch-    β”‚serialβ”‚  control β”‚
   β”‚          β”‚      β”‚   lighting Β· nosepoke         β”‚ bus  β”‚  board)     β”‚      β”‚  app     β”‚
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜
    behaviour          sensors + motors, each with a         translates               β–Ό
                       small computer of its own             and forwards         CSV result files
  1. The mouse walks through a tunnel, looks at two screens, touches one, and collects a pellet from the feeder.
  2. Each module senses and acts on its own and announces events on a shared cable (the CAN bus).
  3. The main module is the only module connected to your PC. It forwards messages; it does not run the experiment.
  4. The PC application runs the training protocol and writes every event to CSV files you can open in Excel, R or Python.

The full explanation, one trial step by step, is in How it works.

From nothing to a first experiment

  1. Plan β€” read the safety notes and download the Master BOM.
  2. Order and make the parts β€” circuit boards from a PCB service, 3D-printed and laser-cut parts (fabrication).
  3. Flash the boards β€” put the firmware on each module board before closing it into its housing.
  4. Assemble the modules β€” six tutorials, one video each.
  5. Integrate and power up β€” first power-up and test.
  6. Install the PC application β€” installation.
  7. Run β€” using the application, stages S1–S4.

You do not need to be a programmer. You do need basic hand tools, and some soldering for the screen and infrared-sensor boards.


Where is everything?

Open-BEATBox is published as several repositories, one per layer, each under the licence that fits it.

Layer Repository What you will find Licence
Website (this repository) Open-BeatBox.github.io The public website; the pipeline that builds and publishes the manual AGPL-3.0
Documentation Open-BeatBox_Documentation The manual (Sphinx source), notes, media CC-BY-4.0
Build guides assembly-tutorials Per-module assembly tutorials and the Master BOM see repository
Hardware Open-BeatBox_Hardware CAD, enclosure, KiCad circuit boards, manufacturing files CERN-OHL-S-2.0
Software Open-BeatBox_Software PC application, module firmware (MicroPython), test command-line tool AGPL-3.0
Firmware Open-BeatBox_Firmware Reserved for stand-alone firmware releases β€” no source published there yet; the firmware is in the Software repository GPL-3.0
Open-BeatBox.github.io  (this repository)
  β”œβ”€β”€ site/                  the website (Next.js)
  └── docs/  ─────────────►  Open-BeatBox_Documentation   (Git submodule)
                                └── source/build/assembly-tutorials/ ─► assembly-tutorials  (nested submodule)

Open-BeatBox_Hardware Β· Open-BeatBox_Software Β· Open-BeatBox_Firmware
        └── independent repositories, linked from the manual and the website

More about the repositories, licences and versions β†’

Project status

Open-BEATBox is a working platform under active development: boxes have been built and the tutorials are in use, but the software is a development version, and cost figures, protocol templates and some details are still being validated. The manual keeps an honest list of open points.


For maintainers of this repository

You only need this section if you edit the website or publish the manual. Everyone else can stop reading here.

What is in this repository

Open-BeatBox.github.io/
β”œβ”€β”€ README.md                  this file
β”œβ”€β”€ LICENSE, CITATION.cff      licence and citation information
β”œβ”€β”€ package.json               root helper scripts
β”œβ”€β”€ .gitmodules                declares the docs/ submodule
β”œβ”€β”€ docs/                      submodule β†’ Open-BeatBox_Documentation (the manual source)
β”œβ”€β”€ scripts/build-docs.ps1     local Sphinx build helper (Windows)
β”œβ”€β”€ site/                      the website
β”‚   β”œβ”€β”€ content/               Markdown content of every page β€” edit this, no coding needed
β”‚   β”œβ”€β”€ public/                images, videos, presentations; the built manual lands in public/docs/manual/
β”‚   β”œβ”€β”€ src/                   website code (Next.js / React)
β”‚   └── README.md              website developer notes
β”œβ”€β”€ resources/                 forwarding notes only β€” the content moved to the repositories above
└── .github/workflows/         ci.yml (checks on pull requests), deploy-site.yml (publishing)

Editing the website text

Every page is a Markdown file in site/content/ with a small header (title, hero text, sections). Edit the text, preview it, and open a pull request β€” see site/README.md for the content model.

Updating the manual

  1. Change the manual in the Documentation repository (its source/ folder), and merge it there.

  2. In this repository, move the submodule pointer to the new version and review it:

    git submodule update --remote --recursive docs
    git diff --submodule
    git add docs && git commit -m "Update documentation"
  3. Push. The deployment workflow rebuilds the manual and the website together.

Update the pointer only after the change has been reviewed. To pull assembly tutorials changes, update the nested submodule in the Documentation repository first.

Run everything on your computer

Clone with submodules (the manual does not build without them):

git clone --recurse-submodules https://github.com/Open-BeatBox/Open-BeatBox.github.io.git
cd Open-BeatBox.github.io
# if you cloned without --recurse-submodules:
git submodule update --init --recursive

Preview the website (Node.js 20):

cd site
npm install
npm run dev          # then open http://localhost:3000

Build the manual (Python 3.10+):

python -m pip install -r docs/requirements.txt
python -m sphinx -b html -d docs/_build/doctrees docs/source site/public/docs/manual

On Windows, npm run build:docs runs the same command. Build the manual and the website together with npm run build:all from the repository root.

The manual should build with no warnings: the pull-request check (ci.yml) treats warnings as errors.

Deployment

.github/workflows/deploy-site.yml builds the Sphinx manual into site/public/docs/manual/, builds the static website, and publishes site/out to the gh-pages branch when site/, docs/, or the workflow changes on main.

While the Documentation repository is private, the workflow needs a repository secret named DOCS_TOKEN (a token with read access to it); it falls back to the default token once that repository is public.


Licensing

Open-BEATBox uses layer-specific open licences:

Each repository carries its own LICENSE file, which is authoritative for that layer.

Citing Open-BEATBox

Each repository has a CITATION.cff file, so GitHub's Cite this repository button gives you APA and BibTeX. A reference paper is in preparation; once it is published it will become the preferred citation.

Contributing

Contributions of every size are welcome. The contributing guide explains which repository takes which contribution. Questions and ideas: Discussions. Website tasks: site/BEATBOX_IMPACT_REDESIGN_TODO.md.

Contact

Eric Burguière — eric.burguiere@cnrs.fr — Centre de Recherche en Neurosciences de Lyon (CRNL), Centre Hospitalier Le Vinatier, Bron, France.

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages