Attiny Canbot





Introduction: Attiny Canbot

This short Instructable will show you how to create a remote-controlled robot using 3D-printed parts and an Attiny85.

Step 1: Aquire Components

Parts list:

1x Atmel Attiny85

2x HXT900 from Hobbyking or any same sized micro servo

1x 3,7V LiPo battery (e.g.

1x HC-SR04 Ultrasonic range sensor

1x 38kHz Infrared receiver (e.g.

1x 9 x 4mm switch (or use a jumper)

3D printed parts:

1x bottom.stl

1x top.stl

2x wheel.stl

Print the top and bottom parts with the flat side down and supports enabled.

Depending on your printer and servos you will have to sand those parts down a bit.

Step 2: Electronics

Modify the servos for continuous rotation. You can find a nice tutorial here:

Connect the components as shown in the circuit diagram.

It may help to use a small prototyping pcb and thin wires.

Step 3: Programming

You can program the Attiny85 using Arduino code and an Arduino as a programmer:

The full source code can be downloaded from this Instructable (or the Thingiverse page).

The infrared receiver works best with Sony remotes.

You will have to flash the code to an Arduino and output the data via Serial.print().

This way you can find out which button corresponds to which code.

Step 4: Assembly

Place the components inside the robot using hot glue.

The two halves of the 3D-printed shell can be assembled using the screws that come with the servos.

2 People Made This Project!


  • Clocks Contest

    Clocks Contest
  • Water Contest

    Water Contest
  • Creative Misuse Contest

    Creative Misuse Contest

22 Discussions

What's up with snakes?

What remote you need depends on how experienced you are with Arduino and electronics. If you needs something for beginners you could look for a complete kit like this:

You can also take the remote from your TV and figure out the code somehow. But that is more difficult.

what remote should I buy?

Sorry to bother you again but, do you have to sync the remote to make it work or does the sensor just take in the info? Thanks again!

Does this ronot move atonomously without the remote or do you have to reprogram the chip? I really like your design!

6 replies

The easiest way would be to delete the IR function and place just this in the main loop:

if(getDistance() < 10){ // check if you are in front of an obstacle

moveMotors(94, 20); // drive backward in a curve

delay(400); // give the robot time to balance out



moveMotors(120, 120); //drive straight forward


But you have to experiment a bit until it will work.


Right now you need to press a button on the remote to enter the autonomous mode.

But if you are capable of programming the Attiny with an Arduino, changing a few lines in the code should not be a problem for you.

i tried to modify the code , but no results.. can anyone help please :( ?

I tried to make the code work without the ir reciver, but robot keeps walking , i'm not good to programmming, can you do tjee code for me please? I only need to delete the infrared part

you think laser cutting would work?

Nice project , to bad for me i cant get 3d printer...

2 replies

I can print and ship it for you. Email me at 3dprintstore5 at

I don't know where you are, but some libraries are getting 3D printers.


2 years ago

did you put the ultrasonic sensor for balancing? thx

4 replies

The sensor is for only autonomous navigation. The robot balances by itself because there is more weight at the bottom than at the top.

yes, but how can you control the pitch? can you share a video about it? with it controller? thanks I'm very interested :)

There is a video on top of this page. The robot is can be controlled pretty good, but it is not as smooth as e.g. Sphero which has better motor control and a gyro to stabilize it.