• This Forum is for adults 18 years of age or over. By continuing to use this Forum you are confirming that you are 18 or older. No content shall be viewed by any person under 18 in California.

Induction brass annealer redux

my annealer follows as seen on another forum in its a 1000 wat board with a 36v power supply.the coil looks like the one gina posted last week with 7 or 8 turns,4 inside with 3 outside.i forget the wattage of the p/s.the coil size is enough for the bmg case neck to fit into.its the only case i annea;l.except for the vulcan case.
 
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?

I also found this board that has a fan already on it. Will this work better or is it going passed the KISS?

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.
 
Bonjour !

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
      }
   }
Hello Oliver
I had no time since a long time to return to this forum. I don't remember and I said you THANK YOU.
I apologize if I forgot it, big big thanks for your help.
If one day I have time I'll try to give an experiment with arduino.
Have a good day
Regards
Patrice
 
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?

I also found this board that has a fan already on it. Will this work better or is it going passed the KISS?

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.

It is possible to use the 600 W power supply. I doubt it would take any longer than a 1000W power supply the factor that determines the power draw is the coil construction and the distance from the coil to the case. Called the coupling. I would buy a simple seperate 12 V supply rather than try and use a computer supply unless you are very familure with them already. They are not simply turn them on and they are ready to go.
 
600 W power supply and a simple separate 12 V supply...
This is the way to do it.

Question: Is it OK, when controlling SSR with Arduino board, to have common ground for both power supplies? I mean damaging the SSR. Common ground is necessary for a voltage sensor.

Thanks
 
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.
 
Last edited:
Hello 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 used 1/4" tubing and wound it into a 5 turn coil (3 inner and 2 outer). To prevent the crimping/bending issue, I packed the tube with sugar while still straight, then wound it. After that, I used a tubing cutter to cut it to the correct length of lead in/out and shook out what sugar I could, then let it soak overnight in water to dissolve/loosen what remained, then blew air through it with a compressor.

The part I didn't mention, was that I put some of that fiberglass sleeve on the tubing before bending. The sleeve was damaged in the process, but that wasn't important, because its only purpose was to provide spacing between the coils and when it was done I just picked the shredded sleeve material out of the coil and was left with a tight coil that didn't contact itself anywhere.

I preferred the 1/4" tubing because it allowed for an easier connection to the coolant tubing without having to step up the copper tube to fit the plastic ID. Its also more robust and doesn't get compressed or misaligned into shorting itself out with anything other than a relatively major bump or bang into the coil.
 
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.
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.
 
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.
Thanks David, much appreciated and as expected regarding the higher flow rate. So your coil has 7 levels instead of 8?
 
Hello 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.
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 here :-). Thanks, Rene
 
I'm about ready to pull (what's left of) my hair out! I built my annealer (not a GinaEric) about 4 or 5 years ago and I wanted to build one for a friend using some of my methods and GinaEric's. Seems like a lot of the parts I used and what Gina listed on page 1 is not available anymore. I've spent 2 days online looking for replacements and I'm nowhere done yet. I used a heavy walled copper tube internal to the annealer which I soldered the coil to. It was 1/4" OD and 1/8" (or .120") ID. I don't remember where I got it and I can't find it ANYWHERE! I got it straight, not in a coil. Way too stiff to coil. Anybody have any clue where I can find this stuff??

A friend borrowed mine and did a video in post #139. you can see where/how the tube is used. (Please ignore the size of the water tank. I had no idea how hot the water was going to get so I went overboard. Something I frequently do. :))
 
Scanning through the pages I've seen that some folks have used a photo sensor with an arduino - this is al little more complex than I'm looking to do. Anyone use a basic proximity sensor to trigger the timer?? I was looking at the timer schematic and I'm not sure if it would be possible with the original timer listed.
 
Can anybody recommend a 36v, 1000w supply? I'm reluctant to go with the super cheap ones. I think I saw one for $96 but the Mean Well UHP series costs $260. What to do..........
 
Modified 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.
0EE09087-013B-4065-837C-E31A5A062CB6.jpeg
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.
 
Modified 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.
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 appreciated
 

Upgrades & Donations

This Forum's expenses are primarily paid by member contributions. You can upgrade your Forum membership in seconds. Gold and Silver members get unlimited FREE classifieds for one year. Gold members can upload custom avatars.


Click Upgrade Membership Button ABOVE to get Gold or Silver Status.

You can also donate any amount, large or small, with the button below. Include your Forum Name in the PayPal Notes field.


To DONATE by CHECK, or make a recurring donation, CLICK HERE to learn how.

Forum statistics

Threads
165,794
Messages
2,203,515
Members
79,128
Latest member
Dgel
Back
Top