Go Back   RCCrawler Forums > RCCrawler General Tech > Tools, and Procedures
Loading

Notices

Thread: Shop Holmes

Reply
 
LinkBack Thread Tools Display Modes
Old 12-27-2012, 10:14 AM   #101
I wanna be Dave
 
Join Date: Nov 2010
Location: 07456 N. NJ USofA
Posts: 8,314
Default Re: Shop Holmes

Quote:
Originally Posted by JohnRobHolmes View Post
Some shop updates.

Next up is the resistance brazer. It needs a solid state controller so we aren't installing new contactors every few months. The primary transformer controller I am using is not intended to be switched off under load . A SSR is getting installed into it and tied into the control board. Then we will reassess the kickback voltage and begin work on a new braze head controller.
Many years ago I switched out medium/large contactors (used for ceramic heater bands on wire & cable jacketing extruders) with mercury contactors.
Partly due to noise, partly burning contacts.

We had 5 extruders with anywhere from 2 to 8 temp zones on them.

They worked well, were quiet, didn't "bang" the electrical panel everything was mounted to. These were controlled/driven by Barber-Coleman "self tuning" digital temp controllers (IIRC, they were AT-580's??). Last I used them was ~19 years ago, so there may be better stuff today.
Charlie-III is offline   Reply With Quote
Sponsored Links
Old 12-27-2012, 11:15 AM   #102
owner, Holmes Hobbies LLC
 
JohnRobHolmes's Avatar
 
Join Date: Nov 2004
Location: Volt up! Gear down!
Posts: 20,290
Default Re: Shop Holmes

A mercury contactor would be a good choice for the power stage. The two reasons I chose SSR instead was cost factor and precision. Cost is over twice as much. The make and release time is substantial compared the work time, so the very short duration of "ON" is almost too fast for the MC to function! It could create some issues where the heat has to be tuned to the minimum ON time, and there is less precision with heat control as compared with ON time. The MC is a great choice for capacitive discharge machines though.


Hacked out a little code in the arduino compiler format to mimic ladder logic controls on the brazing machine. I will probably rewrite it with more functions to keep the loop simple and ensure the function completes. Right now there is some ambiguity that would cause it to default into the HOME function when travelling between limit switches, but the tool head reciprocates with rotational input so it would naturally hit Hlimit or Llimit. I don't like relying on the reciprocal motion to define machine state though.

For those that like to read code, feel free to comment. I still need to store the footpedal input into a variable so there is no problems with holding down too long or too short. I want to build the program synchronous so it has very specific behavior depending on the states of input. It has been about four years since I built any logic so my brain is rusty on the little tricks.

Code:
int footswitchPin = 1;                 // footswitch  connected to digital pin 1
int HlimitPin = 2;			// high limit switch NO connected to pin 2
int LlimitPin = 3;			// low limit switch NO connected to pin 3
int motorPin = 4;                       // motor control output connected to pin 4 
int powerPin = 5;                       // transformer control output connected to pin 5
int resetPin = 6;                          // reset button connected to pin 6
int motorvar = 0;                       // variable for storage of motor state

//digitalRead shortcuts
int footswitch = digitalRead(footswitchPin);
int Hlimit = digitalRead(HlimitPin);
int Llimit = digitalRead(LlimitPin);
int reset = digitalRead(resetPin);
int power = digitalRead(powerPin);


// set variable functions
void setup()
{
  pinMode(footswitchPin, INPUT);      // sets footswitchPin as input
  pinMode(HlimitPin, INPUT);          // sets HlimitPin as input 
  pinMode(LlimitPin, INPUT);          // sets LlimitPin as input
  pinMode(resetPin, INPUT);           // sets reset as input
  
  pinMode(motorPin, OUTPUT);          // sets motorPin as output
  pinMode(powerPin, OUTPUT);          // sets powerPin as output
  
}


                                                                          // home position function
int home()
{
if (Hlimit != HIGH) 
{
  digitalWrite (motorPin, HIGH);
}
else 
{
  digitalWrite (motorPin, LOW);
}
}


