Archive for the 'Hardware Architecture' Category

Core HW and SW decisions for first draft

May 04th, 2008 | Category: Device Prototypes, Hardware Architecture

So now I need to decide:

Hardware addresses

Do I need to buy a MAC address block? Do I need to buy an IEEE address block? Is there any way I can do without either one? The experimenter community should buy a block of each and sell them off in small amounts. Also, they seem redundant. When I have a device with ethernet and zigbee both, I have two nearly identical 64bit addresses. Both expensive, too!

Core component makeup

I also need to decide between a highly-integrated solution (like ConnectOne for Internet and and TI for Zigbee) and something I roll myself using cheap Microsoft parts. My choices now are:

  1. Microchip Ethernet controller for the Ethernet solution. Lowest cost I think.
  2. Wiznet for the Ethernet solution. Probably most robust, lower code overhead.
  3. ConnectOne would be even more robust and simpler (includes DHCP, keepalive, etc), but it would be more expensive.
  4. TI would likely be the most robust, lowest code overhead Zigbee solution, but it would be the most expensive.
  5. Microchip would probably be the cheapest Zigbee solution, but it would require a micro to hold the stack and do all the work. If I’m lucky, the Zigbee stack could fit in the same micro with the Ethernet stack.

Module first draft

Should I do a very quick first draft using modules? If so, are there any that offer a path to a custom component-level solution?  I doubt it.  I probably need to break down and admit the same thing that everyone else has: that the Digi-style smart ethernet connector, and the Xbee, are the best way to go for prototyping and even small volume production.  About $50 parts cost, or about $80 my sale price for one-off production.

If I go this route, I clearly will NOT make a single design for gateway and devices.

No comments

Ethernet solutions

May 04th, 2008 | Category: Hardware Architecture, Network Bridges

What is my Ethernet solution?

Obviously WizNet would be a cool way to go. But it seems that no one has ever said it was easy. There are no documented projects anywhere that I can find. The company site is pretty awful. They do have some code for a PIC18F I think, and I think for an AVR.

What about Rabbit? I think that this micro would make dev easy, as the source code is so well documented, and the tools and app notes etc are great. But it is a difficult micro to design in, and not that cheap (128LQFP, $12/1, $10/100, $8/1k).

Rabbit Core module with Ethernet ($75) could have a TI part ($10) added to it, for a $100 gateway solution.

uTasker is an ethernet OS for a number of platforms that apparently gets one on the web immediately. Also can run as a simulator. Finally, when you are ready to go commercial, you can buy a licence for next to nothing ($500).

How can I end up with only one main costly CPU? Well, at 1k units, the Jennic+Winbond memory solution is about $5.50, and the WizNet chip is $5 in any volume, according to Saelig. So I think in volume this raw solution is about $10. I think the Jennic radio has plenty of surplus horsepower for doing the TCP part while also doing the radio part. This may be my best bet!

If I think this is not the case, that I should divide things up firther, I am looking at a Wiznet chip ($5), a TI radio ($10), and a micro (MSP430 $5) for something like a $18-20 solution. Would this be more flexible and adaptable? Does TI make an Ethernet micro? Not that I can see. But here is a Rowley article about porting an open Ethernet tasking system to the MSP430. No DHCP. And here is a TI app note on internet-connecting the MSP430 using a raw Ethernet chip. But none of these sound like complete solutions.

Wiznet’s W5100 page has some resources worth studying, including Circuit Cellar’s article on getting the W5100 up and running with a PIC18; the Wiznet SPI guide; datasheets; and a bunch of useful FAQs.

Notable is an app note on DHCP, which I was very much hoping the chip would take care of FOR me. But no. My system must do this. Fortunately it is not too hard. Still, wanted that to happen. The app note is clear and in good English, though.

Xport ($50/1) might be a way to quickly prototype, but I worry that it is a sidetrack: there is no production path, so I might be better off doing the DHCP work myself and using a WizNet module, $20 from Saelig. However, a discussion on the WizNet forums notes that even their modules contain no MAC addresses (and that they cost $1600). Bummer.

Here is a Circuit Cellar article from 2006 about combining Microchip’s Ethernet part and an Xbee module to create a bridge. Very quick, uses UDP.

A microchip solution would be the ENC28J60 ethernet controller, a micro with stack in it, and a Microchip Zigbee radio micro, also with Mchip zigbee stack.

An option for a Jennic solution would be to prototype with a Jennic module ($23/1 DK) and a Wiznet serial-Ethernet bridge ($29 Saelig). This would be $50 or so of parts to prototype (and could be condensed to $10 or so chips cost at 1k volumes of a full custom design).

ConnectOne makes an Ethernet chip too, which is about $11/1, and who knows how much in volume. Does everything, DHCP etc, with simple AT style commands. Needs external flash, or can take info from host (so only one flash shared between Jennic and ConnectOne). Mouser sells them, at least the samples. Arrow also sells them, say $8.50/1 but no stock. If that is true, then these might well be a better way to go than the Wiznet parts. Here is an old Circuit Cellar article on using them, with simple schematic and AT command overview. Call Arrow. I read a press release from ConnectOne that says that they DON’T need external flash. So which is it?

Mouser sells the Xport module for $30/1, and a low cost wireless version for only $45/1. This would be a pretty elegant solution, but very hard to get to the commercial price point! Again, maybe the ethernet module is a useful solution for the short term, proof of concept.

This press release is for a commercial gateway, not yet out, which uses an ARM processor with Ethernet, and a Jennic 5139 micro.

This Circuit Cellar article looks at an Ethernet micro by Axis, the AX110xx. Sounds like it might be hard to use.

These guys make a very simple ethernet to zigbee bridge device using the Digi socket and an Xbee. Probably will be $150 or so.

Here is a Korean commercial gateway board which uses the Wiznet chip and Atmel Zigbee radio.

Here is a commercial gateway by Telegis which simply puts a housing around a Digi socket and a Telegis module! $180

Digi has made a cheaper version of their z-e gateway, $199. Python programmable, comes with PC software too. I think made for Xbee modules.

MAC addresses

Do any Zigbee chips come with MAC addresses? Do any Ethernet chips come with them? If not, I will never be able to sell anything, as I cannot afford to buy these things and then serially program them into devices. I’d have to shell out $5k or whatever to but a block of each.

So maybe my designs will have modules in them. But then, I won’t be making any improvements over other people’s work!

Vendors ruled out

Ember is too expensive and complex. The EM250 micro doesn’t have the Zigbee stack in ROM, and they are too hard to work with, and the tools are too expensive. The EM260 might be OK, as there is a microchip/ccs dev system for it, but what do I gain?

Components in the running

  • ConnectOne $11.50/1, $8/1k
  • Wiznet 5100 $5.50/1, $5/1k
  • Microchip ethernet micro $4/1, $3.50/1k
  • Luminary ethernet micro $9/1, $7/100, $6/1k
  • Freescale ethernet micro $10/1, $7.50/1k
  • TI radio $13.50/1, $10/1k
  • Jennic radio/micro $12.50/1, $4.50/1k
  • Ember radio $9.50/1, $6/1k
  • Microchip radio $3/1, $2.50/1k

Possible Configurations

Some of the main configs I am looking at, to be studied carefully and compared for initial cost, initial time to demo, difficulty for short term, production path, cost and complexity for production.

  1. Connect One + Jennic: $24/1, $12.50/1k
  2. uTasker+Luminary + TI: $22/1, $16/1k
  3. uTasker+Luminary + Jennic: $22/1, $11/1k
  4. Wiznet + Jennic: $18/1, $10/1k
  5. Microchip ethernet micro w/radio duties, + TI: $17/1, $13.50/1k
  6. Microchip ethernet micro + Jennic: $16.50/1, $8/1k
  7. Microchip ethernet micro + Ember radio $13.50/1, 9.50/1k
  8. Wiznet Ethernet + Microchip micro (w/radio stack) + Microchip radio: $11/1, 9/1k
  9. Microchip ethernet micro + Microchip micro (radio stack) + Microchip radio: $10/1, $8.50/1k
  10. Microchip ethernet micro (with radio stack in it too) + Microchip radio: $7/1, $6/1k

