explaingit

hybridgroup/gobot

9,398GoAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

Gobot is a Go framework for controlling physical hardware, robots, drones, IoT sensors, and motors, supporting dozens of platforms like Arduino, Raspberry Pi, and DJI Tello out of the box without writing low-level hardware code.

Mindmap

mindmap
  root((gobot))
    What it does
      Controls physical hardware
      Robots drones sensors
    Usage modes
      Classic framework loop
      Metal direct calls
      Master multi-robot
    Supported platforms
      Arduino
      Raspberry Pi
      DJI Tello drone
      Sphero robots
    Protocol support
      Bluetooth
      MQTT
      NATS
      OpenCV vision
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Write Go code that reads a sensor and controls a servo on an Arduino without touching any C or assembly

USE CASE 2

Build a web-controlled drone project that steers a DJI Tello from a browser using Gobot's built-in HTTP API

USE CASE 3

Create a program that manages multiple Sphero robots at once and exposes a REST endpoint to command them remotely

Tech stack

Go

Getting it running

Difficulty · moderate Time to first run · 30min

Most examples require physical hardware (Arduino, Raspberry Pi, etc.) and USB or Bluetooth connectivity, software-only examples are limited.

Use freely for any purpose including commercial, as long as you keep copyright and license notices (Apache 2.0).

In plain English

Gobot is a Go programming framework for working with physical hardware: robots, drones, sensors, motors, and devices that connect to the Internet of Things. If you want to write Go code that controls an LED on an Arduino, steers a DJI Tello drone, talks to a Bluetooth device, or reads from sensors on a Raspberry Pi, Gobot provides the packages and abstractions to do that without writing low-level hardware communication code from scratch. The framework supports a wide range of hardware platforms out of the box, including Arduino, BeagleBone, Intel Edison, Microbit, various Sphero robots, MQTT message brokers, NATS messaging, OpenCV for computer vision, and more. Each platform is a separate package, so you only pull in what your project needs. Gobot offers three ways to use it. The "Classic" approach uses the framework's built-in robot and work loop concepts, which handle timing, device lifecycle, and event handling for you. The "Metal" approach lets you skip the framework entirely and call platform packages directly with plain Go code if you want more control. The "Master" approach adds a layer on top, letting you manage a collection of robots at once and exposing a built-in HTTP API so you can monitor and control them from outside the program. A sister project called TinyGo is mentioned for developers who want to run Go code directly on microcontrollers rather than on a full computer like a Raspberry Pi. Gobot is open-source and licensed under the Apache 2.0 license. The project is maintained by the Hybridgroup team and has been around long enough to accumulate broad hardware support across dozens of platforms.

Copy-paste prompts

Prompt 1
Using Gobot, write a Go program that reads temperature from a DHT22 sensor connected to a Raspberry Pi and logs the value every 5 seconds
Prompt 2
How do I use Gobot's Master mode to expose an HTTP API so I can control an Arduino robot from a REST client or browser?
Prompt 3
Show me the Gobot code to make a DJI Tello drone take off, fly forward 1 meter, and then land safely
Prompt 4
I want to skip the Gobot framework and call the Arduino platform package directly in plain Go, show me how using Metal mode
Open on GitHub → Explain another repo

← hybridgroup on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.