Update on DASH7

Update 6-4-13: Board now in testing

Update 25-2-13: Arduino Shield PCB in prototyping

I've noticed some posts asking about DASH7 over the past two years.
http://arduino.cc/forum/index.php/topic,4642.0.html
http://arduino.cc/forum/index.php/topic,51101.0.html

Now that the standard and the open-source firmware implementation are almost ready, and hardware is being developed, I'm posting an update. Hopefully, this is the appropriate sub-forum. Admittedly, I'm not an Arduino user -- I started doing embedded too long ago, and I have my own methods -- but I like the fact that Arduino exists.


  1. What is DASH7, in two sentences?
    DASH7 is a burst-data wireless spec designed with ultra-low-power applications in mind, and part of the ISO 18000-7 standard. It is different in most respects to 802.15.4 stacks because it is more monolithic in implementation (one standard), more flexible (software defined MAC), and it has some query features integrated into the transport, which allow DASH7 to use a lot fewer packets than typical 15.4 stacks require to do the same thing.

  2. Can DASH7 be used for voice?
    Possibly, but it's a burst-data spec, so it's not optimized for streaming data (i.e. voice). Also, the 433 MHz band it uses it typically not allocated for voice, neither is the 866 band.

  3. Can DASH7 be ported to Arduino?
    Sure. Over the last two years we've tuned up everything, so the requirement for a DMA no longer exists. That said, the best way to get DASH7 working with an Arduino would be to make an Arduino/Wiring API client and have it communicate with a DASH7 network processor shield. Otherwise, the AVR is going to need to manage the DASH7 MAC (which has some strict timing requirements), and I think that's not the right mentality for Arduino.

  4. What HW is available?
    There are some kits in development now, which have convenient hardware interfaces. Most use the TI CC430 as either the development target itself, or the CC430 as a network processor. Here is the kit I'm building. There are others, too, but I don't want to speak for the developers until they announce publicly themselves. If someone is interested, we can talk about making an Arduino shield. It should be really easy.

  5. What SW/FW is available?
    The OpenTag project is the primary implementation for DASH7 and related client-side tools. OpenTag would run on the network processor (probably not the Arduino's AVR), but the client-side tools would need to be ported to AVR/Arduino and have some Wiring calls attached.


So, if anyone is interested, just contact me or post something here. If you want to potentially work on this stuff, then great. If you just are interested in Arduino shields and tools for DASH7, still please tell me, because otherwise I won't know if this is a project I should undertake.

I'm actually surprised nobody replied to this already.
The last couple of days I've been reading a lot about DASH7. I want to create a sensor network in our home and I don't particularly like the options currently mainstream (Zigbee; bad with concrete, only 'lowish' power, wifi interference, $25+ per radio).
In the past I've dabbled with Arduino and I'm a bit reluctant to start with MSP430 microcontrollers and CC430 radios. I'm sure others can sympathize/feel the same.

Long story short; I'm looking for a (preferably simple) way to get going with DASH7. A shield would fit that bill. :slight_smile:

This WizziMote is the closest thing to an Arduino-Shield for DASH7/OpenTag. It uses CC430, so the communications stack (DASH7) is completely implemented on that SoC, and the client device, such as an Arduino, needs only to send API commands. http://www.wizzilab.com/shop/

The OpenTag project is very much open source, and the WizziMote itself is programmable over JTAG. So, for advanced usage you can program additional features into the WizziMote.

I've seen the WizziMote, it's $40 per node but I can justify that as 'research'.
I'd be interested in running DASH7 on something like a JeeNode: http://jeelabs.com/products/jeenode. It comes with a 433MHz radio but I have the feeling that alone is not enough. Could you weight in?

JeeNode is €18.50 and, you must assemble it, which to me doesn't seem like a great deal, but I understand your point. You are not the first person to ask for a cheap, small module. All I can say is that I and some others are working hard on DASH7 HW, and if you monitor #DASH7 on twitter during Jan/Feb, (or follow @jpnorair), there will be some product announcements.

There is talk of integrating an Energia environment (arduino clone for MSP430) into OpenTag directly, but right now I'm too busy working on HayTag. OpenTag and DASH7 are a lot more sophisticated than JeeNode is (or Arduino), so it's not so simple as writing an Arduino library for DASH7. I'm not even sure that's possible. But, it is possible to run an Arduino Environment (or Energia Environment, or Maple Enviroment) as a thread on OpenTag. That way, you can treat the DASH7 system just like a pipe, and not worry about the deep complexities of it.

If you know Processing and want to help with this, let me know. WizzMote and CC430 can support Energia, and HayTag can probably support Maple. HayTag also includes solar + battery, and it will be available as a bare module in addition to the normal, finished tag. The pin-out is somewhat limited given the tiny size of the device, but it has I2C, UART, and a couple of IO/AIN pins.

Consider yourself followed.

Thank you for the background information, I have no experience with Processing but I installed it and it look eerily similar to the Arduino IDE. Besides I have experience with Java/Ruby/Go, this didn't seems hard.
I also agree with the conclusion that writing a DASH7 lib for Arduino won't cut it.

I'm comparing DASH7 with a JeeNode and I can "only" come up with one advantage of DASH7 vs a JeeNode and that is the meshing feature. I'm surely missing something?

Arduino, Energia, Maple, and all these similar things are based on Processing. That is why I mentioned it.

The bottom line is this: using DASH7 for early-adopter home automation (maybe "hobbyist" use) is not pushing it very hard. It is designed for doing fast, ad-hoc data collection in populations of thousands of nodes, which is different than meshing, but still quite beyond having a push-button transmitter or something like that.

The benefit of DASH7 vs. JeeNode becomes evident when you start getting collisions. 10 years ago, nobody had WiFi collisions, but today I look at the list of nearby networks, and it is 20-deep. So, it is good there are some collision avoidance mechanisms in WiFi. There aren't any in JeeNode, or any other "simple" RF link. Therefore, JeeNode is a fine solution for hobbyists, but DASH7 is much better for industrial projects, commercial projects, or anything where you have uncertainties to guard against. This focus is also the reason why there aren't so many hobbyist-oriented DASH7 projects yet. Eventually, I expect DASH7 will probably be the #1 RF link for hobbyist projects, because it offers some powerful and easy addressing features and it has good propagation, but first, all of us in the DASH7 world need to make markets for ourselves in "boring" things like airports, animal tracking, building automation, etc. We need to pay the bills, too. :slight_smile: In the process, if I find myself building a part like the JeeNode, I'll certainly find a way to offer it to anyone. This is the case with HayTag.

JP,

It's still not entirely clear to me whether OpenTag (HayTag, what's the difference?) on an 8bit AVR (not arduino). I understand your love for the MSP430. Hey, I was even going to buy one of the chronos watches when they had them up at TIdeals but missed that specifically for Dash7 hobbying! Also never found your 7stick to reach the world :frowning:

Anyhow, you mention you removed the DMA requirement and thus it should run on 8bit-ters. Where can I read about ports etc of that?

@haarts, if the meshing feature is what you need, and you target home automation, you can take a look at panstamps as well. Very similar to JeeNode, but with better radios (CC1100), and a set of "holder" boards that can even install in a DIN-rail fusebox. Very responsive support. All open source.

I have no other relationship with panstamp except being a "happy user", but I think it deserves a bigger community. Take a look. The SWAP stack is great, even if its all-HEX approach isn't the most user-readable one... If you can make a side-by-side comparison with DASH7, I'm interested.

oliv3r:
It's still not entirely clear to me whether OpenTag (HayTag, what's the difference?) on an 8bit AVR (not arduino).

HayTag is hardware. OpenTag is software (firmware). There is no AVR port for OpenTag because I am busy supporting MSP430 and Cortex M. It is as simple as that.

The 7stick was supposed to be available now from TI (http://www.indigresso.com/wiki/doku.php?id=opentag:board:ez430-rf5509), but for some reason they have not offered the unit for sale yet. If it goes much longer, I will build and sell the thing myself using ST parts ]:slight_smile:

tochinet:
I have no other relationship with panstamp except being a "happy user", but I think it deserves a bigger community. Take a look. The SWAP stack is great, even if its all-HEX approach isn't the most user-readable one... If you can make a side-by-side comparison with DASH7, I'm interested.

OpenTag/DASH7 is designed to be the world's lowest-power RF stack, so many of the differences between DASH7 and SWAP are levels of sophistication needed to give DASH7 lower power. MCU time is much lower power than RF time is, so to use this tradeoff, DASH7 has sophisticated anti-collision, synchronizing, filtering, and querying mechanisms that are unique. If you don't care so much about running the device for years on a small battery, or running off a small solar cell, then these differences are less impactful.

The other difference that may be impactful even for non-low-power applications is that DASH7 can support IPv6 addressing, UDPv6, and CoAP. So, if you want to link it to HTTP or other REST applications, it doesn't require extra pieces.

SWAP seems like a nice system that could compete with things like ZWave. DASH7 is more sophisticated, so it is often more difficult for hobbyists to use it for adding wireless to a project, but it can scale-up without concern: 10k units, 1M units, 1B units, etc. That is the tradeoff.

Looks like an incredibly complex protocol that's gonna take some serious processing
power, so it's not quite clear whether it'll actually be "low-power" to do all that
stuff. It took Maxstream/Digi 2 or 3 years to get the zigbee mesh protocol right.

The main website has a lot of talk about protocols and comparisons with other existing
protocols, but not much at all about actual working hardware. Will have to wait for
some working hardware, before can tell very much.

http://www.dash7.org/

oric_dan(333):
Looks like an incredibly complex protocol that's gonna take some serious processing
power, so it's not quite clear whether it'll actually be "low-power" to do all that
stuff. It took Maxstream/Digi 2 or 3 years to get the zigbee mesh protocol right.

There are product examples, but just not so much in the hobbyist space. Hobbyists are awesome, but honestly the addressable market isn't as big as is a single commercial buyer, and nobody in the community is a charity. Support for hobbyists, still, is improving as wrappers for certain feature subsets get developed. Unlike ZigBee, DASH7 is open source, so the community is basically doing this on its own. Also unlike ZigBee, the architecture of the protocol is designed for elegant implementation in firmware.

As for low-power, an STM32L does 5DMIPS/mA. That's insane. EFM32 is even less, and I expect the Atmel CM3 in the Due is basically in the same region. RF transmit has been stuck at 0dBm/15mA for a decade. Batteries aren't changing either. RF receive has been getting incrementally better, but it's not anywhere near the kind of slope we see for MIPS/mA. Crazy but true: running a low power CM3 often uses less total power than MSP430, which uses less power than AVR, which uses less power than 8051. More sophistication can result in less total power if the architecture is good. Just ask Intel. I will fly over to where you live and buy you a beer if HayTag, which uses CM3, isn't at least one order of magnitude -- and probably 2 or 3 -- less power than anything you're accustomed to.

RF transmit has been stuck at 0dBm/15mA for a decade.

Actually, the XBee Pros do 18dBM, albeit at higher current. I guess you're saying
the new standard favors low-power transmit, but more sensitive receivers, so it's
easier to build a wide mesh of low-power nodes. Still, we have to see it in reliable
operation.

Dash7 all sounds good. Not sure it will take over the world, however, :-). There have
been a zillion new "standards" over the past 15 years. Some of us have been around
long enough to see many of them come and go. Can you point to some hardware
modules that are commercially available right now?

