Robot Building Kit and Development Environment

An open-source robot developing environment that helps inventors build low-cost robots without having to start from scratch.

Similar projects worth following
Totally open source hardware and software, this robot building platform helps entrepreneurs and inventors to explore building low-cost 3D printed robots, and helps to learn and gain experience with sensors, communication, motors, linear actuators, and other electronic and mechanical devices commonly used in robot building. This platform is easily adaptable for a wide variety of robot designs including those with wheels and walkers with multiple segments. The basic elements are Ethernet PCBs (the nerves of the robot), motors and linear actuators (the muscles), and on the software side a Robot App written in C running on Linux ("RT PREEMPT" for real-time), MacOS, or Windows, that allows real-time recording of sensor samples, and a scripting language with simple instructions to move body segments into a target angle range and hold the segment in that angle range. Using simple scripts, complex multi-segment/multi-wheel motions can be easily achieved.

Open-Source Robot Building Kit and Development Environment

The main products in this robot building kit are:

1) Ethernet Modules (PCBs)

  a) EthMotors - a Microchip PIC32 controls up to 12 motors (up to 2.8A each, using 12 Texas Instruments' DRV8800 motor drivers) over 100Mbit ethernet all on a single 100x72mm PCB.  Uses 3.3V power supply, and an 8-36V motor power input. One to twelve motors can be connected individually into spring terminals. BOM cost: $64

  b) EthAccel - a microchip PIC32 can read from up to 3 Accelerometers+Gyroscopes (currently only InvenSense MPU-6050), and 15 touch sensors (ADC), at up to 100 samples/s. Uses 3.3V power supply. The two wires from a touch sensor are connected into top and bottom holes in the SMD spring terminals and read on the PIC32 ADC pins. Note that in this image 2 8-bit SMD spring terminals are not populated (and that the GPS code is currently not functional). BOM cost: $28

  c) Accelerometer PCBs: This humble PCB houses an accelerometer+gyroscope IC, is fastened onto the robot part with screws, and connects to the EthAccel PCB using an RJ12 cable. BOM cost: $3

  d) EthSwitch 

     1) 8-ports:  A 100X60mm PCB that uses one (very low cost) Realtek RTL8309 IC to provide up to 8 10/100Mbit connections. Uses 3.3V power supply. BOM cost: $20

    2) 16-ports:  A 100X100mm PCB that uses two (very low cost) Realtek RTL8309 ICs to provide up to 16 10/100Mbit connections. Uses 3.3V power supply. BOM cost: $37

2) Mechanical Products

  a) Linear Actuator (1) - Rack and pinion design: low cost gear motor connects (using a clamping coupling) to a pinion which moves a connected rack. This design provides a startling amount of holding strength, and acts somewhat like a low cost, light-weight stepper motor because the gear teeth are somewhat far apart. 

  I think, personally, that this particular product in the Robot Kit is potentially one of the most valuable, perhaps after the 3 PCBs, because I searched and searched for linear actuators, but most of those being sold are metal, heavy, and expensive. For a robot that is going to use 9 linear actuators just for the lower body, that would be very heavy and expensive. This rack and pinion design plastic linear actuator has more than enough strength, is much lighter than a metal actuator, and is about 100x cheaper.

  b) Linear Actuator (2) - Linear screw design: low cost gear motors connects (using a clamping coupling) to a lead screw/threaded rod which pushes a plastic rod that has an embedded nut. Much slower, but much stronger than the rack and pinion design. This linear actuator could be used on a robot to push a large weight, but is too slow for most robot applications. Nonetheless there is plenty of room for adapting the basic design for a wide variety of applications.

  c) Touch Sensor - Conductive foam surrounded by metal tape on each side and enclosed in plastidip. Two wires coming from the sensor can be connected to the ADC ports on the EthAccel to log (up to 100 times/second) the variable resistance of the sensor. Large or small size.

3) Test Devices

  a) Three-wheel robot - 20mm (w) x 15mm (h) x 20mm (d) robot with 12v battery (note battery: will be smaller lithium ion battery with an optional charger), banana pro, 2 switch-mode voltage regulators, and a small banana pro power adapter PCB (converts regulator 5v to USB and SATA connectors). Robot has two motors connected to clamping couplings that turn plastic wheels, and can be controlled wirelessly (untethered) using a Bluetooth keyboard and/or remote desktop into the Banana Pro. 

  b) Robot motor testing weight lifting arm - Plastic two-part arm that can be used to test the strength of a motor.

Coolest Parts of this Project:

1) All open...

Read more »

Plastic Parts for Linear Actuator (both rack and pinion and threaded rod designs).

Zip Archive - 4.99 MB - 07/23/2017 at 18:15


Plastic Parts for Robot Rover

Zip Archive - 3.63 MB - 07/23/2017 at 18:15


Plastic Parts for Robot Arm

Zip Archive - 974.13 kB - 07/23/2017 at 18:14


All the Electronics for the Robot Kit: Schematics, Bill of material Excel files, and Kicad PCB files and libraries. Also available at ***NOTE THAT THE SOFTWARE (FREETHOUGHT AND ROBOT) IS TOO LARGE TO FIT HERE AND SO IS LOCATED AT:

