| View previous topic :: View next topic |
| Author |
Message |
bigandy
Joined: 30 Jan 2007 Posts: 18 Location: Abergele, North Wales
|
Posted: Mon Feb 26, 2007 12:11 pm Post subject: |
|
|
Hi Folks,
Personally, I think I would only be using the USB-I2C bridge for programming and basic testing, the main control coming from either a PWM signal, or a dedicated micro in the application, so this looks ideal for me. The same goes with the GPIO ports, although they do add a bit of extra functionality, I can't really see me using them. Except, perhaps, to flash a few LED's here and there for effect
I would go for the 33x33mm layout too, simply because it means more boards per ? I would try and make room for the fourth mounting point too, although looking at the layout, it might be a bit difficult to shuffle everything up the board slightly.
Cheers
Andy
PS. I wouldn't mind taking one of the spare boards you have if that is okay? Let me know how much, and how to pay for it  _________________ How do you explain \"Wet\" to a fish? |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1027 Location: Manchester, UK
|
Posted: Mon Feb 26, 2007 1:52 pm Post subject: |
|
|
Hi All
I have taken your comments onboard and added the fourth mounting hole.
I have a little room left over with the new layout, any requests? An LED maybe?
Both sides + legend
Top layer
Bottom Layer
Parts placement
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 26, 2007 5:53 pm Post subject: |
|
|
Barry,
It's looking really good for it's intended purpose. I think power LED and one LED under GPIO control would be useful for a visual indicator if you could fit them in.
Also, I think we need a name for this board. Any ideas? Perhaps something like the OSIF for ""OpenServo InterFace"" board or something. Basically something so that we can all refer to it in a standard way when describing something on the web site or in these forums.
-Mike
Last edited by mpthompson on Mon Feb 26, 2007 6:17 pm; edited 1 time in total |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1027 Location: Manchester, UK
|
Posted: Mon Feb 26, 2007 6:02 pm Post subject: |
|
|
Hi,
I can squeeze a couple of GPIO led/breakout pins with the available space. Does anyone have an aversion to SMT LEDs?
How about OpenServo Interface Reflash Io System - OSIRIS
OSIF sounds good.
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 26, 2007 6:20 pm Post subject: |
|
|
The little buggers can be hard to solder, but not much harder than any other SMT parts. I have no problems with using them.
-Mike |
|
| Back to top |
|
 |
robotjay co-admin
Joined: 01 Aug 2006 Posts: 225 Location: Nebraska, USA
|
Posted: Mon Feb 26, 2007 6:45 pm Post subject: |
|
|
Barry,
I love the look of the boards, and I will agree with you and Andy that the extra GPIO lines aren't especially necessary.
I have a question, would it be a good idea to change the components from surface mount to thru-hole? I think most hobbyists have plenty of skill to solder old-school thru-hole components, but hand soldering SMT parts is ridiculously hard without a stencil. (Honestly, I am still amazed that you and Mike can do that. You guys are like the Michael Jordans of SMT soldering.) Either way, thru-hole components would allow me to sell a PCB and it's parts as a kit, which will significantly reduce the cost to make one of these boards, as people wouldn't have to pay me for labor. What do you guys think? _________________ "Nothing is fool-proof; For we fools are ingenious and will find a way." |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1027 Location: Manchester, UK
|
Posted: Mon Feb 26, 2007 6:51 pm Post subject: |
|
|
I'm not sure that it is worth redesigning this as through hole.
One of the goals was to use the same processor as the OpenServo, which means we have to use SMT for at least the AVR. Unfortunately this is the hardest component to hand solder.
All of the SMT components are on one side, so it should be easy enough to oven reflow a few. If you don't fancy it I can get it arranged.
If everyone decides to go through hole I will support that and redesign as needed.
Barry _________________ http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/ |
|
| Back to top |
|
 |