oric_dan(333):
Dash7 all sounds good. Not sure it will take over the world, however, :-).

Taking over the world is not the goal. :slight_smile: The goal is to provide a standard that can succeed where previously only proprietary technologies have succeeded, due to optimization considerations.

18dBm:
The XBee Pros @ 18dBm are quoted to use 215mA for TX and 55mA for RX, compared with 18/18 for DASH7 on the CC430 and 15/10 on the HayTag. The range is about the same, although DASH7 has lower data rate. We use the compute power to provide intelligence, and ultimately the result is sending less data, so the radio on-time is about the same for most apps. Good for battery powered devices, not so important for mains-powered devices unless you are wild about reducing carbon footprint.

Modules:
The WizziMote is the most common module at the moment. It uses CC430, and basically anything with a CC430 can run the stack. My new product (HayTag) uses a new ST chipset. I get a lot of requests to build shields and modules, but I'd need to sell about 1000 @ $40 to break-even. I'm being conservative with the price, though. Maybe there's potential.

I do hope it will take over the world. It sounds like an extremely good idea especially to hobbyist. Difficulty in using can be solved with lots of good usage examples.

As for proto boards, Olimex has two CC430 boards MSP430-CCRF MSP430-CCRF for about less then 25E each. Big downside is, that it's in the wrong frequency range. Shouldn't matter for testing with 2 units even with dash7, but it won't be compatible with any existing dash7 devices that will only operate on 433 MHz (which is a really good thing).

Btw, is the power the reason you switched to the ST from the CC430? I remember you saying you where excited about the CC430 but notice the switch to 'some' ST. Does it include the radio?

Also, while I really can understand the hesitation to build for the hobbyist market, the hobbyist market does need at least proto boards as just using a socket with a chip is nearly impossible with these chip (all SMD) and antenna design is a science of its own.

As for the 7Stick, if it was based on the CC430, it wouldn't even need a USB controller anymore as someone has/is busy porting V-USB to bitbang USB. Bitbang USB v1.1 on a MSP430 – Dangerous Prototypes

Anyway all that is needed is something like the olimex boards in the correct frequency range (antenna design only I think) to get hobbiest started. Toolchain (gcc etc) is already available!

Anyhow, this is kinda getting offtopic as its not even closely related to arduino. While I don't mind where this will be discussed, mods might not agree :slight_smile:

oliv3r:
I do hope it will take over the world. It sounds like an extremely good idea especially to hobbyist. Difficulty in using can be solved with lots of good usage examples.

:grin:

As for proto boards, Olimex has two CC430 boards MSP430-CCRF MSP430-CCRF for about less then 25E each. Big downside is, that it's in the wrong frequency range. Shouldn't matter for testing with 2 units even with dash7, but it won't be compatible with any existing dash7 devices that will only operate on 433 MHz (which is a really good thing).

866 operation requires slightly different configuration of registers. I've actually made an easy setting to use the 866 band, although I cannot confirm that it meets regulatory approval. We have considered opening a 2nd band in 866/868, but we decided it would lead to too much confusion, and more recently it seems 866 and 915 are getting bullied by LTE. But for the lab, no problem.

If you have a binocular microscope and some skill in soldering, it's also possible to change the front-end. I have done this before with 1005 (0402) parts. It takes some practice, but it is possible with hot air system to remove old parts, then to place new parts a solder pencil, microscope, and a lot of solder flux.

The TI Chronos is also usable, although it is a lousy experimenter board.

Btw, is the power the reason you switched to the ST from the CC430? I remember you saying you where excited about the CC430 but notice the switch to 'some' ST. Does it include the radio?

I still love the CC430, and it is in my product plans for the future. We used ST (STM32L+SPIRIT1) for HayTag because we needed a few things:

  • SPIRIT1 and one other chip (currently unreleased) were designed with DASH7 in mind, so the performance is high and power usage is low
  • STM32L or EFM32 are the lowest power MCUs for doing the sort of things we need to do. Wolverine MSP430 is an interesting one, too, but right now it is Rev-0. Too much errata.
  • Ability to run a CDC USB stack. The bit-bang stack for MSP is USB-low speed. Plus, it is blocking when it runs.
  • Ability to support over-serial or over-the-air firmware upload. CC430 is only 32KB Flash. The OpenTag distro is between 13KB and 28KB, depending on featureset. We are using an STM32L with 64KB Flash. With firmware image compression, there is no trouble implementing a bootloader.
  • Simply, we didn't want to be seen as a TI-only shop

Also, while I really can understand the hesitation to build for the hobbyist market, the hobbyist market does need at least proto boards as just using a socket with a chip is nearly impossible with these chip (all SMD) and antenna design is a science of its own.

