element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Test & Tools
  • Technologies
  • More
Test & Tools
Blog PSL.. Pico SCPI USBTMC labLib makes it easier to write your own PST.. Pico SCPI labTool
  • Blog
  • Forum
  • Documents
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Test & Tools to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: Jan Cumps
  • Date Created: 22 Oct 2023 1:41 PM Date Created
  • Views 1536 views
  • Likes 11 likes
  • Comments 7 comments
  • pico_usbtmc_scpi
  • pico
  • USBTMC
  • Pico SCPI labTool
  • labview
  • scpi
Related
Recommended

PSL.. Pico SCPI USBTMC labLib makes it easier to write your own PST.. Pico SCPI labTool

Jan Cumps
Jan Cumps
22 Oct 2023

The Pico SCPI labTool (PST) allows you to connect your PC to equipment to control and monitor all sorts of things. It runs on a Raspberry Pico. 
To make it easier to create several specialised lab instruments, the project is now split up in the Pico SCPI USBTMC labLib (PSL) and the original labTool (PST).
The labTool (as of release 6) is adapted to use the PSL. It serves as a proof of concept for the lib. And as a template project for new instruments.

image

This will enable the pattern: build little instruments, with cheap Picos, that can do great things. 
With USBTMC, SCPI and IEEE488.2 support out-of-box.

How does this work?

There's a new github project for the PSL. As much as possible of the common infrastructure is moved into the lib:

  • usbtmc handling
  • standard SCPI command definition and handling, including error handling, status byte management and service request support, 

The PST project has significantly slimmed down. It doesn't have to deal with the core functionality anymore, and can focus on the instrument functions:

  • DIGI IN
  • DIGI OUT
  • ANA IN
  • HIRES ANA IN
  • ANA OUT
  • instrument specific registers
  • naming for the USBTMC instrument
  • naming for the *IDN? string

For someone who wants to check out the instrument code: you will automatically also download the library.
Use this clone command, with submodules enabled, to fetch the code:.

git clone https://github.com/jancumps/pico_scpi_usbtmc_labtool.git --recurse-submodules

The build command works as before. The PST make file will automatically also call the PSL make file.
As usual, the release also provides the firmware precompiled and ready to load in .uf2 format. 

Want to start your own firmware project? 
Check out  Do you want to create your own Pico SCPI device, based on PST.. Pico SCPI USBTMC labLib (and labTool)? .

There are no functional changes in this release. That makes it easier to validate if this refactoring introduces regression.

link to all posts

  • Sign in to reply
  • Jan Cumps
    Jan Cumps over 1 year ago in reply to PavelKCZ

    Basic port to TCP is not hard: getting commands from LabVIEW to a socket, and replying back. There is essentially one entry point where you give data to the SCPI lib, and one exit point where you send back SCPI replies. I've done this a few times for Linux devices.

    The complex thing will be to create standard compliant devices that are detected by VISA . And to port the interrupt / service-request part of the lib's functionality (although that's optional).

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • PavelKCZ
    PavelKCZ over 1 year ago

    Excellent work, I just tried it with my Labview Community Edition and it works like a charm.

    Just one idea (maybe crazy, I don't know). Is it possible to modify it for wifi and Pi Pico W. I mean, instead of USB, one should be able to connect to the Pico through WiFi with standard VISA string like "TCPIP0::address::something::INSTR" ?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Jan Cumps
    Jan Cumps over 2 years ago

    How to create a new project, based on the lib (PSL) and example project (PST)

    1. Have the latest version of PST:

    git clone github.com/.../pico_scpi_usbtmc_labtool.git --recurse-submodules

    2. create a new (empty) github project on the github website

    3. push PST to that new repo

    cd pico_scpi_usbtmc_labtool

    git push github.com/.../pico_scpi_usbtms_analogtool.git +main:main
     (replace <github.com/.../pico_scpi_usbtms_analogtool.git> with the clone url of your project)

    4. you can now clone that fresh project:

    git clone https://github.com/jancumps/pico_scpi_usbtmc_analogtool.git --recurse-submodules
    ( again,  (replace <github.com/.../pico_scpi_usbtms_analogtool.git> with the clone url of your project)

    I tested this as preparation to try out shabaz '   Data Acquisition Board for Pi Pico 

    It worked, including creating the dependencies on the PST subrepo

    image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • flyingbean
    flyingbean over 2 years ago

    Hi Jan: Thanks for all the work you have done so far. I believe that your work will bring more people to develop LabVIEW solutions on Raspberry Pi Pico platform.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Jan Cumps
    Jan Cumps over 2 years ago in reply to fmilburn

    to use it in LabVIEW, you don't need to worry about the sources. You can download the latest .uf2 (https://github.com/jancumps/pico_scpi_usbtmc_labtool/releases) and LabVIEW driver (https://github.com/jancumps/pico_scpi_labtool_labview_driver/releases)

    If you have LabVIEW working, the examples in the driver will work right away. Just unzip. Then double-click on an example file.
    No install needed (but you need to select your connected instrument from the home screen before running)

    image

    Tested it with  shabaz : you can run a test from zero to hero in 2'30", while waffling away: /products/devtools/ni-labview/b/blog/posts/lesson-10---labview-and-the-raspberry-pi-pico-using-the-scpi-labtool?ICID=labview-DCH-enrollment

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube