Skip to content

Build TJBot

Justin Weisz edited this page May 15, 2026 · 5 revisions

TJBot Body

TJBot was designed to be printed on a 3D printer or cut out of chipboard using a laser cutter. TJBot's body was originaly designed to house a Raspberry Pi 3, but some support is offered for newer Raspberry Pi models.

Body Type RPi 3 RPi 4 RPi 5 Download
3D Print ⚠️ (2) .zip or .tgz
Laser Cut ❌ (1) ⚠️ (2) .zip or .tgz

Note

(1) The Raspberry Pi 4's Ethernet and USB ports are in a reversed placement from the Raspberry Pi 3. The Laser Cut files do not include a RPi 4-specific jaw.

(2) When the Raspberry Pi 5's active cooler fan is installed, it is possible to install the camera bracket, but the fit is very tight. Similarly, when the heat sink is installed, the Pi will only partially fit in the middle retainer.

3D print

If you would like to 3D print your TJBot, the first step is to download the parts. These are distributed as .stl model files. You can print these parts to your own 3D printer or use an online 3D-printing service to have them printed and shipped to you. The table below shows all of the different parts that comprise a TJBot, how many of each part you will need to print, and any special instructions for printing a part.

Part Qty File Instructions
Jaw 1 1-Jaw.RPi3.RPi5.stl Use for RPi 3 and RPi 5
Jaw 1 1-Jaw.RPi4.stl Use for RPi 4
Leg 1 2-LeftLeg.stl Print with supports
Leg 1 3-RightLeg.stl Print with supports
Cross Brace 1 4-CrossBrace.stl
Foot 1 5-LeftFoot.stl
Foot 1 6-RightFoot.stl
Retainer 1 7-BottomRetainer.stl
Camera Bracket 2 8-CameraBracketSide.stl
Camera Bracket 1 9-CameraBracketFront.stl
Camera Bracket 1 10-CameraBracketBack.stl
Retainer 1 11-TopRetainer.stl
Retainer 1 12-LEDRetainer.stl
Head 1 13-Head.stl
Arm 1 14-Arm.stl

Once you have printed all of the parts, the next step is to obtain all of TJBot's electronics components.

Laser cut

If you would like to laser cut your TJBot, the first step is to download the laser cut lines. These are distributed as .pdf, .eps, and .dxf files, depending on what format your printer requires. We recommend cutting TJBot out of 18" x 18" x .080" (457mm x 457mm x 2mm) chipboard. If you do not have access to a laser cutter, you can use an online laser cutting service to have your TJBot cut and shipped to you.

Once you have laser cut your TJBot, the next step is to obtain all of TJBot's electronics components.

Electronics

TJBot uses the components below to come to life, shown in the table below. Some components are required (✅), some are required but multiple options are available and only one is needed (1️⃣), and some are optional (➕). Sample product links are provided for convenience, but please note that specific products, availibility, and prices may change over time. In addition, some products may be sold in packs containing multiple parts (e.g. LEDs, servos, jumper wires). It never hurts to have spares on hand!

Component Requirement Options Notes Example product(s)
🥧 Raspberry Pi 1️⃣ 3B, 3B+, 4, or 5 We recommend a Raspberry Pi 4+ for running AI models locally. Cloud-based AI services will work on Raspberry Pi 3B/3B+. RPi 5 kit
💾 Storage Device 1️⃣ Micro SD card or USB SSD drive We recommend a 32GB+ Micro SD card. Power users may wish to use a USB SSD drive. Note that your Raspberry Pi kit may already come with an SD card. SD card; USB SSD Drive
💡 LED 1️⃣ NeoPixel or Common Anode The hole in TJBot's head was designed for a NeoPixel, but a Common Anode LED will also fit. NeoPixel, Common Anode
🔌 Jumper wires Female-to-female (F2F) and Female-to-male (F2M) LED needs 3 (NeoPixel) or 4 (Common Anode) F2F wires; Servo needs 3 F2M wires. Jumper wire kit
🎙️ Microphone Mini USB mic Mics with approx. dimensions of 0.87" x 0.75" x 0.16" should fit underneath TJBot Mini USB microphone
🔊 Speaker Mini speaker Speakers with approx. dimensions of 1.75" x 1.75" x 1.75" should fit inside TJBot's body. Mini speaker
🦾 Servo Micro servo TJBot uses an SG90 9g micro servo SG90 servo
🎛️ USB audio adapter USB audio adapter See note below. USB audio adapter
📷 Camera V2 or V3 Raspberry Pi 5 may require a special camera cable Raspberry Pi Camera V2; Raspberry Pi Camera V3

