IP Library › Granted Patent US 12,442,931
Granted Patent B2
US 12,442,931 · App. 18/195,907 · Granted Oct 14, 2025

Modernized global navigation satellite system (GNSS) receivers and commercially viable consumer grade GNSS receivers

Inventors: Paul A. Conflitti (Ashland, OR); Paul McBurney (Palo Alto, CA); Mark Moeglein (Ashland, OR); Gregory Turetzky (San Jose, CA); Norman Krasner (Redwood City, CA); Anthony Tsangaropoulos (Redwood City, CA)
Assignee: oneNav, Inc.
G01S19/37G01S19/30G01S19/36H04B1/709H04B2201/70715
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,442,931
App. No.
18/195,907
Granted
Oct 14, 2025
Kind
B2
Abstract

GNSS receivers and systems within such receivers use improvements to reduce memory usage while providing sufficient processing resources to receive and acquire and track E5 band GNSS signals directly (without attempting in one embodiment to receive L1 GNSS signals). Other aspects are also described.

Claims (72)

1. A method for processing GNSS signals, the method comprising:

receiving, by a GNSS receiver, GNSS signals;

digitizing the received GNSS signals and providing an output, from an analog to digital converter (ADC) in the GNSS receiver, of GNSS sample data which includes one or more of (1) GNSS sideband A sample data from the received GNSS signals or (2) GNSS sideband B sample data from the received GNSS signals;

computing a first set of discrete Fourier transforms (DFTs) of the GNSS sample data to provide a first set of results;

computing a second set of DFTs of a first GNSS primary PRN code data which is adjusted for code Doppler and carrier Doppler prior to the second set of DFTs, the second set of DFTs providing a second set of results;

computing a first set of correlations of the received GNSS signals and the first GNSS primary PRN code based on the first set of results and the second set of results to provide a third set of results;

integrating the third set of results with at least one prior sum, wherein the integrating includes storing at least one new sum for the correlation of the first GNSS primary PRN code with the received GNSS signals.

2. The method as in claim 1 , wherein the GNSS receiver receives and processes only GNSS signals in an L5 radio frequency (RF) band and does not use GNSS signals in an L1 RF band.

3. The method as in claim 1 , wherein the second set of results provide a code spectrum for use in correlations of the first GNSS primary code data with the GNSS sample data.

4. The method as in claim 1 , wherein the first GNSS primary PRN code data is either stored in the GNSS receiver or generated in the GNSS receiver during an acquisition phase in the GNSS receiver.

5. The method as in claim 3 , wherein the GNSS receiver also receives and processes GNSS signals in an L1 RF band.

6. The method as in claim 3 , wherein the GNSS sample data includes the GNSS sideband A sample data from the received GNSS signals, and the GNSS sideband A sample data includes one or more components.

7. The method as in claim 6 , wherein the one or more components of the GNSS sideband A sample data include an E5AI component which includes a second GNSS primary PRN code data and an E5AQ component which includes the first GNSS primary PRN code data, and wherein the method further comprises:

computing a third set of DFTs of the second GNSS primary PRN code data which is adjusted for code Doppler and carrier Doppler prior to the third set of DFTs, the third set of DFTs providing a fourth set of results;

computing a second set of correlations of the received GNSS signals and the second GNSS primary PRN code based on the first set of results and the fourth set of results to provide a fifth set of results;

integrating the fifth set of results with at least one prior sum, wherein the integrating of the fifth set of results includes storing at least one new sum for the correlation of the second GNSS primary PRN code data with the received GNSS signals.

8. The method as in claim 7 , wherein the GNSS sample data includes the GNSS sideband B sample data from the received GNSS signals, and the GNSS sideband B sample data includes one or more components which include an E5BI component which includes a third GNSS primary PRN code data and an E5BQ component which includes a fourth GNSS primary PRN code data, and wherein the method further comprises:

computing a fourth set of DFTs of the GNSS sideband B sample data to provide a sixth set of results;

computing a fifth set of DFTs of the third GNSS primary PRN code data which is adjusted for code Doppler and carrier Doppler prior to the fifth set of DFTs, the fifth set of DFTs providing a seventh set of results;

computing a third set of correlations of the received GNSS signals and the third GNSS primary PRN code based on the sixth set of results and the seventh set of results to provide an eighth set of results;

integrating the eighth set of results with at least one prior sum, wherein the integrating of the eighth set of results includes storing at least one new sum for the correlation of the third GNSS primary PRN code data with the received GNSS signals;

computing a sixth set of DFTs of the fourth GNSS primary PRN code data which is adjusted for code Doppler and carrier Doppler prior to the sixth set of DFTs, the sixth set of DFTs providing a ninth set of results;

computing a fourth set of correlations of the received GNSS signals and the fourth GNSS primary PRN code based on the sixth set of results and the ninth set of results to provide a tenth set of results;

integrating the tenth set of results with at least one prior sum, wherein the integrating of the tenth set of results includes storing at least one new sum for the correlation of the fourth GNSS primary PRN code data with the received GNSS signals.

9. The method as in claim 3 , wherein the GNSS sample data includes the GNSS sideband B sample data from the received GNSS signals, and the GNSS sideband B sample data includes an E5BI component which includes a second GNSS primary PRN code data and an E5BQ component which includes the first GNSS primary PRN code data, and wherein the method further comprises:

computing a third set of DFTs of the second GNSS primary PRN code data which is adjusted for code Doppler and carrier Doppler prior to the third set of DFTs, the third set of DFTs providing a fourth set of results;

computing a second set of correlations of the received GNSS signals and the second GNSS primary PRN code based on the first set of results and the fourth set of results to provide a fifth set of results;

integrating the fifth set of results with at least one prior sum, wherein the integrating of the fifth set of results includes storing at least one new sum for the correlation of the second GNSS primary PRN code data with the received GNSS signals.

10. The method as in claim 7 , wherein the GNSS receiver includes time domain correlators, and the time domain correlators are used in a tracking mode after GNSS signals have been acquired by processing logic that computes DFTs.

11. The method as in claim 10 , wherein the GNSS receiver includes a GNSS processing system that includes an acquisition engine and a tracking engine, and the acquisition engine includes the processing logic to receive an array of GNSS sample data, arranged, according to time of receipt, in either row order or column order and stored in one or more circular buffers.

12. The method as in claim 11 , wherein a code spectrum data for each of the first GNSS primary PRN code data and the second GNSS primary PRN code data are generated repeatedly during a time period while acquiring GNSS signal components that include the first GNSS primary PRN code data and the second GNSS primary PRN code data and wherein the code spectrum data is generated in place in the acquisition engine.

13. The method as in claim 12 , wherein the GNSS sample data is processed to separate the GNSS sideband A sample data from the GNSS sideband B sample data by: (1) for the GNSS sideband A, shifting samples centered at a first frequency up by a first offset frequency and performing a low pass filter to capture a first bandwidth of data and decimating the output of the low pass filter to a lower sample rate; and (2) for the GNSS sideband B, shifting samples centered at the first frequency down by the first offset frequency and performing a low pass filter to capture a second bandwidth of data and decimating the output of the low pass filter to a lower sample rate.

14. The method as in claim 7 , wherein the computing operations require no separate operations to transpose or rearrange the sample data or the generated code spectrum data.

15. The method as in claim 7 , wherein a code generator generates at least one of (1) the GNSS sideband A primary PRN code data every millisecond while GNSS signals are being acquired and tracked and the GNSS sideband A primary PRN code date is not stored after Fourier transformations are completed, and (2) the GNSS sideband B primary PRN code data every millisecond while the GNSS signals are being acquired and tracked and the GNSS sideband B primary PRN code data is not stored after Fourier transformations are completed.

16. The method as in claim 15 , wherein the integrating is non-coherent during at least a portion of an acquisition phase while the GNSS signals are received.

17. A GNSS receiver comprising:

a radiofrequency analog to digital converter (ADC) to generate a digital representation of received GNSS signals;

a sample memory to store the digital representation of the received GNSS signals as digitized GNSS sample data, the sample memory configured to store the digitized GNSS sample data;

a GNSS processing system coupled to the sample memory, the GNSS processing system configured to process the GNSS sample data which includes one or more of (1) GNSS sideband A sample data from the received GNSS signals or (2) GNSS sideband B sample data from the received GNSS signals; and the GNSS processing system is configured to:

