Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Control System (http://www.chiefdelphi.com/forums/forumdisplay.php?f=177)
-   -   USB Joystick adapter is here! (http://www.chiefdelphi.com/forums/showthread.php?t=48865)

MikeDubreuil 02-01-2007 11:17

Re: USB Joystick adapter is here!
 
Quote:

Originally Posted by chris31 (Post 546939)
I just dont see that they will be in the KOP. The current control system works and I dont see FIRST adding this just to use diffrent controllers. "If its not broken dont fix it".

The joysticks FIRST is giving in the kits are abysmal compared to the older CH Flightsticks. Of course that's because Analog joysticks are 1980s technology. It's increasingly difficult to find joysticks that work with the current Operator Interface.

It is broken, that's why this product exists. FIRST is forcing us to use outdated interface technology. FIRST isn't going to create enough economic incentive for joystick manufacturers to produce Analog joysticks. Eventually IFI will have to change or FIRST will provide us or allow us to buy these Chicklets.

The fact that the Chicklet allow you to connect a game pad is just a unique feature.

I have reservations about whether CrossTheRoadElectronics would meet 2006 vendor requirements. The capital to create enough boards to timely deliver the goods is huge. Yet, AndyMark is somehow able to make due. We've ordered from them and they can deliver. Oh well, I'm not an expert at supply chain. For everyones sake I hope they are a vendor in 2007.

Mike Copioli 02-01-2007 12:54

Re: USB Joystick adapter is here!
 
Quote:

Originally Posted by Gdeaver (Post 546944)
I know it's a little late in the development cycle but, Cypress Semi Kind of specializes in this type of interface. After this batch some of their solutions may be more cost effective.

Yes, Cypress does make USB host and peripheral Devices, however the host devices are the physical layer only. They provide a USB 2.0 physical interface to USB devices. This is only part of the USB protocol. The host is not a stand alone device. You need to interface a micro-controller and have an understanding of the USB data protcols to use this device. This is what Windows and Linix does. We use a similar device in our product to perform the lower level fuctions of the protocol. Yes we could use the Cypress chip instead of the Maxim chip we use in it's place. However the Cypress Chip is twice as expensive as the Maxim.


look up this number on Digikey


Cypress Part #CY7C67300



Mike Copioli
CTRE

Mike Copioli 02-01-2007 13:31

Re: USB Joystick adapter is here!
 
The user manual and FAQ are now up and available for viewing. The tables are a little fuzzy but legable. The manual contains the final list of supported devices.

http://www.crosstheroadelectronics.c...anual_rev1.pdf

http://www.crosstheroadelectronics.c...t_FAQ_rev1.pdf

Mike Copioli
CTRE

Madison 02-01-2007 15:51

Re: USB Joystick adapter is here!
 
Perhaps this is a ridiculous question, but will there be a protective case or something over this device to save it from abuse? It seems fragile.

Mike Copioli 02-01-2007 23:18

Re: USB Joystick adapter is here!
 
Quote:

Originally Posted by M. Krass (Post 547029)
Perhaps this is a ridiculous question, but will there be a protective case or something over this device to save it from abuse? It seems fragile.

There will not be a protective case provided. There is a very good reason for this. When the Chicklet was designed, the PCB was dimensioned so it could be connected side by side with another Chicklet. The spacing between the joyports is very tight, It's less than .25". This made it difficult to find an enclosure that the Chicklet would fit into and still be able to connect to the O/I side by side. Also, and probably the most important reason, It would have increased the price by about $15-$20. Enclosures are expensive, machining of the enclosures is expensive. Custom made enclosure, witch the Chicklet would require, are even more expensive. But have no fear the devices are pretty robust. I know, I have tortured the protos quit a bit and have had now known issues. Like the camera, you can always make your own enclosure for the device. If you are to do this you will need to make an enclosure that allows the user to see the state LED.

Mike Copioli
CTRE

Joe Ross 05-01-2007 20:00

Re: USB Joystick adapter is here!
 
It looks like you can now order the USB Chiklet directly from IFI: http://www.ifirobotics.com/usb-chicklet.shtml

DanDon 05-01-2007 20:09

Re: USB Joystick adapter is here!
 
Quote:

Originally Posted by Joe Ross (Post 548548)
It looks like you can now order the USB Chiklet directly from IFI: http://www.ifirobotics.com/usb-chicklet.shtml

A hint to the legality of the Chicklet? Hmm...:confused:

chris31 05-01-2007 20:41

Re: USB Joystick adapter is here!
 
I guess the struck a deal with IFI. Now to see if one comes in the KOP.

EnderWiggin 06-01-2007 21:39

Re: USB Joystick adapter is here!
 
IMO the ideal way to control the robot is through a pistol grip system, like the ones the R/C Car racers use.
I found this one with a USB output for PC R/C games (ya, go figure):
http://www.horizonhobby.com/Products...rodID=VRCCP002

Would this work?

Mike Copioli 06-01-2007 22:37

Re: USB Joystick adapter is here!
 
Quote:

Originally Posted by EnderWiggin (Post 549458)
IMO the ideal way to control the robot is through a pistol grip system, like the ones the R/C Car racers use.
I found this one with a USB output for PC R/C games (ya, go figure):
http://www.horizonhobby.com/Products...rodID=VRCCP002

Would this work?


If this is an HID device, we probably can support it. The only way can know this is for you to send us the device. Or connect it to windows. Windows will be able to tell you if it is HID. We can update the firmware on the Chicklet to include this device. There is a $25 fee for this service. Either way you will still need to send us the device.

Mike Copioli
CTRE

Astronouth7303 07-01-2007 13:52

Re: USB Joystick adapter is here!
 
Is there a way to connect a generic HID device and then make a custom mapping?

chris31 07-01-2007 14:06

Re: USB Joystick adapter is here!
 
Quote:

Originally Posted by Astronouth7303 (Post 550006)
Is there a way to connect a generic HID device and then make a custom mapping?

From the post above I think you have to send it to them so that they can put a new firmware on it.

Astronouth7303 07-01-2007 22:14

Re: USB Joystick adapter is here!
 
Quote:

Originally Posted by MikeDubreuil (Post 546947)
It is broken, that's why this product exists. FIRST is forcing us to use outdated interface technology.

It's not as broken as you make it sound. It is antiquated and no one makes a decent controller anymore. But it's also really, really easy to add your own stuff.

A new switch? Two leads. I could do that. A pot? Two or three wires. Anyone who understands what a soldering iron does could wire custom controls. Not so much with USB or anything else.

I'm very glad that FIRST allowed this device to be used. Too bad they just didn't change the rule to allow other power sources. (In fact, I think they made it stricter, I don't think you can have a computer connected to the dashboard, even. :( )

ozrien 07-01-2007 22:18

Re: USB Joystick adapter is here!
 
Quote:

Originally Posted by Astronouth7303 (Post 550006)
Is there a way to connect a generic HID device and then make a custom mapping?

We originally wanted USB-Chicklet to do just that but due to time constraints of development, software validation, production, and shipment, USB-Chicklet supports a fixed list of devices. However we expect next season's USB-Chicklet to support ANY HID device, and provide a GUI to allow custom mapping of analog axes and buttons.

Note however that custom mapping of a SUPPORTED USB device is possible through user calibration mode. And that for a fee ($25) we can reflash your chicklet to support a new HID device.

Omar Zrien
Chief Software Engineer
Cross The Road Electronics
www.crosstheroadelectronics.com

underwood 07-01-2007 23:30

Re: USB Joystick adapter is here!
 
oh yeah, about time! wii-mote anyone?:D








(and just imagine driving with a DDR mat!!!)

Travis Hoffman 08-01-2007 08:09

Re: USB Joystick adapter is here!
 
This question is for Mike Copioil (sic).....

There are existing, inexpensive, PS2 to USB adapters currently available that permit you to use PS2 controllers with the PS3. I can't 100% confirm it, and it may depend upon the brand of adapter you purchase, but I believe most if not all of these adapters are HID-compatible. Is it potentially possible to program the firmware to accept such a configuration?

Also - the XBOX360 controller has a detachable rechargeable battery pack (or an adapter which permits you to use standard AA's). Presumably, you must use the USB Play and Charge adapter to physically connect the controller to the Chicklet - will the chicklet charge the battery while the controller is connected? Should the battery be removed?

I imagine technically, using external AA batteries or the rechargeable battery in the XBOX360 controller violates the external power source rule. In what configuration is the XBOX360 a legal controller for use in FRC?

Mike Copioli 08-01-2007 09:01

Re: USB Joystick adapter is here!
 
Quote:

Originally Posted by T. Hoffman (Post 550976)
This question is for Mike Copioil (sic).....

There are existing, inexpensive, PS2 to USB adapters currently available that permit you to use PS2 controllers with the PS3. I can't 100% confirm it, and it may depend upon the brand of adapter you purchase, but I believe most if not all of these adapters are HID-compatible. Is it potentially possible to program the firmware to accept such a configuration?

It would make sense that if we could support the PS3 controller, we can support an adapted PS2 controller. As is the case with the X-box and X-box 360. The question is: Is the PS3 HID? And the answer is: I don't know. If we had one, we could find out. I would imagine the device being similar to the X-box 360, which is a HUB. If this is the case, supporting it becomes more difficult. It can be done, but it would require a more drastic change in the firmware.

Quote:

Originally Posted by T. Hoffman (Post 550976)
Also - the XBOX360 controller has a detachable rechargeable battery pack (or an adapter which permits you to use standard AA's).

I assume you are refering to the wireless 360. The wired controller does not require batteries. We currently do not support the wireless 360 controller. We do however support the wireless Logitech Rumblepad 2.

Mike Copioli
CTRE

Sym 08-01-2007 20:41

Re: USB Joystick adapter is here!
 
Quote:

Originally Posted by Mike Copioli (Post 550992)
It would make sense that if we could support the PS3 controller, we can support an adapted PS2 controller. As is the case with the X-box and X-box 360. The question is: Is the PS3 HID? And the answer is: I don't know. If we had one, we could find out. I would imagine the device being similar to the X-box 360, which is a HUB. If this is the case, supporting it becomes more difficult. It can be done, but it would require a more drastic change in the firmware.



I assume you are refering to the wireless 360. The wired controller does not require batteries. We currently do not support the wireless 360 controller. We do however support the wireless Logitech Rumblepad 2.

Mike Copioli
CTRE

Mike,

Before we saw your product, we were going to build our own. We intended to use something along the lines of a PIC24HJ128GP206(http://www.microchip.com/stellent/id...me =en024685). Using the input ports on the microcontroller, we were going to make our own USB to Serial Xbox adapter. We learned the input pulse codes from this page (http://euc.jp/periphs/xbox-controller.en.html) and we had an experienced programmer who was going to write the HID driver. After the inputs had been read they would output to the serial port we were going to add to the microcontroller. The point of it was to simplify the controls to be read by the robot control interface.

Now that your product is out, ours would be obsolete. But just for the record, would that have worked? Or did I spend hours drawing the schematics and designing the PCB, all to find out there was a major component I was missing? I know what I said before is confusing, but the just of it, is could you use a PIC24HJ128GP206 to do the same thing this adapter does?

Mike Copioli 08-01-2007 21:07

Re: USB Joystick adapter is here!
 
Quote:

Originally Posted by Sym (Post 551605)
But just for the record, would that have worked? Or did I spend hours drawing the schematics and designing the PCB, all to find out there was a major component I was missing? I know what I said before is confusing, but the just of it, is could you use a PIC24HJ128GP206 to do the same thing this adapter does?


To answer your question. No. You are missing a host controller. The Pic only has hardware support for a device, not a host. The good news is there are Host controller IC's available. Some use USART some use SPI some use I2C. To answer the second part of your question, again.. no. You did not waste any time. If you learned something from the process, your time was not wasted. We failed several times before we were actually sucessful.

The 16 bit PIC will do the job. We use a 32 bit ARM and an 8 bit pic. But the 24 series should have enough power to support HID. Our next revision we will probanly eliminate the ARM chip. Actually an 18 series(8 bit) is all you need for HID. Remember this is hardware, it is not loaded up with a bulky operating system like Windows or Linux.

Mike Copioli
CTRE

Sym 08-01-2007 23:19

Re: USB Joystick adapter is here!
 
Quote:

Originally Posted by Mike Copioli (Post 551626)
To answer your question. No. You are missing a host controller. The Pic only has hardware support for a device, not a host. The good news is there are Host controller IC's available. Some use USART some use SPI some use I2C. To answer the second part of your question, again.. no. You did not waste any time. If you learned something from the process, your time was not wasted. We failed several times before we were actually sucessful.

The 16 bit PIC will do the job. We use a 32 bit ARM and an 8 bit pic. But the 24 series should have enough power to support HID. Our next revision we will probanly eliminate the ARM chip. Actually an 18 series(8 bit) is all you need for HID. Remember this is hardware, it is not loaded up with a bulky operating system like Windows or Linux.

Mike Copioli
CTRE

Ah, so thats why there was more then one IC on that PCB. I couldn't find the time between reports from the Xbox controller, so I just picked the most powerful PIC I could find. (I learned later how it worked)

Am I right in saying that the next version would be consideribly cheaper to produce without the ARM chip?


Edit: I hope I'm not insulting anyone by saying this but to get an Xbox controller to plug into the adapter for sale you need to modify the connecter. Luckily, Microsoft uses a modified USB plug for all of their Xbox controllers. You can buy the adapter or make it (Soldering 4 contacts).

http://www.llamma.com/xbox/Mods/xbox..._to_pc_usb.htm

When making it, I believe you leave the yellow wire hanging free(cut it and tape it to the Xbox cord), unless the USB cable you are hacking apart is grounded. Just use tin foil to repair the shielding.

Mike Copioli 09-01-2007 14:25

Re: USB Joystick adapter is here!
 
Quote:

Originally Posted by Sym (Post 551781)
Am I right in saying that the next version would be consideribly cheaper to produce without the ARM chip?


Edit: I hope I'm not insulting anyone by saying this but to get an Xbox controller to plug into the adapter for sale you need to modify the connecter. Luckily, Microsoft uses a modified USB plug for all of their Xbox controllers. You can buy the adapter or make it (Soldering 4 contacts)..

The ARM chip is only one part of the cost. The major factor in the cost is the physical interface. We are taking data and converting it into analog and digital output. This is a very unusual thing to have to do. The logical way to interface to the O/I would be through a serial port or SPI. If all that was required was serial com, the Chicklets cost would be reduced significantly.

We do have hardware that does this. We will be releasing it after the FIRST season.

Mike Copioli
CTRE

team540pr2007 09-01-2007 15:08

Re: USB Joystick adapter is here!
 
i think our kit included the USB controller port. maybe i'm mistaken but i'm pretty sure we have this

Choi9111 09-01-2007 15:53

Re: USB Joystick adapter is here!
 
Anybody thinking of PS3 6-axis controller to drive robot...or is it just me? -_-

xrabohrok 09-01-2007 16:44

Re: USB Joystick adaptor is here!
 
I know that this adapter is for the purpose of hooking the computer to the robot with a computer that doesn't have a serial port (or a convienient one anyway), but has anyone explored the idea of actually using this for a joystick? I have this totally awesome joystick with throttle and stuff...

chris31 09-01-2007 17:11

Re: USB Joystick adaptor is here!
 
Quote:

Originally Posted by xrabohrok (Post 552340)
I know that this adapter is for the purpose of hooking the computer to the robot with a computer that doesn't have a serial port (or a convienient one anyway), but has anyone explored the idea of actually using this for a joystick? I have this totally awesome joystick with throttle and stuff...

You must be confused. Please read this thread. This is for connecting USB joysticks to the OI and not for any other purpose.

Peter Randall 15-01-2007 23:58

Re: USB Joystick adapter is here!
 
Mike,

Love the new USB chicklet. How do we read the bits from wheel and aux for buttons 5-12 using easyC?

Thanks

PGR

Mike Copioli 16-01-2007 09:04

Re: USB Joystick adapter is here!
 
That is a good question. I think Adam from Intellitek would be the best person to answer that question. I am not familiar with easy C. I have sent a link to this thread to him.

Kingofl337 16-01-2007 10:56

Re: USB Joystick adapter is here!
 
1 Attachment(s)
Hey here is a program that will show you what the chicklet is returning.



Quote:

Originally Posted by Peter Randall (Post 557898)
Mike,

Love the new USB chicklet. How do we read the bits from wheel and aux for buttons 5-12 using easyC?

Thanks

PGR


SLA 16-01-2007 18:56

Re: USB Joystick adapter is here!
 
Quote:

Originally Posted by Mike Copioli (Post 522001)
A device that converts the operator interface 15pin joystick ports, into a USB host, now exists. The device is called USB_chicklet. Check it out at www.crosstheroadelectronics.com. Also please provide feedback about our new website.

Hey, I got a question.
Does that USB chicklet work on PS3 or PS2 controllers? On its display, it said that it can only work on X-Box 360. Also, is it legal to use it if it did work?
Thank you in advance.

Regards,

Travis Hoffman 17-01-2007 08:21

Re: USB Joystick adapter is here!
 
Quote:

Originally Posted by SLA (Post 558387)
Hey, I got a question.
Does that USB chicklet work on PS3 or PS2 controllers? On its display, it said that it can only work on X-Box 360. Also, is it legal to use it if it did work?
Thank you in advance.

Regards,

For those wishing to use a PS2 controller, I suggest you check out this supported device:

http://www.logitech.com/index.cfm/pr...CONTENTID=6951

Layout looks familiar, eh? You can find these on eBay for around $13, shipping included. I believe Mike C. claims the action on these sticks is very repeatable and reliable.

Some may still see value in finding a way to make the PS2 controller work with the chicklet, since so many people already own PS2 controllers. In order for this to work, however, the community would have to identify a standard PS2 to USB adapter device that everyone agreed to purchase and use, and someone would have to pay the Chicklet guys $25 and send them a PS2 controller/USB adapter combo so they can determine if that arrangement is compatible with their device and program the Chicklet firmware to recognize it.

Since you'd have to buy something anyway, and the PS2-esque Logitech controllers are readily available online, I suggest people consider purchasing those and forget about the PS2. It's not like Logitech is some third-rate manufacturer of gaming controllers. They usually turn out a quality product. And remember, by not having to use a PS2/USB adapter, that's one less device in the chain that can fail, and your controls won't be as cluttered.

And then there's always the XBOX360 wired controllers, you Playstation fanboys!!! :p

Guy Davidson 20-01-2007 19:16

Re: USB Joystick adapter is here!
 
I'd like to thank Mike C and the rest of the Chicklet design team for the product. We just got ours up and running, and it works really well. We got the 360 controller at 360, but then went and got the Logitech Dual Action based on Mike's reccomendation on the other thread. That one works really well for our purposes - it's nice and compact, and the axes are pretty reliable. Also, the buttons are numbered, which makes it really easy to code.

-Guy

Jared Russell 29-01-2007 13:35

Re: USB Joystick adapter is here!
 
Many thanks to Mike and Team 217 for creating a great product!

Using a Chicklet with the Logitech 3D Pro, the results are outstanding. Full forward is always exactly 254...full reverse is always exactly 0...neutral is always exactly 127!

I would highly recommend the Chicklet (and for that matter the Logitech 3D Pro, which has some really nice springs) to all teams - and that twist axis can sure come in handy :]

Mike Copioli 30-01-2007 13:03

Re: USB Joystick adapter is here!
 
Quote:

Originally Posted by Abwehr (Post 567511)
Many thanks to Mike and Team 217 for creating a great product!

Using a Chicklet with the Logitech 3D Pro, the results are outstanding. Full forward is always exactly 254...full reverse is always exactly 0...neutral is always exactly 127!

I would highly recommend the Chicklet (and for that matter the Logitech 3D Pro, which has some really nice springs) to all teams - and that twist axis can sure come in handy :]

Thank you for the feed back.

WillZZZ 01-02-2007 18:56

Re: USB Joystick adapter is here!
 
Our team got a Logitech Dual Action gamepad like the one shown here:
http://www.logitech.com/index.cfm/pr...CONTENTID=6951
and we are having problems with the output values from the controller on the analog joysticks thru the USB Chiklet. For the neutral everything is 0 but going full backward or full to the left goes to 127 as expected BUT if we move the analog sticks fully forward or full to the right they output a value from 0-17. I thought it was suppose to output a value from 0-127? This is unacceptable though I have a feeling (according to my mentor) we may have a newer hardware revision of the Dual Action Gamepad because when I plug it directly into the computer it works fine. Do you have more exact specifics of which model of the Logitech Dual Action gamepad actually works as specified? Please reply ASAP as our team is currently stuck.

Mike Copioli 02-02-2007 16:18

Re: USB Joystick adapter is here!
 
Quote:

Originally Posted by WillZZZ (Post 569737)
Our team got a Logitech Dual Action gamepad like the one shown here:
http://www.logitech.com/index.cfm/pr...CONTENTID=6951
and we are having problems with the output values from the controller on the analog joysticks thru the USB Chiklet. For the neutral everything is 0 but going full backward or full to the left goes to 127 as expected BUT if we move the analog sticks fully forward or full to the right they output a value from 0-17. I thought it was suppose to output a value from 0-127? This is unacceptable though I have a feeling (according to my mentor) we may have a newer hardware revision of the Dual Action Gamepad because when I plug it directly into the computer it works fine. Do you have more exact specifics of which model of the Logitech Dual Action gamepad actually works as specified? Please reply ASAP as our team is currently stuck.

How are determining these values? Plug the OI into dashboard. What are the values (on dashboard) for x,y,aux,and wheel? Also what mode is the Chicklet in?

WillZZZ 02-02-2007 19:29

Re: USB Joystick adapter is here!
 
These are the values we are getting from the Dashboard plugged directly into the OI. The Chiklet is in the regular mode and on the left analog axis, putting the axis straight up yields max values of 15 or 16 on the Y and also 15 or 16 on the X when the axis is straight to the right. When the axis is straight down and left, we get normal values of 127 on the X and Y. This same phenomenon is occuring on the right analog axis going straight up yields 14 or 15 on the Wheel and 14/15 on the Aux going straight to the right. Going straight to the left we get the normal value of 127 on the Aux and going straight down we also get the normal value of 127 on the wheel. This is mode 2 on the Logitech Dual Action gamepad which is supported according to your manual. We have tried different modes and they yield the same results. As you can see on our Logitech Dual Action gamepad, when the analog sticks on going full up or to the right they yield only a max of 15/16 or 14/15 instead of the full 127 like normal. The joystick itself I believe is NOT defective as I have plugged it directly into the computer, loaded the drivers and it works fine in Windows. Maybe this is a newer hardware revision of the Logitech Dual Action Gamepad? Anyways our team due to this problem is switching to the Wired Xbox 360 controller. Hopefully this is a isolated problem for the Logitech Dual Action gamepad.

Mike Copioli 02-02-2007 21:26

Re: USB Joystick adapter is here!
 
Quote:

Originally Posted by WillZZZ (Post 570433)
These are the values we are getting from the Dashboard plugged directly into the OI. The Chiklet is in the regular mode and on the left analog axis, putting the axis straight up yields max values of 15 or 16 on the Y and also 15 or 16 on the X when the axis is straight to the right. When the axis is straight down and left, we get normal values of 127 on the X and Y. This same phenomenon is occuring on the right analog axis going straight up yields 14 or 15 on the Wheel and 14/15 on the Aux going straight to the right. Going straight to the left we get the normal value of 127 on the Aux and going straight down we also get the normal value of 127 on the wheel. This is mode 2 on the Logitech Dual Action gamepad which is supported according to your manual. We have tried different modes and they yield the same results. As you can see on our Logitech Dual Action gamepad, when the analog sticks on going full up or to the right they yield only a max of 15/16 or 14/15 instead of the full 127 like normal. The joystick itself I believe is NOT defective as I have plugged it directly into the computer, loaded the drivers and it works fine in Windows. Maybe this is a newer hardware revision of the Logitech Dual Action Gamepad? Anyways our team due to this problem is switching to the Wired Xbox 360 controller. Hopefully this is a isolated problem for the Logitech Dual Action gamepad.


Have you calibrated the Chicklet? If not you will get the same results with the 360 controller. You should see a center value of 127. A full forward value from 240 to 254 and a full reverse value of 0 to 15. This is documented in the user manual. The full range of 0 - 254 may not occur. This is not an issue. There is a scaling function at the end of the user manual that can be implimented to correct for this. But what you are describing does not make any sense. You should never see a value of 127 at an extreme of travel. 127 should only be scene when the joysticks are centered. Try calibrating your Chicklet and see if this fixes the problem. You must follow the calibration procedure in its entirety including analog calibration and digital button selection. If you are still having issues contact me at mcopioli@crosstheroadelectronics.com


All times are GMT -5. The time now is 14:09.

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