itchyTF
Gold $$ Contributor
What wattage power supply are you using? Also, are you using a GinaEric based design?i do 50bmg .the coil is 7 turns and takes 7 or eight seconds.
What wattage power supply are you using? Also, are you using a GinaEric based design?i do 50bmg .the coil is 7 turns and takes 7 or eight seconds.
Hello OliverBonjour !
Patrice,
Here is my code. The code is very basic C, learnt from this forum and some other Arduino forums. I'm a Professional Engineer (Marine and Electrical) and not a programmer. So, it would be very easy to understand the not so sophisticated code.
Some details in my built:
- 3 step motors (two for lifting the case plate and one to move out the annealed case - I use ferrite core).
- 3 relays (Start/Stop the power supply, transfer power between the step motors, and one energizing the ZVS board)
- 2 selector switches (one for Test, One Shot, Auto (cycling), and one for moving up and down the case plate)
That's it
Bonne Chance
`
Code:// Power int PB_OnOff = 34; // Power PB int PwrON = 35; // Power LED // Annealing int PB_Annl = 36; // Annealing PB int PwrAN = 37; // Annealing LED // Mode Sel Switch int PinONE = 30; // Sel Switch - TEST, ONE, AUTO int PinAUTO = 31; // Sel Switch - TEST, ONE, AUTO // Lift Sel Switch int PinDN = 32; // Sel Switch Lift DN int PinUP = 33; // Sel Switch Lift UP // Traffic Lights int PinGRN = 38; // Green int PinYLO = 39; // Yelow // Relays int PwrR1 = 46; // Relay 1 Power Supply int StepR = 47; // Relay 1 Step power select int PwrR2 = 48; // Relay Anneal // Analog reading int PinV = A1; // Volts int PinA = A2; // Amps int PinIR = A3; // IR Sensor // FUNCTIONS Declaration void DropGate(); void SelSwitch(); void StartStop(); void TheLift(boolean Up); void Anneal(); void BillBoard(int N); void AnnSwitch(boolean ON); void TempKeep(); boolean E_Stop(); // == GLOBAL VARABLES == boolean SysIni = true; int Task = 0; int AnnTime = 0; int AnnCount = 0; int SelSw = 0; int Lvl = 0; int T = 0; int Steps = 585*2; //////int Steps = 200; int Level[] = {18, 24, 30}; int LvlN = 3; // .284, .260, 6 mm // Step Motor Library #include <Stepper.h> Stepper Lift(Steps, 8,10,9,11); Stepper Gate(Steps, 8,10,9,11); // Screen Display library #include <LiquidCrystal_I2C.h> #include <Wire.h> #include <EEPROM.h> LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 20, 4); // ============= // === setup === // ============= void setup() { // Serial Port Serial.begin(115200); // Initiate the LCD: lcd.init(); lcd.backlight(); // Initialize Memory Lvl = EEPROM.read(10); // EEPROM.write(10, 10); establishing reference level - one time only // Start, Stop, Annealing pinMode(PB_OnOff,INPUT_PULLUP); digitalWrite(PB_OnOff,HIGH); // Start/Stop Push Button pinMode(PB_Annl, INPUT_PULLUP); digitalWrite(PB_Annl, HIGH); // Annealing Push Button // Power Supply and Annealing - LED, Relays pinMode(PwrON, OUTPUT); digitalWrite(PwrON, LOW); // ON/OFF LED / Relay 1 pinMode(PwrAN, OUTPUT); digitalWrite(PwrAN, LOW); // Annealing LED / Relay 2 // Selector Switches pinMode(PinONE, INPUT); digitalWrite(PinONE, HIGH); // Sel Switch - TEST, ONE, AUTO pinMode(PinAUTO, INPUT); digitalWrite(PinAUTO, HIGH); // Sel Switch - TEST, ONE, AUTO pinMode(PinUP, INPUT_PULLUP); digitalWrite(PinUP, HIGH); // Sel Switch Lift UP pinMode(PinDN, INPUT_PULLUP); digitalWrite(PinDN, HIGH); // Sel Switch Lift UP // Traffic signals pinMode(PinGRN, OUTPUT); digitalWrite(PinGRN, LOW); // Trafic Signal Green pinMode(PinYLO, OUTPUT); digitalWrite(PinYLO, LOW); // Trafic Signal Green // Pwr Relays pinMode(PwrR1, OUTPUT); digitalWrite(PwrR1, HIGH); // On/Off pinMode(PwrR2, OUTPUT); digitalWrite(PwrR2, LOW); // Anneal pinMode(StepR, OUTPUT); digitalWrite(StepR, HIGH); // Step Motor Pwr Select // Step Motors Lift.setSpeed(35); Gate.setSpeed(30); } // ================= // === Main Loop === // ================= void loop() { // Inititializing if (SysIni == true){ SysIni = false; // On Time execution if (digitalRead(PinONE) == HIGH && digitalRead(PinAUTO) == LOW) {SelSw = 1;} // TEST if (digitalRead(PinONE) == LOW && digitalRead(PinAUTO) == LOW) {SelSw = 2;} // ONES if (digitalRead(PinONE) == LOW && digitalRead(PinAUTO) == HIGH){SelSw = 3;} // AUTO int N = 0; for (N = 0; N <= 3; N++){ BillBoard(N); SysIni = false; } } // Volts BillBoard(3); // Task Assignment if (digitalRead(PB_OnOff) == LOW) // Strat Stop {Task = 1;} if (digitalRead(PB_Annl) == LOW) // Annealing {Task = 2;} if (digitalRead(PinUP) == LOW) // Cartridge Lift Up {Task = 3;} if (digitalRead(PinDN) == LOW) // Cartridge Lift Dn {Task = 4;} // Monitor SelSw SelSwitch(); // monotors TEST, ONE, AUTO Sel Sw. // Do the Task switch (Task){ case (1): StartStop() ; Task = 0; delay(250); break; case (2): Anneal() ; Task = 0; delay(250); break; case (3): TheLift(true); Task = 0; delay(10); break; case (4): TheLift(false); Task = 0; delay(10); break; } for (int y = 8; y <= 11; ++y){digitalWrite(y, LOW);} // Deenergize the step motors } // ================ // ==== Anneal ==== // ================ void Anneal(){ int y=0; boolean InList=false; // Anneal Time BillBoard(1); // AUTO, ONESHOT if (SelSw == 1) {AnnTime=6500;} // TEST if (digitalRead(PwrON)==false) // No Power {AnnTime = 0;} // The LED and the Anneal Relay AnnSwitch(true); // Start Annealing int bTime = millis(); int cTime = 0; while (cTime<AnnTime){ cTime = millis()-bTime; T = cTime; delay(100); BillBoard(3); // Show Count Down Time if (E_Stop() == true){return;} // Interrupt Annealing } // Stop Annealing AnnSwitch(false); DropGate(); ++AnnCount; BillBoard(2); // Traffic Signals if (SelSw == 3){ // AUTO digitalWrite(PinGRN, HIGH); cTime = 0; bTime = millis(); while (cTime<2000){ // Green Traffic cTime = millis()-bTime; if (E_Stop() == true){return;} // Stop Annealing } digitalWrite(PinGRN, LOW); cTime = 0; bTime = millis(); BillBoard(2); while (cTime<2000){ // Green Traffic cTime = millis()-bTime; if (E_Stop() == true){return;} // Stop Annealing digitalWrite(PinYLO, HIGH); delay(250); if (E_Stop() == true){return;} // Stop Annealing digitalWrite(PinYLO, LOW); delay(250); } Anneal(); // Anneal Again on AUTO } } // ================= // === BillBoard === // ================= void BillBoard(int N) { // Line 1 - "Tesla Oakley Annealing" // Line 2 - Set Selected caliber or Level // Line 3 - TEST, ONES, AUTO, COUNTS // Line 4 - VOLTS, AMPS, TIMING // Line 1 Variables String sLvl = ""; int sVolt = 0; int sTime = 0; int y = 0; int S = 0; // Line 2 Variables String sMode = ""; boolean inList = false; Lvl = EEPROM.read(10); // Line 3 Variables int V = 0; int A = 0; // Is it on The List for (y = 0; y < LvlN; ++y){ if (Level[y] == Lvl){inList = true; S = y; break;} } lcd.setCursor(0,N); switch (N){ case 0: lcd.print("Tesla Oakley Anneal"); break; case 1: AnnTime = 0; if (inList == true && SelSw != 1){ switch (S){ case 0: sLvl = ".284 "; sVolt = 46; sTime = 3600; break; case 1: sLvl = ".260 "; sVolt = 46; sTime = 4400; break; case 2: sLvl = "6 mm "; sVolt = 40; sTime = 3800; break; } AnnTime = sTime; lcd.print("Set: "); lcd.print(sLvl);lcd.print(sVolt);lcd.print(" V "); lcd.print(AnnTime/1000.0,1); lcd.print("s "); } if (inList == false || SelSw == 1){ lcd.print("Level "); lcd.print(Lvl); lcd.print(" "); lcd.print(AnnTime/1000.0,1); lcd.print("s "); } break; case 2: // Line 2 switch (SelSw){ case 1: sMode = "TEST "; AnnTime = 5000; break; case 2: sMode = "ONES "; if (inList == false){AnnTime = 0;}break; case 3: sMode = "AUTO "; if (inList == false){AnnTime = 0;} break; } lcd.print("Mode: "); lcd.print(sMode); lcd.print("Cnt "); lcd.print(AnnCount); break; case 3: // Line 3 V = 50.0*analogRead(PinV)/1023.0; A = analogRead(PinA)-527; A = - 50*A/1023; if(abs(V)<1){V=0;} if (abs(A)<1) {A=0;} lcd.print("Annl: "); lcd.print(V);lcd.print(" V "); lcd.print(A);lcd.print(" A "); lcd.print(T/1000.0,1);lcd.print("s"); break; } } // =============== // === TheLift === // =============== void TheLift(boolean Up) { int y = 0; // Obey Travel Limits or Pause at Next Cartridge Level while (digitalRead(PinUP) == LOW || digitalRead(PinDN) == LOW){ if (Up == false && Lvl == 10){return;} // Is it in the list? for (y = 0; y < LvlN; ++y){ if(Level[y] == Lvl) {BillBoard(1); delay(1000);break;} } // Spin it digitalWrite(StepR, LOW); if (Up == true) {Lift.step( Steps); ++Lvl;} if (Up == false){Lift.step(-Steps); --Lvl;} EEPROM.write(10, Lvl); BillBoard(1); } digitalWrite(StepR, HIGH); } // ==================== // ==== DROP_GATE ===== // ==================== void DropGate(){ int y; int Move = 227; // 15 degree Gate.setSpeed(30); Lift.setSpeed(35); Gate.step(-Move); delay(1250); Gate.step(Move); ; for(y = 8; y<=11; ++y){digitalWrite(y, LOW);} } // ============= // == E-Stop === // ============= boolean E_Stop() { boolean STOP = false; boolean AnnON = false; if (digitalRead(PwrR2)==HIGH) {AnnON = true;} if (digitalRead(PB_OnOff) == LOW) { AnnSwitch(false); // Stop Annealing if (AnnON == true) {DropGate();} digitalWrite(PinGRN, LOW); digitalWrite(PinYLO, LOW); STOP = true; } return STOP; } //==================== //==== START_STOP ==== //=================== void StartStop(){ if (digitalRead(PwrON)==LOW) {digitalWrite(PwrON, HIGH);digitalWrite(PwrR1,LOW);return;} if (digitalRead(PwrON)==HIGH) {digitalWrite(PwrON, LOW);digitalWrite(PwrR1,HIGH); return;} } //==================== //==== SelSwitch ==== //=================== void SelSwitch(){ int S = 0; if (digitalRead(PinONE) == HIGH && digitalRead(PinAUTO) == LOW) {S = 1;} // TEST if (digitalRead(PinONE) == HIGH && digitalRead(PinAUTO) == HIGH){S = 2;} // ONES if (digitalRead(PinONE) == LOW && digitalRead(PinAUTO) == HIGH) {S = 3;} // AUTO if (digitalRead(PwrON) == HIGH){BillBoard(3);} // Show Volatage all the time if(SelSw == S) {return;} if(SelSw != S) {SelSw = S; AnnCount = 0; BillBoard(1);BillBoard(2);} } // ================= // === AnnSwitch === // ================= void AnnSwitch(boolean ON){ if (ON == true){ digitalWrite(PwrAN, HIGH); digitalWrite(PwrR2, HIGH); // Contactor and LED ON } if (ON == false){ digitalWrite(PwrAN, LOW); digitalWrite(PwrR2, LOW); // Contactor and LED OFF } }
I am starting to get into gathering my parts for the basic version of the GinaErik annealer. I have a basic understanding of electronics and reading wiring diagrams but still may need some assistance with wiring things up.
I would like to be able to do cases from 223 remington up to 300 win mag, I did read that I may need to up my power supply to 750 or 800 watts, is this true or will using the standard 600 watts just take longer?
Since the original board is discontinued, I was wondering what would work.
I did find this board that is similar, will it work?
Amazon.com: KOOBOOK 1Pcs 1000W ZVS Low Voltage Induction Heating Board Module Flyback Driver Heater 12V-48V DIY : Tools & Home Improvement
Amazon.com: KOOBOOK 1Pcs 1000W ZVS Low Voltage Induction Heating Board Module Flyback Driver Heater 12V-48V DIY : Tools & Home Improvementwww.amazon.com
I also found this board that has a fan already on it. Will this work better or is it going passed the KISS?
Amazon.com: Akozon DC12-36V 20A 1000W ZVS Induction Heating Module Heater With Copper Tube : Everything Else
Buy Akozon DC12-36V 20A 1000W ZVS Induction Heating Module Heater With Copper Tube: Everything Else - Amazon.com ✓ FREE DELIVERY possible on eligible purchaseswww.amazon.com
The original 34462 Varistor 130VAC part number is not listed anymore on jamesco. Which one would be suitable?
The original 2202335 Solenoid Tubular-pull 12VDC part is not listed anymore on jamesco. Which one would be suitable?
I plan on using an older gaming desktop tower. It does have a power supply inside but might only be 400 watts. It's from 2008, so kind of old. But yeah, could I use the old PSU for the 12 volt side or would it just be easier to use the PSU from jamesco to keep it simple?
Thank you for taking the time to read and help out.
This is the way to do it.600 W power supply and a simple separate 12 V supply...
Also for the reason of getting a better flow. due to less pressure needed I went with a 4mm OD size only a fraction bigger but a huge increase in flow rate. I dropped one coil also made no difference to the overall working of the unit.Have a question about the coil dimensions. I appreciate what has been said about Hollywood's testing, but have different sizes of copper tube been tested? Reason for asking is that its clear that proper cooling of the coil is important and the Annie Annealer uses what seems a 1/4 tube with good results (5 turns), whilst we are using a 1/8 version (8 turns). I'd prefer 1/4 if possible as it would allow a lot more flow. Anybody has experience/advise to share? Thanks.
Thanks David, much appreciated and as expected regarding the higher flow rate. So your coil has 7 levels instead of 8?Also for the reason of getting a better flow. due to less pressure needed I went with a 4mm OD size only a fraction bigger but a huge increase in flow rate. I dropped one coil also made no difference to the overall working of the unit.
Hi, thanks for your response. I noted on some videos and some comments regarding the limited flow through the coils. We have here 3mm/2mm pipe or 4mm/3mm (OD/ID) or even 5mm/3mm copper piping available so our choice would not necessarily go directly to 1/4" tubing (6.2 mm). Just wondering what would be optimal for long term operation, but guess you answered that hereHello ReneZ
I'm wondering what you mean by "proper cooling". I'm not trying to give you a hard time.
In the 5 + years I've been using my GinaEric annealer I have never gotten the 1/8" coil ""hot" . warm, yes.
Another factor for the average builder was, 1/8" tubing was easier to form a 1 1/8th inch ID coil. With 1/4" tubing, without a special coil forming tool it was very difficult to wind that size coil without crimping the tubing.
I use a 1000W ZVS board powered by a 36V 27A power supply. Usually draws just under 20A and anneals my 300 WBY cases in under 3 secondsNot sure I’m up to re-read 131 pages. 36v vs 48v - which works better?
I have just decided to build one of these but do I need a Sestos Digital Quartic Timer Relay Switch 100-240V B3S, as I am using the same power supply as in the parts list, and not using no AC voltage, also is there an alternative Quartic Timer Relay Switch, so my guess is I don't need to use the 2 pole 30 amp contractor 120 volt either, any help would be much appreciatedModified my pre GinaEric annealer and added a flame sensor mentioned by @VenatusDominus. The one he used wasn’t available when I ordered mine. This one also has a pot but just has an open collector output. I used Loc-Line to position it. Thought it would be an easy way to get X, Y & Z adjustments.
View attachment 1294184
I added a switch to select between time (original method using push wheel switches) and flame sensor. I designed an enclosure for the sensor and had a friend 3D print me a few. Still need to glue the cover on.