Frequency Hopping

Started by SadE54, April 15, 2016, 01:19:48 PM

joelucid

QuoteI'm not sure the WDT is accurate enough for any timing purpose like this, it's clock just isn't designed for accuracy. You may have measured some and found it to be useful, but it isn't specified to the accuracy you want so the actual variation across multiple processors over temperature and voltage may well be too great to make it useful. I'd much prefer to use a low power 10ppm watch crystal, the xmega parts like the atxmea8E5 can run those for about a microamp or so.

Agreed. It's a crutch at best. The 328p also runs a 32.768khz crystal at <1uA btw. Or then maybe splurge and add an am1815. Anyway i think the control channel approach is probably preferable to wdt timing to support freq hopping on unmodded Moteinos.

executivul

For all of you interested in frequency hopping maybe the openLRSng may be of some interest: https://github.com/openLRSng/openLRSng it's mainly used with different radio modules for long range rc planes/quadcopters, but the receivers look alot like moteinos 328p+rfm :)

SadE54

Quote from: executivul on April 19, 2016, 07:05:57 AM
For all of you interested in frequency hopping maybe the openLRSng may be of some interest: https://github.com/openLRSng/openLRSng it's mainly used with different radio modules for long range rc planes/quadcopters, but the receivers look alot like moteinos 328p+rfm :)

The hopping scheme is ok for 1 TX and 1 RX , but in the case of a star network , it cannot be used .
Anyway , nice project for RC :)

WhiteHare

#33
Quote from: SadE54 on April 19, 2016, 07:40:03 AM
Quote from: executivul on April 19, 2016, 07:05:57 AM
For all of you interested in frequency hopping maybe the openLRSng may be of some interest: https://github.com/openLRSng/openLRSng it's mainly used with different radio modules for long range rc planes/quadcopters, but the receivers look alot like moteinos 328p+rfm :)
but in the case of a star network , it cannot be used .

Really?  Why do you say that?

SadE54

The RX need to be bound the TX . Rx is listening on a a full hopping cycle on a random channel . When it get a frame from the TX the link is bound and from now RX and TX are using fast sync and channel is changing every frame. If a frame is lost or no ack received , a new sync cycle is done. I don't see how the RX could be bound with several TX at the same time  ???

perky

It could if the server sends a node address in each packet. The server would always send a packet and look for a response from the addressed node, the node would only send a response if it was addressed. The polling time for a node (rate at which data is sent to the server) would be equal to the number of nodes times the delay between each packet.
Mark.

SadE54

Quote from: perky on April 19, 2016, 11:20:32 AM
It could if the server sends a node address in each packet. The server would always send a packet and look for a response from the addressed node, the node would only send a response if it was addressed. The polling time for a node (rate at which data is sent to the server) would be equal to the number of nodes times the delay between each packet.
Mark.

OK but it's limited to specific networks where power saving is not the priority. In case of sleeping nodes that just have to wake to send and event to gateway , I guess it could be difficult to implement

WhiteHare

#37
Quote from: perky on April 19, 2016, 04:52:15 AM
I'm not sure the WDT is accurate enough for any timing purpose like this, it's clock just isn't designed for accuracy. You may have measured some and found it to be useful, but it isn't specified to the accuracy you want so the actual variation across multiple processors over temperature and voltage may well be too great to make it useful. I'd much prefer to use a low power 10ppm watch crystal, the xmega parts like the atxmea8E5 can run those for about a microamp or so.
Mark.
Edit: Maybe a Moteino based on an atxmega8E5 and a 32.768kHz crystal would be a nice thing to have.. ;-)

Related, but somewhat tangential to this, I've been looking for  RTC's that 1. have a built in TCXO, 2. can be soldered by hand, and 3. are on the low-end of current consumption.  What I arrived at was NXP's PCF2129T, which claims to have a 3ppm clock over a wide temperature range.  I would have liked to use a DS3231, which claims a 2ppm clock over a narrower range, but it appears to be much more of a power hog.  So, I plan to put a DS3231 on a gateway and the PCF2129T on a battery operated node.  Yesterday I ordered a PCF2129T to give it a try.  The price on mouser was $3.10.  I liked that the TCXO is built in and the whole RTC is pretty much self-contained.   That said, if anyone is aware of a better choice that meets the same criteria, please post a head's up  before I get too far down the road with this.


perky

#38
Phew, what's the current consumption of a TXCO? It's got a heater in it, right?
Edit: scrub that, got confused with OXCOs.. Doh.

WhiteHare

#39
The answer seems to heavily depend on which TCXO.  However, as just one datapoint, the the PCF2129 has a "Low supply current: typical 0.70 μA at VDD = 3.3 V" (http://www.nxp.com/products/interface-and-connectivity/interface-and-system-management/real-time-clocks/rtcs-with-temperature-compensation/accurate-rtc-with-integrated-quartz-crystal-for-industrial-applications:PCF2129),  and so I'm guessing its integrated TCXO is probably a large chunk of that (maybe somewhere in the 400-600na range?).

I ordered just one primarily  to convince myself that it really is 700na so that I don't fall prey to possible misleading marketing spin.  If it tests out at the advertised 700na, then I'm fine with that, and I may order more.  The AT version of the chip, which has somewhat weaker specs than the T version, can be had for under $2 each on AliExpress if you buy 10 or more.

SadE54

Nice found for PCF2129T
I really like the timestamp features on pin input . It's to bad there's no timestamping with the internal counter but time (and with 1s resolution) :-/ It could have been used for precise time sync.

WhiteHare

Quote from: SadE54 on April 20, 2016, 02:31:52 AM
Nice found for PCF2129T
I really like the timestamp features on pin input . It's to bad there's no timestamping with the internal counter but time (and with 1s resolution) :-/ It could have been used for precise time sync.

Agreed! As far as I'm concerned, a 32-bit binary timestamp with microsecond resolution would be preferable.  I don't really care about leap-year or days of the week or what month it is, so is there a better category than RTC to look in that would have an integrated TCXO?

WhiteHare

So, the ideal might be what's called a "real-time timer" instead of a "real-time clock".  The Arduino Due has a 32-bit RTT driven by a 32Khz signal.  I guess I'll end up building what amounts to a virtual RTT (of sorts) from an RTC chip. 

SadE54

Maybe a mcu like lpc800 , low pin , low power Cortex M0 could be programmed as a RTT ?
It can count in deep sleep mode , waking up on interrupt from moteino ?

WhiteHare

Ideally, from my perspective, the clock would be a 32 or 64 bit binary counter I could  simply read and/or write directly, with each oscillation of a 1Mhz+ crystal adding one to the count, but even with an RTC it's still far from that, because they are all mostly 1 second resolution!  So, at best, they can pump out faster square waves into the atmega328p's rather short timers, but converting that to the virtualized ideal clock equivalent, while remaining highly energy efficient,  seems nowhere near as straightforward as it should be.