//main loop
void loop()
{
                                                                            // footswitch OFF
if (reset == HIGH)
{
  digitalWrite (powerPin, LOW);
  delay (250);
  home();
}
if (power == LOW && footswitch == LOW && Llimit == LOW && Hlimit == LOW)
{
   home();
}
if (footswitch == LOW && Hlimit == HIGH)
{
  digitalWrite (motorPin, LOW);
  digitalWrite (powerPin, LOW);
}
if (footswitch == LOW && Llimit == HIGH)
{
  digitalWrite (powerPin, LOW);
  digitalWrite (motorPin, LOW);
}

                                                                                //footswitch ON
if (footswitch == HIGH && Hlimit == HIGH)
{
  digitalWrite (motorPin, HIGH);
}
if (footswitch == HIGH && Llimit == HIGH)
{
  digitalWrite (powerPin, HIGH); 
  delay (1000);
  digitalWrite (powerPin, LOW); 
  home();
}
}
JohnRobHolmes is offline   Reply With Quote
Old 12-28-2012, 09:38 AM   #103
owner, Holmes Hobbies LLC
 
JohnRobHolmes's Avatar
 
Join Date: Nov 2004
Location: Volt up! Gear down!
Posts: 20,290
Default Re: Shop Holmes

Coders abound in here

Changed it up so there are two functions, and IF statements that call to the functions. There are also IF functions as safety nets to ensure proper outputs at all times. All time delays are just thrown in for placement, nothing has been timed and tested yet. Im still thinking it will kick back into high() mode before routines are finished, so some refinement is needed.


Code:
int footswitchPin = 1;                 // footswitch  connected to digital pin 1
int HlimitPin = 2;			// high limit switch NO connected to pin 2
int LlimitPin = 3;			// low limit switch NO connected to pin 3
int motorPin = 4;                       // motor control output connected to pin 4 
int powerPin = 5;                       // transformer control output connected to pin 5
int resetPin = 6;                          // reset button connected to pin 6
int motorvar = 0;                       // variable for storage of motor state

//digitalRead shortcuts
int footswitch = digitalRead(footswitchPin);
int Hlimit = digitalRead(HlimitPin);
int Llimit = digitalRead(LlimitPin);
int reset = digitalRead(resetPin);
int power = digitalRead(powerPin);


// set variable functions
void setup()
{
  pinMode(footswitchPin, INPUT);      // sets footswitchPin as input
  pinMode(HlimitPin, INPUT);          // sets HlimitPin as input 
  pinMode(LlimitPin, INPUT);          // sets LlimitPin as input
  pinMode(resetPin, INPUT);           // sets reset as input
  
  pinMode(motorPin, OUTPUT);          // sets motorPin as output
  pinMode(powerPin, OUTPUT);          // sets powerPin as output
  
}


                                       // home position function
int high()
{
if (Hlimit != HIGH) 
{
  digitalWrite (motorPin, HIGH);
}
else 
{
  digitalWrite (motorPin, LOW);
}
}
                                      // low position function 
int low()
{
  if (Llimit != HIGH)
{
  digitalWrite (motorPin, HIGH);
}
else
{
  digitalWrite (motorPin, LOW);
  digitalWrite (powerPin, HIGH);
  delay (250);
  digitalWrite (powerPin, LOW);
  delay (100);
  high ();
}
}



                                      //main loop
void loop()
{
                                     // footswitch OFF
if (reset == HIGH)
{
  digitalWrite (powerPin, LOW);
  delay (250);
  high();
}
if (power == LOW && footswitch == LOW && Llimit == LOW && Hlimit == LOW)
{
   high();
}
if (footswitch == LOW && Hlimit == HIGH)
{
  digitalWrite (motorPin, LOW);
  digitalWrite (powerPin, LOW);
}
if (footswitch == LOW && Llimit == HIGH)
{
  digitalWrite (powerPin, LOW);
  digitalWrite (motorPin, LOW);
}

                                             //footswitch ON
if (footswitch == HIGH && Hlimit == HIGH)
{
  low();
}
if (footswitch == HIGH && Llimit == HIGH)
{
  low();
}
}

