<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[SoliForum - 3D Printing Community — Filawinder Filament Guide System v2.0]]></title>
		<link>https://www.soliforum.com/topic/18155/filawinder-filament-guide-system-v20/</link>
		<atom:link href="https://www.soliforum.com/feed/rss/topic/18155/" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in Filawinder Filament Guide System v2.0.]]></description>
		<lastBuildDate>Mon, 29 Jul 2019 18:35:45 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Filawinder Filament Guide System v2.0]]></title>
			<link>https://www.soliforum.com/post/151045/#p151045</link>
			<description><![CDATA[<p>Firmware changes made.</p>]]></description>
			<author><![CDATA[null@example.com (tonycstech)]]></author>
			<pubDate>Mon, 29 Jul 2019 18:35:45 +0000</pubDate>
			<guid>https://www.soliforum.com/post/151045/#p151045</guid>
		</item>
		<item>
			<title><![CDATA[Filawinder Filament Guide System v2.0]]></title>
			<link>https://www.soliforum.com/post/151041/#p151041</link>
			<description><![CDATA[<p>Download files from <a href="https://www.thingiverse.com/thing:3777364">https://www.thingiverse.com/thing:3777364</a><br />I designed my own filament guide system because i was tired of SERVO guiding my filament either too far or not far enough.<br />I was also upset with SERVO to JUMP to a position when L or R buttons are pressed to adjust the position.<br />SERVO idea is great but i wish there was something different so i came up with this idea.<br /><span class="postimg"><img src="http://soliforum.com/i/?iAI3WRn.jpg" alt="http://soliforum.com/i/?iAI3WRn.jpg" /></span></p><p>The way this works is<br />When spool makes full turn, 5V relay will activate motor that moves the guide. Guide move distance depends on how long relay stay active. That time is changed in firmware.<br />Once guide reaches either end of the rail, it will push momentary button placed on either end and reverse its direction.</p><p>Motor turns threaded rod. Nut is placed inside the guide part and rod goes through. Guide moves when threaded rod rotates by a motor.<br />Momentary buttons on each end activate very special relay (bistable). That relay is triggering the two channel relay that does the reversal.</p><br /><p>Material required:<br />Second 12V 1A power supply to drive 2 channel relay and the motor<br />12v 2 channel relay (basic)<br />5v bistable relay (connect terminals and it closes, connect again and it opens)<br />5v relay (basic)<br />Motor<br />2 momentary push buttons<br />8mm diameter threaded rod and a nut, about 200-250mm long (depending on how you want to setup the motor)<br />smooth rod<br />linear motion bearing LM8UU (sits inside the guide)<br />12V 30x30x10 cooling fan (optional) If cooling fan mount is used, consider printing my own drive gear for needed clearance.<br />Screws, wires, connectors, soldering tool if you don&#039;t want to deal with connectors.</p><p>This is relay wiring diagram and the kinds of relay i used.<br /><span class="postimg"><img src="http://soliforum.com/i/?qPoWHij.jpg" alt="http://soliforum.com/i/?qPoWHij.jpg" /></span></p><p>Firmware instructions:<br /></p><div class="codebox"><pre><code>I use Arduino 1.8.9
Required library: QTRSensors by Pololu
Library can be downloaded from Tools/Manage Libraries
=====================================================
=====================================================
Select:
Board/Arduino Nano
Processor/ATMega328p (old bootloader)
COM/What ever number device is connected to
Programmer/ArduinoISP
=====================================================
=====================================================
Open filawinder.ino
Locate:        pinMode(12, INPUT);
Add under:    pinMode(A4, OUTPUT); //added line

Locate:        digitalWrite(12, HIGH);
Add under:    digitalWrite(A4, LOW); //added line
=====================================================
=====================================================
Locate:        bool logOn=false;
Add under:
//added variables for filament guide v2.0
unsigned long startMillis;  //some global variables available anywhere in the program //added line
unsigned long currentMillis; //added line
const unsigned long period = 3000;  //more time will move the guide further
// end of added variables
=====================================================
=====================================================
Locate:
void setup ()
{
Add under:
startMillis = millis();  //initial start time //added line
=====================================================
=====================================================
Locate:
void loop ()
{
Add under:
currentMillis = millis();  //get the current &quot;time&quot; //added line
if (currentMillis - startMillis &gt;= period)  //test whether the period has elapsed
  {
    digitalWrite(A4, LOW);//added line
  }
=====================================================
=====================================================
Locate: guide_angle = (guide_angle + 1.17); }     //Move the guide +1.17 degree for 1.75mm filament
Change to:
 guide_angle = (guide_angle + 1.17);
    digitalWrite(A4, HIGH); //added line
    startMillis = currentMillis;  //IMPORTANT to save the start time of the current LED state. //added line
    }     //Move the guide +1.17 degree for 1.75mm filament
=====================================================
=====================================================</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (tonycstech)]]></author>
			<pubDate>Mon, 29 Jul 2019 06:33:00 +0000</pubDate>
			<guid>https://www.soliforum.com/post/151041/#p151041</guid>
		</item>
	</channel>
</rss>
