Day 6, Day 7 and Day 8 - nikkiverre/Teacup_Firmware GitHub Wiki

Day 6

Alt Text Just to refresh your minds... last week, we were able to get the 3D printer Marlin software loaded onto our Teensy3.1 and control the stepper motors using RepetierHost. I think that's pretty good progress for now.

I am super excited for the upcoming days because we ordered an assembled Ordbot Hadron 3D printer hardware so that we can test out our Teensy 3D printer controller. I have a feeling my cube is gonna start being a popular hangout... Just so you all know, I like cookies, chocolate, and anything crunchy... just kidding. Anyway, once we test our Teensy brains on the printer and make sure it works pretty well, we can then decide which hardware to build on our own. While I am waiting for all that to happen, I decided to do a bit of research into the available 3D printer designs that are out there and into Repetier Host.

Tomorrow, hopefully the 3D printer hardware will arrive and I can start getting to know it.


Day 7/8

Today, I wanna take some time to write out a few key points about what I learned so far on using Repetier Host, Slic3r, and G codes. I also wanted to provide you with a list of some available 3D modeling tools. While Paul is working on the Marlin software, I decided I would try and explore a couple of different 3D printer open source software in conjunction. I'll talk about this more below. By the way... I didn't get a chance to be at my desk much on Tueday so I decided to combine Tuesday's and Wednesday's blog into one.

Repetier Host

Here are the steps to start 3D printing in Repetier Host:

  1. Connect the printer to Repetier Host

  2. Pick the correct com port and baud rate in the Printer Settings options

  3. Make sure the printer shape and printable height is appropriate in the Printer Settings options

  4. Drag and drop an STL file into the main window of Repetier Host

  5. Slice the STL file in the Slic3r tab. This generates G codes for 3D printer.

  6. Heat the Extruder and Printbed

  7. Run Job!!

******One thing to note is if you have the 3D printer connect to Repetier Host, you need to disconnect before you make changes to the printer settings and reconnect the 3D printer.

You can use the arrows in the Manual tab to control the 3D printer's X Y Z manually. In this manual tab, you can also set the temperature of the extruder and the printbed.

Slic3r

Today, you may use Google Maps if you need to have directions to go somewhere... For a 3D printer, you need a slicing tool that gives the directions to the 3D printer like Google Maps provides for us. Once you have a 3D model loaded into Repetier Host, you need something to "slice" the model into different layers and then the 3D printer prints layer by layer. There are many slicing engines out there and Slic3r is one of them that is already integrated into Repetier Host. It converts a 3D model into G code commands for the 3D printer.

Here are some basic G codes:

  1. G1 ---- This command moves the 3D printer in the X Y Z direction you specify

  2. G92 ----- This command sets current position to 0. For example, G92 X0 Y0 Z0 F5000 sets all the X Y Z axes to 0 at the speed of 5000

  3. G91 ----- This command sets position relative to where the 3D printer currently is

  4. G90 ------- This command sets the absolute position. For example: G90 X10 Y10 Z10 would move the printer to that coordinate. If the printer is already at (X10,Y10,Z10), the the printer would stay there because it's the absolute position versus relative position.

This is what the slicing tool generates... it lets the printer know how much filament to extrude, where to fill them, how to move the X, Y, Z axes of the 3D printer -- basically the printing instructions.

Some (free) Cool Tools for 3D modeling

  1. 3D Tin - 3DTin by Lagoa Alt Text Here is a 3D modeling tool that you don't even need to download anything, just open it up in your browser! Start modeling and click export at the top and download the STL file to your desktop and starting printing.

  2. Blender - Download - blender.org - Home of the Blender project - Free and Open 3D Creation Software

  3. SketchUp - SketchUp Make 2014 - Download -- This is pretty cool because it is integrated with Google Maps!

  4. FreeCAD - FreeCAD: An Open Source parametric 3D CAD modeler

Teacup and aPrinter:

I started looking into Teacup and aPrinter again. I spent a few hours downloading and trying to run but didn't have much luck yet. But I need to keep working on it.

Here's a refresher:

  1. Teacup -- Traumflug/Teacup_Firmware at teensy3 · GitHub (does not use the Arduino libraries but instead uses the IDE as a compile and upload tool)
  2. aPrinter -- ambrop72/aprinter · GitHub ( It’s not compatible with the Arduino IDE and is linux based so you can download a virtual machine)

After downloading the firmware from GitHub... I downloaded VMware from: VMware Player - CNET Download. You also need to download a linux .iso image: Download Ubuntu Desktop | Download | Ubuntu. You don't need to unzip the file.

Alt Text

After setting up my VMware, I downloaded java using this command in the terminal:

sudo apt-get install openjdk-6-jdk and sudo apt-get isntall curl

I downloaded the Arduino IDE. Run arduino in the terminal to open up the IDE. Now we need to add Teensyduino on the IDE to work with our Teensy 3.1 just like we did in Windows. Download teensyduino and change the permissions of the file in the terminal:

chmod 755 teensyduino.32bit

and run it:

./teensyduino.32bit

I followed the steps on the Github page:

  1. Find the target name you need to use. The basic supported targets are melzi, ramps13, rampsfd, radds, teensy, 4pi. You can find more in config/targets.sh, including variants of those targets mentioned, as well as targets in development. You may have to adjust some variables in the target definition.
  2. Locate the main source file corresponding to the target, which is main/aprinter-SOURCE.cpp. Here, SOURCE defaults to the target name if it is not defined in the target definition.
  3. Examine the main file and adapt it to your liking.
  4. To install the toolchain and other dependnecies:

./build.sh install

Note that for AVR, you will still need avrdude preinstalled.

  1. To build:

./build.sh build

  1. To upload:

./build.sh upload

When I ran the command

./build.sh teensy3 install

I got the following error in the terminal: Curl : (33) HTTP server doesn't seem to support byte ranges

I moved onto Teacup.

For Teacup, again, I followed the instructions on the GitHub site:

  1. Install Teensyduino per http://www.pjrc.com/teensy/td_download.html for Arduino extentions and arm-none-eabi-gcc compiler and friends
  2. Modify Makefile-teensy3 TOOLCHAIN= and TOOLSPATH= as needed
  3. Modify Makefile-teensy3 CFLAGS += -I.... for Teensyduino headers
  4. cp config.teensy3.h config.h # and adjust for your hardware
  5. cp ThermistorTable.double.h ThermistorTable.h # and adjust
  6. make -f Makefile-teensy3

After making the make file, I opened the project in the Arduino IDE and tried to compile... But I got an error saying "for loop declarations are only allowed in C99 mode... Use option -std=c99 to compile your code." But this was strange it should already be set to c99 so for some reason it wasn't picking it up. So, I modified the code and tried compiling again but then I got all sorts of errors about undeclared variables and syntax errors... So, I need to look at Teacup and aPrinter again with a fresh brain.

And it's the 4th of July weekend! Enjoy the fireworks and I hope you have a safe and happy fourth of July!

Alt Text

Next week, I hope to get either Teacup or aPrinter compiled for Teensy 3.1

Until next time...

⚠️ **GitHub.com Fallback** ⚠️