Love is in the air compressor.
Home
Go Back   Chief Delphi > Technical > Electrical
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
Thread Tools Rating: Thread Rating: 4 votes, 5.00 average. Display Modes
  #31   Spotlight this post!  
Unread 11-12-2013, 20:42
Quazar's Avatar
Quazar Quazar is offline
Registered User
FRC #4765 (PWR UP)
Team Role: Mentor
 
Join Date: Jan 2013
Rookie Year: 2013
Location: SF Bay Area
Posts: 13
Quazar is an unknown quantity at this point
Re: Where to mount the battery?

Quote:
Originally Posted by yash101 View Post
That seems like a good battery mount. However, as of what I understand, it is made of Aluminum, so I think it may be a short hazard!
It is aluminum, but it isn't really a shorting hazard. The lip of the cradle only comes about half-way up the edge of the battery, so it is well clear of the terminals. As long as you follow typical insulation practices and avoid striking the battery with large conductive objects, you should be fine.

Quote:
Originally Posted by yash101 View Post
I prefer upright battery mounts because these batteries have a grip that helps you replace them. The battery holder depends on your robot's size/design/CoG. Place it to center your CoG. Also, make it so that replacing the battery is easy. If you can replace the battery within thirty seconds, you have done well! Also, your robot's shape really matters. We didn't really worry about where we placed the battery because we had a very stable robot already. If the robot was like our 2012 robot for rebound rumble, that easily fell over, the battery must have been placed in the bottom center.
Agreed. I like the flat mount where possible since it helps lower the CoG just a bit, but I agree that the mount of choice depends more on the shape of your robot and battery swap access.

Quote:
Originally Posted by yash101 View Post
This is off topic, but not worth making a thread for:
Many robots won't reach the weight restriction. Are we allowed to place dense materials, like a block of lead or steel, etc. in places on the robot to reduce the CoG?
I've seen teams do this. As long as there isn't a rule that prohibits it, it would be legal. You'll have to account for the additional material on your bill of materials of course.

Cheers,
- Dean
  #32   Spotlight this post!  
Unread 11-12-2013, 20:46
EricH's Avatar
EricH EricH is offline
New year, new team
FRC #1197 (Torbots)
Team Role: Engineer
 
Join Date: Jan 2005
Rookie Year: 2003
Location: SoCal
Posts: 19,838
EricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond repute
Re: Where to mount the battery?

Quote:
Originally Posted by yash101 View Post
That seems like a good battery mount. However, as of what I understand, it is made of Aluminum, so I think it may be a short hazard!
Better insulate your terminals then--and make sure the battery goes in terminal-side-up. All metal battery holders (which seem to be the vast majority of battery holders...) have that problem. I've not seen too many shorted batteries on metal robots, and I've been doing this for... well, let's not go into how long I've been involved.


Quote:
This is off topic, but not worth making a thread for:
Many robots won't reach the weight restriction. Are we allowed to place dense materials, like a block of lead or steel, etc. in places on the robot to reduce the CoG?
My first reaction is to laugh my rear off at that first sentence. Many robots will be OVER the weight limit! Trust me on this. That said, SHOULD you HAPPEN to find yourself underweight, under the 2013 rules (2014 may be different), there was no limit to doing that as long as hazardous materials (like lead) were properly handled. But coming in underweight is akin to finding the Holy Grail (your choice of Monty or Indy to find it).
__________________
Past teams:
2003-2007: FRC0330 BeachBots
2008: FRC1135 Shmoebotics
2012: FRC4046 Schroedinger's Dragons

"Rockets are tricky..."--Elon Musk

  #33   Spotlight this post!  
Unread 11-12-2013, 20:51
Foster Foster is offline
Engineering Program Management
VRC #8081 (STEMRobotics)
Team Role: Mentor
 
Join Date: Jul 2007
Rookie Year: 2005
Location: Delaware
Posts: 1,399
Foster has a reputation beyond reputeFoster has a reputation beyond reputeFoster has a reputation beyond reputeFoster has a reputation beyond reputeFoster has a reputation beyond reputeFoster has a reputation beyond reputeFoster has a reputation beyond reputeFoster has a reputation beyond reputeFoster has a reputation beyond reputeFoster has a reputation beyond reputeFoster has a reputation beyond repute
Re: Where to mount the battery?

I'll agree that you can't design the 2014 robot until January, but once kickoff starts, you need to have the battery front and center in your design process.

Key thing is the ability to get to and RAPIDLY change the battery. Nothing is worse than having a battery that takes 10 minutes to change. It should be something you can do with the robot upright. There is nothing more scary or less safe that propping a robot up on saw horses while a roboteer climbs under to replace the battery.

1640 builds custom heat formed boxes every year to hold the battery securely in place. The new mounts that Dean posted would also be a great first pass.

Good luck!
__________________
Foster - VEX Delaware - 17 teams -- Chief Roboteer STEMRobotics.org
2010 - Mentor of the Year - VEX Clean Sweep World Championship
2006-2016, a decade of doing VEX, time really flies while having fun
Downingtown Area Robotics Web site and VEXMen Team Site come see what we can do for you.
  #34   Spotlight this post!  
Unread 11-12-2013, 20:51
yash101 yash101 is offline
Curiosity | I have too much of it!
AKA: null
no team
 
Join Date: Oct 2012
Rookie Year: 2012
Location: devnull
Posts: 1,191
yash101 is an unknown quantity at this point
Re: Where to mount the battery?

I can see many rookie teams going quite a bit under weight! Since they are new teams, they will typically try to do things as simple as possible!
  #35   Spotlight this post!  
Unread 12-12-2013, 00:10
Alan Anderson's Avatar
Alan Anderson Alan Anderson is offline
Software Architect
FRC #0045 (TechnoKats)
Team Role: Mentor
 
Join Date: Feb 2004
Rookie Year: 2004
Location: Kokomo, Indiana
Posts: 9,113
Alan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond repute
Re: Where to mount the battery?

Quote:
Originally Posted by yash101 View Post
I can see many rookie teams going quite a bit under weight! Since they are new teams, they will typically try to do things as simple as possible!
[laughing myself into a coughing fit] Where do you come up with this stuff?
  #36   Spotlight this post!  
Unread 12-12-2013, 00:21
EricH's Avatar
EricH EricH is offline
New year, new team
FRC #1197 (Torbots)
Team Role: Engineer
 
Join Date: Jan 2005
Rookie Year: 2003
Location: SoCal
Posts: 19,838
EricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond repute
Re: Where to mount the battery?

Quote:
Originally Posted by Alan Anderson View Post
[laughing myself into a coughing fit] Where do you come up with this stuff?
I'd answer, but 1) I'm on the floor myself and 2) I think the closest approximation is PDOOMA, or SWAG.


Somehow I don't think someone has ever been on or around a rookie team.
__________________
Past teams:
2003-2007: FRC0330 BeachBots
2008: FRC1135 Shmoebotics
2012: FRC4046 Schroedinger's Dragons

"Rockets are tricky..."--Elon Musk

  #37   Spotlight this post!  
Unread 12-12-2013, 00:44
BBray_T1296's Avatar
BBray_T1296 BBray_T1296 is offline
I am Dave! Yognaut
AKA: Brian Bray
FRC #1296 (Full Metal Jackets)
Team Role: Mentor
 
Join Date: Jan 2011
Rookie Year: 2010
Location: Rockwall, TX
Posts: 947
BBray_T1296 has a reputation beyond reputeBBray_T1296 has a reputation beyond reputeBBray_T1296 has a reputation beyond reputeBBray_T1296 has a reputation beyond reputeBBray_T1296 has a reputation beyond reputeBBray_T1296 has a reputation beyond reputeBBray_T1296 has a reputation beyond reputeBBray_T1296 has a reputation beyond reputeBBray_T1296 has a reputation beyond reputeBBray_T1296 has a reputation beyond reputeBBray_T1296 has a reputation beyond repute
Re: Where to mount the battery?

Quote:
Originally Posted by Alan Anderson View Post
Where would you expect such pressure to come from? There's no gas production when a SLA battery is being discharged.
Quote:
Originally Posted by cgmv123 View Post
Gravity



Is the battery pressure caused by the stunning visual effects and intense sci-fi action?

Or the 3 word plot summery and wild inaccuracies creating predictably convenient situations?
__________________
If molecular reactions are deterministic, are all universes identical?

RIP David Shafer: you will be missed


  #38   Spotlight this post!  
Unread 12-12-2013, 01:17
wasayanwer97's Avatar
wasayanwer97 wasayanwer97 is offline
Take from the best, invent the rest
AKA: Wasay Anwer
FRC #0668 (The Apes of Wrath)
Team Role: Coach
 
Join Date: Mar 2012
Rookie Year: 2011
Location: San Jose, CA
Posts: 114
wasayanwer97 has a brilliant futurewasayanwer97 has a brilliant futurewasayanwer97 has a brilliant futurewasayanwer97 has a brilliant futurewasayanwer97 has a brilliant futurewasayanwer97 has a brilliant futurewasayanwer97 has a brilliant futurewasayanwer97 has a brilliant futurewasayanwer97 has a brilliant futurewasayanwer97 has a brilliant futurewasayanwer97 has a brilliant future
Re: Where to mount the battery?

Welcome to Chief Delphi! The community is here to help, and I'd personally be glad to answer any questions you have if you PM me. (Although there are definitely people way more qualified than me here).

A good thread for a rookie team to read would be: http://www.chiefdelphi.com/forums/sh...d.php?t=122662

Now, I wouldn't get too attached to the designs you guys are coming up with (kudos for warming up and getting some practice in though), as no one knows what the game will be, and how it will affect design. When season finally comes though, you'll find that good battery placement should meet the following criteria:

1. Low. CoG is important. You don't want your robot to be tippy.
2. Accessible. Gotta be able to reach and replace it right?
3. Secure. Can't have your power source disconnecting.
4. Balanced. (Meaning that in an optimal situation, your battery does not make your robot front or back heavy)

I'm glad you're reading the forums. You'll be able to avoid some of the most common errors.

Good luck during your rookie year!
__________________
"Coming together is a beginning; keeping together is progress; working together is success."- Henry Ford

FRC Team 668: The Apes of Wrath
Pioneer High School, San Jose CA
http://www.theapesofwrath.org

Talking to other FIRSTers is great. Add me on Facebook!
My Page
  #39   Spotlight this post!  
Unread 12-12-2013, 02:03
DampRobot's Avatar
DampRobot DampRobot is offline
Physics Major
AKA: Roger Romani
FRC #0100 (The Wildhats) and FRC#971 (Spartan Robotics)
Team Role: College Student
 
Join Date: Jan 2012
Rookie Year: 2010
Location: Stanford University
Posts: 1,277
DampRobot has a reputation beyond reputeDampRobot has a reputation beyond reputeDampRobot has a reputation beyond reputeDampRobot has a reputation beyond reputeDampRobot has a reputation beyond reputeDampRobot has a reputation beyond reputeDampRobot has a reputation beyond reputeDampRobot has a reputation beyond reputeDampRobot has a reputation beyond reputeDampRobot has a reputation beyond reputeDampRobot has a reputation beyond repute
Re: Where to mount the battery?

Quote:
Originally Posted by wasayanwer97 View Post
4. Balanced. (Meaning that in an optimal situation, your battery does not make your robot front or back heavy)
Not necessarily true. At times, you want the majority of your weight to be on one side of the robot or the other to improve turning performance. Our 2012 robot was completely symmetric, and to be honest, it turned terribly. Just know that moving the battery can effect CG, and you want to use that to your advantage.
__________________
The mind is not a vessel to be filled, but a fire to be lighted.

-Plutarch
  #40   Spotlight this post!  
Unread 12-12-2013, 06:29
Chris is me's Avatar
Chris is me Chris is me is online now
no bag, vex only, final destination
AKA: Pinecone
FRC #0228 (GUS Robotics); FRC #2170 (Titanium Tomahawks)
Team Role: Mentor
 
Join Date: Dec 2008
Rookie Year: 2006
Location: Glastonbury, CT
Posts: 7,812
Chris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond repute
Send a message via AIM to Chris is me
Re: Where to mount the battery?

Quote:
Originally Posted by DampRobot View Post
Not necessarily true. At times, you want the majority of your weight to be on one side of the robot or the other to improve turning performance. Our 2012 robot was completely symmetric, and to be honest, it turned terribly. Just know that moving the battery can effect CG, and you want to use that to your advantage.
If your robot doesn't turn well with its CG in the center, you've got some other problems to address! A frame should definitely be rigid enough and wheelbase short enough to handle a centered CG and turning on a dime.

Not that there aren't reasons for a front or back CG bias, but you should be able to turn without it.
__________________
Mentor / Drive Coach: 228 (2016-?)
--2016 Waterbury SFs (with 3314, 3719), RIDE #2 Seed / Winners (with 1058, 6153), Carver QFs (with 503, 359, 4607)
Mentor / Consultant Person: 2170 (2017-?)
.
College Mentor: 2791 (2010-2015)
-- 2015 TVR Motorola Quality, FLR GM Industrial Design -- 2014 FLR Motorola Quality / SFs (with 341, 4930)
-- 2013 BAE Motorola Quality, WPI Regional #1 Seed / Delphi Excellence in Engineering / Finalists (with 20, 3182)
-- 2012 BAE Imagery / Finalists (with 1519, 885), CT Xerox Creativity / SFs (with 2168, 118)
Student: 1714 (2009) - 2009 MN 10K Lakes Regional Winners (with 2826, 2470)
2791 Build Season Photo Gallery - Look here for mechanism photos My Robotics Blog (Updated April 11 2014)
  #41   Spotlight this post!  
Unread 12-12-2013, 09:00
Unsung FIRST Hero
Al Skierkiewicz Al Skierkiewicz is offline
Broadcast Eng/Chief Robot Inspector
AKA: Big Al WFFA 2005
FRC #0111 (WildStang)
Team Role: Engineer
 
Join Date: Jun 2001
Rookie Year: 1996
Location: Wheeling, IL
Posts: 10,811
Al Skierkiewicz has a reputation beyond reputeAl Skierkiewicz has a reputation beyond reputeAl Skierkiewicz has a reputation beyond reputeAl Skierkiewicz has a reputation beyond reputeAl Skierkiewicz has a reputation beyond reputeAl Skierkiewicz has a reputation beyond reputeAl Skierkiewicz has a reputation beyond reputeAl Skierkiewicz has a reputation beyond reputeAl Skierkiewicz has a reputation beyond reputeAl Skierkiewicz has a reputation beyond reputeAl Skierkiewicz has a reputation beyond repute
Re: Where to mount the battery?

OK,
Time for my annual battery discussion...
The manufacturer says the battery can be used in any orientation except inverted (from the Enersys sheet). While in our service, that is unlikely to cause a problem, leaking may occur if the internal pressure causes the vent to open while inverted.
This type of battery comes in a variety of terminal choices so during manufacture all the batteries are identical and the terminal is soldered into the battery as one of the final steps. If you apply heat to the terminal, or lift the battery by wires attached to the terminal, the solder joint will become intermittent or will fail. I have seen terminals pull out of the battery entirely.
The greatest point of failure on batteries comes from the wire terminal lossening with the battery terminal. Even if you use locking hardware, if the terminals can rotate against each other, the hardware will loosen. I recommend adding a simple #10 external tooth lockwasher between the terminals before you assemble. The teeth will bite into each terminal and prevent any rotation if the hardware stays tight. It also prevents the terminals from "dishing" due to tight hardware. Heatshrink can then be applied to the connection. We use a custom 3/4" heatshrink a company printed for us long ago. With care, a 3" long piece can cover both the wire terminal and the battery terminal. If you can't find or afford that size, electrical tape wrapped around the entire connection leaving no exposed metal is a good alternative. When you insert the mounting hardware, put the nut on the inside of the terminal so that the excess screw length doesn't stick out and produce a nice place to catch a robot structural part. We are a belt and suspenders kind of team so we solder the crimp terminals we use. For battery terminals and #10 wiring, this will require a 50 watt iron (or above) with a large tip. If you use a screw retention terminal (SLU or equivalent), you must strip the wire at least 1/2" or whatever is required for your terminal. If you cannot insert the wire so that strands show beyond the end of the terminal housing, the wire will be pushed out of the terminal after you tighten the wire screw. (Think squeezing one end of a stick of butter or a banana) Again, turn the terminal so that it won't get caught on robot parts when you insert the battery.
Why are all of these precautions needed you ask? The battery supplies all of the current needed for robot drive and control. Any failure that produces a loose connection adds resistance to the power supply. CIM motors draw 130 amps in stall and most teams will use two or four of these. Add a few ohms in a line that draws that much current and heating and voltage drop will result. It may even be enough to cause your robot to reboot or loose connection with the field. A reboot will take up to 20 seconds to recover.
Finally, I don't care how you do it, secure the battery in the robot. I have been pushing for a number of years to disable robots that have the battery leave the robot. It is dangerous, a fire hazard and potentially could leave a trail of toxic chemicals on the field. If nothing else, should you start dragging your battery around by the leads behind your robot, several people will be pointing and laughing. At some point, all robots will tip over, so gravity alone cannot hold in the battery. There are large tywraps available that have a release locking mechanism, however there is no substitute for a wide piece of velcro, belt or mechanical fastening system to keep the battery in place.
Finally, as I mentioned all robot current passes through the battery (primary) wiring. This path includes the breaker, and the input to the Power Distribution board. This path should have the least amount of series resistance as you can manage. Make wire runs short and centered in the robot. Most often, place the PD in the center of your high current loads and position the battery and breaker as needed to keep the run short and provide COG protection.


__________________
Good Luck All. Learn something new, everyday!
Al
WB9UVJ
www.wildstang.org
________________________
Storming the Tower since 1996.

Last edited by Al Skierkiewicz : 12-12-2013 at 09:09.
  #42   Spotlight this post!  
Unread 12-12-2013, 10:13
Alan Anderson's Avatar
Alan Anderson Alan Anderson is offline
Software Architect
FRC #0045 (TechnoKats)
Team Role: Mentor
 
Join Date: Feb 2004
Rookie Year: 2004
Location: Kokomo, Indiana
Posts: 9,113
Alan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond repute
Re: Where to mount the battery?

Quote:
Originally Posted by Al Skierkiewicz View Post
When you insert the mounting hardware, put the nut on the inside of the terminal so that the excess screw length doesn't stick out and produce a nice place to catch a robot structural part.
Putting the nut on the inside conveniently puts the screw head on the outside. You don't want to have your screwdriver/nutdriver shaft running between the battery terminals when you're tightening the connection.
  #43   Spotlight this post!  
Unread 12-12-2013, 12:57
cgmv123's Avatar
cgmv123 cgmv123 is offline
FRC RI/FLL Field Manager
AKA: Max Vrany
FRC #1306 (BadgerBOTS)
Team Role: College Student
 
Join Date: Jan 2011
Rookie Year: 2011
Location: Madison, WI
Posts: 2,091
cgmv123 has a reputation beyond reputecgmv123 has a reputation beyond reputecgmv123 has a reputation beyond reputecgmv123 has a reputation beyond reputecgmv123 has a reputation beyond reputecgmv123 has a reputation beyond reputecgmv123 has a reputation beyond reputecgmv123 has a reputation beyond reputecgmv123 has a reputation beyond reputecgmv123 has a reputation beyond reputecgmv123 has a reputation beyond repute
Re: Where to mount the battery?

Quote:
Originally Posted by BBray_T1296 View Post



Is the battery pressure caused by the stunning visual effects and intense sci-fi action?

Or the 3 word plot summery and wild inaccuracies creating predictably convenient situations?
OK, I was asking for this one.
__________________
BadgerBOTS Robotics|@team1306|Facebook: BadgerBOTS
2016 FIRST Championship Tesla Division | 2016 Wisconsin Regional Engineering Inspiration Award

2015 FIRST Championship Carson Division | 2015 Wisconsin Regional Chairman's Award

2013 FIRST Championship Curie Division | 2013 Wisconsin Regional Chairman's Award

2012 FIRST Championship Archimedes Division | 2012 Wisconsin Regional Engineering Inspiration Award, Woodie Flowers Finalist Award (Lead Mentor Ben Senson)

  #44   Spotlight this post!  
Unread 12-12-2013, 13:42
Andrew Schreiber Andrew Schreiber is offline
Joining the 900 Meme Team
FRC #0079
 
Join Date: Jan 2005
Rookie Year: 2000
Location: Misplaced Michigander
Posts: 4,086
Andrew Schreiber has a reputation beyond reputeAndrew Schreiber has a reputation beyond reputeAndrew Schreiber has a reputation beyond reputeAndrew Schreiber has a reputation beyond reputeAndrew Schreiber has a reputation beyond reputeAndrew Schreiber has a reputation beyond reputeAndrew Schreiber has a reputation beyond reputeAndrew Schreiber has a reputation beyond reputeAndrew Schreiber has a reputation beyond reputeAndrew Schreiber has a reputation beyond reputeAndrew Schreiber has a reputation beyond repute
Re: Where to mount the battery?

Quote:
Originally Posted by Chris is me View Post
If your robot doesn't turn well with its CG in the center, you've got some other problems to address! A frame should definitely be rigid enough and wheelbase short enough to handle a centered CG and turning on a dime.

Not that there aren't reasons for a front or back CG bias, but you should be able to turn without it.
Interesting discussions on CG, stiffness, and chassis… http://www.chiefdelphi.com/forums/sh...ad.php?t=68307
__________________




.
  #45   Spotlight this post!  
Unread 19-12-2013, 22:39
vanjan14's Avatar
vanjan14 vanjan14 is offline
2977 Alum/171 Mentor
AKA: Jansen
FRC #0171 (Cheese Curd Herd)
Team Role: Mentor
 
Join Date: Jan 2012
Rookie Year: 2011
Location: USA
Posts: 17
vanjan14 is an unknown quantity at this point
Re: Where to mount the battery?

Quote:
Originally Posted by Ryan Dognaux View Post
One option you could look at is using the eStop Robotics Battery Base product. Many teams use it and I've never heard of a team losing a battery during a match while using it - https://www.estoprobotics.com/estore...d&productId=10

My team has used these for the past few years and have never had a problem with them! The plastic bracket slips into grooves at the top of the battery and holds it very securely. The only thing I would suggest is making sure you have enough clearance to get your hands around the battery to secure the velcro.
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

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

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 12:44.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi