Fellow nuts-
I have used teensy 4.1 as a counter with 1.67 ns resolution, and it
works well under tightly controlled circumstances.
1.67 ns resolution is achievable with the clock running at 600mhz. Due
to some fancy internals, the processor can execute more than one
instruction per clock cycle- so you get a true counter at full
processor speed.
I had three of them running simultanously measuring the same input
signal (gps pps), with good results.
The onboard crystals were suprisingly accurate and consistent among the
three devices (within single processor ticks over several minutes).
However, they drift with temp and age.
I compensated for drift by calibrating against a known frequency
source.
All in all, not a bad choice for a low cost timing tool- but not a lab
quality solution.
Also, it is a challenge to maintain 1.67ns resolution if you attempt to
simultaneously do anything else with the processor (external interrupt
trigger is prioritized with other events).
Someone with more coding experience than myself could likely do better
than i have.
If there is any interest, i would be happy to share sample code that
works.
Regards,
Dwayne Esterline
On Feb 13, 2024 3:30 AM, time-nuts-request@lists.febo.com wrote:
Send time-nuts mailing list submissions to
time-nuts@lists.febo.com
To subscribe or unsubscribe via email, send a message with subject
or
body 'help' to
time-nuts-request@lists.febo.com
You can reach the person managing the list at
time-nuts-owner@lists.febo.com
When replying, please edit your Subject line so it is more specific
than "Re: Contents of time-nuts digest..."
Today's Topics:
1. Re: pps pulse timestamp device (Hal Murray)
2. Can Anyone Help Me Get PPS Into This Mini PC? (Ed Armstrong)
3. Re: pps pulse timestamp device (Magnus Danielson)
4. Re: Can Anyone Help Me Get PPS Into This Mini PC?
(Poul-Henning Kamp)
5. Re: pps pulse timestamp device (Thomas Abbott)
6. Re: Can Anyone Help Me Get PPS Into This Mini PC? (Denis
Dowling)
7. Re: Can Anyone Help Me Get PPS Into This Mini PC? (Ed
Marciniak)
--------------------------------------------------------------------
--
Message: 1
Date: Sun, 11 Feb 2024 20:27:25 -0800
From: Hal Murray <halmurray@sonic.net>
Subject: [time-nuts] Re: pps pulse timestamp device
To: Discussion of precise time and frequency measurement
<time-nuts@lists.febo.com>
Cc: Hal Murray <halmurray@sonic.net>
Message-ID:
<20240212042725.921DD28C065@107-137-68-211.lightspeed.sntc
ca.sbcglobal.net>
Content-Type: text/plain; charset=us-ascii
As others have pointed out, the TICC is a wonderful tool for your
problem.
It's a lot more expensive than a Teensy but a lot cheaper than
typical lab
gear with equivalent resolution. It needs an external 10 MHz
clock. It has
much higher resolution than your ns.
I think your ns is a nasty case. It falls in a hole between easy
for a CPU
and what you get with expensive lab gear.
If you need better than a ns, the TICC is wonderful.
If you need less than a a ns, you might make do with something like
a Teensy.
Are you happy writing that sort of software? Check the data sheet
and see how
fast the counters actually run. Often the counters connected to IO
pins run
slower than the CPU speed.
The TI ARM chip on the BeagleBone series of boards has a pair of
fast-but-not-smart CPUs designed for this sort of thing. I've never
used
them. I'm pretty sure there is Linux software available for
timestamping, but
a quick search didn't find any.
What are you trying to measure? Do you want the pulse to pulse
jitter or the
offset of the PPS from a GPS relative to some wonderful truth?
With a TICC, you can measure the pulse-to-pulse jitter with a stable
reference
clock (crystal) that isn't exactly 10 MHz. (If you stand on your
head, you
can turn things inside out and use a PPS from a GPS to measure the
frequency
of a TICC's external clock.)
If you want to measure relative to some truth, feed a PPS from that
truth into
the second channel on the TICC.
--
These are my opinions. I hate spam.
------------------------------
Message: 2
Date: Fri, 9 Feb 2024 17:10:26 -0500
From: Ed Armstrong <eds_equipment@verizon.net>
Subject: [time-nuts] Can Anyone Help Me Get PPS Into This Mini PC?
To: Discussion of precise time and frequency measurement
<time-nuts@lists.febo.com>
Message-ID: <22e449f7-2193-40bf-96d6-ad5d10829443@verizon.net>
Content-Type: text/plain; charset=UTF-8; format=flowed
I recently purchased one of these mini PCs to be used as my router.
https://cwwk.net/products/cwwk-x86-p5-super-mini-router-12th-gen-int
el-n100-ddr5-4800mhz-firewall-pc-2x-i226-v-2-5g-lan-fanless-mini-pc?
variant=44732374352104
I am going to be running the new 64-bit Intel release of the
excellent
"Tomato" router firmwareTomato64 <https://tomato64.org/>, which can
be
installed either "bare-metal" or as a virtual machine. I am going
the
virtual machine route using proxmox v8.1.3. The tiny PC idles at
about 9
W and maxes out around 18 W, and has considerably more power than I
need
for my routing purposes. So, I also put my FreePBX on a separate
virtual
machine, also located on this mini PC. But that is probably not very
interesting to anyone here, nor is it really part of my question.
Proxmox is a Linux based OS which is designed for the express
purpose of
running virtual machines. I suspect many of you on this mailing list
may
already be using it yourself. I am currently running my own stratum
one
NTP server on a Raspberry Pi 3 which is getting its PPS from a
GPSDO.
well, proxmox comes with chrony already installed, and I'm sure I
could
change it over to ntpd if I wished to do so. If any of you follow my
first link, you will see the little mini PC has a header for GPIO.
It is
a 2x5 header with I believe a 2 mm pitch. According to the listing,
there are four input and four output pins. I assume the other two
pins
are either both grounds or both positive, not really sure.
Now comes my question. Can any of you tell me how to use these GPIO
pins? I can find tons of information very easily on setting this
thing
up as a router, NAS, or as a desktop computer. I have not been able
to
find a single post related to those GPIO pins. I can't find the pin
out,
can't find out what voltage they are supposed to work at, nor any
information about communicating with them in Linux. I queried the
system, hoping I could look up the motherboard online, and this is
what
I got:
root@Proxmox:~# dmidecode -t 2
# dmidecode 3.4
Getting SMBIOS data from sysfs.
SMBIOS 3.6.0 present.
# SMBIOS implementations newer than version 3.5.0 are not
# fully supported by this version of dmidecode.
Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
Manufacturer: Default string
Product Name: Default string
Version: Default string
Serial Number: Default string
Asset Tag: Default string
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: Default string
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0
root@Proxmox:~#
I also tried dmidecode -t baseboard, this obviously gave more
details,
but most devices were just listed as "other". I haven't found this
to be
terribly useful.
My desire is to replace the Raspberry Pi by syncing chrony or ntpd
to
the PPS in proxmox and using that instead. It would save a tiny
amount
of energy, and would remove the slight jitter caused by the ethernet
port being on USP, I believe. Can anybody on here give me some idea
on
how to do this, or perhaps point me in the right direction to find
the
information I need.
------------------------------
Message: 3
Date: Mon, 12 Feb 2024 18:00:16 +0100
From: Magnus Danielson <magnus@rubidium.se>
Subject: [time-nuts] Re: pps pulse timestamp device
To: time-nuts@lists.febo.com
Message-ID: <4eb48673-fca4-4f73-9b2f-755504118155@rubidium.se>
Content-Type: text/plain; charset=UTF-8; format=flowed
Juan,
If you can make it fit your budget, the TAPR TICC is a strongly
recommended solution. Feed it a 10 MHz reference, then you can
configure
it to time-stamp two PPS pulses. I wrote code to integrate it to a
larger system, and that worked and was relatively easy to do. I find
that most issues I had was really due to me not having enough time
to
clean the pipe, not the device itself. The back end is an USB that
you
just hook up to your computer. On Linux is shows up at /dev/ttyACM0
and
from there it is fairly simple. It is recommended you learn how to
configure it on start-up. In a perfect world, I could drop a
reconfiguration anytime, and I've heard to test code exist to
support
that, but I have not had the time to tinker around on it. As I said,
I
did not have the time to clean the pipe, but my takeaways is never
the
less that it is a great solution, compact and great performance.
Cheers,
Magnus
On 2024-02-11 13:37, juan--- via time-nuts wrote:
Hi all,
I am looking for a cheap device (e.g. Teansy, micropython board,
etc) that would help me measure with ns resolution some pulses at
one event per second rate (gps pps).
It would need quite a stable clock such that any jitter would be
attributable to the pulse signal.
Any ideas what is the best way around this nowadays?
Thanks,
Juan.
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-leave@lists.febo.com
------------------------------
Message: 4
Date: Mon, 12 Feb 2024 17:01:55 +0000
From: "Poul-Henning Kamp" <phk@phk.freebsd.dk>
Subject: [time-nuts] Re: Can Anyone Help Me Get PPS Into This Mini
PC?
To: Discussion of precise time and frequency measurement
<time-nuts@lists.febo.com>
Message-ID: <202402121701.41CH1tfX031374@critter.freebsd.dk>
Content-Type: text/plain; charset="us-ascii"
Most of these Mini-PC's are produced by chinese factories based on
Intels reference designs, and to call them "underdocumented" is
an understatement of the year.
I have yet to see any of them, where the GPIO pins can generate an
interrupt, so your PPS precision will be limited to the poll-rate,
and since the GPIO pins are usually on the LPC bus polling will be
slooooow, which means eating up a lot of CPU and power.
Your best bet is probably the COM port, which can generate
interrupts
when the DCD signal changes.
--
Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG | TCP/IP since RFC 956
FreeBSD committer | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by
incompetence.
------------------------------
Message: 5
Date: Mon, 12 Feb 2024 09:23:26 -0800
From: Thomas Abbott <thomas@reversebiased.com>
Subject: [time-nuts] Re: pps pulse timestamp device
To: Discussion of precise time and frequency measurement
<time-nuts@lists.febo.com>
Message-ID:
<CAGPY0W=6z=0Tc495quqUFKx+DBvMYRiM2Ba6v4=1m8nkGAzW-g@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"
Juan, For a quick and cheap measurement I've used the TDC7200 alone
with a
10 MHz reference.
It only measures from the PPS to the next clock edge (it can't
resolve the
100 ns ambiguity) but it's ideal for comparing GPS PPS to Lab 10
MHz. GPS
doesn't move more than 50 ns between pulses, and the TDC's 55 ps
resolution
is quite good enough for GPS.
Use the $15 Mikroe TDC Click board
<https://www.digikey.com/en/products/detail/mikroelektronika/MIKROE-
4770/15280756>
with two SMA connectors.
GPS PPS connected to the Start input.
10 MHz goes to the Stop input. (Must be a 3.3 v square wave, it
doesn't
work with a sine clock).
The TDC specifies a minimum Start-Stop time of 12 ns. In practice
I've
found that with a periodic Stop signal, it wraps very cleanly with
no bad
behaviour. ie. Stop is properly gated, so it either captures the
stop at ~6
ns, or it skips that one and captures the following stop at ~106 ns.
Nothing in between. This is fine for GPS PPS which you can easily
unwrap.
Trigger the TDC as soon as you're finished processing one
measurement,
it'll wait for the next PPS.
The Mikroe has an on-board TCXO, quite good enough over these short
intervals.
I've used it on breadboard with a Pi Pico and micropython. For a
slightly
more solid solution there's also a "hat" for the full size raspberry
pi,
that carries two or three click boards.
Everything after the 100 ns still depends on the clock of course.
Thomas
-------- Original Message --------
Subject: [time-nuts] pps pulse timestamp device
Date: 2024-02-11 7:37 am
From: juan--- via time-nuts time-nuts@lists.febo.com
To: time-nuts@lists.febo.com
Hi all,
I am looking for a cheap device (e.g. Teansy, micropython board,
etc)
that would help me measure with ns resolution some pulses at one
event per
second rate (gps pps).
It would need quite a stable clock such that any jitter would be
attributable to the pulse signal.
Any ideas what is the best way around this nowadays?
Thanks,
Juan.
------------------------------
Message: 6
Date: Tue, 13 Feb 2024 10:14:06 +1100
From: Denis Dowling <dpd@opsol.com.au>
Subject: [time-nuts] Re: Can Anyone Help Me Get PPS Into This Mini
PC?
To: time-nuts@lists.febo.com
Message-ID: <8e8652b9-6263-4016-8f93-aaecbe697b42@opsol.com.au>
Content-Type: text/plain; charset=UTF-8; format=flowed
Hi Ed,
I can see how you would want something like this to replace the RPi
as
it looks a lot more capable. There does not seem to be a lot of
information about the GPIO port on this board. From previous
experience
with Advantech equipment the GPIO ports can be difficult to find
information on. A better option would be to use the COM port also on
the
board. This is likely mapped to /dev/ttyS0 on boot. You might have
to
enable it in the BIOS first. It should then be possible to use the
RS232
handshake lines for the PPS input to the Linux pps-tools. You can
also
feed in GPS NMEA to this same communication port that will mean no
external NTP connections are needed.
Regards,
Denis
On 10/02/2024 9:10 am, Ed Armstrong via time-nuts wrote:
I recently purchased one of these mini PCs to be used as my
router.
https://cwwk.net/products/cwwk-x86-p5-super-mini-router-12th-gen-int
el-n100-ddr5-4800mhz-firewall-pc-2x-i226-v-2-5g-lan-fanless-mini-pc?
variant=44732374352104
I am going to be running the new 64-bit Intel release of the
excellent
"Tomato" router firmwareTomato64 https://tomato64.org/, which
can be
installed either "bare-metal" or as a virtual machine. I am going
the
virtual machine route using proxmox v8.1.3. The tiny PC idles at
about
9 W and maxes out around 18 W, and has considerably more power
than I
need for my routing purposes. So, I also put my FreePBX on a
separate
virtual machine, also located on this mini PC. But that is
probably
not very interesting to anyone here, nor is it really part of my
question.
Proxmox is a Linux based OS which is designed for the express
purpose
of running virtual machines. I suspect many of you on this mailing
list may already be using it yourself. I am currently running my
own
stratum one NTP server on a Raspberry Pi 3 which is getting its
PPS
from a GPSDO. well, proxmox comes with chrony already installed,
and
I'm sure I could change it over to ntpd if I wished to do so. If
any
of you follow my first link, you will see the little mini PC has a
header for GPIO. It is a 2x5 header with I believe a 2 mm pitch.
According to the listing, there are four input and four output
pins. I
assume the other two pins are either both grounds or both
positive,
not really sure.
Now comes my question. Can any of you tell me how to use these
GPIO
pins? I can find tons of information very easily on setting this
thing
up as a router, NAS, or as a desktop computer. I have not been
able to
find a single post related to those GPIO pins. I can't find the
pin
out, can't find out what voltage they are supposed to work at, nor
any
information about communicating with them in Linux. I queried the
system, hoping I could look up the motherboard online, and this is
what I got:
root@Proxmox:~# dmidecode -t 2
Getting SMBIOS data from sysfs.
SMBIOS 3.6.0 present.
Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
Manufacturer: Default string
Product Name: Default string
Version: Default string
Serial Number: Default string
Asset Tag: Default string
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: Default string
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0
root@Proxmox:~#
I also tried dmidecode -t baseboard, this obviously gave more
details,
but most devices were just listed as "other". I haven't found this
to
be terribly useful.
My desire is to replace the Raspberry Pi by syncing chrony or ntpd
to
the PPS in proxmox and using that instead. It would save a tiny
amount
of energy, and would remove the slight jitter caused by the
ethernet
port being on USP, I believe. Can anybody on here give me some
idea on
how to do this, or perhaps point me in the right direction to find
the
information I need.
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-leave@lists.febo.com
------------------------------
Message: 7
Date: Tue, 13 Feb 2024 00:17:39 +0000
From: Ed Marciniak <ed@nb0m.org>
Subject: [time-nuts] Re: Can Anyone Help Me Get PPS Into This Mini
PC?
To: Discussion of precise time and frequency measurement
<time-nuts@lists.febo.com>
Cc: Denis Dowling <dpd@opsol.com.au>
Message-ID:
<PH0PR22MB32411FE6F1B152E6CF36C514FE4F2@PH0PR22MB3241.nam
prd22.prod.outlook.com>
Content-Type: text/plain; charset="us-ascii"
Depending on the exact architecture of an embedded PC, a serial port
might have hundreds of nanoseconds jitter added by a PCIe switch or
things like an LPC interface that maps to a 16 bit 8.33 MHz bus in
between.
In an ideal world, a network interface with IEEE-1588 PTP support
would directly get a PPS to synchronize a counter
________________________________
From: Denis Dowling via time-nuts <time-nuts@lists.febo.com>
Sent: Monday, February 12, 2024 5:14:06 PM
To: time-nuts@lists.febo.com <time-nuts@lists.febo.com>
Cc: Denis Dowling <dpd@opsol.com.au>
Subject: [time-nuts] Re: Can Anyone Help Me Get PPS Into This Mini
PC?
Hi Ed,
I can see how you would want something like this to replace the RPi
as
it looks a lot more capable. There does not seem to be a lot of
information about the GPIO port on this board. From previous
experience
with Advantech equipment the GPIO ports can be difficult to find
information on. A better option would be to use the COM port also on
the
board. This is likely mapped to /dev/ttyS0 on boot. You might have
to
enable it in the BIOS first. It should then be possible to use the
RS232
handshake lines for the PPS input to the Linux pps-tools. You can
also
feed in GPS NMEA to this same communication port that will mean no
external NTP connections are needed.
Regards,
Denis
On 10/02/2024 9:10 am, Ed Armstrong via time-nuts wrote:
I recently purchased one of these mini PCs to be used as my
router.
https://urldefense.proofpoint.com/v2/url?u=https-3A__cwwk.net_produc
ts_cwwk-2Dx86-2Dp5-2Dsuper-2Dmini-2Drouter-2D12th-2Dgen-2Dintel-2Dn1
00-2Dddr5-2D4800mhz-2Dfirewall-2Dpc-2D2x-2Di226-2Dv-2D2-2D5g-2Dlan-2
Dfanless-2Dmini-2Dpc-3Fvariant-3D44732374352104&d=DwIGaQ&c=euGZstcaT
DllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=JsDsKeR7cZC8wbZhIlxxBQ&m=JBs9b5
cAEBCI0RcPG_SBLalBkFpA8vxUbfgk7fZGN1gP2uLM8TTE12Ls33A0gRnn&s=9JUsRvA
gIvKeYLFylZeCPkwW7ImbHurHBMg3mbTe4Qo&e=
I am going to be running the new 64-bit Intel release of the
excellent
"Tomato" router firmwareTomato64
<https://urldefense.proofpoint.com/v2/url?u=https-3A__tomato64.org_&
d=DwIGaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=JsDsKeR7cZC
8wbZhIlxxBQ&m=JBs9b5cAEBCI0RcPG_SBLalBkFpA8vxUbfgk7fZGN1gP2uLM8TTE12
Ls33A0gRnn&s=HkPJNn78J7mrok__SJQFksbEuxiR87zBhndqPpe8VGo&e=>, which
can be
installed either "bare-metal" or as a virtual machine. I am going
the
virtual machine route using proxmox v8.1.3. The tiny PC idles at
about
9 W and maxes out around 18 W, and has considerably more power
than I
need for my routing purposes. So, I also put my FreePBX on a
separate
virtual machine, also located on this mini PC. But that is
probably
not very interesting to anyone here, nor is it really part of my
question.
Proxmox is a Linux based OS which is designed for the express
purpose
of running virtual machines. I suspect many of you on this mailing
list may already be using it yourself. I am currently running my
own
stratum one NTP server on a Raspberry Pi 3 which is getting its
PPS
from a GPSDO. well, proxmox comes with chrony already installed,
and
I'm sure I could change it over to ntpd if I wished to do so. If
any
of you follow my first link, you will see the little mini PC has a
header for GPIO. It is a 2x5 header with I believe a 2 mm pitch.
According to the listing, there are four input and four output
pins. I
assume the other two pins are either both grounds or both
positive,
not really sure.
Now comes my question. Can any of you tell me how to use these
GPIO
pins? I can find tons of information very easily on setting this
thing
up as a router, NAS, or as a desktop computer. I have not been
able to
find a single post related to those GPIO pins. I can't find the
pin
out, can't find out what voltage they are supposed to work at, nor
any
information about communicating with them in Linux. I queried the
system, hoping I could look up the motherboard online, and this is
what I got:
root@Proxmox:~# dmidecode -t 2
Getting SMBIOS data from sysfs.
SMBIOS 3.6.0 present.
Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
Manufacturer: Default string
Product Name: Default string
Version: Default string
Serial Number: Default string
Asset Tag: Default string
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: Default string
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0
root@Proxmox:~#
I also tried dmidecode -t baseboard, this obviously gave more
details,
but most devices were just listed as "other". I haven't found this
to
be terribly useful.
My desire is to replace the Raspberry Pi by syncing chrony or ntpd
to
the PPS in proxmox and using that instead. It would save a tiny
amount
of energy, and would remove the slight jitter caused by the
ethernet
port being on USP, I believe. Can anybody on here give me some
idea on
how to do this, or perhaps point me in the right direction to find
the
information I need.
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-leave@lists.febo.com
_______________________________________________
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-leave@lists.febo.com
------------------------------
Subject: Digest Footer
_______________________________________________
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-leave@lists.febo.com
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
------------------------------
End of time-nuts Digest, Vol 238, Issue 9
*****************************************