User Tools

Site Tools


JEFEBOT by Jeff Westerinen



Jefebot is a small tabletop robot with the following goals:

  • Robot motion is autonomous and was designed to meet the HBRC table-top challenges
  • C++ program running on a RPi3 to control the robot
  • Baseboard4 for hardware control of the robot

All the software in this project is released under the GPLv2 and is available for download at and

A video of the robot running is available here: TBD: link to video of robot


Jefebot hardware is made up of three subsystems, computing, peripherals, and power. The peripheral subsystem is based on Demand Peripherals hardware, and the power subsystem is based on a LiPo battery and voltage regulator.

Computing sybsystem

The computing platform is a Raspberry Pi model 2, which contains integrated WiFi. The Pi is configured to provide a WiFi hot spot which provides a means to download software and

The following list of peripherals from Demand Peripherals:

  • BB4IO – The Demand Peripheral Base Board which contains 8 LEDs and 3 pushbutton switches
  • DC2 – Dual DC motor controller
  • COUNT4 – Quad counter
  • ADC812 – Octal ADC
  • PING4 – Quad PING controller


This peripheral is used as a user interface. One of the buttons is used to terminate the control program. The LEDs are used to indicate which behavior is in effect.


Jefebot is driven by two simple brushed DC motors. DC2 controls the mode, e.g. direction, and speed of the motors.


This peripheral is used to implement odometry. Each motor has a slotted disk that passes through a photo sensor which is connected to the peripheral. Two of the four counters are used to count the number of “ticks” each sensor produces to determine how far the motors have moved.


Jefebot uses three edge sensors to prevent it from falling off a table. The edge sensors provide their distance measurements as analog values. This peripheral is used to convert those values to digital values that can be used by the control program.


Jefebot uses a PING device to measure the distance between it and object. This peripheral is used to directly control one PING device.

SPI-based ADC


jefebot.txt · Last modified: 2018/01/04 19:42 by jefebot