Day 1 - nikkiverre/Teacup_Firmware GitHub Wiki
The idea was to log the investigation and development of a NXP Demo using a 3D printer controller based on current "common" state of the art. Motor interface board: the open source standard "RepRap Arduino Mega Pololu Shield, or RAMPS for short. NXP Microcontroller: the Arduino code compatible PJRC Teensy 3.1.
FIRST STEPS:
Over the course of the next few weeks, my mission is to provide my thoughts, steps, and trials (and errors probably) I will have take to have a functional 3D printer engine. Due to time restrictions, we are going to buy a pre-assembled 3D printer kit. Once we have the 3D-printer kit, we'll try out our 3D printer engine and make sure it works. Once the brain works, we can try and build our own 3D-printer from scratch.

Now, first things first -- figuring out the 3D printer controller:
We decided to go with a board called Teensy 3.1 for a few reasons (it might or might not have to do with the fact that we have our own K20 chip in it.) The Teensy 3.1 is a Arduino compatible and a small USB development board made by PJRC featuring a 32 bit Cortex-M4 processor with 256kb of flash. They are also inexpensive ($19.80) and super easy to program and use. Here's the link: Teensy 3.1: New Features
As far as the firmware goes, luckily there is open source 3D printer firmware available for us to get started with… more on that later.
Getting Familiar with the board – Teensy 3.1:
I thought it would be a good idea to make sure my Teensy 3.1 board is working properly before getting started. Did I already mention how easy I found the Teensy 3.1 to program and use? Anyway, I followed the simple and detailed steps on their website to get familiar with it:
Step 1: Plug in the Teensy board and follow the steps highlighted on the PJRC website: https://www.pjrc.com/teensy/first_use.html
Step 2: Download the Teensy loader application: https://www.pjrc.com/teensy/loader.html
Step 3: We need to download Teensyduino, a software add-on for the Arduino IDE. Make sure to download the Arduino IDE first before you download the Teensyduino add-on. Follow these steps: https://www.pjrc.com/teensy/td_download.html
Step 4: Ensure Teensyduino works properly. Follow these steps: https://www.pjrc.com/teensy/tutorial.html
Now that we are familiar with the board, we can start looking into the open source 3D printer software and see what changes we need to make to port over to our Teensy 3.1.
Getting Familiar with the 3D Printer firmware:
The 3D printer firmware is the software that tells the hardware (3D printer) how to move, how much filament to extrude, read from the temperature sensors and so on. Basically, it tells the 3D printer what to do... like go to this (X,Y,Z) coordinate, extrude this much plastic, etc.
At first, we were thinking about using this open source 3D-printer software called Marlin. I downloaded the zip file from: ErikZalm/Marlin · GitHub. I opened the source code in my Arduino IDE and changed the board to Teensy 3.1 and tried to compile. However, I ran into some board configuration errors. It seems like Marlin is compatible with Teensy++ 2.0 but not 3.1. I wanted to get started on something that would already be compatible with the Teensy 3.1 to save time.
So, I ventured off and found a couple of other open source 3D-printer software that are already configured for Teensy 3.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)
-
aPrinter -- ambrop72/aprinter · GitHub ( It’s not compatible with the Arduino IDE and is linux based so you can download a virtual machine)
I am now experimenting with the different options to see if anything compiles and loads onto Teensy 3.1. If you guys find any other 3D-printer software that might work better, please let me know!
Tomorrow, I hope to get some software running on the Teensy 3.1. After that, I will try to find stepper motors to see if I can get those moving with Teensy 3.1.
Until next time...