For the last, lowest-cost option, I would need to somehow wedge BOTH stacks in the same micro. I think this is too complex, if it is even possible. Maybe what I could do is start with an extra micro, just for simplicity. Then later merge the two code bases into one, if possible.

Here is a Microchip Zigbee dev kit with a network analyzer board too ($270). Here is a dev board supporting both their ethernet controller and their ethernet micro.

One design for all?

Option number five is intriguing as I could make a single solution for everything. For $17/13, I could easily make a part which can act as either a gateway or an end device, depending on Ethernet connectivity. Maybe I should look into this further! Even if I don’t do this, I think that offloading much of the responsibility for the Zigbee system is a good idea, even if it is very expensive.

Having said that, option nine could potentially be the same solution, if I was a clever enough programmer, for half the cost.

  • Wiznet+micro+TI: expensive, but compelling forall the offloading it can do for me!  And still a lot cheaper than the off the shelf solutions.  Also, I think it would be more robust to separate my code from the two stacks.   $23/1, $14/1k
  • Microchip+TI: probably doable to have Zigbee code in the same micro,  $17/1, $12/1k
  • Microchip+microchip: cheapest, if it is possible to wedge both stacks into the same micro, $7/1, $6/1k
4 comments

Ethernet Module Selection

March 19th, 2008 | Category: Hardware Architecture, Network Bridges

The key is finding an Ethernet solution which has a dev side and a volume side. I need to get prototyping VERY quickly and easily, but I also need a path to low-cost volume production.  Here is a survey of some of the highly integrated solutions out there. Read more

No comments

Network restrictions

March 09th, 2008 | Category: Hardware Architecture, Software Architecture

One thing that Ed pointed out was that I have yet to lock down the basic restrictions of the network. In other words, Zigbee supports up to 250kbps data rate, but what does this mean? Does it mean that any device may process data this fast? Or if one is, then others can do nothing? And is this a raw data rate or real-world throughput?

Here is Jennic’s nice Zigbee primer.

One idea I have been thinking about for some time now is the notion that other protocols support high data rates. Bluetooth, for example. Zigbee, on the other hand, is designed for command and control. So multimedia apps are better served by other networks. Which means that my device ideas should work with some practical range, which would be enforced by the whole system, the hardware and software alike.

I am thinking that I should design devices such that they do any complex data processing on the client (device) side or the master (network) side, but not rely on volumes of raw data to and fro. For example, a video display is not at all appropriate. Streaming audio is not. It may be that the system could support the transmission and display of images, or the playing of sounds, but as downloads and save, rather than streams.

It might also be that the network doesn’t try to even support those uses. That it strictly enforces command and control uses.

Let’s look at some examples to try and suss this out.

No-brainers acceptable uses:

  • Push puppet whose attitude is determined by a value periodically sent to it.
  • Display screen, fixed or scrolling, whose text content is periodically updated.
  • LED whose color and/or intensity is periodically updated.

More problematic, possibly not acceptable:

  • LED animation in real time (as opposed to stored and replayed scripts).
  • Continuous text display updates.
  • Streaming audio or video.

So how can I define the data bandwidth of the aiosphere? I could say one transmission per minute per device maximum. This would be a good starting point. But then, how much data can be in one transmission? Zigbee has a 200 byte packet limit I think. So if I said one packet per minute, then the systems are limited to whatever behavior they could wring out of 200 bytes per minute. Which precludes basically all except the most rudimentary scripting.

I could try something else, such as four packets per minute per device. This would mean that, assuming 250kbps is a real max network throughput, and realizing that all messaging in my system must go through the coordinator/gateway node, so the whole network is limited to that data rate.

So ten devices operating more or less continuously would each see an average max of 25kbps. This is about 2.5k bytes per sec. Packet overhead and negotiation must reduce this a lot. 2k bytes? Let’s try 1k bytes per sec. This is four packets 200byte packets per sec, which is plenty of data for most things I could see doing. Could even support audio, if there were not too many other devices on the net taking bandwidth.

Assuming I have a flexible bandwidth arrangement, so that a user could have one high-bandwidth device, or many low-bandwidth devices.  Would it be better to not restrict, but just let the network decide? This might, though, give erratic functioning on devices in different configs.  So be it.

No comments

Next Page »