| View previous topic :: View next topic |
| Author |
Message |
bigandy
Joined: 30 Jan 2007 Posts: 18 Location: Abergele, North Wales
|
Posted: Tue Jan 30, 2007 12:31 pm Post subject: Introducing: Andy Sayle |
|
|
Good afternoon all,
I thought I better introduce myself here before bombarding the board with questions about the open servo project! First of all, a bit about me. I'm 27, live in North Wales, and am very keen on anything Radio controlled! I do a lot of flying RC planes, including hand launch gliders, electric models, IC models, a bit of everything really. I am also pretty keen on RC vehicles. I have recently got interested in CNC machine building, which led to me finding this site, and realising the potential of such a project in my various hobbies.
I am a design engineer by trade, currently working for a company that specialises in 3D electronic packaging (overmoulded leadframes in case you were wondering) and I do a fair bit of 3D design of moulded plastic components, tools (mould, form and press tooling) as well as a little bit of electronic design. I use Solidworks and Altium DXP primarily.
Anyway, enough about me. I am quite keen to dive into the openservo project, and understand what it is capable of. I have got loads of ideas for uses of converted servos, and I have a strange desire to build a robot arm! I am also keen to see if they would offer any advantages over conventional RC servos when used in RC planes/cars etc. I have a lot of questions, and equally a lot of research/background reading of this forum and associated information sources to do first, so I'm going to plough on with that first I think!
Cheers for now
Andy _________________ How do you explain \"Wet\" to a fish? |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1029 Location: Manchester, UK
|
Posted: Tue Jan 30, 2007 1:01 pm Post subject: |
|
|
Hi Andy, Welcome to OpenServo!
I don't think anyone has tried to put an OpenServo in an R/C car/plane yet, as most R/C equipment uses it's own signalling method, while OpenServo is I2C protocol based. I wish you luck if you try to get it going on an R/C vehicle... the more applications we can get it to work with the better.
A robot arm is a good simple first project, and won't be all that taxing on the mind or resources.
Good luck in your projects, and feel free to bombard us with questions. I hope you can bring some of that knowledge to the OpenServo project.
Cheers,
Barry _________________ http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/ |
|
| Back to top |
|
 |
bigandy
Joined: 30 Jan 2007 Posts: 18 Location: Abergele, North Wales
|
Posted: Tue Jan 30, 2007 1:46 pm Post subject: |
|
|
Hi Barry,
I've still got a lot of reading to do, but the I2C restriction is not that bad. Most of the receivers that I have used have a MCU in them that decode the incoming PPM signal from the RF circuitry, and distribute the correct pulse to the correct servo channel. It should be fairly easy to adapt the MCU, or create a custom MCU that can interpret the PPM stream from the RF section, and dish out commands on an I2C bus, instead of dishing out pulses to each servo. It should be interesting anyway
I've just read the page about hardware and software feature requests, and the ability to select either a I2C input or a RC signal input would be nice in the longer term
I have had a good look at the hardware for the V2.1 open servo, and it looks rather simple. At least, I could understand what was going on and didn't have to ask any of the electronic guys at work for an explanation!
I haven't taken a look at the actual software yet, but I am wondering how best to set myself up with the relevant tools for programming/tuning a testbed open servo. At the moment I have access to a fairly decent set of tools (O-scope, PSU, electronics bits and bobs) but i don't really have any MCu development tools, other than an Atmel JTAG ICE unit. I'm not sure if that can be used to program the Openservo hardware yet, more reading required methinks
Speaking of sharing knowledge, I really like projects like this. I am happy to offer my help/advice and services wherever my knowledge and time permits. I might not be much use on the electronic side (writing a few basic PIC programs is about my limit!), but I have installed a lot of RC servos, and know what is good, what is bad about them etc etc. I am also happy to advise on anything mechanical! If anyone needs any 3D CAD models of anything knocking up, just give me a shout!
Onwards with the reading!
cheers
Andy _________________ How do you explain \"Wet\" to a fish? |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1029 Location: Manchester, UK
|
Posted: Tue Jan 30, 2007 2:54 pm Post subject: |
|
|
I am not massively familiar with RC gear so I will take your word on that one
The hardware for OpenServo is very simple, and was designed that way. Simple keeps headaches at bay!
If you are looking to create your own OpenServo fro scratch you will need a few tools and hardware. Obviously you will need the equipment to fabricate your own boards and solder the components on there. I would suggest getting a pre built servo from Robot Jay http://www.openservo.com/forums/viewtopic.php?t=188
Even if you want to buy a pre built servo from Jay ($20 is very reasonable given the exchange rate) you might eventually want to flash the board yourself. You can homebrew a flasher board, or buy a board. I am guessing your JTAGICE has the programmer compliment to go with it?
Details of getting the bootloader on there are here
http://www.openservo.com/moin.cgi/ServoBootstrapping
Once the bootloader is burned onto the AVR, the application code can be uploaded via the I2C protocol.
Once bootstrapped you can upload the application code (using Diolan interface)
http://www.openservo.com/moin.cgi/ServoProgramming
If you are using a different interface shout out in the forums and I will knock together some code. I have a small library of OpenServo functions that I can pretty much reinterpret for any interface.
How you interface the I2C master with the OpenServo is left up to you. For experimentation and development some of us have been using Diolan U2C USB->I2C controllers. As a rule of thumb if it comes with an I2C interface it will work (I tried a Basic Stamp 12p and that is easy to use)
| Quote: | | I might not be much use on the electronic side (writing a few basic PIC programs is about my limit!), but I have installed a lot of RC servos, and know what is good, what is bad about them etc etc |
Excellent! Any knowledge is good knowledge.
P.S I am looking to create a more concise instruction guide for setting up for development/usage. Keep your eyes peeled.
Barry _________________ http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/ |
|
| Back to top |
|
 |
bigandy
Joined: 30 Jan 2007 Posts: 18 Location: Abergele, North Wales
|
Posted: Tue Jan 30, 2007 5:14 pm Post subject: |
|
|
Hi Barry,
Thanks for that breif explanation of the basics! I was beginning to notice the lack of a basic overview of the process of getting from an assembled PCB, to having a servo that can communicate with an I2C bus and be commanded to a position/set up etc.
From what I can gather, the order of events is:
1. Build Servo circuit up/install in servo mechanics.
2. Burn bootloader code into MCU (bootstrapping?)
3. Use I2C bridge (eg diolan U2c-12) to use bootloader code to load openservo code into MCU
4. Cycle power to servo, and run using I2C bus to control/set up servo.
I have not really heard of the term bootstrapping before, but I presume it means the initial loading of the bootloader code into the MCU? If that is the case, then I am pretty sure the JTAG ICE (it's the MK2 version) can cope with that. I managed to flash a load of code into a Mega16 MCU a while back, so I'll have to look at my notes to remember what I did!
I think I shall be ordering one of the prebuilt boards from jay though, it seems like a very good price, and means I can get on with making something move, instead of soldering....
I have had a look at the diolan interface too, and it looks rather useful, and not just as an I2C bridge. I notice it has a GPIO breakout connector, which I could find a lot of uses for. Do you know if the GPIO features can be used simultaneously with the I2C features?
Cheers
Andy _________________ How do you explain \"Wet\" to a fish? |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1029 Location: Manchester, UK
|
Posted: Tue Jan 30, 2007 5:46 pm Post subject: |
|
|
Your process list is exactly right.
Bootstrapping is the name given to putting the initial bootloader. You don't really even need to to the power cycle as you can send the i2C reboot command to boot into the OpenServo application, but that is academic at this stage
I don't personally use a Diolan unit, so I couldn't say for certain, but for the interface code I wrote for it I would say yes. Mike and Jay have one of these, hopefully they will confirm for me.
Barry _________________ http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/ |
|
| Back to top |
|
 |
bigandy
Joined: 30 Jan 2007 Posts: 18 Location: Abergele, North Wales
|
Posted: Tue Jan 30, 2007 9:36 pm Post subject: |
|
|
Oh good, at least some of the stuff I have been reading has sunk in!
May I ask what interface you are using? I'm just tryingt o get a feel for the sort of applications people are using openservos in, and how they are being commanded.
I'm going to have a mooch through the code on the CVS tomorrow, and see if I can understand it Hopefully it will answer a few questions I have, like the clock speed, some of the timings in the system, such as max I2C bus speed, servo feedback pot sampling rate etc. etc....
It's certainly very interesting this project!
Cheers
Andy _________________ How do you explain \"Wet\" to a fish? |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1029 Location: Manchester, UK
|
Posted: Tue Jan 30, 2007 10:14 pm Post subject: |
|
|
Hi Andy,
I use a couple of different interfaces, a Gumstix single board computer (it's really small) and a pic with software I2C emulation.
I can give you a basic answer for some of the things you just queried:-
AVR CPU speed = 8MHZ (internal oscillator)
I2C Clock speed = ~120khz (depends on I2C controller)
Pot sample rate = 10ms
Thankfully the code is well documented, so browsing through should give you a rough idea of what is going on.
Barry _________________ http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/ |
|
| Back to top |
|
 |
mpthompson
Joined: 02 Jan 2006 Posts: 650 Location: San Carlos, CA
|
Posted: Mon Feb 05, 2007 5:34 pm Post subject: |
|
|
Andy, as you describe yourself as ""very keen on anything Radio controlled"" you may be interested in the OpenServo now supporting standard R/C pulse control in addition to the I2C serial protocol. If you were to build an OpenServo I would be very interested in hearing how it performs being controlled from a standard R/C servo controller. One nice aspect of this new feature it may allow people to come up with creative servo designs for R/C vehicles that go beyond the usual servo form factor -- perhaps controlling incredibly small are incredibly large motors.
Some more information regarding this new feature is here:
http://openservo.com/moin.cgi/ServoSignaling
I also appreciate your comments regarding your attempt to understand how to go about building an OpenServo. I and others realize the site can use some substantial improvement in this area. The most important thing the OpenServo can do over the next 6 months is to make getting started and experimenting with the OpenServo as easy as possible. Hopefully you'll see a dramatic change in this regards over the coming months.
-Mike |
|
| Back to top |
|
 |
bigandy
Joined: 30 Jan 2007 Posts: 18 Location: Abergele, North Wales
|
Posted: Wed Feb 07, 2007 10:02 pm Post subject: |
|
|
Hello Mike,
I have just been reading the PWM input thread over in the software section, and posted a few comments there that I felt might add to the thread somewhat The link you posted above though has answered a couple of the questions I asked there already too!
I have been reading up on all the forum posts, information and software for the Open servo project, and I am finding it fascinating! At the moment I am struggling with the code a little, as I only have a very very breif knowledge of the C language and structure, although the comments are helping a lot
I am trying to gather together bits so I can spend a bit of tme playing with an openservo, so far I only have the JTAG programmer for AVR chips, but I am planning on ordering one of the boards this weekend to build a servo. Then all I need is an I2C interface of some sort! I am wondering if I can knock up a simple PIC routine to relay commands from a PC rs232 terminal to the I2C bus, but I am thinking that I shall probably end up buying one of the dimax interfaces!
Cheers
Andy _________________ How do you explain \"Wet\" to a fish? |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1029 Location: Manchester, UK
|
|
| Back to top |
|
 |
bigandy
Joined: 30 Jan 2007 Posts: 18 Location: Abergele, North Wales
|
Posted: Wed Feb 07, 2007 10:26 pm Post subject: |
|
|
Hi Barry,
I have just seen that link through a post made by Mike elsewhere in the forum. It certainly looks nice and simple on the hardware front! I'm keen to hear of any news on it's suitability too, as it would be perfect for me (i.e. easy to construct, with all the code already available, and has drivers for MS windows).
Hopefully it will work well
Cheers
Andy _________________ How do you explain \"Wet\" to a fish? |
|
| Back to top |
|
 |
mpthompson
Joined: 02 Jan 2006 Posts: 650 Location: San Carlos, CA
|
Posted: Wed Feb 07, 2007 10:27 pm Post subject: |
|
|
Andy, regarding I2C I would suggest you wait to hear back on Barry's results with the USB-to-I2C bridge he will be testing out. I had good luck with the Dimax when I purchased it a year ago, but others have had problems with their orders from the company. They are a company out of Israel and it seems they were bought out (or something similar) which caused some issues as well as general international shipping from Israel being a pain.
If you order a Dimax it will certainly get you going pretty quickly and my software to program the OpenServo using it is available as a download. However, if things work out with USB-to-I2C solution it will become the standard we use to help people get started with the OpenServo which could be of more benefit to you.
-Mike |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1029 Location: Manchester, UK
|
|
| Back to top |
|
 |
mpthompson
Joined: 02 Jan 2006 Posts: 650 Location: San Carlos, CA
|
Posted: Wed Feb 07, 2007 10:53 pm Post subject: |
|
|
Barry I hope you have luck finding the ATtiny45 on your side of the pond.
Something I have been thinking about is we need to make sure the USB-to-I2C bridge supports clock-stretching. Hopefully it does and this isn't a major issue. If not, we would have to run the bridge a really low speed (something like 5k or 10k Hz) or implement it ourselves.
-Mike |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|