I couldn't find any info about motes from www.memsic.com (crossbow no longer sells WSN motes). The WSN related open source stuff I found are: http://www.openwsn.com/ however they have only sensor boards and peripherals. There is also an arduino-based mote - SquidBee and an a berkeley open mote platform - EPIC http://www.cs.berkeley.edu/~prabal/projects/epic/, however this one is quite complicated to DIY.
You have right that MSP430 may be quite restricted, maybe some AVR platform would be a better idea. However an intergrated radio module would be the best.
I was thinking that it would be great to create an open WSN mote project. This project could use some of the popular low-power chips like MSP430 and some radio chip like CC2420. Basically I'm thinking about a very cheap clone of some existing mote like MicaZ or TelosB.
IMHO the main assumptions should be: - As cheap as possible (to be able to build a large WSN without spending a lot of $$$) - Compatible with TinyOS (it's a very popular system for WSN applications) - Small sizes - Ultra low power consumption - Medium radio range ( for in-home environment rather than throwing motes in a big field) - Developer friendly (some built-in bootloader would be handy) - more ?
Cool ! I'm wondering what's the time of the sampling impulse in PIC, is it shorter than the conversion time ? If so the we could theoretically build a scope with coherent sampling and rise the bandwidth a lot. Currently I'm working on an atmega32 based scope witch would do the triggering locally and store the whole sampling window in a buffer and then transmit it via uart with lower speed than the sampling rate. How much free RAM is in BP now ? Maybe it's possible to add such buffer to BP e.g. for 500 samples (500bytes ?)
I've improved my script so it's now working much better. It now uses new ADC mode. I've estimated that the data rate is about 5720 samples/second, what theoretically should give maximum measurable frequency at about 2.5kHz In practice aliasing is noticeable at about 1kHz. I've added a trigger which can sync on rising/falling slope
USAGE: f - trigger on falling slope r - trigger on rising slope s - trigger off key_up - trigger level++ key_down - trigger level-- 9 - time scale++ (zoom out) 0 - time scale-- (zoom in) q - QUIT
I can make a new ADC mode that just spits out the readings non-stop until you send a command
This would be a good quick fix for now. But how fast will the readings be send ?
Quote
The ADC in this PIC has a maximum speed of 500 kHz, but, as you note, the UART bandwidth is the bottleneck. You might be able to write some interesting firmware which sets some sort of trigger, records samples at full speed (possibly with lossless data compression), and then downloads the snapshot at a lower rate over the UART
I was thinking about something like a local buffer ( i suppose that there is one used for logic analyzer SUMP) which would be filled at defined speed after a local trigger (e.g rising edge or voltage level trigger) engage the measurement. Then plain data would be transfered by UART and whole thing repeats. This would give similar effect to a real oscilloscope which only displays part of the whole "timeline" so there is no need to send all data in real-time as probably only some part of it would be used.
I've created a simple python script which is able to draw plots from ADC measurements. Unfortunately I've noticed that single ADC measure is quite slow so it's hard to say that this is working like a real oscope. Is it possible to modify the firmware so the measurements were taken faster ? UART 115200 baudrate would probably let maximum measurable frequency to be about 3kHz in realtime.