Results 211 to 220 of 476
Thread: Itty Bitty Double Extruder
-
01-19-2015, 08:58 AM #211
- Join Date
- Sep 2014
- Posts
- 9
Care to share that toggle code? I am not sure where to start with writing that, but it strikes me that it would be incredibly useful!
-
01-19-2015, 10:46 AM #212
- Join Date
- Nov 2014
- Location
- FL
- Posts
- 9
Thanks Roxy. Also, when powering the servo from the AUX-2 pins, do I need the signal wire on D40 and the pos/neg wires plugged in on the two top pins? The AUX-2 schematics look a bit more convoluted when determining pins than the rest of the board.
-
01-19-2015, 11:20 AM #213
Its hardly any code. I'll look at my older code base archives and see if I can hunt it down. It also was a little bit smart. There are certain pins that are deemed to be 'Sensitive'. It did not mess with any of those. And in fact, there was no reason to mess with them because those have important stuff connected up to them. You aren't going to be connecting new stuff to them.
Update: Here it is. I don't remember exactly what was going on. The posted code includes the original M42 command and then 3 more versions done by me to scan. You probably want to start with the M43 to get a rough idea where your pin is located (numbered). And then maybe edit the M44 and M45 to limit the search across less pins.
If you connect up your volt meter to a pin and let this run, it should tell you where it is and when you see something happen on the volt meter you can reset the board and start over using the M42 command to verify things. You would use the pin numbers you learned from the scan to limit your search and locate the pin.
Code:case 42: //M42 -Change pin status via gcode if (code_seen('S')) { int pin_status = code_value(); int pin_number = LED_PIN; if (code_seen('P') && pin_status >= 0 && pin_status <= 255) pin_number = code_value(); for(int8_t i = 0; i < (int8_t)sizeof(sensitive_pins); i++) { if (sensitive_pins[i] == pin_number) { pin_number = -1; break; } } #if defined(FAN_PIN) && FAN_PIN > -1 if (pin_number == FAN_PIN) fanSpeed = pin_status; #endif if (pin_number > -1) { pinMode(pin_number, OUTPUT); digitalWrite(pin_number, pin_status); analogWrite(pin_number, pin_status); } } break; case 43: //M43 - Roxy hack to look for GPIO pins int pin_number; int i; SERIAL_PROTOCOLPGM("M43 - Roxy GPIO Hackery:\n"); SERIAL_PROTOCOLPGM("HIGH/LOW: "); SERIAL_PROTOCOL(HIGH); SERIAL_PROTOCOLPGM("/ "); SERIAL_PROTOCOL(LOW); SERIAL_PROTOCOLPGM("\n"); for( pin_number=0; pin_number<55; pin_number++) { SERIAL_PROTOCOLPGM("Pin "); SERIAL_PROTOCOL(pin_number); for(i = 0; i < sizeof(sensitive_pins); i++) { if (sensitive_pins[i] == pin_number) { SERIAL_PROTOCOLPGM(" Sensitive!\n"); goto NEXT_GPIO; } } pinMode(pin_number, OUTPUT); delay(50); digitalWrite(pin_number, LOW); delay(500); digitalWrite(pin_number, HIGH); delay(1000); digitalWrite(pin_number, LOW); delay(500); // analogWrite(pin_number, HIGH); pinMode(pin_number, INPUT); delay(50); SERIAL_PROTOCOLPGM("\n"); NEXT_GPIO: ; } SERIAL_PROTOCOLPGM("Done...\n\n"); break; case 44: //M44 - Roxy hack to look at GPIO pin values for input value change int pin_being_examined; int ii, iii, jj; pin_being_examined=11; iii=-1; SERIAL_PROTOCOLPGM("M44 - Roxy GPIO Hackery:\n"); pinMode(pin_being_examined, INPUT_PULLUP); delay(50); for( jj=0; jj<10; jj++) { do { ii = digitalRead(pin_being_examined); } while(ii==iii) ; iii = ii; SERIAL_PROTOCOLPGM("Pin "); SERIAL_PROTOCOL(pin_being_examined); SERIAL_PROTOCOLPGM(" : "); SERIAL_PROTOCOL(ii); SERIAL_PROTOCOLPGM("\n"); } SERIAL_PROTOCOLPGM("Done...\n\n"); break; case 45: //M45 - Roxy hack to look for GPIO pins SERIAL_PROTOCOLPGM("M45 - Roxy GPIO Hackery:\n"); SERIAL_PROTOCOLPGM("HIGH/LOW: "); SERIAL_PROTOCOL(HIGH); SERIAL_PROTOCOLPGM("/ "); SERIAL_PROTOCOL(LOW); SERIAL_PROTOCOLPGM("\n"); for( pin_number=28; pin_number<=31; pin_number++) { SERIAL_PROTOCOLPGM("Pin "); SERIAL_PROTOCOL(pin_number); for(i = 0; i < sizeof(sensitive_pins); i++) { if (sensitive_pins[i] == pin_number) { SERIAL_PROTOCOLPGM(" Sensitive!\n"); goto NEXT_GPIOx; } } pinMode(pin_number, OUTPUT); delay(50); digitalWrite(pin_number, LOW); delay(500); digitalWrite(pin_number, HIGH); delay(1000); digitalWrite(pin_number, LOW); delay(500); // analogWrite(pin_number, HIGH); pinMode(pin_number, INPUT); delay(50); SERIAL_PROTOCOLPGM("\n"); NEXT_GPIOx: ; } SERIAL_PROTOCOLPGM("Done...\n\n"); break;
Last edited by Roxy; 01-19-2015 at 11:42 AM.
-
01-19-2015, 06:59 PM #214
I didn't have any trouble. I bought two hot ends directly from RepRapDiscount, and they were exactly the same length once I disassembled them, cleaned them out, heated and tightened them.
I would disassemble the blocks and nozzles and look for any flashing or other imperfections in the metal that might be preventing them from seating properly. Then heat up the block to your printing temperature, tighten the nozzle first and then tighten the barrel into the block with the wrench.
Note that you can adjust the heights a little bit by racking the whole X carriage left and right. Just turn the Z screws by hand to tip the axis and level the nozzles. As long as you're using auto-bed-leveling, this will work fine.
I am in the process of getting a web site set up with detailed assembly and calibration instructions. I developed a couple of calibration objects to make it easier. More on that soon...
-
01-19-2015, 07:17 PM #215
I developed a system for my "rod" version Makerfarm 8" that allows me to perfectly level the two Hexagon heads. I've posted some photos. There are 4 views per page showing different angles. The top image shows it twisted to the left, the center 4 show it roughly centered and the bottom 4 images show it twisted to the right. It's a printed back plate that replaces the back plate from the IttyBitty. It attaches directly to the existing wood on the rods. I had to drill a couple of holes and just put bolts through.
Maybe you could do the same kind of thing. It's super easy to use and works perfectly for me.
Bambu P1S/AMS
NVision4D http://nvision4d.com
-
01-19-2015, 07:34 PM #216
Rob thats a great solution I also have a removable back plate screwed to a printed sled I never thought about slotting for adjustment. My adjustment is on the hot end head sink with threaded rod and a jamb nut. Yours seams more friendly.
-
01-20-2015, 02:16 AM #217
The Itty Bitty Double Extruder now has a new home on the web:
Detailed assembly and calibration instructions are also now available. The calibration system uses a new set of calibration objects and an on-line calculator to hopefully make the process a little easier:
Assembly instructions: http://clough42.com/go/itty-bitty-do...ruder-assembly
Calibration instructions: http://clough42.com/go/double-extruder-calibration
Le me know if you have any questions. This is a brand new site, and things might be a little rough around the edges.
-
01-20-2015, 02:37 AM #218
The fan extender board only uses D4 and D5, even though it also covers D6 and D11, where the servo would normally be connected. If you solder a 3-pin header to the back of the fan extender board, to the top of the D11 pins, you can still connect the servo there, and you don't have to do anything special in firmware.
The connections you show for the cooling fans are correct. The print fan is on D4 and the hotend fan is on D5.
-
01-20-2015, 09:39 AM #219
- Join Date
- Dec 2014
- Posts
- 6
Nice site ... I have ordered all the parts, motors, hot ends, etc. to build this, should have everything in a week or two. Thanks for your efforts in putting all this together, including the hardware kit on eBay.
-
01-20-2015, 04:33 PM #220
Ender 3v2 poor printing quality
10-28-2024, 09:08 AM in Tips, Tricks and Tech Help