Last edited by JohnRobHolmes; 12-28-2012 at 09:47 AM.
JohnRobHolmes is offline   Reply With Quote
Old 12-29-2012, 10:26 PM   #104
owner, Holmes Hobbies LLC
 
JohnRobHolmes's Avatar
 
Join Date: Nov 2004
Location: Volt up! Gear down!
Posts: 20,290
Default Re: Shop Holmes

Whacked away at coding a bit more so we can get the machine running tip top ASAP. I should have all machine states covered now, and with while statements it can't get out of the function until a parameter is true. Notice the reset button is thrown into low, high, and powerloop functions to ensure it is always available to jam the machine back into high state.

Quote:
// home position function
void high()
{
while (Hlimit != HIGH || reset != HIGH)
{
digitalWrite (motorPin, HIGH);
}
}
// low position function
void low()
{
while (Llimit != HIGH || reset != HIGH)
{
digitalWrite (motorPin, HIGH);
}
}

void powerloop() //power loop function
{
while (reset != HIGH)
{
digitalWrite (powerPin, HIGH);
delay (250);
digitalWrite (powerPin, LOW);
delay (100);
high ();
}
}


//main loop
void loop()
{
// footswitch OFF states
if (reset == HIGH)
{
digitalWrite (powerPin, LOW);
delay (250);
high();
}

if (power == LOW && footswitch == LOW && Llimit == LOW && Hlimit == LOW)
{
high();
}

if (footswitch == LOW && Hlimit == HIGH)
{
digitalWrite (motorPin, LOW);
digitalWrite (powerPin, LOW);
}
if (footswitch == LOW && Llimit == HIGH)
{
digitalWrite (powerPin, LOW);
digitalWrite (motorPin, LOW);
}

//footswitch ON states
if (footswitch == HIGH && Hlimit == HIGH)
{
low();
}

if (footswitch == HIGH && Llimit == HIGH)
{
powerloop();
}
}


Last little bits are to debounce the inputs with software and possibly decouple inputs with opto isolation. I'll either write a debounce routine that stores the input state and counts down 50ms of unchanged state to execute, or make an array and trigger "true" when it sums greater than X.


All this late night learning just so I can avoid using PLC boxes
JohnRobHolmes is offline   Reply With Quote
Old 12-30-2012, 10:44 AM   #105
owner, Holmes Hobbies LLC
 
JohnRobHolmes's Avatar
 
Join Date: Nov 2004
Location: Volt up! Gear down!
Posts: 20,290
Default Re: Shop Holmes

Since my wife is working this weekend I work too. Hacked out the debouncer code this morning.


I didn't want to use the debounce header available for the aruduino compiler, as I didn't understand the concept fully. I also dislike the idea of using delays for debouncing. So I made my own debouncer that waits for MAX number of consistent inputs before changing state of the switch. It is set to three right now, unlikely to be triggered by noise. If I have issues with with electrical interference I will install an RC filter on the switches too. In the future it could be easier to use an array to store the information, I'll look into that down the road.


Seems ready to go now, I should have the hardware to complete the project within a few days. I'm considering rebuilding the machine head at the same time, but it may have to wait until a few other projects are done.

Code:
int footswitchPin = 1;          // footswitch  connected to digital pin 1
int HlimitPin = 2;		// high limit switch NO connected to pin 2
int LlimitPin = 3;		// low limit switch NO connected to pin 3
int motorPin = 4;               // motor control output connected to pin 4 
int powerPin = 5;               // transformer control output connected to pin 5
int resetPin = 6;               // reset button connected to pin 6

int FS=0;                       // footswitch debouncing storage integer
int HL=0;                       // Highlimit switch debouncing storage integer
int LL=0;                       // Lowlimit switch debouncing storage integer
int RS=0;                       // Reset switch debouncing storage integer