robotjay co-admin
Joined: 01 Aug 2006 Posts: 225 Location: Nebraska, USA
|
Posted: Mon Feb 26, 2007 8:24 pm Post subject: |
|
|
Barry,
I understand if you don't feel it's necessary to go with thru hole. I just thought I'd throw the idea out there.
I'm finidng it nearly impossible to locate a 12 MHz Crystal in thru-hole package here in the US. Would you be willing to sell me the components along with a bareboard (minus the AVR, because I already have those.) It'll save me time and money if you could. E-mail me with your response.
-Jay _________________ "Nothing is fool-proof; For we fools are ingenious and will find a way." |
|
| Back to top |
|
 |
mpthompson
Joined: 02 Jan 2006 Posts: 650 Location: San Carlos, CA
|
Posted: Mon Feb 26, 2007 9:03 pm Post subject: |
|
|
I don't have an issue with surface mount or through-hole components. Either way would work for me personally.
I'm hoping that most people interested in the OpenServo would simply buy an assembled board to get started quickly. What would the cost to an end user for an assembled board likely to be? Anything in the $30 to $40 range would seem to be a good deal to me.
-Mike |
|
| Back to top |
|
 |
robotjay co-admin
Joined: 01 Aug 2006 Posts: 225 Location: Nebraska, USA
|
Posted: Mon Feb 26, 2007 9:10 pm Post subject: |
|
|
After running through cost estimates, I think it is feasible to sell these for $40 each, as long as I don't get raped by Farnel to ship the crystal oscillator here to the US. I don't know if it's because I am buying in low volume or what, but Farnell's shipping rates are outrageous. I was able to source 98% of the board from DigiKey, but as I mentioned above, I can't find the oscillator in a thru-hole package. _________________ "Nothing is fool-proof; For we fools are ingenious and will find a way." |
|
| Back to top |
|
 |
mpthompson
Joined: 02 Jan 2006 Posts: 650 Location: San Carlos, CA
|
|
| Back to top |
|
 |