compute a first set of discrete Fourier transforms (DFTs) of the GNSS sample data to provide a first set of results;

compute a second set of DFTs of a first GNSS primary PRN code data which is adjusted for code Doppler and carrier Doppler prior to the second set of DFTs, the second set of DFTs providing a second set of results;

compute a first set of correlations of the received GNSS signals and the first GNSS primary PRN code based on the first set of results and the second set of results to provide a third set of results;

integrate the third set of results with at least one prior sum, wherein the integrating of the third set of results includes storing at least one new sum for the correlation of the first GNSS primary PRN code data with the received GNSS signals.

18. The GNSS receiver as in claim 17 , wherein the GNSS receiver receives and processes only GNSS signals in an L5 radio frequency (RF) band and does not use GNSS signals in an L1 RF band, and wherein the second set of results provide a code spectrum for use in correlations of the first GNSS primary code data with the GNSS sample data, and wherein the first GNSS primary PRN code data is either stored in the GNSS receiver or generated in the GNSS receiver during an acquisition phase in the GNSS receiver.

19. The GNSS receiver as in claim 17 , wherein the GNSS receiver also receives and processes GNSS signals in an L1 RF band.

20. The GNSS receiver as in claim 17 , wherein the GNSS sample data includes the GNSS sideband A sample data from the received GNSS signals, and the GNSS sideband A sample data includes an E5AI component which includes a second GNSS primary PRN code data and an E5AQ component which includes the first GNSS primary PRN code data, and wherein the GNSS processing system is configured to:

compute a third set of DFTs of the second GNSS primary PRN code data which is adjusted for code Doppler and carrier Doppler prior to the third set of DFTs, the third set of DFTs providing a fourth set of results;

compute a second set of correlations of the received GNSS signals and the second GNSS primary PRN code based on the first set of results and the fourth set of results to provide a fifth set of results;

integrate the fifth set of results with at least one prior sum, wherein the integrating of the fifth set of results includes storing at least one new sum for the correlation of the second GNSS primary PRN code data with the received GNSS signals.

21. The GNSS receiver as in claim 17 , wherein the GNSS sample data includes the GNSS sideband B sample data from the received GNSS signals, and the GNSS sideband B sample data includes an E5BI component which includes a second GNSS primary PRN code data and an E5BQ component which includes the first GNSS primary PRN code data, and wherein the GNSS processing system is configured to:

compute a third set of DFTs of the second GNSS primary PRN code data which is adjusted for code Doppler and carrier Doppler prior to the third set of DFTs, the third set of DFTs providing a fourth set of results;

compute a second set of correlations of the received GNSS signals and the second GNSS primary PRN code based on the first set of results and the fourth set of results to provide a fifth set of results;

integrate the fifth set of results with at least one prior sum, wherein the integrating of the fifth set of results includes storing at least one new sum for the correlation of the second GNSS primary PRN code data with the received GNSS signals.

22. The GNSS receiver as in claim 17 , wherein the GNSS receiver includes time domain correlators, and the time domain correlators are used in a tracking mode after GNSS signals have been acquired by processing logic that computes DFTs.

23. The GNSS receiver as in claim 17 , wherein a code spectrum data for each of the first GNSS primary PRN code data and the second GNSS primary PRN code data are generated repeatedly during a time period while acquiring GNSS signal components that include the first GNSS primary PRN code data and the second GNSS primary PRN code data.

24. The GNSS receiver as in claim 23 , wherein a code generator in the GNSS receiver generates at least one of (1) the GNSS sideband A primary PRN code data every millisecond while GNSS signals are being acquired and the GNSS sideband A primary PRN code date is not stored after Fourier transformations are completed, and (2) the GNSS sideband B primary PRN code data every millisecond while the GNSS signals are being acquired and the GNSS sideband B primary PRN code data is not stored after Fourier transformations are completed.

25. The GNSS receiver as in claim 23 , wherein the code spectrum data is generated in place in an acquisition engine.

26. A method for processing GNSS signals, the method comprising:

receiving, by a GNSS receiver, GNSS signals;

digitizing the received GNSS signals and providing an output, from an analog to digital converter (ADC) in the GNSS receiver, of GNSS sample data which includes one or more of (1) GNSS sideband A sample data from the received GNSS signals or (2) GNSS sideband B sample data from the received GNSS signals;

computing a first set of discrete Fourier transforms (DFTs) of the GNSS sample data to provide a first set of results;

computing a second set of DFTs of a first GNSS primary PRN code, the second set of DFTs providing a second set of results;

computing a first set of correlations of the received GNSS signals and the first GNSS primary PRN code based on the first set of results and the second set of results to provide a third set of results;

integrating the third set of results with at least one prior sum, wherein the integrating of the third set of results includes storing at least one new sum for the correlation of the first GNSS primary PRN code with the received GNSS signals in a single hypothesis memory;

computing a third set of DFTs of a second GNSS primary PRN code data, the third set of DFTs providing a fourth set of results;

computing a second set of correlations of the received GNSS signals and the second GNSS primary PRN code based on the first set of results and the fourth set of results to provide a fifth set of results;

integrating the fifth set of results with at least one prior sum, wherein the integrating of the fifth set of results includes storing at least one new sum for the correlation of the second GNSS primary PRN code data with the received GNSS signals in the single hypothesis memory such that the single hypothesis memory contains the combined sums from the integrating of the fifth set of results and the third set of results.

27. The method as in claim 26 , wherein the first GNSS primary PRN code and the second GNSS primary PRN code are contained in the GNSS sideband A sample data from the received GNSS signals.

28. The method as in claim 26 , wherein the first GNSS primary PRN code and the second GNSS primary PRN code are contained in the GNSS sideband B sample data from the received GNSS signals.

29. The method as in claim 26 , wherein the integrating of the third set of results and the fifth set of results comprises non-coherent integration.

30. The method as in claim 26 , wherein the GNSS receiver receives and processes only GNSS signals in an L5 radio frequency (RF) band and does not use GNSS signals in an L1 RF band.

