Skip to content

Comments

Red Pitaya driver update#181

Open
Lightsaver7 wants to merge 7 commits intoSweepMe:mainfrom
Lightsaver7:main
Open

Red Pitaya driver update#181
Lightsaver7 wants to merge 7 commits intoSweepMe:mainfrom
Lightsaver7:main

Conversation

@Lightsaver7
Copy link

List of updates:

  • Updated the redpitaya_scpi.py to the latest version
  • Updated SCPI commands to work with the latest OS 2.05-37 (it will not be compatible with 1.04 OS versions).
  • Removed obsolete functionality (immediate trigger in acquisition)
  • Added generator trigger command to start the generation after enabling it.

The driver must be tested before fully merged with the main branch!

My questions (relate to lines labelled with "#!":

  • Acquisition data acquire - maybe we should schedule another call regarding this just to get the correct idea to what kind of data you want to capture. ACQ:SOUR{0}:DATA:Old:N? returns the oldest N samples in the buffer, which are usually before the triggering moment and can be impacted negatively by trigger being in the middle of the buffer (see this description here.
  • "Now" trigger can incorrectly show the pre-trigger data, especially on high decimation settings with not enough time to fill the buffer.
  • I will have to double-check if the SYSTem:VERS command exists.
  • We can try to include additional functionality available through SCPI commands. We could also increase the interface speed by moving on to Python API commands, which are faster, but would require us to establish an SSH connection with the device (and completely rewrite the driver).

Let me know if you want to keep the 1.04 OS compatibility, but I would suggest moving to 2.00 OS (Red Pitaya OS version).

@Lightsaver7 Lightsaver7 requested a review from a team as a code owner August 14, 2025 09:02
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @Lightsaver7, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request updates the Red Pitaya driver to enhance compatibility with the latest OS version (2.05-37) and improve SCPI communication. Key changes include refactoring the redpitaya_scpi.py library for more robust data handling and error checking, removing an obsolete immediate trigger function, and adding a new command to trigger the signal generator. The updates aim to modernize the driver and align it with current Red Pitaya firmware capabilities.

Highlights

  • Red Pitaya OS Compatibility: The driver has been updated to work seamlessly with Red Pitaya OS 2.05-37, with a note that it will no longer be compatible with older 1.04 OS versions.
  • Enhanced SCPI Communication: The redpitaya_scpi.py library has undergone significant refactoring to improve the reliability of text and arbitrary data reception (rx_txt, rx_arb) and transmission (tx_txt), including the introduction of new methods for integrated error checking.
  • Removal of Obsolete Trigger Functionality: The "immediate trigger" option for acquisition has been removed from the Signal-RedPitaya_STEMlab module, streamlining the trigger settings.
  • New Generator Trigger Command: A specific command (SOUR{0}:TRig:INT) has been added to programmatically trigger the signal generator when an internal trigger source is selected.
  • SCPI Command Syntax Modernization: Several SCPI commands across both Scope and Signal modules have been updated to their full, standardized forms (e.g., ACQ:DATA:UNITS to ACQ:DATA:Units, ACQ:TRIG to ACQ:TRig, SYST:VERS to SYSTem:VERS).
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the Red Pitaya drivers for OS version 2.05-37. The changes are a good step towards supporting the new OS version. However, there are several areas for improvement. A significant maintainability issue is the duplication of the redpitaya_scpi.py library in both the Scope and Signal driver directories; this should be refactored into a shared library. I've also identified some critical and high-severity issues within this library, including a potential infinite loop, use of exit(1) which can crash the calling application, and a duplicated method definition that constitutes a bug. Please see the detailed comments for suggestions on how to fix these issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant