This post is to serve as a comprehensive update on the FOAM Location progress and direction of the project. Over the past months we have been heads down prioritized on building, designing and testing the architecture of new FOAM radio hardware and software, described below. Further we have been focusing on recruitment and team growth, adding an additional electrical engineer, two software engineers, a business strategy position as well as expert academic consultants in time synchronization and localization as well as leading programmers in FPGA’s, which are now a part of the new Zone Anchor prototype. With this updated design, outdoor testing has begun at our New Lab headquarters along side meetings with a number of companies about participation in pilot projects across the Brooklyn Navy Yard.
Our previous demo at ETH New York featured an end-to-end blockchain enabled radio system, which included time synchronization over proto-zone anchors, local Tendermint consensus based blockchain logs and a plasma implementation for connectivity to the Ethereum root chain.
The goal of this end-to-end prototype was to demonstrate the core architecture of the protocol by processing and validating a Presence Claim over radio and have Presence Claim data make its way securely from radio logs to Ethereum. This demo used commercial-off-the-shelf LoRa transceivers to articulate the design, where a time synchronization protocol is implemented. This demo focused on the end-to-end flow over localization because the resolution provided by off the shelf LoRa transceivers is not sufficient for the protocols needs. That said, localization is derived from time difference of arrival on the time stamps, which are in the Tendermint based logs in the demo. Localization needs to be computed and to do so in that setup would need to be done from those logs off-chain. From this demo, base work on the time sync protocol, tendermint consensus, scaling side chain solutions complete and will be iterated on. The next step we focused on was localization software and new hardware architecture.
From the end-to-end prototype, we have been designing the next version of a Zone Anchor that utilizes a Field-Programmable Gate Array (FPGA) and a Software Defined Radio (SDR) for precision time-stamping and running localization algorithms on the board itself. This entails building custom printed circuit boards (PCB) with the components we want to utilize and include for computational and cryptographic capabilities beyond a single off the shelf LoRa radio.
FOAM custom LoRa enabled printed PCB
The current FOAM hardware (Zone Anchor) consists of a RF transceiver that’s capable of communicating with other anchors, as well as localizing simple devices that utilize the LoRa protocol (Location Customer). It has the capacity to communicate over LoRa as well as as a backhaul (WiFi, Ethernet, 5G etc). It speaks a custom protocol between anchors that is implemented on a CPU with additional cryptographic primitives on an FPGA. The same FPGA also runs custom filtering and localization algorithms on the pure radio signal to enable localization and time-stamping that’s beyond the in-built capabilities of the LoRa chip. Together, Zone Anchors form a FOAM hybrid mesh network.
FOAM Location is designed as a protocol to provide a specific service on fault tolerant time synchronization and secure location verification. As we move into the next decade a problem plaguing all technological endeavors, in particular blockchain scaling based ones, is the end of Moore’s Law. The long-held notion that the processing power of computers increases exponentially every couple of years has hit its limit. On this topic professor emeritus of the University of California, Berkeley, David A. Patterson states:
It’s conventional wisdom among computer architects that the only thing we haven’t tried is domain-specific architectures. That idea is relatively simple: It’s that you design a computer that does one domain really well, and you don’t worry about the other domains. If we do that, we can get giant improvements.
The Zone Anchor is a domain specific architecture (DSA) that aims to be a fully open-source software and hardware platform for high-precision localization of radio packets. By focusing on this fundamental use case the result is a new alternative value add service to GPS for location verification, a need many are increasingly becoming aware of, “Ghost ships, crop circles, and soft gold: A GPS mystery in Shanghai ”. The architecture builds on a novel solution of LoRa hardware and SDR on top of FPGAs with a System on Chip running Linux. The reason for a DSA is more than just the bandwidth and computational requirements for the signal processing. We’re building a completely open-source software and hardware solution in order to radically be able to build out a network of devices that is truly independent of any specific vendor. The blockchain and localization software continue to be radio agnostic with the option of exploring alternative to LoRa. This FOAM Software defined radio additionally fits into the FOAM stack for advanced front end and dashboard capabilities.
Overall FOAM Location System Architecture
As the LoRa radio itself has only been on the market for about as long as Ethereum has been live there have been recent advances in microprocessing that further enable a Domain Specific Architecture for FOAM Location. For many years, engineers and researchers have used FPGAs to build prototypes that were very expensive and required high power consumption. Advances in FPGA technology have made them a viable option for making low-cost, low-power consumption, high-performance systems and tiny FPGAs are growing in popularity. FPGAs are hardware devices that allow reconfiguration of their internal logic gates which enables one to trade off general computation capabilities for increased performance on specific workloads
Writing FPGA code is a lot more challenging than writing software. FPGA code is developed by writing program-like text in a special kind of language, generically called a "register transfer language" (or RTL). As we have documented previously, FOAM’s Ethereum development stack was developed in house to make use of advanced safety and security features offered by modern functional programming languages like Haskell and PureScript. Keeping with our commitment to Functional Programming languages and philosophies we are programming our FPGAs in a language called Clash. Clash is a functional hardware description language that borrows both its syntax and semantics from the functional programming language Haskell. It provides a familiar structural design approach to both combinational and synchronous sequential circuits. Clash is built on Haskell which provides an excellent foundation for well-typed code. Together with Clash's standard library it is easy to build scalable and reusable hardware designs. We are excited to be working directly with the authors of this language on the FOAM implementation.
Another exciting development FOAM Location will utilize is the maturity of RISC-V and the rise of open-source hardware computing.
The instruction set architecture (ISA) of microprocessors is currently owned by Intel and Arm, which are proprietary and have heavy licensing fees for use in designs. In the IoT and microprocessor space, ARM dominates the market. The past year has seen a boom in chips made using an open source ISA called RISC-V, available to anyone, anywhere, and is free. Companies such as Google and Samsung are part of the RISC-V foundation and NVIDIA and Alibaba have started to roll out products based on this open source architecture this year.
The RISC-V ISA allows us to start with a clean slate and optimize designs for new workloads, ushering in a new era of silicon design and processor innovation through open standard collaboration. This open source approach to silicon has many benefits. The RISC-V Foundation writes:
Unlocks architecture and enables innovation since RISC-V is a layered and extensible ISA, companies can easily implement the minimal instruction set, well defined extensions and custom extensions to create custom processors for these new and innovative workloads
Reduces risk and investment via leverage of established and common IP building blocks with a growing set of shared tools and development resources with an engaged development community.
Creates opportunities to create thousands of possible custom processors as implementation is not defined at the ISA level, but rather by the composition of the SoC and other design attributes. It’s possible to go big, small, powerful, or lightweight.
Accelerates time to market through collaboration and open source IP reuse , this not only reduces development expense, but accelerates time to market.
FOAM Zone Anchors can take advantage of these advances for open source and inexpensive hardware. Our current design uses an ARM core but the FOAM Location software is portable across hardware development kits, towards a full custom PCB of the needed components.
MCCI Catena 4710 – LoRa based Feather-compatible FPGA board with RISC-V Core
Most recently we have been hacking on and porting our software to the MCCI Catena 4710, LoRa based FPGA board with a RISC-V core.
Web 3 and Cryptography
Smart contracts, cryptography and interoperability with web 3 are paramount to FOAM Location. The previously demonstrated radio protocol and its implementation as a blockchain application on Ethereum + Plasma. That demo made use of a Plasma side-chain backed by Tendermint and built using the Cosmos SDK. The demo and the ensuing discussions led us to the opinion that while the Tendermint/Cosmos offerings are promising, both the community and FOAM would greatly benefit from a framework that allowed for the development of such applications in Haskell. There are many reasons for this, but we mainly would point to the kinds of value in terms of safety and security that our Ethereum stack adds to the Etheruem developer ecosystem. Additionally, it would enable FOAM to continue to develop FOAM Location on Tendermint with the tools and languages that we excel with.
This work is on going and on track to be complete by the end of this year.
In parallel, web3 solutions are accelerating and the FOAM developer team is deeply integrated into conversations and research with the COSMOS team on the IBC protocol, recently highlighted at the Berlin Full Node meetup A Chain Reaction: Launching an Interchain Interoperability Standard, as well as the Plasma Group on Optimistic Rollups and ZK-Rollups (Optimistic vs. ZK Rollup: Deep Dive) which provide security and scalability solutions as the next stage of Plasma based research that fit into our ABCI architecture and will allow further optimization and privacy around generating, storing and revealing presence claims. We strongly believe in the emerging web3 smart contract ecosystem and FOAM Location is built from the ground up for interoperability. With additional cryptographic primitives on an FPGA integrations and signing messages to the blockchain fast and securely are at the top of mind when designing the protocol. Presence Claims are core to the protocol and privacy preserving features are a top priority and this topic continues to get mainstream attention, “Foursquare CEO calls on Congress to regulate the location data industry / New York City to Consider Banning Sale of Cellphone Location Data ”
Waterfall Display of time-stamped de-chirped bursts of LoRa signal trains
We are extremely confident and excited in our new Zone Anchor hardware architecture and custom software defined radio. Advanced facilities at our New Lab headquarter provide oscilloscopes, RF equipment and support for product design and pilots we are leveraging. Through extensive design iterations and measurements for decoding LoRa signals, firmware development and thorough hardware evaluation, the time synchronization and localization algorithms are ready to move out of the lab and to field testing, which we have begun within the Brooklyn Navy Yard. Subsequent posts will detail this testing effort and results, as well as share on the Zone Anchor enclosure design and mounting.