This is a transcript of the November 4th open project meeting for the Open Research Institute. The primary technical discussion centered on migrating the modem's register map to the Peak RDL framework. An initial implementation using "external registers" to handle clock-domain crossing caused AXI bus instability and system crashes on the Pluto SDR hardware, a problem not present in simulation. The root cause is likely the AXI master's intolerance for wait states inserted by the RDL logic. A workaround was developed that uses a "write-to-capture" mechanism on internal registers, which avoids the issue.
Further debugging of the modem's frame-based transmission revealed and fixed an initialization bug in the DMA adapter that was dropping the first frame. A second bug, a misaligned TLAST signal, is still under investigation, with the sync-word counter being the prime suspect. Relatedly, Paul detailed the process of recovering the "bricked" Pluto SDRs, documenting the DFU and JTAG recovery methods and noting the current inability to get serial console output for remote debugging.
Updates on other projects include a new collaboration with AMSAT-UK on the FunCube Plus satellite's FPGA-based "Mode Dynamic Transponder," and Rick from DSES reporting the arrival of precision rubidium frequency standards for the Artemis II mission tracking project. The meeting concluded with a show-and-tell of community projects and new tools.
IRI Project Status Meeting: Debugging, New Projects, and Hardware Discussion
0:00:41 - AXI Clock-Domain Crossing Issues: Matthew details a problem with metastability when crossing between the AXI and modem clock domains. Their initial solution using the Peak RDL "external register" feature, which worked in simulation, caused hardware instability.
Key Detail: The use of external registers inserts wait states onto the AXI bus. This appears to be the cause of the Pluto SDR crashing and entering reboot loops. The hardware's AXI master is likely not tolerant of these wait states.
Takeaway: Simulation is not a substitute for hardware testing. The AXI bus behavior on the actual hardware was the source of the failure.
0:05:50 - Workaround for Register Access: A new method was implemented to safely read registers across the clock domain without causing crashes.
Key Detail: Instead of a dedicated capture register, the new approach involves writing any value to the status register you intend to read. This write action generates a "software modified" signal that triggers a capture of the real-time data from the modem domain. A subsequent read then returns the captured, stable value.
Takeaway: This "write-to-capture" approach avoids inserting AXI wait states and has proven stable on hardware. It does, however, require a two-step (write then read) process for every status register read.
0:09:52 - Planned RDL Refactoring: Matthew plans to refactor the entire register map to be more modular and hierarchical, aligning register definitions with their corresponding hardware modules. This will improve design clarity and documentation but will be a breaking change for the software.
0:16:42 - Debugging Frame Transmission Failures: The team is debugging an issue where streaming data works, but transmitting structured frames fails on hardware.
Key Detail: An initialization bug was found in the DMA adapter. It was incorrectly signaling readiness while in an idle state, causing it to silently "swallow" the first part of the first data frame. This has been fixed.
Takeaway: A persistent TLAST (AXI transaction last signal) misalignment is still an issue. The sync word detection counter appears to be off by one byte (counting 269 instead of 268), which is the next target for debugging.
0:43:21 - Recovering Unresponsive Pluto SDRs: Paul describes the process of recovering the Pluto SDRs that were rendered uncooperative by the faulty firmware builds.
Key Detail: The standard mass-storage-device recovery method fails if the device doesn't boot. Recovery required physical access to press a button to enter DFU (Device Firmware Update) mode, which is not practical for a remote lab. The ultimate issue preventing DFU from working initially was a permissions problem: the utility requires sudo but fails with a cryptic error instead of a clear "permission denied" message.
Takeaway: Reliable remote recovery procedures are needed. The lack of serial console output during boot is a major obstacle to remote debugging and recovery.
0:57:40 - New Collaboration: AMSAT-UK FunCube Plus: The institute is assisting AMSAT-UK with the FPGA design for a Mode Dynamic Transponder (MDT).
Key Detail: This is a "store-and-forward" satellite system featuring a fast uplink and a slow downlink to save on satellite power. The project involves modeling the required data storage and system behavior.
1:21:37 - Artemis II Mission Tracking: Rick reports that the Deep Space Exploration Society (DSES) has received the precision timing equipment (an HP 5065A Rubidium standard) for its role in tracking the Artemis II mission.
Key Detail: DSES will be one of several stations tracking the spacecraft's Doppler shift to calculate its position in real-time. This requires extremely precise frequency references that are synchronized across all participating ground stations, which is the purpose of the rubidium standard locked to GPS.
1:39:02 - FPGA Clones in Commercial Hardware: Paul highlights a recent teardown of a new Rigol oscilloscope that uses a Chinese clone of a Xilinx Artix-7 FPGA, possibly as part of a sanctioned second-sourcing arrangement. This indicates a changing hardware landscape.
1:44:09 - New Tool: TermDriver 2: Paul shows a new open-source hardware tool: a Raspberry Pi Pico-based USB-to-serial adapter that features a built-in screen to display the data being transmitted, which is useful for debugging serial protocols.