#define MAX 3                        // debounce max number
bool footswitchD;                    // footswitch debounced state
bool HlimitD;                        // high limit switch debounced state
bool LlimitD;                        // low limit switch debounced state
bool resetD;                         // reset switch debounced state[/b]


//digitalRead shortcuts
int footswitch = digitalRead(footswitchD);
int Hlimit = digitalRead(HlimitD);
int Llimit = digitalRead(LlimitD);
int reset = digitalRead(resetD);
int power = digitalRead(powerPin);


// set variable functions
  pinMode(footswitchPin, INPUT);      // sets footswitchPin as input
  pinMode(HlimitPin, INPUT);          // sets HlimitPin as input 
  pinMode(LlimitPin, INPUT);          // sets LlimitPin as input
  pinMode(resetPin, INPUT);           // sets reset as input
  
  pinMode(motorPin, OUTPUT);          // sets motorPin as output
  pinMode(powerPin, OUTPUT);          // sets powerPin as output
  


 //Debounce code
if (FS <=0){FS=0;}
if (FS >= MAX){FS= MAX;}
if (footswitchPin = 0){--FS;}  
else {++FS;}
if (FS=0){digitalWrite (footswitchD,LOW);}
if (FS=MAX){digitalWrite (footswitchD, HIGH);}

if (HL <=0){HL=0;}
if (HL >= MAX){HL= MAX;}
if (HlimitPin = 0){--HL;}  
else {++HL;}
if (HL=0){digitalWrite (HlimitD,LOW);}
if (HL=MAX){digitalWrite (HlimitD, HIGH);}

if (LL <=0){LL=0;}
if (LL >= MAX){LL= MAX;}
if (footswitchPin = 0){--LL;}  
else {++LL;}
if (LL=0){digitalWrite (LlimitD,LOW);}
if (LL=MAX){digitalWrite (LlimitD, HIGH);}

if (RS <=0){RS=0;}
if (RS >= MAX){RS= MAX;}
if (resetPin = 0){--RS;}  
else {++RS;}
if (RS=0){digitalWrite (resetD,LOW);}
if (RS=MAX){digitalWrite (resetD, HIGH);}
JohnRobHolmes is offline   Reply With Quote
Old 12-30-2012, 10:46 AM   #106
owner, Holmes Hobbies LLC
 
JohnRobHolmes's Avatar
 
Join Date: Nov 2004
Location: Volt up! Gear down!
Posts: 20,290
Default Re: Shop Holmes

Side note, this is basically the same language (C++) used to program motor controller ICs. Plenty of code already out there for very fancy motor controllers exist, they would just need some hacking to adapt for our needs. You now know my two year goal ;)
JohnRobHolmes is offline   Reply With Quote
Old 06-10-2013, 04:07 PM   #107
owner, Holmes Hobbies LLC
 
JohnRobHolmes's Avatar
 
Join Date: Nov 2004
Location: Volt up! Gear down!
Posts: 20,290
Default Re: Shop Holmes

We have been plugging away at the shop here, took over the next bay in the building and have been setting up as fast as possible. We now have 1000sq feet dedicated to HH, with another 600sq feet of flex space between myself and Voltriders. Right now we are finishing up a new blast cabinet (6x4x4 foot!) and just got some fresh power routed. We have a 50a 110v section and a 50a 220v line with dedicated 20a fuse for the compressor. We made it big enough to blast bike frames, but I built it for motor production.


As you can see, I have moved most of my extra bikes into the third bay for short term storage. We had a big water damage problem at my house and I had to clear room while the carpets got ripped out. I'm under 20 bikes now, I swear!


Another little project is my adjustable power supply. It runs on 20 to 29v from my main power supply, and we can adjust the output from .1v to 29v via the gold trim knob. It also features a heads up display with amp meter for very precise and quick measurements. I can power my chargers, break in motors, power other power supplies, and have a generally useful tool that is compact and easy to use.


