time-nuts@lists.febo.com

Discussion of precise time and frequency measurement

View all threads

Re: teensy 4.1 as timer/counter

D
Dwayne
Tue, Feb 13, 2024 11:38 PM

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

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.


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

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.


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
 *****************************************
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 > # 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. > _______________________________________________ > 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 > # 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. > _______________________________________________ > 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 *****************************************