31. The method as in claim 26 , wherein a code spectrum data for each of the first GNSS primary PRN code and the second GNSS primary PRN code are generated repeatedly during a time period while acquiring GNSS signal components that include the first GNSS primary PRN code data and the second GNSS primary PRN code data, and wherein the time period is more than two milliseconds.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2023
From: CONFLITTI, PAUL A.; MCBURNEY, PAUL; MOEGLEIN, MARK; TURETZKY, GREGORY; KRASNER, NORMAN; TSANGAROPOULOS, ANTHONY
To: ONENAV, INC.
Reel/Frame 064865/0478 →
Continuity (3)
Continuation 17068659 · Oct 12, 2020
Provisional Application 62915510 · Oct 15, 2019
Related Publication 20230288574A1 · Sep 14, 2023
References Cited (77)
US 4998111A · Ma et al. · 1991 [cited by applicant]
US 5663734A · Krasner · 1997 [cited by applicant]
US 5781156A · Krasner · 1998 [cited by applicant]
US 5812087A · Krasner · 1998 [cited by applicant]
US 6009118A · Tiemann et al. · 1999 [cited by applicant]
US 6591230B1 · Ding et al. · 2003 [cited by applicant]
US 6724807B1 · Krasner et al. · 2004 [cited by applicant]
US 6909738B2 · Akopian et al. · 2005 [cited by applicant]
US 7447259B2 · Betz et al. · 2008 [cited by applicant]
US 7522100B2 · Yang et al. · 2009 [cited by applicant]
US 7830993B2 · Riley et al. · 2010 [cited by applicant]
US 7990315B2 · Chen et al. · 2011 [cited by applicant]
US 8279910B2 · Grover et al. · 2012 [cited by applicant]
US 8306154B2 · Ruegamer et al. · 2012 [cited by applicant]
US 8401546B2 · Landry et al. · 2013 [cited by applicant]
US 8520719B2 · Conflitti · 2013 [cited by applicant]
US 8611397B2 · Norman et al. · 2013 [cited by applicant]
US 8665149B2 · Joo · 2014 [cited by applicant]
US 8717237B2 · Vollath · 2014 [cited by applicant]
US 8824361B2 · Rügamer et al. · 2014 [cited by applicant]
US 9014653B2 · Madadi et al. · 2015 [cited by applicant]
US 9515697B2 · Raasakka et al. · 2016 [cited by applicant]
US 20060133463A1 · Pietila et al. · 2006 [cited by applicant]
US 20070195867A1 · Betz et al. · 2007 [cited by applicant]
US 20090103656A1 · Chen · 2009 [cited by applicant]
US 20090213006A1 · Nayyar et al. · 2009 [cited by applicant]
US 20100210206A1 · Young · 2010 [cited by applicant]
US 20100253578A1 · Mantovani · 2010 [cited by applicant]
US 20150156038A1 · Van Nee et al. · 2015 [cited by applicant]
US 20150204981A1 · Kong · 2015 [cited by applicant]
US 20160245923A1 · Badke · 2016 [cited by applicant]
US 20170350985A1 · Agee · 2017 [cited by applicant]
US 20190120971A1 · Lennen · 2019 [cited by applicant]
CN 102565822B · 2012 [cited by applicant]
CN 104678411A · 2015 [cited by applicant]
CN 105204044A · 2015 [cited by applicant]
CN 106526632A · 2017 [cited by applicant]
CN 106814374A · 2017 [cited by applicant]
CN 109581440A · 2019 [cited by applicant]
EP 1644753B1 · 2007 [cited by applicant]
EP 2028762A1 · 2009 [cited by applicant]
EP 1829232 · 2014 [cited by applicant]
EP 3101445A1 · 2016 [cited by applicant]
EP 3413089B1 · 2019 [cited by examiner]
KR 101809271B1 · 2017 [cited by applicant]
WO 03104969A2 · 2003 [cited by applicant]
WO WO2019219218A1 · 2019 [cited by examiner]
WO 2020125839A1 · 2020 [cited by applicant]
Extended European Search Report from related European Application No. 20877653.4, mailed on Jun. 30, 2023, 15 pages. [cited by applicant]
First Office Action from related Taiwan Application No. 109135794, mailed on Jun. 18, 2024, 13 pages including translation. [cited by applicant]
Marco Pini, Enea Viviani, Letizia Lo Presti. “GPS L5 Signal Acquisition Exploiting Neumann-Hoffman Code Transitions”, Proceedings of the 2010 International Technical Meeting of The Institute of Navigation, Jan. 25-27, 2… [cited by applicant]
Hegarty, C., M. Tran, and A. J., Van Dierendonck. “Acquisition Algorithms for the GPS L5 Signal”, Proceeding of ION GPS/GNSS 2003, Sep. 2003, Portland, OR, pp. 165-177. [cited by applicant]
Bo Zheng and Gerard Lachapelle. “Acquisition Schemes for a GPS L5 Software Receiver”, Proceedings of the 17th International Technical Meeting of the Satellite Division of The Institute of Navigation (ION GNSS 2004), Lon… [cited by applicant]
Tu Thi-Thanh Nguyen and Tung Hai Ta. “A robust acquisition architecture for GPS safety-of-life L5 Signal”, 7th International Conference on Signal Processing and Communication Systems (ICSPCS), Carrara, VIC, Australia, D… [cited by applicant]
Choi Seung Hyun, et al. “Acquisition and tracking schemes for a GPS L5 receiver”, 2008 International Conference on Control, Automation and Systems, Oct. 14-17, 2008, pp. 2214-2217. [cited by applicant]
Andrew Dempster. “Correlators for L2C: Some Considerations”, Inside GNSS, Oct. 2006, pp. 32-37. [cited by applicant]
Lionel Ries, Christophe Macabiau, Olivier Nouvel, Quentin Jeandel, Willy Vigneau, Vincent Calmettes, Jean-Luc Issler. “A software receiver for GPS-IIF L5 signal”, HAL Id: hal-01021711https://hal-enac.archives-ouvertes.f… [cited by applicant]
Surendran Konavattam Shanmugam. “New Enhanced Sensitivity Detection Techniques for GPS L1 C/A and Modernized Signal Acquisition”, A Dissertation Submitted to the Faculty of Graduate Studies in Partial Fulfillment of the… [cited by applicant]
Christophe Macabiau, Lionel Ries, Frédéric Bastide, Jean-Luc Issler. “GPS L5 receiver implementation issues”, On GPS/GNSS 2003, 16th International Technical Meeting of the Satellite Division of TheInstitute of Navigatio… [cited by applicant]
Jérôme Leclère, René Landry and Cyril Botteron. “Comparison of L1 and L5 Bands GNSS Signals Acquisition”, Sensors (2018). This article is an open access article distributed under the terms and conditions of the Creative… [cited by applicant]
Jérôme Leclère, René Landry. “Galileo E5 signal acquisition using intermediate coherent integration time”, Presentation in INC 2018, Nov. 12-15, 2018, Mercure, Bristol Grand Hotel, Bristol, UK. [cited by applicant]
PCT International Search Report and Written Opinion of the International Searching Authority for PCT/US20/55416, mailed Mar. 4, 2021, 16 pages. [cited by applicant]
PCT International Preliminary Report on Patentability for PCT/US2020/055416, mailed Apr. 28, 2022, 13 pages. [cited by applicant]
M. Naimul Hasan, Sudhir Aggarwal, Qun Jane Gu, Xiaoguang Liu. “Tunable N-Path RF Front-end Filter with an Adaptive Integrated Notch for FDD/Co-Existence”, 2014, 4 pages. [cited by applicant]
Nagaraj C. Shivaramaiah, Andrew G. Dempster. “An Analysis of Galileo E5 Signal Acquisition Strategies”, Mar. 2008, 11 pages. [cited by applicant]
Herman Toho Diessongo, Heike Bock, Torben Schuler, Stefan Junker, Anthony Kiroe. “Exploiting the Galileo E5 Wideband Signal for Improved Single-Frequency Precise Positioning”, Sep./Oct. 2012, pp. 64-73. [cited by applicant]
“European GNSS (Galileo) Open Service”, European Union 2015, OS SIS ICD, Issue 1.2, Nov. 2015, 86 pages. [cited by applicant]
Marc-Antoine Fortin, Rene Landry Jr. Implementation Strategies for a Universal Acquisition and Tracking Channel Applied to Real GNSS Signals, Sensors 2016, 16, 624, Published May 2, 2016, 26 pages. [cited by applicant]
Z Qian, C. Lu, M. An, and R Tolimieri. “Self-Sorting in-Place FFT Algorithm with Minimum Working Space”, IEEE Transactions on Signal Processing, vol. 42, No. 10, Oct. 1994, pp. 2835-2836. [cited by applicant]
D. Borio, C. O'Driscoll and G. Lachapelle. “Composite GNSS Signal Acquisition over Multiple Code Periods,” in IEEE Transactions on Aerospace and Electronic Systems, vol. 46, No. 1, pp. 193-206, Jan. 2010, doi: 10.1109/T… [cited by applicant]
First Office Action from Chinese Patent Application No. 201510736211.6 dated Mar. 2, 2017, 10 pages. This translated office action is from the prosecution file for CN105204044 which is also cited herein. [cited by applicant]
First Office Action from Chinese Patent Application No. 201811545894.7 dated May 28, 2020, 11 pages. This translated office action is from the prosecution file for CN109581440 which is also cited herein. [cited by applicant]
B. Kim and S.-H. Kong. “Design of FFT-Based TDCC for GNSS Acquisition,” in IEEE Transactions on Wireless Communications, vol. 13, No. 5, pp. 2798-2808, May 2014, doi: 10.1109/TWC.2014.040714.131884. [cited by applicant]
Y. Moon et al. “A 26mW dual-mode RF receiver for GPS/Galileo with L1/L1F and L5/E5a bands,” 2008 International SoC Design Conference, 2008, pp. 1-421-1-424, doi: 10.1109/SOCDC.2008.4815662. [cited by applicant]
F. Van Diggelen. “Who's Your Daddy? Why GPS Will Continue to Dominate Consumer GNSS,” InsideGNSS, Mar./Apr. 2014, pp. 30-41. [cited by applicant]
China National Intellectual Property Administration, Notification to Grant Patent Right for Invention from related Chinese Patent Application No. 202080071834.5 mailed on May 26, 2025, 5 pages. [cited by applicant]
Weihua, Mou. “Study on Key Techniques of Software Process for GNSS Signal”, dissertation, Graduate School of National University of Defense Technology, Changsha, Hunan, P.R.China, Nov. 2017, 141 pages. *** Submitted in … [cited by applicant]
Cited By (1)
US 12,631,767