Zip Archive - 36.23 MB - 07/23/2017 at 17:49


  • 1 × Banana Pro Runs Lubuntu with RT_PREEMPT enabled
  • 1 × 12V Lithium Ion Battery Battery to run Test Robots
  • 2 × DC to DC Switch-Mode Voltage Regulator PCB/Module To bring source voltage down to 3.3V, and to 5V for Banana Pro
  • 3 × Network cables To connect Eth PCBs
  • 1 × 24 gauge wire To connect electrical components

View all 26 components

  • Robot plays drum with two hands

    Ted Huntington09/11/2018 at 16:31 0 comments

    note: I had to fasten the drum sticks to the hand because the grip was not tight enough to hold them with the fingers themselves- so there is definitely still a lot of work to do! :-)

  • Rover Robot turns drill on/off

    Ted Huntington09/11/2018 at 16:28 0 comments

    Here is another example of the EthMotors and EthSwitch PCBs working together to allow a robot with a hand to power on and off an electric drill.

  • Robots now completely separate from Robot App

    Ted Huntington02/28/2018 at 05:55 0 comments

    Last year I said that I would remove the Robot-specific code from the Robot Building kit app and sorry it took so long, but I finally had a week off of work, and took the time to make those changes. So starting with, the Robots are completely separated from the Robot App. Robots are now loaded using a .Robot and other configuration files which define number of Ethernet PCBs, number of motors, accelerometers, touch sensors, motor-angle associations, 3D model of the robot, etc.  Now scripts can make use of the custom named robot motors and accelerometers (see the examples of TwoLeg and Rover robot in the Robot app "Robots" folder.

  • Calibrate good times, come on!

    Ted Huntington07/29/2017 at 06:15 0 comments

    07/28  I fixed the calibrating the accelerometers and gyroscopes code, so now one or more individual accels/gyros can be calibrated (but the .msi will probably get updated Monday). I have most of the 3D printed parts for my 4-leg robot and will probably assemble it tomorrow. Last but not least I have sketched a basic outline of how to change my Robot app code from being hard-coded for a 2-leg robot, to having a "Robots" folder (both in the home folder, and user folder) that has an EthAccels.txt and EthMotors.txt files in which to list the names for the accels and motors. Beyond that I could see users adding a basic "cube" .stl model of their robot so that a window can relate accel locations to various body segments on each robot.

  • Fixed problem with Windows version of Robot app

    Ted Huntington07/26/2017 at 19:36 0 comments

    7/26/2017 12:35pm I fixed a small error in the Windows version of the Robot app (I rarely use the robot app in Windows) and verified that I can send/receive commands from an EthAccels PCB in both Windows and MacOS. So that is very nice- I uploaded an installer (Install_Robot.msi) to my Download area ( too- so just checking out the app in Windows is very easy.

  • Win, lose, or draw, this Hackaday Contest has been a lot of fun and a serious learning experience!

    Ted Huntington07/24/2017 at 04:44 0 comments

    7/23/17 I just added a lot of videos to this project, and win, lose, or draw, this contest has been a lot of fun already, and a really good learning experience for me. This contest helped me realize that I want to branch out more with this Robot Kit and App to make more different kinds of Robots- before this I had tunnel vision on my two-leg robots. In addition, I am having a lot of fun looking through the other projects in the contest- there are a lot of poor geniuses out there- and I am sure I can learn a lot of new and interesting ideas by checking out the other projects.

  • Added more pictures and videos- possible song?

    Ted Huntington07/23/2017 at 04:05 0 comments

    7/22/17 8:59pm I just added a few more images and videos and have been thinking about possible background music for the ScienceRobot Kit Product video:

  • FreeThought and Robot App now run on MacOS, Made Small 3-wheel robot in a few days

    Ted Huntington07/22/2017 at 06:28 0 comments

    7/21/17 11:14pm Excited to announce that Freethought (the library I wrote to create windowed apps in Linux and Windows) now runs in MacOS! It only required a few minimum changes- I even found and fixed a nasty array overrun error in the Robot code thanks to testing in MacOS.  I will be uploading that code to my page soon- I am going to move all my robot and freethought code there from now on.

     Then I took the two 3D printed motor connected wheels off of my 2-leg robot (by the way I found wheel on my 2-leg robot to be much tougher than I planned- but perhaps with bigger wheels that have more friction it could work without too much trouble- and I'm sure would be a lot of fun)- and I moved them and a 3rd non-motored 3D printed wheel and using a Banana Pro running the Robot app in Lubuntu- the native OS image- am able to move the little rover around and turn it- without changing a single line of code in the Robot app. 

  • Excited to start publishing my open source Robot Building Development Platform!

    Ted Huntington07/21/2017 at 14:49 0 comments

    07/21/2017 I am excited to start publishing the details of this open source hardware and software Robot Developing system. I plan to fully provide all source hardware schematics and PCB files, software, and 3D models for this project that I have been steadily working on for over 3 years.

View all 9 project logs

  • 1
    How Robot Script Language Works

    Describes how Robot Script Language Works by moving a robot arm to specific angle ranges:

  • 2
    Linear Actuator - Lead Screw/Threaded Rod Design

    Demonstrates the motion of a Linear Actuator that uses a threaded rod design:

  • 3
    Robot App Script Example: TurnMotor instruction

    Example of how Robot scripts work using the TurnMotor instruction:

View all 11 instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

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