This repository contains Buffalo Bytes design, including the circuit board and mechanical hardware. The bill of materials and 3D design files are included. This README file details the hardware specifications and tutorials on getting started with the Buffalo Bytes platform.
The robot is presented in the the IEEE Robotics and Automation Letter article, Buffalo Byte: A Highly Mobile and Autonomous Millirobot Platform
To cite:
@ARTICLE{Singh_2024,
author={Singh, Shashwat and Truax, Reed and St.~Pierre, Ryan},
journal={IEEE Robotics and Automation Letters},
title={Buffalo Byte: A Highly Mobile and Autonomous Millirobot Platform},
year={2024},
volume={9},
number={5},
pages={4067-4074},
keywords={Robots;Robot sensing systems;Legged locomotion;Wheels;Batteries;Wireless fidelity;Three-dimensional displays;Biomimetics;field robots;biologically-inspired robots;millirobot},
doi={10.1109/LRA.2024.3375290}}
This section details the electrical and mechanical hardware used in the Buffalo Bytes platform.
The custom PCB for Buffalo Bytes is detailed in here, with the schematic of the board, Gerber files, and BOM (bill of materials). The microcontroller is an ESP8266x SoC (system-on-a-chip), which enables Wi-Fi, and general input/outputs. The summary of electrical hardware is below in the BOM.
Bill of materials (BOM)
Component | Value | Quantity | Package size |
---|---|---|---|
Capacitor | 0.1 µF | 5 | 0603 |
Capacitor | 8.6 pF | 1 | 0603 |
Capacitor | 2.4 pF | 1 | 0603 |
Capacitor | 10 µF | 3 | 0603 |
Capacitor | 1 µF | 2 | 0603 |
Capacitor | 5.6 pF | 2 | 0603 |
Capacitor | 2.2 µF | 1 | 0603 |
Capacitor | 220 pF | 1 | 0603 |
Capacitor | 0.01 µF | 1 | 0603 |
Inductor | 1.5 nH | 1 | 0603 |
Resistor | 200 Ω | 1 | 0603 |
Resistor | 12 kΩ | 5 | 0603 |
Resistor | 1 kΩ | 1 | 0603 |
Resistor | 4.7 kΩ | 4 | 0603 |
LED | Red | 1 | 0603 |
Part | Part Number | Quantity | Package size |
---|---|---|---|
Antenna | AN9520-245 | 1 | ANT-SMD_L9.5-W2.1 |
Crystal - 26 MHz | ECS-260 | 1 | 4-SMD, no lead |
MCU | ESP8266x | 1 | QFN-32 |
Motor driver | DRV8833 | 1 | TSSOP-16 |
IMU | MPU6050 | 1 | QFN-24 |
LDO Voltage regulator | TPS7A0533PDBZR | 1 | SOT-23 |
Flash memory | ZB25VQ80 | 1 | SOIC-8 |
The exploded view of a Buffalo Byte is shown below.
First, the custom PCB needs to be populated (details in Electrical Hardware), and all of the mechanical hardware sourced, printed, and molded (details in Mechanical Hardware).
Each Buffalo Byte is assembled by sliding the motors into the chassis, attached the actuated wheels to the motors, and unactuated wheels to carbon fiber axles. The molded treads are wrapped around each actuated-unactuated wheel pair. The motor wires are connected to the custom PCB, and the battery connected to the PCB as well. Kapton tape is applied around the body to secure all parts.
To Buffalo Bytes Boards has 8 headers that goes directly into female headers of ESP8266 burning fixture to upload either the bootloader or code through serial communication. A USB-ASP programmer can also be used to do the same task, though the burning fixture is recommended.
The board can be bootloaded with both Arduino and MicroPython to make software development easy. In this work, the board is flashed with the Arduino bootloader, and the Arduino IDE was used for software development. Alternatively, the board also enables wireless programming using Wi-Fi. To do this, a base script must be first uploaded through a serial connection, then additional programs can be sent via Wi-Fi.
To bootload Micropython firmware on the board, we downloaded and uploaded the latest micropython firmware from official micropython website. (https://micropython.org/download/esp8266-1m/).