geoffculp

# Aug 02 2010 - 8:08 PM

Milwaukee, WI

All,
I've been working on another revision to the kegboard shield and I'm hoping that you can give this version a look over and let me know what you think. While the mega sized version is great for the guys who have the Arduino Mega, I wanted to see if I could make a smaller revision for us regular kegbots.

I've been able to included most of the major features from the mega version but with a few new things here and there. All crammed onto a circuit board sized 2.5x3.5 inches.

The biggest change is to the loads that the four relays switch. I've added pin headers that allow you to select\jumper which load source that the relays would switch. Now each relay could switch 5V loads or VIN\12V loads. I did this because I was trying to find a way to use two of the relays to eventually control the solenoid valves. After double checking the datasheets I think the current draw from the solenoid valves (1.22 amp each) would be too much anyways. Either way, this could be useful as long as you stay under ~1A for the load on the Arduino VIN pin.

Board Layout:



Schematic Link:
http://picasaweb.google.com/lh/photo/_M9eq0Nw3uW9VvCotKZynQ?feat=directlink


A couple of open ended questions:

    I'm not sure why but Eagle keeps complaining about the Xbee Reset pin and the RTS pin. Should we include an extra reset button? Is the RTS pin required during typical serial operation?

    Is automatic routing of the traces okay? Do you prefer to route the vias manually? It seemed to work out okay in this case.

    I noticed that the Sparkfun protoboard has two 0.1uF caps on board. Would it help to include more capacitors? Either the small ones (0.1uf) or the larger ones (10\100uf).


Cheers,


Edited by geoffculp (Aug. 4, 2010 21:29:25)






mike

# Aug 03 2010 - 9:08 PM

Hi Geoff,

