Jeremy The Butler Bot

A talking mobile butler robot fitted with a British accent, using Arduino components and accessories.

Similar projects worth following
Jeremy the Butler bot is a dream of mine that I have had ever since I started out in the maker hobby. Essentially Jeremy is a moving and talking mobile wooden trolley, programmed to move objects from point A to point B (or in my case, from the kitchen to the couch). Jeremy's voice is powered via adafruit's wave shield v 1.0. His British voice fits his working title very well. Jeremy is controlled via an Arduino mega 2560, making him somewhat primitive, yet still able to do his job. Jeremy uses a host of sensors to navigate through his environment including; Flora Color sensor (for marker detection), Twin ultrasonic sensors, 3 highly sensitive "bump" sensors and two encoders on Jeremy's main drive motors. Jeremy's main code is triggered via a simple 4ch car remote receiver.
Jeremy will also use a color sensor for navigation allowing him to sensor markers.

Challenge the project addresses:

To deliver food and drinks to my couch.....

haha, not only that.... I hope to create a simple to use fully open source autonomous platform that is capable of navigating from one point to another in most environments. I hope to be able to do this with the smallest budget possible. 

Autonomous robots have been out of reach for many years, both for their cost and the complexity of programming such a system. I hope that the Jeremy butler project will not only serve me food and act as my humble servant but will also act as a fully accessible platform that anyone can utilise for autonomous robotics. 

How the project will alleviate or solve the problem:

Jeremy will set out to be a simple to use autonomous robotic platform bridging the gap between traditional sequence based robotics and autonomous robotics. 

How the project will be world changing:
British Butler bots for all mankind!

Not only that, I hope that this platform can be used for a whole host of projects possibly enabling younger makers and programmers to create their own autonomous platforms. Examples could include;

- Aged care robotics (the 'Jeremy platform' could be used to aid elderly citizens in everyday tasks such as carrying the shopping or other items around the house).

- Shopping center robotic aid (the platform could be used to help customers in a shopping center with their bags).

- Exam hall robot (the platform could be utilised in exam halls! During exams students request certain items such as tissues, extra writing booklets etc. Maybe this platform could be used to deliver those items to students, in a more efficient manner).

The ideas are endless.


Jeremy will operate in 2 different modes (however more modes will be added as i improve Jeremy's programming and functions). 

Mode 1: Delivery mode

Delivery mode enables Jeremy to travel from one point to the other. Using his colour sensor along with ultrasonic sensors Jeremy will navigate from his starting position to the delivery point. (From Point A to Point B), on each point will be a colour marker to notify Jeremy that he has reached his destination. 

Delivery mode flow chart:

Mode 2: Autonomous roaming mode

Since Jeremy will be carrying drinks, food and other items on his tray I would like him to be able to roam around the house whilst visitors are at my house. This way he will be able to delivery drinks to everyone. Jeremy will use his ultrasonic sensors and bump sensors to ensure that he does not run into anyone, he will also travel at a slower speed whilst in this mode. 

The autonomous mode will be much harder to program and develop, there are multiple ways to approach this mode:

Approach 1:

Line following: This is probably the simplest way to approach the issue, it involves placing a line on the ground around the dinner table. If Jeremy come across an obstacle (ie: a person) he will stop and wait until the obstacle has moved. Jeremy will also talk notifying the obstacle to 'move out of the way.' 

Approach 2:

Camera tracking: Placing a camera on-top of the roof and communicating to Jeremy wirelessly could also solve the autonomous issue. Unfortunately I do not have the components or know how to use this technique, however it could be used in the future.

Approach 3:

Combination: Alternatively i could use a combination of both approaches. This could involve using markers for each corner of the table (maybe a strip of tape with different colours). Jeremy could also use an accelerometer to ensure that he travels in a straight line and once he approaches a specific colour he either turns left or right. I could also possibly use a camera on top of the roof (if my parents let me :D).

jeremy's RX module Stand holder ENLARGED.stl

3D print file for Jeremy's receiver module

Standard Tesselated Geometry - 152.78 kB - 09/13/2017 at 04:01



This is the drive code for Jeremy, it controls his wheels and Pololu motors.

ino - 1.93 kB - 09/13/2017 at 03:08


Jeremy delivers drink.wav

If the user wants a 'drink' then Jeremy will play this and navigate his way back to the kitchen.

Waveform Audio File Format (WAV) - 305.79 kB - 09/13/2017 at 03:06


Jeremy Greeting.m4a

Jeremy's 'Greeting.' His voice was made using a text to speech bot.

x-m4a - 121.61 kB - 09/13/2017 at 03:04


  • 1 × Adafruit Wave shield
  • 1 × Arduino Mega
  • 1 × 315 Mhz Remote receiver and transmitter
  • 1 × Seed Studio arudino Motor shield
  • 1 × Flora Color sensor

View all 9 components

  • 2017 Project Revival

    Austin Marandos09/12/2017 at 02:09 0 comments

    After sitting in my attic collecting dust for over 2 years, it is time.....

    The British Butler has been out of work for too long.....

    My dream of having a personalized butler must come true!

    To get the project running once again, I've decided to enter the project into the 2017 Hackaday prize. Unfortunately i was too late to enter Jeremy into the 'Wheels, wings, and walkers' challenge which would have fitted perfectly. 

    The main issue that i last had was developing the navigation control. Originally i was going to use an adafruit Flora colour sensor combined with ultrasonic sensors to navigate from point A (my kitchen table) to point B (the couch). This would have required me to have put down some tape or colour on the floor and trace out the path that Jeremy would have to take. This most likely would not have worked too effectively and therefore I abandoned the idea.

    I will need to re-evaluate my navigation techniques, possibly by using radar or an xbox kinect sensor. 

  • Drive System complete

    Austin Marandos09/26/2015 at 13:46 0 comments

    Sorry for the long wait, school and other commitments have filled my time up and I had no time to work on Jeremy, but Jeremy is back! His drive system was recently installed and tested, the wheels work great and the torque from the motors are just right. One little problem is that Jeremy's left and right turns are a little too wide for my liking, but besides that he drives fantastically. Jeremy is also fitted with two roller balls on his front end allowing him to pivot on the spot. The next step is to automate his movements and install his sensory components.

  • More parts for Jeremy...

    Austin Marandos05/02/2015 at 03:18 0 comments

    Jeremy's main motors, sensors and mounting parts have arrived, I'm still waiting for the scooter wheels to get back in stock, but in the meantime there is lots of hardware initialization that must be done

  • Jeremy's voice

    Austin Marandos05/02/2015 at 03:13 2 comments

    This isn't much of an update (since I had already programmed this before I made this page) but I thought I should share Jeremy's voice, hope you enjoy ;)

View all 4 project logs

View all instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates