From Open Source Ecology
Jump to: navigation, search


Happy new year! working on the D3D oh today D3D_Ohio_v18.02

-today I am starting with compleating wiring of the D3D prusa I3 Extruder - the idea here is to get basic operation; once I at least have this running I'll look into building our most recent extruder iteration.

-I have the workarea cleaned up and the other three printers set up on newly built workbench - none of them are functional, all have clogged old style extuders. cannot wait to get a good extruder live on these guys!


Takacs Ideas Page


D3D_Ohio_v18.02 Design and printing of 1" D3D PVC drilling jig.


D3D_Ohio_v18.02 Drilling and mounting of D3D - testing cutting methods and test fit with .5" scrap PVC. printing of new extruder parts on new printer


D3D_Ohio_v18.02 recieved new prusa I3 printer!


D3D_Ohio_v18.02 -Work on purchasing -work on a friction mount for the D3D axis - this would friction clamp onto the PVC with screws; and expose a magnetic mounting hardpoint.


D3D_Ohio_v18.02 Hiatus getting 3d parts sourced for D3D extruder. Incorrect JHead was in my home stock, ordered proper J-HEAD and confirmed good fit. Ordering rest of required vitamins to build extruder today. build of new D3D extruder


D3D_Ohio_v18.02 Finish belt routing. Mounting axies to frame. Z bed mounting some electronics work



  • assym of x and y axis to PVC frame. Some electronics rigging.
  • research on how to setup the printer.


D3D_Ohio_v18.02 2hrs repair of airwolf 3d so we can print the http://opensourceecology.org/wiki/File:Prusa_i3_mk2_extruder_adapted.fcstd Debugged issues with Geeetech mark 8 extruder - fillament jammed. Disassym and emersed hotend in acetone.

- looked for details on assym. of the d3d (Programming, settings ect)


D3D_Ohio_v18.02 PVC cuts and D3D assym.


D3D_Ohio_v18.02 assembly of axis modules


D3D_Ohio_v18.02 Modified CAD drawing to use short idler. Calculations redone and posted to calcs page for team review.


D3D_Ohio_v18.02 Frame added. small adjustments to items. Beginning adding in short idler.


D3D_Ohio_v18.02 Updated drawing. moved around X Y and z axis per meeting feedback. More work to do this weekend.


D3D_Ohio_v18.02 Updated drawing. measurements basicly complete D3D_Ohio 18.20 Calculations - Made and updated


D3D_Ohio_v18.02 - updated drawing (Pending), BOM on dev template.

3/4/2018 to 3/9/2018

D3D_Ohio_v18.02 - updated drawing.

Contracted Pnemonia, have been slow on getting to things past few days. Still trying to get a print out of my old I3 - If someone has parts or can provide D3D prints, please contact me.

3/3/2018 - 3/4/2018

D3D_Ohio_v18.02 -- Played around in freecad, trying to resize be part to 12", then need to resize axis to match. Once I have the right rod lengths and the U-Axis accomidating the 12" bed, I can measure the length and render a pvc frame. I'm having issues moving the assymbly around. Have to get past the learning curve.

-Also worked on my home printer so I can start printing D3D parts. I added a thermister to the heated bed and worked on getting my mark8 extruder to behave.

Corner ends at 1/2 inch and 1" size have arrived.

mass production? see end for contious belt 3d printer. prints on a slant... VERY intresting. https://www.youtube.com/watch?v=eD6kddftzB0 https://blackbelt-3d.com/


https://markforged.com/metal-x/ you can sinter metal looks that the cool way is to print metal bond in resin the normal way, then cut that.


-Going to start having this log just be a quick blurb of what I did and what pages I edited. this stuff needs to start living in my DS branch off of the 3dprinter FS D3D DS.

D3D Functional Specification --Filled out!

D3D Ohio 18.02 Design Specification -- Added stuff! This is where my D3D work will now live. If I mess with it, I will mention that here.

Found a Basis for a render http://opensourceecology.org/wiki/File:Medium_Size_Version_12_in.FCStd

So ploted up: First Rendering!

I have a great deal to learn in Freecad on more adv. assym work. Such as how There are parameters for assymblies, and there is a linked parameter for rod lenght between the Right and left Y universal axis so you can change lenght in one spot. super cool.

Attempting print again. Modeling 3D3 12" PVC Morning rendering:

First Rendering!

2/23/2018 to 3/1/218

Family sickness, bed versus late night hours Occasional printing and tuning attempts to get parts out for D3D

Parts for D3D continue to come in. purchasing corner ends from amazon per what was modeled by Ruslan

2/22/2018 to 2/23/2018

-Tried to print, had issues with sensors. I had a min temp, this means a short on my extruder0 thermoster... need to check out -Purchased parts from ebay and amazon. --McMaster - still working on getting my account setup there. having a few troubles.

-Having trouble finding all parts and such for freecad was hoping to use an existing rendering. may ask or look for other area. -working with ruslan on getting workbench and pvc stuff loaded up.

Issues finding latest work with freecad, and locating latest workbench


D3D Functional Specification

D3D Ohio 18.02 Design Specification

Functional Specification Document Definition and Template

Design Specification Document Definition and Template

2/17/2018 - 2/20/2018

Ordering of D3D parts per: http://opensourceecology.org/wiki/D3D_v18.01_BOM Learning freeCAD more (macros and move advance assembly) several fixes and epoxy work on printer. Working on bed leveling.



Fixed Z endstop issue! it was always closed. checking with a meter, that port was floating. To fix, I enabled pullups on the Zmin (ardu pin 18) and it is working well. Needed to reglue and attach endstop so will try an actual print tommrow.


more messing around with freecad



Glued and secured extruder to frame on test printer. Started looking more into purchasing parts for main printer build. Looking into 3D modeling the runout sensor. was able to import the .STL mesh into FreeCAD easily.



-z motors moving slow. endstop has a good signal, but not picking up per the 3D3 wiring diagram, z just stops quickly after starting... need to debug... glued in the mk8 extruder to the frame. -Loaded parts and started getting freecad setup to render the filament sensor tomorrow.


-Started researching GIT for versioning our HW / SW projects. -Started thinking about DS / FS layout for 3D3 basepage.



Creating a short development template for my 12" PVC replication of the D3D D3D_Ohio_v18.02

--Organization ideas--


Let's apply some software project management to our printer Hardware and software development cycle to better organize the effort. There are a few key, often "Living" (constantly evolving) documents in any project, R&D or tightly scoped. These documents attached to Project management methods and version control solutions allow for divergent R&D efforts to support a central goal.

So, you'll have a

Functional Specification (FS): "As a user I want to be able to" "The hardware will do x"

Design Specification (DS): "The software accomplishes user requirements in the FS By Though these technologies"

Then you have project management artifacts such as critical path and roadmaps to line up your efforts - what needs to happen before next steps can occur. Then pieces such as gnat charts and burn-down charts to track progress toward a goal. Finally, you have version control that holds organized backups of the project as it progresses in time and is iterated upon to reach the requirements of the FS.


  • So, for 3D3 hardware / software independently there will be InDev and Stable hardware / software releases.
  • The FS will live as a core, living document reflecting the final evolving requirements of a particular machine (aggregate of modules) or module in the OSE ecosystem.
  • Now, off the original FS with both hardware and software there will be, especially with hardware R&D, several "branches" in the project; where a current machine takes a step in a different direction.
    • These new pieces can be organized though DS documents For Each Branch (or wiki pages :) ) That will keep solid track of WHERE that current Branch of the current hardware or software is.
    • At the end of a branch that grows into a stable release, a the DS goes from a WIP document that is laboriously (and necessarily updated) to a wonderfully detailed report on how that particular artifact works at a technical level with support accessible portions so those whom just wish to replicate, can replicate.
  • Strict tracking of branches and versions will allow creation of clear landing pages for any design effort, so any person joining or wishing to use the project can visualize and draw inspiration from the design effort as a whole, or jump down any give rabbit hole of branch and iteration.
  • We can realize an effective distribution of research effort though sharing repository links along with related FS and DS Documents.
    • For OSE, we will have the FS as a wiki page and DS's also as wiki pages.
      • The main project will have a landing page with a blub (A sort of DS in and of itself of the current design of the overall project, R&D efforts and progress) that organizes these documents into a directory of DS pages.
      • Of course, this page for a project links up to an overall current engineering effort page for all machines, and then the individual DS's keep track of their Subversion (version control) links.


Calibration Sunday!\

-Calibrate and adjust the prusa!

-We will attempt our first print today, if all goes well

-Order Recent rev parts I need for D3D (might cannibalize motors from this printer)

-loaded v1.0 of OSE linux... somehow I had V.45?

-Loaded OSE marlin firmware. --Cura seems super limited, no manual control options to calibrate and level the printer. ---OK, making sure I have printer assigned to VM after POR on the printer board I CAN now see a grayed out "control" option in cura- Good. ---Needed to load a print before it would let me touch control thank goodness! ---After tweeking, I have X and Y axis homing properly! Finally! Z endstop is a little sluggish, and Y axis endstop pin mapping is odd, searching for what that might be.

--Tried hooking printer with OSE linux to repiter host, no dice.

http://opensourceecology.org/wiki/D3D_Controller -Here is where the wiring is. yes, it was a bit unexpected. As I'm using a different printer (for now) I may go back to using repiter host and that firmware for this one. Could test filla runout now though.



Fixed endstop issue. First time, I shorted the logic +- by the common and normally open.

Then, I found the actual firmware (at least what I have loaded) Expects a normally open signal so rewired. rammed into the z axis and had to reglue the sensor, so stopped for the night there.


Filament Runout Sensor


researched converting STL to freecad for model I want to use for the runout sensor.


-Resoldered Servo connector for RAMPS board. -Hooked up all wiring to new RAMPS board

-steppers only move in one direction when commanded from repiter host? (oppisate if contact group reversed... don't know why yet.) Dua - this is due to the endstops. Need to home first, it uses that to "know" where you are allowed to move. I was able to get the x moving after messing with this.

-Board not powered by ATX now, maybe somthing fried. can still command and lcd boots when USB attached and motors still move as before. At the start. only used 15A rated input, then just wired 5A and was able to boot it on just 12V... same results with both 12V inputs wired (Old printer directly put 12V line to the heated bed)

Wired up!

-When endstops are hit, system restarts... looking at the wiring diagram http://osoyoo.com/2016/07/03/reprap-3d-printer-circuit-connection-graph/ I have this right - I checked the switch contacts--this switch is 3 wire, maybe I'm (o crap) shorting something on one of the lines?

-Yup, dosnt restart with the 3rd wire clipped... darn... Totally likely burned out the 5V reg from 12V?

Yep... need a new reg - no biggie and a lucky break.


OSE marlin- I don't see this installed in the OSE linux image. The wiki seems to suggest it is in the OPT folder, but did not find it there or in home. Wiki also mentioned checking the Arduino Examples directories, but did not see it there either.

for now, I'll get this printer rolling and learn marlin. Once I have a handle on navigating marlin, I'll load the latest and just adapt the mechanics for my printer; I'll need this one to print the D3D parts anyway.

OSE Documentation and project management


I've also spent time thinking how to organize some of OSE's projects, particularly D3D. There will be a landing page for the current hot topic machines, then for each machine i'll cover the KEY pieces someone wanting to replicate the Latest version would need

Current Projects Landing Page

D3D Landing Page


Received my 3D printer kit from amazon! excited to convert my old printer tonight. I'll test the filament sensor if I can. And hopefully, start printing some components for the 3D3 Printer!

Here is the new RAMPS board for my Air Wolf Prusa

My old printer

I pulled a wire out of one of the servo connectors, so need to resolder that!

So far, Firmware updated and ready to roll.


Fillament Runout sensor setup notes


-Downloaded a new copy of marlin firmware from [1] [Latest 1.1.8] -Identified area in firmware that needs updated before pushing to the RAMPS arduino ROM. You need to uncomment line 827 of configuration.h to enable the feature.

Firmware area to edit. Uncomment line 827 of configuration.h in the firmware root directory


To reiterate from prior logs, you need to use or jump SERVO3_PIN. For other boards you may need to define FIL_RUNOUT_PIN seperately, also in this config file. [You'd jump this if you do not have a filament sensor installed]

TODO: When I have a physical RAMPS provide nice pictures on what I am jumping and where that is on the hardware.


Fillament runout sensor Notes


I've an older Airwolf 3d printer (Prusa I3 style ~2013) with a dated, proprietary control board. It doesn't appear to be directly marlin compatible and earlier attempts to load repetier firmware had failed.. As a RAMPS is cheap and I've been looking to replace for awhile, I'll go ahead and grab one on the amazon so my setup can look like the groups. Once I have this, I can quickly test the endstop concept in software.

I also am thinking how I might render this to our current 3D printer. http://opensourceecology.org/wiki/D3D

Here's what I have:

My old printer

Here's the older control board:

Old closed source control board!‎

because i found it, I'm putting the PVC version here: http://opensourceecology.org/wiki/D3D_PVC_pipe_8in_bed


I'll be making the code change identified in my previous log to OSE linux and finding where the marlin firmware is.


Filament run-out sensor notes 1


some interesting designs. Very simple! I like the first one I see - Printable, and uses just a simple whisker contact switch.



From: [marlin FW site]

"RAMPS-based boards use SERVO3_PIN. For other boards you may need to define FIL_RUNOUT_PIN."


http://marlinfw.org/docs/configuration/configuration.html#filament-runout-sensor -Looks to be easy enough


 #define FIL_RUNOUT_INVERTING false // set to true to invert the logic of the sensor.
 #define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
  1. endif

With this feature, a mechanical or opto endstop switch is used to check for the presence of filament in the feeder (usually the switch is closed when filament is present). If the filament runs out, Marlin will run the specified GCode script (by default “M600”). RAMPS-based boards use SERVO3_PIN. For other boards you may need to define FIL_RUNOUT_PIN.

So, That M600 G-CODE is just


"The M600 command initiates the filament change procedure. The basic procedure will move the print head away from the print, eject the filament, wait for new filament to be inserted and the user to confirm, load and prime the filament, and continue with the print. M600 may be initiated automatically if a filament runout sensor is installed.

Usage M600 [E<pos>] [L<pos>] [X<pos>] [Y<pos>] [Z<pos>] Argument Description [E<pos>] Retract before moving to change position (negative)

[L<pos>] Load/unload length, longer for bowden (negative)

[X<pos>] X position for filament change

[Y<pos>] Y position for filament change

[Z<pos>] Z relative lift for filament change position"

Work Plan

  • Week 1-2 - open source the filament runout sensor - mechanical and electrical design that interfaces with preexisting Marlin Firmware. Clearly document this. Upload code to your log. Entries + Design Spec in Google Presentation embedded in your Log. FreeCAD modifying the existing extruder. Check out the Prusa i2 MK3. Point: just the runout, nothing else at this point - essential rationale is - not losing a long print when the filament runs out. Detects runout, it saves position, moves out of way and reload filamnet.
  • Week 3-6 - Design PVC version - with a 12" print beds fully. Details of exact dimensions - so print bed gets you exactly
  • Week 7 - generate a full BOM
  • Week 8-10 - build 3D printer
  • Week 11-12 - Join Large Extruder Team and replicate.


Found some interesting thermal batteries: https://www.sunamp.com/about/ Crystalline phase change materials for heat storage may be an OSE compatible device - just using salt to store heat would be super efficient and easy to replicate.


  • Jon works at http://www.rovisys.com/ - good experience on automation
  • Knows ROS + Gazebo
  • Worked on steam turbine (4MW) controls at a wastewater plant incinerator
  • Worked in water purification at a wastewater plant
  • Knows hydraulic and other controls
  • Has friends who do 3DP clay extrusion + kiln


CAD test debrief SCORE 85%

Installing Linux 5 minutes

I had used virtual box to load the OSE linux image. This was a very familiar task for me I do often on the job.

Learning FreeCAD (Most Difficult) - 8 hours

- I had issues finding the "planer constraints". when I tried to rotate a part, I was locked in the x,y axis and did not know why; took some searching to find. - Otherwise, I found freecad accomplished many tasks differently than AutoCAD or Sketchup, with which I am most familiar. The use of separate 2d "sketches" and embedding them to faces was similar to certain aspects of AutoDesk.

Documenting your work - 2 hours

-I have used wiki's from time to time. Took a bit to re-learn the "red Text" concept that a new page is made as a link from a prior page. All content is linked.

-Had issues getting vokoscreen working, Resume functions did not work for that application. When I went to shorten my video, kdenlive was limited to 2000% speed increase, keeping my video at over 30 seconds.

File:TakacsOSECADTest TRY1.mp4


Kdenlive dosn't allow speeding a video beyond 2000%. My capture was 30 minutes log, so I'm left with around a minute video. Either I find some creative way to speed up further, cut, or I need to redo the test with a "time limit"

Attached is the video I have so far, which is a minute or so long instead of the required 30 seconds.

Viewing the video, it also did not render properly. Checking this file I made from memory, I appear to of made some errors on the part layout. I'll redo the cube and shoot to do it in under 20 mins.

File:TakacsOSECADTest TRY1.mp4


-Created this log entry and completed recording of the CAD test. This time, I was able to get vokoscreen to behave and successfully stored the video! now to learn how to edit it to the 30 second version and add the music track.

-Here is the YouTube Video of my full speed CAD test


-Here is the file for the CAD test

File:Takacs - PowerCube.fcstd

1/12 to 1/26/2017

-Focused on installing OSE linux to a Virtual Box image to start working in freecad -Worked on learning freecad ~4days / 8 hours Initially, I had issues rotating objects until I learned how to use the planer constraint tool - I was locked to only a certain axis. I also took plenty of time understanding constraints and how to use them

-Created the cube several times. Vokoscreen would not start and stop correctly, so several recordings were lost