Next up, we are building a CNC laser etcher. Already have the parts and have built a hand-held torch. Now I just need to machine the heatsink for the laser emitter.
Attached Images
    
JohnRobHolmes is offline   Reply With Quote
Old 06-10-2013, 04:14 PM   #108
I wanna be Dave
 
Join Date: Jun 2008
Location: Sin City
Posts: 3,628
Default Re: Shop Holmes

Looks like your moving right along....

But I dont think I believe the 20 bikes.... are you counting pieces and unassembled also?
doublej is offline   Reply With Quote
Old 06-10-2013, 08:25 PM   #109
Rock Crawler
 
Join Date: Oct 2012
Location: Casper
Posts: 620
Default Re: Shop Holmes

i want my next set of cans laser etched!
KJ10 is offline   Reply With Quote
Old 08-05-2013, 01:02 PM   #110
owner, Holmes Hobbies LLC
 
JohnRobHolmes's Avatar
 
Join Date: Nov 2004
Location: Volt up! Gear down!
Posts: 20,290
Default Re: Shop Holmes

Quote:
Originally Posted by doublej View Post
Looks like your moving right along....

But I dont think I believe the 20 bikes.... are you counting pieces and unassembled also?
If counted parts it would be about 30 bikes



Got a hitachi miter saw for the shop this weekend and built a baby gate from cedar and deck spindles. Matches the house and was about the same price as buying a crappy pine gate, including labor. I'm typically bad at woodworking, but this was easy so I couldn't screw up! Thinking about trying my hand at woodworking as a hobby when my son is older.
Attached Images
 
JohnRobHolmes is offline   Reply With Quote
Old 08-05-2013, 03:57 PM   #111
PapaGriz Yo
 
Grizzly4x4's Avatar
 
Join Date: Apr 2004
Location: In the garage building the wife a crawler
Posts: 13,137
Default Re: Shop Holmes

Looks good. Much better than I can do with wood.
Grizzly4x4 is offline   Reply With Quote
Old 08-05-2013, 08:02 PM   #112
Rock Crawler
 
Join Date: Oct 2012
Location: Casper
Posts: 620
Default Re: Shop Holmes

I know a few people that could use that gate!!
KJ10 is offline   Reply With Quote
Old 08-08-2013, 06:56 AM   #113
I wanna be Dave
 
Join Date: Nov 2010
Location: 07456 N. NJ USofA
Posts: 8,314
Default Re: Shop Holmes

Quote:
Originally Posted by KJ10 View Post
I know a few people that could use that gate!!
"Holmes Hobbies...... RC electrics, motors, E-bikes, motion controls & baby gates......we have you covered....."



Charlie-III is offline   Reply With Quote
Old 08-08-2013, 07:11 AM   #114
I wanna be Dave
 
Join Date: May 2007
Location: Fairfield ME
Posts: 3,886
Default Re: Shop Holmes

John, have you thought about doing a video on hand winding motors? Every time I'm at radio shack I have the impulse to buy some wire and give it a shot. I have held back so far...
Calderwood is offline   Reply With Quote
Old 08-08-2013, 08:47 AM   #115
owner, Holmes Hobbies LLC
 
JohnRobHolmes's Avatar
 
Join Date: Nov 2004
Location: Volt up! Gear down!
Posts: 20,290
Default Re: Shop Holmes

I use a power winder, so it wouldn't be a ton of help to the average joe. What we could do is show how to build a hand crank winder and go over the parts that make an armature quality. It has taken me a few thousand armatures to really get good at winding, its like any other sport where practice makes perfect. I'm still pushing to start regular videos, just need to finish training another laborer so my media employee can get enough time.


The gate will be getting a lower strike plate and hidden metal frame to stiffen it up. As it sits there is flex if pushed hard. The lower strike plate will avoid it bowing into the stairs and the frame will keep it from breaking if my kid decides to run into it. Steel will be used on the strike plate to avoid stress fractures over the years, and aluminum on the frame to keep the gate light and fast swinging. Brock is just rolling around now so there is plenty of time before he is walking.