Really, there's no hesitation, there just isn't enough time. I still need to worry about paying the rent. :expressionless: Crowd funding a build-run seems like an interesting idea, but there is a marketing element to crowd funding that I first need to figure-out.

As for the 7Stick, if it was based on the CC430, it wouldn't even need a USB controller anymore as someone has/is busy porting V-USB to bitbang USB. Bitbang USB v1.1 on a MSP430 – Dangerous Prototypes

See previous comments on USB. Plus, the current design uses an MSP430F55xx, which has HW USB and is basically identical to the CC430 core. OpenTag runs great on the prototype 7stick. It was supposed to go into a certain TI kit, but I guess something is getting held-up.

Anyhow, this is kinda getting off topic as its not even closely related to arduino. While I don't mind where this will be discussed, mods might not agree :slight_smile:

I was thinking today about what it would take to build an Arduino shield out of the HayTag iOS adapter design. The width of that board is similar to the width of a standard Arduino board, so it could be a shield or a half-shield. It has an integrated antenna that's pretty badass, so range would be good. Once the HayTag Adapter design goes to R1, I bet I could successfully crowd-fund the shield based on it, thanks to the size of the Arduino community. Thinking about a simple network configuration that might appeal to this community, I sketched out a design. The avg supply current to the gateway/router node should be about 800uA and the endpoint nodes about 60uA. Range, I'll guess 1km. High power for DASH7, but probably much lower than any RF that has ever been attached to an Arduino :). Anyway, I'll keep everyone posted.

jpnorair:

oliv3r:
I do hope it will take over the world. It sounds like an extremely good idea especially to hobbyist. Difficulty in using can be solved with lots of good usage examples.

:grin:

As for proto boards, Olimex has two CC430 boards MSP430-CCRF MSP430-CCRF for about less then 25E each. Big downside is, that it's in the wrong frequency range. Shouldn't matter for testing with 2 units even with dash7, but it won't be compatible with any existing dash7 devices that will only operate on 433 MHz (which is a really good thing).

866 operation requires slightly different configuration of registers. I've actually made an easy setting to use the 866 band, although I cannot confirm that it meets regulatory approval. We have considered opening a 2nd band in 866/868, but we decided it would lead to too much confusion, and more recently it seems 866 and 915 are getting bullied by LTE. But for the lab, no problem.

So a simple 'config' change in the build would allow that. I totally fully agree sticking with 433 MHz. World wide availability for one and not so crowded by telcom's Don't think it will be. Its just a shame there's so little hardware cheaply/easily attainable for us mortals (yes the watch, read below).

jpnorair:
If you have a binocular microscope and some skill in soldering, it's also possible to change the front-end. I have done this before with 1005 (0402) parts. It takes some practice, but it is possible with hot air system to remove old parts, then to place new parts a solder pencil, microscope, and a lot of solder flux.

I guess that's out of the league of many many :slight_smile: With front end, you mean those simple components connected to the antenna? Or the actual demodulator (I belive it was called in the DVB world). I assume the first, as I see no other chips on the olimex boards :slight_smile:

jpnorair:
The TI Chronos is also usable, although it is a lousy experimenter board.

I actually really wanted to get one when it was with those TI-deals. But I missed out. While lousy experimenter board in the hardware side, combined with a CC430 USB (or whatever chip) it would make software development and testing possible. Even when it's just passing messages from the PC via udp6 to the clock watch :slight_smile:

jpnorair:

Btw, is the power the reason you switched to the ST from the CC430? I remember you saying you where excited about the CC430 but notice the switch to 'some' ST. Does it include the radio?