Nice progress. I'm leaning back towards building the mini (non-mega) version, for a few reasons:
- it seems like it would be sufficient for most kegbotters
- (it would certainly be sufficient for me
- kinks/new ideas can be worked out with a smaller initial cost; build the bigger board later
- giant keg setups are still possible (with multiple kegboards)

I still have my original 'mini' shield schematic in mercurial. I'm going to break it out into two versions, mini and mega, and focus back on the mini version. I'd be happy to merge your layout and changes back into that if you're game.

Your layout looks pretty nice. A few comments:

- We could probably use another RJ-45, rather than an RJ-11, for the OneWire connection. The smaller connector will fit into the larger receptacle, and we can still pin it out appropriately for the Blue Dot adapter.

This way, there's only one type of receptacle to buy (simplifies the BOM), and we can find something useful to do with the extra pins (eg for setups which do not use ibutton.)

- I'm wondering about the vertical clearance between the shield and the arduino. This is most likely to be a problem near the USB-B connector, under the xbee module in your layout. Might warrant shifting the XBee to the left a tick or two.

- Another issue with the XBee: IIRC it takes a 3v3 supply, so needs a 3v3 source. In fact, I think the whole part is 3v3, requiring level shifting on the logic inputs. It'd be a few parts to add; see http://www.ladyada.net/make/xbee/ for a modular design.

An alternative to adding the level shifting to the shield would be to instead add a header for that specific module. I think frenchmoo did something like this. The advantage is reduced cost for those who do not need XBee.

- What's the 3-pin connector to the right of the XBee?

- What's the 2-pin connector with RXI/TXO?

- Drill holes aligned with the same on the arduino would be nice (actually someone suggested this on my blog.) Since the board will offset the arduino & has lots of stuff on it, some standoffs between them for support couldn't hurt.

- Regarding the relay voltages, I'm not sure I follow. The load voltage for something switched by relay is external to the board. The coil voltage should be 5v, and within the power budget of the board as a whole.


I'm not sure why but Eagle keeps complaining about the Xbee Reset pin and the RTS pin. Should we include an extra reset button? Is the RTS pin required during typical serial operation?


Depends on the complaint; unconnected inputs warnings are fine, so long as that's what is intended. Probably should connect the RST (reset) pin to the board reset. As for RTS, I'm not sure if it has much use. On the FTDI part on Arduino boards, RTS is tied to reset so that a serial RTS can be used to restart the board - convenient when reprogramming. I'll see what the technique is for XBee reprogramming.


Is automatic routing of the traces okay? Do you prefer to route the vias manually? It seemed to work out okay in this case.


I'm not a purist about auto-routing, especially because this is a low-power and low-frequency application. (Not coincidentally, I am not an expert in hand-routing nor signal integrity; I wouldn't reject a handcrafted layout, however

I'd autoroute, then check specific connections. In some cases I might hand route an important trace. I'd want to use thicker traces for the relay loads -- there's a formula somewhere where you can estimate the right amount of copper for a given load.

Oh, I almost forgot about that. In my mega design, I had optimized the relay/connector placement so that the relay load traces would be short. Rearranging them on your board seems doable.

cheers,
mike




geoffculp

# Aug 04 2010 - 9:08 PM

Milwaukee, WI

Thanks for the comments, I'm relieved that overall it seems like this kegboard design might be useful.

Nice progress. I'm leaning back towards building the mini (non-mega) version, for a few reasons:
- it seems like it would be sufficient for most kegbotters
- (it would certainly be sufficient for me
- kinks/new ideas can be worked out with a smaller initial cost; build the bigger board later
- giant keg setups are still possible (with multiple kegboards)

Agreed on all points, I was especially trying to keep the overall size small enough to fit into my door mounted project box (4"x6").

I still have my original 'mini' shield schematic in mercurial. I'm going to break it out into two versions, mini and mega, and focus back on the mini version. I'd be happy to merge your layout and changes back into that if you're game.

For sure!

- We could probably use another RJ-45, rather than an RJ-11, for the OneWire connection. The smaller connector will fit into the larger receptacle, and we can still pin it out appropriately for the Blue Dot adapter.
This way, there's only one type of receptacle to buy (simplifies the BOM), and we can find something useful to do with the extra pins (eg for setups which do not use ibutton.)

Seems reasonable, what other uses did you have in mind for the extra pins?

- I'm wondering about the vertical clearance between the shield and the arduino. This is most likely to be a problem near the USB-B connector, under the xbee module in your layout. Might warrant shifting the XBee to the left a tick or two.

I'm 99% sure that there's enough clearance between the kegboard and the Arduino. I spent way too much time measuring and remeasuring the arduino and the different protoboard shields I have. Try printing out the board layout (1:1 scale) and then overlay an Arduino. Example
We should have enough clearance between the kegboard and the USB-B connector\power jack. Especially if we use the stackable pin headers for the connection to the Arduino.

The Sparkfun protoboard(and library part) almost has enough offset away from the USB-B connector, but it's still pretty close. That's why I shifted the arduino_shield part down 0.1".

- Another issue with the XBee: IIRC it takes a 3v3 supply, so needs a 3v3 source. In fact, I think the whole part is 3v3, requiring level shifting on the logic inputs. It'd be a few parts to add; see http://www.ladyada.net/make/xbee/ for a modular design.

All ready included, though I must admit that I don't have any hands on experience with the Xbee radios. I pretty much used the SFE Xbee wireless shield schematic as a base reference.

An alternative to adding the level shifting to the shield would be to instead add a header for that specific module. I think frenchmoo did something like this. The advantage is reduced cost for those who do not need XBee.

Yes I thought about something similar. I was thinking that there's no reason why you couldn't stack the Xbee board, on top of the kegboard, on top of the Arduino.

- What's the 3-pin connector to the right of the XBee?

That's the 3.3V voltage regulator for the Xbee radio. For what ever reason I can't find a good Eagle libary part for voltage regulators. This example has a LM7833 with an attached heatsink. Though I'm assuming the heatsink won't be required.

- What's the 2-pin connector with RXI/TXO?

Might be unnecessary\redundant, but it's for the Arduino serial pins (D0, D1) In case someone wanted a secure way to connect other serial devices to the Arduino. Maybe the Parallax RFID reader.

- Drill holes aligned with the same on the arduino would be nice (actually someone suggested this on my blog.) Since the board will offset the arduino & has lots of stuff on it, some standoffs between them for support couldn't hurt.

Hum, that guy must be really smart because that's a good idea. I originally planned on including standoff holes over the two Arduino holes. But I took them out because they were in the way of some parts I was trying to place. We should be able to shift some parts around and get it back in before the final revision.

- Regarding the relay voltages, I'm not sure I follow. The load voltage for something switched by relay is external to the board. The coil voltage should be 5v, and within the power budget of the board as a whole.

Try picturing a 12v power adapter connected to the Arduino power jack. Then with 12V on the VIN pin, I'm able to feed that into the relays to switch 12V loads. I'm sure there's plenty of room for improvement.

Depends on the complaint; unconnected inputs warnings are fine, so long as that's what is intended. Probably should connect the RST (reset) pin to the board reset. As for RTS, I'm not sure if it has much use. On the FTDI part on Arduino boards, RTS is tied to reset so that a serial RTS can be used to restart the board - convenient when reprogramming. I'll see what the technique is for XBee reprogramming.

Thanks for the info, now I'm started to understand to the role of the RTS pin on various devices.

I'm not a purist about auto-routing, especially because this is a low-power and low-frequency application. (Not coincidentally, I am not an expert in hand-routing nor signal integrity; I wouldn't reject a handcrafted layout, however
I'd autoroute, then check specific connections. In some cases I might hand route an important trace. I'd want to use thicker traces for the relay loads -- there's a formula somewhere where you can estimate the right amount of copper for a given load.

Agreed about increasing the width of the relay load vias.

In my mega design, I had optimized the relay/connector placement so that the relay load traces would be short. Rearranging them on your board seems doable.

It might not be apparent but I did try to keep things like this mind during the board design.

    Digital I\O vias\parts - left side and top edge

    Relays\power loads - middle\right edge

    Xbee - bottom middle


I'm hoping that we can continue to flesh out some more design issues and hopefully get a test batch out to a PCB manufacture.

Cheers,
Geoff