Skip to content

TD-1 Self-Source Project Guide

Step 1 – Flashing the RP2040-Zero.

**Do NOT use these instructions for updating the TD-1 firmware after initial installation**

While holding the boot button on the PI, connect to your PC.

You should see a storage drive called “RPI-RP2”.

Drop the file labeled “TD-1 Beta v3.1.uf2” onto this drive.

When flashing is complete the RP2040-Zero will automatically restart.

After it restarts, on a Windows machine, it will notify you that a new device called “TD-1” was connected and is installing drivers. Then it should pop up and say that the unit is ready for use.

Unplug the RP2040-Zero from the PC.

Step 2 – TD-1 Assembly Instructions

First layout your components and make sure you have everything. Make sure you have followed the installation instructions for preparing the RP2040-Zero prior to wiring and assembly.

Next make sure to remove any obstructions from the LED pockets. Such as in the image below.

Make sure you wire TD-1 up using the wiring diagram. Wires will be easier to solder before installing the components. Headers and connectors are NOT recommended as there is not enough space for them.

Let’s start with installing the Display. Use caution when setting the display into the pocket as the tolerance is small and the glass can break easily. You will know the screen is all the way in when you can slide a strand of filament into each of the channels provided to keep it in place.

Install the NeoPixels as shown below. Ensure the Din for both LEDs are facing the side with the notch.

Screw the LED backer into place using 4 M3x6mm Button Head Cap Screws. Take care not to over tighten these screw as they screw directly into plastic.

Following the wiring diagram, wire the LEDs as shown below.

Now install the Luminosity and RGB sensors.

You will want these wires soldered in already (I left them off for the sake of these photos).

Now install the Luminosity and RGB sensors. You will want these wires soldered in already (I left them off for the sake of these photos)

Make sure both sensors are oriented in the pockets as pictured.

Make sure to lay the wires from the display flat to the corner as shown in the left side of the image below. Route the LED wires up out the notch on the right side of the image below. Take care to make sure all the wires lay flat as you slide the sensor mount into the top case.

Now insert three strands of filament to secure the sensor mount in the top case as shown in the image below.

Place the switch onto the switch mount as shown below.

Wrap the legs of the switch around the switch mount as shown below.

Insert the 7mm ball.

Insert the two M3x10mm Button Head Cap Screws through the switch mount and screw into place as shown below. Take care to not overtighten these screws as you are screwing directly into plastic. This switch is designed to not screw all the way down. You want to evenly screw in the screws so that the switch is parallel to the sensor mount, Tighten the screws till the button JUST touches the 7mm ball. As shown in the image below, there may be a gap between the switch mount and the sensor mount.

Insert a strand of filament and ensure the switch engages.

Next you will want to complete the wiring as shown in the wiring diagram and solder in place.

Next you can install the RP2040-Zero as shown below. (I am showing with a non-wired unit to be able to provide better pictures)

Now insert a strand of filament through the back of the box to secure the RP2040-Zero into place.

Here is an image with the wiring in place.

Now make sure to tuck all the wires into the bottom case. Make sure no wires are getting pinched as you slide the top case into the bottom case. Press the two case halves together firmly till they snap into place. A small gap between the two halves is by design.

Step 3 – First Boot

Connect the completed TD-1 unit to your PC.

**SCREEN WARNING**

The screen should display “No License”. If it shows nonsense or is blank, like the image below, follow these steps before troubleshooting other possible issues.

If your screen does not show clear text or is blank, this might NOT mean that something is wrong. It turns out there are vendors out there selling two different displays under the same name. I tried really hard to make the same code work no matter which one you have. However, ultimately the solution is that I had to make a variable called “display_type”. I have placed this variable in a file called "settings.py” This file can be extracted from TD-1 using the “Extractor v3.py” script. To Extract it use command prompt and cd to the directory where Extractor v3.py is stored. Enter the command python “Extractor v3.py” type “3” and hit enter. The “settings.py” file will be extracted to the same file as the Extractor v3.py file.

You can now open this file with any text editor. Change the top variable from “SSD1306” to “SH1106” or vise versa as needed. Save the file.

Create a new folder called “lib” and place the settings.py file into it.

Now right click the lib folder and select “Send to” then “Compressed (zipped) folder”.

Name the new .zip file “update.zip”.

Now place this zip file in the same directory as the “Updater v3.py” script and open a command prompt.

Cd to the directory where the Updater v3.py script and update.zip files are stored and enter the following command.

python “Updater v3.py”

You should get the following output.

Restart the TD-1 by disconnecting and reconnecting it.

Now you should have clear text “No License” on the screen.

If not, now it is time to go back and check your connections or even the glass of your display for damage.

Step 4 - License

Once you have “No License” being displayed, open a command prompt and cd to the directory where you have the “Extractor v3.py” file stored. Enter the command python “Extractor v3.py” type “1” and hit enter. The “boot_out.txt” file will be extracted to the same file as the Extractor v3.py file.

Send this txt file to license@ajax-3d.com with a subject of “License Request” and message me through Patreon.

I will send you back a license file called “license.bin”*. (This may take up to 24 hours, you do not need to leave the TD-1 connected to your PC for this time and can just reconnect it to get back to this point)

* If you are setting up multiple TD-1s, this license file is specific to each device, and they will need to be placed on the correct device. If you send multiple requests in one email, I will respond with the licenses each named “license(‘SN’).bin” where SN will be the SN of the unit that it belongs to. You will need to rename the file to ‘license.bin’ after you copy it to each TD-1.(The units SN is stored inside of the boot_out.txt if you need to find what unit you are working with).

When you receive the “license.bin” file back from me, place it in the same directory where you have the “Updater v3.py” script stored.

Right click on the “license.bin” file and select “send to” then “compressed (zipped) folder”

Name this new zip file “update.zip”

Cd to the directory where the Updater v3.py script and update.zip files are stored and enter the following command.

python “Updater v3.py”

You should get the following output.

Restart the TD-1 by disconnecting and reconnecting it.

Your TD-1 should boot to a screen that states “Insert Filament” and is now ready to use.

If you get any other messages or run into issues at any time in this guide, please feel free to email, message in the AJAX 3D Discord, message on Patreon, or DM me on Discord.