I still love the CC430, and it is in my product plans for the future. We used ST (STM32L+SPIRIT1) for HayTag because we needed a few things:

  • SPIRIT1 and one other chip (currently unreleased) were designed with DASH7 in mind, so the performance is high and power usage is low
  • STM32L or EFM32 are the lowest power MCUs for doing the sort of things we need to do. Wolverine MSP430 is an interesting one, too, but right now it is Rev-0. Too much errata.
  • Ability to run a CDC USB stack. The bit-bang stack for MSP is USB-low speed. Plus, it is blocking when it runs.
  • Ability to support over-serial or over-the-air firmware upload. CC430 is only 32KB Flash. The OpenTag distro is between 13KB and 28KB, depending on featureset. We are using an STM32L with 64KB Flash. With firmware image compression, there is no trouble implementing a bootloader.
  • Simply, we didn't want to be seen as a TI-only shop

So it's a multi-chip design in a really small package. Pretty cool! I wonder if whatever next solution will be from any manufacturer. I really like the CC430 because it's a single package. So while the STM32L +Spirit1 sounds like a really efficient idea, an integrated solution could be even more power friendly!

The blocking-ness would be a non-issue for low speed hobby usage, but in a big enviroment, where thousands of tags communicate with a receiver connected over USB, it probably is an issue :wink:

I didn't realize opentag was that big. I thought it would actually easily fit in a 32 kiB AVR. Speaking of AVR, the onyl reason I brought it up, is I remembered that you mentioned that OpenTag doesn't require a DMA anymore, but more importantly, that someone else was doing the work.

jpnorair:

Also, while I really can understand the hesitation to build for the hobbyist market, the hobbyist market does need at least proto boards as just using a socket with a chip is nearly impossible with these chip (all SMD) and antenna design is a science of its own.

Really, there's no hesitation, there just isn't enough time. I still need to worry about paying the rent. :expressionless: Crowd funding a build-run seems like an interesting idea, but there is a marketing element to crowd funding that I first need to figure-out.

Yes, crowdfunding is a tricky issue. I do think indiegogo would be better then kickstarter though :wink: (hint) and all comes down to price. Hobbyist are often poor :frowning: But yes, I have many many idea's and plans for Dash7, have had them for 2 years now. If I could quit my Studies and Job and focus 110% on it, I would!

jpnorair:

As for the 7Stick, if it was based on the CC430, it wouldn't even need a USB controller anymore as someone has/is busy porting V-USB to bitbang USB. Bitbang USB v1.1 on a MSP430 – Dangerous Prototypes

See previous comments on USB. Plus, the current design uses an MSP430F55xx, which has HW USB and is basically identical to the CC430 core. OpenTag runs great on the prototype 7stick. It was supposed to go into a certain TI kit, but I guess something is getting held-up.

:frowning: They should do a 7stick + chronos TI-deal! Seriously, they should! :slight_smile:

jpnorair:

Anyhow, this is kinda getting off topic as its not even closely related to arduino. While I don't mind where this will be discussed, mods might not agree :slight_smile:

I was thinking today about what it would take to build an Arduino shield out of the HayTag iOS adapter design. The width of that board is similar to the width of a standard Arduino board, so it could be a shield or a half-shield. It has an integrated antenna that's pretty badass, so range would be good. Once the HayTag Adapter design goes to R1, I bet I could successfully crowd-fund the shield based on it, thanks to the size of the Arduino community. Thinking about a simple network configuration that might appeal to this community, I sketched out a design. The avg supply current to the gateway/router node should be about 800uA and the endpoint nodes about 60uA. Range, I'll guess 1km. High power for DASH7, but probably much lower than any RF that has ever been attached to an Arduino :). Anyway, I'll keep everyone posted.

A shield would be very cool, but it would be awesome if it had the breakout bits available too, so that more experienced users could actually use the shield stand-alone! As a protoboard. Two flies in one swat :slight_smile:

A shield would be very cool, but it would be awesome if it had the breakout bits available too, so that more experienced users could actually use the shield stand-alone! As a protoboard. Two flies in one swat :slight_smile:
[/quote]

Of course. I should point out that OpenTag is an RTOS Exokernel that could transparently run a Maple or Arduino Environment, if desired. I mention Maple because it's probably easiest to port STM32F to STM32L, although Arduino Due runs on a CM3 too. Technically, it should be possible to run, kill, or upload new sketches over wireless (or wire) during runtime, but there's still work to do.

I'll excitingly await some prototyping environment to play with dash7!