Bonus points on the gate: My dog is one of those "interested" types that gets in the way when I'm working in the basement shop. Hammering a nail? She wants to help! Digging a hole, she joins in and digs! If you all notice, she manages to get into almost every pic I take at home. Whatever I am looking at/ doing/ working on- she has to be right there. Now I can easily keep her upstairs while I finish out the wreck of a home basement that the business caused. It put me 5 years behind in my house! As the biz kept growing I kept moving my music area and home theater around to make space, and ended up with nothing usable as a result. I can get out those power tools without worrying about Gretal sneaking up and getting into trouble, yeee haw!
JohnRobHolmes is offline   Reply With Quote
Old 10-10-2013, 07:44 PM   #116
owner, Holmes Hobbies LLC
 
JohnRobHolmes's Avatar
 
Join Date: Nov 2004
Location: Volt up! Gear down!
Posts: 20,290
Default Re: Shop Holmes

Big rearrange again. Volt riders went downtown, I took the middle bay for HH, and the third bay had empty space.










So we moved in a half pipe for the winter...
Attached Images
 
JohnRobHolmes is offline   Reply With Quote
Old 10-11-2013, 08:38 AM   #117
I wanna be Dave
 
Join Date: Jun 2008
Location: Sin City
Posts: 3,628
Default Re: Shop Holmes

I want a halfpipe in my workshop......
doublej is offline   Reply With Quote
Old 10-30-2013, 10:41 PM   #118
owner, Holmes Hobbies LLC
 
JohnRobHolmes's Avatar
 
Join Date: Nov 2004
Location: Volt up! Gear down!
Posts: 20,290
Default Re: Shop Holmes

I never wanted a half pipe in my shop, but it happened and it was the best thing ever! I get to warm up on it in the morning, have a few minutes of pump during lunch, and spend a few minutes on it at the end of the day. I went from no skating skills, to bonking the coping and getting ollies in a few weeks. Biking on it is pretty difficult. I can air out about a foot, but the workout is so taxing that I can only ride 2 or 3 days a week.

But all of this is merely for one goal- be in shape when snow skating season hits. Missouri doesn't keep snow, so I must be ready at a moments notice for when the chance comes! It has really gotten me into shape. Honestly, I don't know if I will be able to let it leave in the spring, it is too dang fun and my body is thanking me for being active again
JohnRobHolmes is offline   Reply With Quote
Old 10-30-2013, 10:44 PM   #119
owner, Holmes Hobbies LLC
 
JohnRobHolmes's Avatar
 
Join Date: Nov 2004
Location: Volt up! Gear down!
Posts: 20,290
Default Re: Shop Holmes

Some shots of how the shop is coming back together. Shown are the main work benches and production areas. The bootyfab exhaust works quite well above the soldering station.


edit: I seem to have a bike wheel problem, they are sneaking into my shop photos everywhere!
Attached Images
 

Last edited by JohnRobHolmes; 10-30-2013 at 10:47 PM.
JohnRobHolmes is offline   Reply With Quote
Old 11-01-2013, 08:10 PM   #120
RCC Addict
 
Join Date: Jul 2006
Location: Pasadena
Posts: 1,118
Default Re: Shop Holmes

Spoke...n like a true madman.
danielk is offline   Reply With Quote
Reply



Shop Holmes - Similar Threads
Thread Thread Starter Forum Replies Last Post
Where to shop???????? KNIFE Newbie General 21 08-11-2010 02:08 PM
Who wants a shop near Kc blazin396 Missouri 6 07-23-2010 11:47 AM
Where to shop Jigsisme Losi Mini-Rock Crawler 10 09-03-2009 11:02 AM
who knows this Shop ecodriver Tamiya Clod Buster 0 01-03-2008 12:49 PM

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -6. The time now is 07:45 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Content Relevant URLs by vBSEO ©2011, Crawlability, Inc.
Copyright 2004-2014 RCCrawler.com