Note

We recommend connecting a speaker via a USB audio adapter for the most reliable audio output. Historically, we have not had success with using a speaker connected via Bluetooth as it has resulted in clipped audio when TJBot speaks. In addition, on Raspberry Pi 3 models, we do not recommend connecting a speaker via the 1/8" audio jack as there is a known interference issue between the audio jack and the GPIO pins used to drive an LED.

Assembly

Once you have obtained all of the individual components for your TJBot, it's time to build it!

Body assembly

TJBot assembly guides are available on Instructables for assembling a 3d-printed or assembling a laser cut TJBot.

Important

If you are building your TJBot out of laser cut chipboard, we strongly advise following these guidelines:

  1. Use the edge of a table or a metal ruler to give yourself leverage when folding the seams.
  2. Don't overfold. Use the smallest amount of pressure needed to make the seams start moving, but stop just when they start to give. If you use too much pressure, you may tear the seam.
  3. Plan your folds. As the saying goes, "measure twice, cut once." Make sure you are folding in the right direction before you begin your fold.

If you find that you have made a mistake and broken off a piece, don't worry! Chipboard is easily re-connected with tape. We recommend cutting a piece of packing tape to reconnect any parts that have separated.

Electronics wiring

TJBot expects its LED and servo to be connected to specific kinds of pins, including voltage (+3.3v or +5v), ground, and data. The images below show examples of the recommended wiring for these components, depending on which type of LED and which Raspberry Pi model you are using.

NeoPixel LED on RPi 3/4

Raspberry Pi 3 with NeoPixel LED

NeoPixel LED on RPi 5

Raspberry Pi 5 with NeoPixel LED

Common Anode LED on RPi 3/4/5

Raspberry Pi 3 with Common Anode LED

Default pin configuration

TJBot's default configuration file expects the components to be wired to the pins shown below. If you need to change the wiring for any reason, make sure to update your TJBot configuration file (either by running tjbot config or by editing ~/.tjbot/tjbot.toml) to update the pin configuration.

Tip

pinout.xyz provides an easy visual reference to identify the Raspberry Pi's pin numbers. Similarly, the pinout command can be run in the Terminal to show similar information.

NeoPixel LED

We recommend using the following pins to wire in the NeoPixel LED.

PIN type PIN Name Physical PIN
Data (RPi 3/4) GPIO 21 Physical PIN 40
Data (RPi 5) GPIO 10 Physical PIN 19
Power +3.3v Physical PIN 1
Ground Ground Physical PIN 6

Caution

💡 Be careful when connecting the LED! If it is connected the wrong way, you may end up burning it out. The NeoPixel LED has a flat notch on one side; use this to orient the LED and figure out which pin is which.

Common Anode LED

We recommend using the following pins to wire in a Common Anode LED.

PIN type PIN Name Physical PIN
Red GPIO 19 Physical PIN 35
Power +3.3v Physical PIN 17
Green GPIO 13 Physical PIN 33
Blue GPIO 12 Physical PIN 32

Note

💡 Common Anode LEDs and Neopixel LEDs can both be connected to TJBot at the same time and will shine the same color. However, TJBot's head only has room for one LED!

Servo

We recommend using the following pins to wire in a S60 servo.

PIN type PIN Name Physical PIN
Data (orange) GPIO 18 Physical PIN 12
Power (red) +5v Physical PIN 2
Ground (brown) Ground Physical PIN 14

What's Next: Bring TJBot to Life

Now that your TJBot body is assembled and the electronics are wired in, it's time to set up TJBot's software!

Clone this wiki locally