robotjay co-admin
Joined: 01 Aug 2006 Posts: 225 Location: Nebraska, USA
|
Posted: Wed Feb 28, 2007 8:37 pm Post subject: |
|
|
Hi again!
Because Barry didn't seem real thrilled about redesigning the board he just laid out, I went ahead and redesigned Barry's version of the USB-mega-I2C, and made everything thru hole. The reason I wanted a redesign is two-fold: 1.) Hand soldering surface mount parts is nearly impossible for me, and I've damaged more than a couple MCUs while attempting to do it. 2.) Buying stencils for reflowing is not cheap, and I want to save money where I can.
After completing the redesign, I did some cost estimations, and the money that I would save personally (by not having to buy a new solder paste stencil) is negated by the cost of Thru-hole components. I never realized it before I started working with SMT parts, but in low quantity, Thru Hole components are almost 5 times as expensive as Surface Mount parts. This negates any reason for me to not just buy a new stencil and reflow them.
I'll go ahead and post my work, in case there's anyone out there who wants to save a little money by doing it themselves, without needing access to reflow equipment. My version includes extra I2C headers, in case we get this hardware fast enough to handle multiple servos. I also brought back the 10-pin ISP header, and added an 8-pin socket for easy reflashing of the bootloader.
The Parts List, Eagle schematics, and Board files are contained in this ZIP file.
Schematics:
Top Side:
Bottom Side:
Part Placement/Silkscreen Layer:
Although it was mostly a waste of time to have redesigned this board, it did give me valueable hands-on experience with EaglePCB. I ran through a couple tutorials, and tried my best to mimick Barry's design. Hopefully this is an acceptable version, and now I feel comfortable enough with Eagle to contribute more to the layout processes where we need them. Enjoy!
-Jay _________________ "Nothing is fool-proof; For we fools are ingenious and will find a way." |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1027 Location: Manchester, UK
|
Posted: Wed Feb 28, 2007 10:57 pm Post subject: |
|
|
Hi Jay,
Good work!
I like the boards, and it doesn't hurt to have in the arsenal. I will check it into CVS if you want.
Just a quick note about the top layer... I have found it difficult to solder to the top side of the board when using through hole components. You can't quite get the iron under those header pins, and sometimes they get mangled.
If you look at the boards I have done, I used a via just a little bit away from the component to break to the bottom layer. It makes it a little easier to hand solder.
Don't take this as critisism, I am very happy that you have done this.
To make solder paste stencils I etch a thin sheet of copper away to leave just the needed mask, and then use a piece of card to scrape the paste over the board. I am working on using a CD/RW laser on my milling machine to cut transparency sheet to make this easier.
Barry _________________ http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/ |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1027 Location: Manchester, UK
|
Posted: Sun Mar 04, 2007 11:25 pm Post subject: |
|
|
Hi all,
I have checked in my driver code for the OSIF interface. This is a DLL and a command line test program. it is not completely ready, but is entirely functional. I am checking in now as my laptop hard drive is starting to click.
The DLL has a simple interface to communicate, as below:
| Code: |
//read an 8 or 16 bit value and return as int
int OSIF_readbytes(int adapter, int servo, unsigned char addr, int length);
//write an 8 bit int
int OSIF_write8(int adapter, int servo, unsigned char addr, int data);
//write a 16 bit int
int OSIF_write16(int adapter, int servo, unsigned char addr, int data);
//initialise /deinitialise the device
int OSIF_init(void);
int OSIF_deinit(void);
//read n bytes
int OSIF_read(int adapter, int servo, unsigned char addr, unsigned char * data, size_t buflen );
//write n bytes
int OSIF_write(int adapter, int servo, unsigned char addr, unsigned char * data, size_t buflen );
//scan for bus devices returns array of int and found count
int OSIF_scan(int adapter, int *devices, int *dev_count );
//returns true if servo exists
bool OSIF_probe(int adapter, int servo );
//send a command
int OSIF_command(int adapter, int servo, unsigned char command);
//reflash application with filename intel hex
int OSIF_reflash(int adapter, int servo, int bootloader_addr, char *filename);
|
The new driver is in CVS at
.../Interfaces/OpenServo_InterFace/driver/dll/
I have also renamed the directory in CVS. I recommend a clean checkout.
http://www.openservo.com/viewcvs/viewcvs.cgi/OpenServo/Interfaces/OpenServo_InterFace/
I also checked in my latest OSIF PCB. It has3 GPIO pins that break out as well as optional power and status LED's. The breakouts are 1x ADC and RX+TX
As always, comments welcome.
Cheers,
Barry _________________ http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/ |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1027 Location: Manchester, UK
|
Posted: Mon Mar 05, 2007 5:45 pm Post subject: |
|
|
Help!
I am stuck on something that has me thinking in circles...
The Connector on this beastie is an 8 pin OpenServo connector, wired so that you can plug in a standard ribbon cable between the OpenServo and the USB board.
You may be thinking ""Great!"", but this has a real down side... You can't program new firmware onto the OSIF board without having an adapter on the OpenServo flash cable. As the pinout for the USB board has the same pin out as the flasher cable/board you would need to make a cable that bridges the two. IIRC there are only a few people that use the parallel port method anyway, and otherwise use Mike's AVR ISP to OpenServo PCB. If that is the case I don't see a problem here. Nothing needs to change.
It's not too late for me to rearrange the layout to allow for flashing with the standard OpenServo flash lead if that is what is desired.
Here is what has me thinking in circles...
If I leave the layout as it is, we can use some fairly simple firmware inside the OSIF board to bootstrap the OpenServo. Yes, It can be converted into a programmer too! And it will be able to flash any AVRDUDE supported device (with adapter cable)
So the question comes down to this:
Redesign the board to allow for flashing from an already modified OpenServo cable.
or
make your own cable and allow for reflashing the OpenServo with a very simple cable.
Help! I have until tomorrow 1PM (GMT) to let the board house know what is going on.
Barry _________________ http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/ |
|
| 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
|