Talk:Induction Furnace
The boys Induction Furnace
File:InductionFurnaceCore.fcstd
Induction Furnace Development Update
We have made significant progress on the parametric Induction Furnace model in FreeCAD. This update covers the high-LOD enhancements, a focused core generator, a real-world Bill of Materials, and step-by-step build instructions.
Model Overview
We have developed two generator scripts to cater to different needs:
Full System Model
- Script: `generators/machines.py`
- Command: `python3 cli.py furnace`
- Description: A complete industrial setup including the structural frame, concrete platform, safety railings, hydraulic tilting mechanism, and full control panel.
- High-LOD Features:
Hydraulics: Hydraulic Power Unit (HPU) with reservoir, motor, valve block, and hoses connecting to the tilt cylinder.
Electronics: Detailed ZVS Driver module with PCB, heatsinks, capacitor bank, and choke inductors mounted on an open-frame rack.
Cooling: Explicit water cooling loop with pump, radiator, fan, tank, and hoses.
Hardware: Hex bolt heads at frame joints and pivot points.
Casting: Double-crucible system (Inner Melting Pot + Outer Chamber) with a pouring spout and steel ramp.
Focused Core Model
- Script: `generators/induction_furnace_core.py`
- Command: `python3 cli.py furnace-core`
- Description: A simplified model focusing strictly on the functional components required for melting.
- Components:
Induction Circuit (ZVS, Bus Bars)
Heat Dissipation System (Radiator, Pump, Tank)
Coil (Copper Tubing)
Melt Chamber (Outer Crucible)
Feeder (Hopper)
Crucible (Inner Pot)
Bill of Materials (BOM)
We have sourced real-world parts for the core components. Prices are estimates.
| Component | Model Specs | Real-World Part | Approx Price |
|---|---|---|---|
| Crucible | 300mm Dia x 400mm H | Graphite Crucible #50-#100 (Industrial) | $150 - $300 |
| Induction Coil | 170mm Radius, 16mm Tube | 5/8" Soft Copper Tubing (50ft Coil) | $80 - $120 |
| Radiator | 150x150mm | 120mm Computer Water Cooling Radiator | $20 - $40 |
| Pump | 12V Centrifugal | 12V Water Cooling Pump (PC/Industrial) | $20 - $50 |
| Hydraulics | 150mm Stroke | Hydraulic Cylinder 150mm Stroke | $50 - $100 |
| Bus Bars | 20x100mm Copper | Copper Bus Bar 1/8" x 1" | $30 - $60 |
Build Instructions
A detailed assembly guide has been generated.
Phase 1: Structural & Core
- Assemble the concrete platform and safety railings.
- Erect the main steel frame and install insulation blocks.
- Insert the Outer Crucible (Chamber) and Inner Crucible (Pot).
Phase 2: Induction & Cooling
- Wind the 5/8" copper tubing to form the coil and mount it over the chamber.
- Install the Radiator, Fan, Pump, and Tank.
- Plumb the cooling loop: Pump -> Radiator -> Coil -> Tank -> Pump.
Phase 3: Electronics & Power
- Mount the Control Panel and Electronics Rack.
- Install the ZVS Driver, Capacitor Bank, and Inductors.
- Connect the ZVS output to the Coil using Copper Bus Plates.
- Connect the Hydraulic Power Unit (HPU) to the tilt cylinder.
Resources
- **Source Code:** `Antigravity_24_Freecad/generators/`
- **Output Models:** `Antigravity_24_Freecad/outputs/InductionFurnace.FCStd`
Arduino Control
- Induction Furnace Controller
* Platform: Arduino Uno / Nano * Description: Monitors safety sensors and controls cooling/power relays. */
// --- Pin Definitions --- const int PIN_VOLT_SENSOR = A0; // Voltage Divider Input
const int PIN_CURR_SENSOR = A1; // ACS712 or Hall Sensor
const int PIN_TEMP_SENSOR = A2; // NTC Thermistor (Coolant)
const int PIN_SAFETY_SW = 2; // Emergency Stop (NC)
const int PIN_RELAY_POWER = 8; // Main Contactor
const int PIN_RELAY_PUMP = 9; // Cooling Pump
const int PIN_FAN_PWM = 10; // Radiator Fan (PWM)
// --- Constants ---
const float TEMP_CRITICAL = 60.0; // Celsius
const float TEMP_IDLE = 30.0; // Celsius
const int FAN_MIN_SPEED = 50; // 0-255
const int FAN_MAX_SPEED = 255;
// --- Globals --- bool safety_ok = false; float coolant_temp = 0.0;
void setup() {
Serial.begin(9600);
pinMode(PIN_SAFETY_SW, INPUT_PULLUP);
pinMode(PIN_RELAY_POWER, OUTPUT);
pinMode(PIN_RELAY_PUMP, OUTPUT);
pinMode(PIN_FAN_PWM, OUTPUT);
// Safe State
digitalWrite(PIN_RELAY_POWER, LOW);
digitalWrite(PIN_RELAY_PUMP, LOW);
analogWrite(PIN_FAN_PWM, 0);
Serial.println("Furnace Controller Initialized");
}
void loop() {
// 1. Read Sensors readSensors(); // 2. Safety Logic checkSafety(); // 3. Control Outputs controlCooling(); controlPower(); // 4. Telemetry sendTelemetry(); delay(100);
}
void readSensors() {
// Simplified Temp Calculation (Steinhart-Hart would be better)
int raw_temp = analogRead(PIN_TEMP_SENSOR);
// Map 0-1023 to approx 0-100C for demo
coolant_temp = map(raw_temp, 0, 1023, 0, 100); // Safety Switch (Active LOW if NC switch is closed)
// If switch opens (pressed), pin goes HIGH (internal pullup? No, usually NC to GND)
// Let's assume NC switch to GND. Closed = LOW = OK. Open = HIGH = STOP.
safety_ok = (digitalRead(PIN_SAFETY_SW) == LOW);
}
void checkSafety() {
if (coolant_temp > TEMP_CRITICAL) {
safety_ok = false;
Serial.println("ERROR: Overheat!");
}
}
void controlCooling() {
// Pump Logic: Always ON if Power is ON, or if Temp > IDLE (Cool down mode)
bool power_is_active = (digitalRead(PIN_RELAY_POWER) == HIGH);
if (power_is_active || coolant_temp > TEMP_IDLE) {
digitalWrite(PIN_RELAY_PUMP, HIGH);
// Fan Logic: Proportional Control
int fan_speed = map(coolant_temp, TEMP_IDLE, TEMP_CRITICAL, FAN_MIN_SPEED, FAN_MAX_SPEED);
fan_speed = constrain(fan_speed, 0, 255);
analogWrite(PIN_FAN_PWM, fan_speed);
} else {
digitalWrite(PIN_RELAY_PUMP, LOW);
analogWrite(PIN_FAN_PWM, 0);
}
}
void controlPower() {
if (safety_ok) {
// In a real system, we might wait for a "Start" command via Serial
// For this safety controller, we just enable the contactor *allowance*.
// The actual ZVS might be triggered separately.
// Here we assume this relay cuts main DC power.
digitalWrite(PIN_RELAY_POWER, HIGH);
} else {
digitalWrite(PIN_RELAY_POWER, LOW);
}
}
void sendTelemetry() {
Serial.print("TEMP:"); Serial.print(coolant_temp);
Serial.print(",SAFETY:"); Serial.print(safety_ok);
Serial.println();
}