Quote This is the method to use if you want to give the gen 6 the ability to control the speed of the dispenser and it will need modification of the gen 6 code Will it be easy to do The DAC is 12 bit (MCP 4921). Here is the link. By using this method, will I be able to print out anything with Repsnapper in the conventional way or not ?by Javaid Butt - RepSnapper
This is what I have found in the "process_g_code" file and as you can see, it is all commented out. And also case 103 hasn't been defined after "//turn extruder off." Case 104 is not commented out. ............ // Now, with E codes, there is no longer any idea of turning the extruder on or off. // (But see valve on/off below.) /* //turn extruder on, forward case 101: ex->setDirectby Javaid Butt - Firmware - mainstream and related support
I will work on that part but in the meantime, let's work out the second method. May be it will prove to be viable. Quote Another option (although probably not the best for this application it would still be an effective and viable solution) is to develop a small protocol to give the gen 6 direct access to the arduino's pins (it's simpler than it sounds), each byte sent via i2c could contain a pinby Javaid Butt - RepSnapper
Is it possible to send a signal when the motor of the extruder starts or something, any signal that can be used to turn the dispenser ON and OFFby Javaid Butt - Firmware - mainstream and related support
Hi, I am working on a 3D printer (Mendel) having a Generation 6 electronics board. The printer has been assembled but I want to incorporate a powder dispenser to the printer and print using it. I have connected Arduino with Gen 6 and can communicate via I2C. Now, the dispenser needs 1 digital and 1 analogue signal to run. The digital signal has (as you all know) two states i.e., 0 and 1. I needby Javaid Butt - Firmware - mainstream and related support
Wouldn't it be simpler if we can send a signal from reprap to arduino whenever reprap starts printing. In the Gen 6 circuit diagram, the EXTR EN pin on the atmega is 43 and then the motor driver enable pin is 26 (IC8 just on the bottom right of atmega). Correct me if I am wrong about the pins. Can we make use of the signal coming here. I checked with multimeter whenever "E" has a value, thereby Javaid Butt - RepSnapper
All right, now this is the code in Arduino. I connected the LED to pin 2 in order to avoid confusion with reprap. #include "Wire.h" //i2c address of the gen 6 int REP_RAP_ADDR = 4; //my address int CP_ADDR = 5; int ledPin = 2; // LED connected to digital pin 2 void setup() { pinMode(ledPin, OUTPUT); // sets the digital pin as output Wire.begin(CP_ADDR); Wire.onReceivby Javaid Butt - RepSnapper
Quote I am guessing that you wanted to say that a digital signal can have one of two possible states, 1 or 0 (on or off) and that the digital signal for pin 4 is to switch the powder dispenser on or off, let me know if this is wrong Absolutely correct. Quote ....when you say "the printer", do you refer only to the machine and it's gen 6 or the entire system including your arduino? I was referrby Javaid Butt - RepSnapper
All right. Here goes: 1- 3D Printer has been assembled and it is communicating with Arduino via I2C. 2- I need to connect a dry powder dispensing device to the printer. It needs 1 digital and 1 analogue signal to run. Therefore, I got an analogue signal using MCP4921 chip implementing SPI protocol. I have a digital output at say pin 4. Both digital and analogue signal are at the Arduino. 3- Digitby Javaid Butt - RepSnapper
I have a 3D printer (Mendel) with Generation 6 electronics board. Here is the main code for that: I have connected an Arduino to the Gen 6 board and started communication via I2C using this routine. This code goes into the Arduino: (replace " " with <> #include "Wire.h" //i2c address of the gen 6 int REP_RAP_ADDR = 4; //my address int CP_ADDR = 5; void receiveEvent(int howMany) {by Javaid Butt - Controllers
I am stuck here big time.... I got the SPI working.... I have an analogue signal now. I want a digital signal as well. I connected a LED to pin 2 of Arduino and declared it as output. Here is the code: (<> in place of "") #include "Wire.h" #include "SPI.h" // necessary library int del=2.5; // used for various delays word outputValue = 0; // a word is a 16-bit number byte data = 0; // andby Javaid Butt - RepSnapper
Hi All, I am working on a 3D printer with slight modifications. I am trying to incorporate a dry powder dispensing device to the printer so that I can print using it instead of the extruder. For this purpose, with the help of I2C, communication is established between Gen 6 and Arduino board. Currently, it only brings the 3 axes to home position. In order to get the device running, I need analoguby Javaid Butt - Controllers
After putting #include "SPI.h" (they really are <>) at the top of the program. I am continuously trying to initialize SPI where you first initialized the I2C........ tempControllerState = TEMPREG_INIT; } } #endif #endif void receiveEvent(int howMany) { } void requestEvent() { Wire.send("start"); } SPI.init () void setup() { disableTimerInterrupt(); setupTimerIby Javaid Butt - RepSnapper
I already did that here. It does not really matter whether I put <> or " " for SPI.h, it works fine. #include #include "SPI.h" // necessary library int del=0; // used for various delays word outputValue = 0; // a word is a 16-bit number byte data = 0; // and a byte is an 8-bit number //i2c address of the gen 6 int REP_RAP_ADDR = 4; //my address int CP_ADDR = 5; void receiveEvent(int hoby Javaid Butt - RepSnapper
I am getting analogue signal from the MCP4921 chip using this code #include "SPI.h" // necessary library int del=0; // used for various delays word outputValue = 0; // a word is a 16-bit number byte data = 0; // and a byte is an 8-bit number void setup() { //set pin(s) to input and output pinMode(10, OUTPUT); SPI.begin(); // wake up the SPI bus. SPI.setBitOrder(MSBFIRST); } void loop() {by Javaid Butt - RepSnapper
SD card.....sounds cool MCP4921 chip is basically a 12 bit DAC so that will do. If I do get some problem, I know where to contact you (on the forum)by Javaid Butt - RepSnapper
My aim is to incorporate a dry power dispensing device on the printer for printing instead of the conventional extruder. It needs 2 signals to work (1 digital and 1 analogue). Digital is available from the Gen 6 board but for analogue, I needed something else. Therefore, I got Arduino. Now I will be using MCP4921 chip to get the analogue signal using the SPI protocol (I am still waiting for the cby Javaid Butt - RepSnapper
Here's a question. At the moment, all Arduino is doing is bringing the 3 axes to their home positions. Let's just say that I want to print something using the Arduino usb rather than the Gen 6 usb connected to my computer. What am I suppose to do for that ??by Javaid Butt - RepSnapper
Generally, with repsnapper once you set the target value, you need to click "Enable" & "Switch Heat On." You can see the current temperature which will keep on updating as the temperature rises. And once you get to the target temperature, you need to turn off the heat. One more precaution, you should have a look whether whatever you are using for temperature measurement is tightly in placeby Javaid Butt - RepSnapper
The best thing to do would be to go to mendel-parts.com You can download repsnapper and also drivers for your windows that will allow you to run it. I hope it works for youby Javaid Butt - RepSnapper
This is line 389 bool cartesian_dda::can_step(int min_pin, int max_pin, long current, long target, bool dir, bool inv) By changing the above line, I will be restricting the movement of all the 3 axes (x, y & z). I want to restrict the motion of x-axis only in the positive direction (away from the opto). Let's just sat when it reaches the opto (negative direction), it can then go in the posby Javaid Butt - RepSnapper
Yeah, everything is working fine now. Thanks a lot for the help. Do you know how can I restrict the motion of the x-axis in the programming as I have to incorporate a new device along with the extruder. Let me know.by Javaid Butt - RepSnapper
One thing that is constantly bothering me is that when I try to compile FiveD code in the arduino 0018 with sanguino add-on, it gives me an error "21: error: vectors.h: No such file or directory." I am getting this error both with mine and your program and the funny thing is that there is a file "vectors.h" in the folder. Do you get any such error when you try to compile?by Javaid Butt - RepSnapper
First of all Daniel, thanks a lot for all the help. And secondly, I bought the Gen 6 as a part of a kit from menel-parts.com What exactly are the changes you are talking about? One more thing, arduino 0018 (which I am using for Mendel) already has an option for Sanguino in the Boards section. I took the FiveD code form mendel-parts as well and I am using it for printing as it is. But it would bby Javaid Butt - RepSnapper
Thanks for the code Daniel. So you are suggesting that I should upload this code to the Gen 6 board (nice & easy) but the Gen 6 board has a 4 pin connection available for I2C and the Arduino Uno has two ports 4 and 5 for I2C. Will this be a problem And also how do I configure the Gen 6 as Master and Arduino as Slave ??by Javaid Butt - RepSnapper
Hi, I have a question about the I2C communication. Can I connect the I2C port of a Gen 6 board with the SPI pins of an Arduino board. ( SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) ) I am new at this stuff and I don't really know whether it will communicate or not. An experienced opinion will be appreciatedby Javaid Butt - Controllers
I know Gen 6 does not use one but I want to control another device with Arduino and use it for printing. In short I will be printing with the new device rather than with the conventional extruder. I just want to know how the SPI protocol works in order to get these two boards talking !!!by Javaid Butt - Controllers