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 Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • 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
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • 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
NI LabVIEW Community
  • Products
  • Dev Tools
  • NI LabVIEW Community
  • More
  • Cancel
NI LabVIEW Community
LabVIEW Challenge Blogs LabVIEW Challenge – A Course in LabVIEW and Test Automation (Blog #1)
  • Blog
  • LabVIEW Challenge Blogs
  • Forum
  • Documents
  • Quiz
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join NI LabVIEW Community to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: gordonmx
  • Date Created: 28 Oct 2023 4:23 AM Date Created
  • Views 1218 views
  • Likes 7 likes
  • Comments 12 comments
  • A Course in LabVIEW and Test Automation
Related
Recommended

LabVIEW Challenge – A Course in LabVIEW and Test Automation (Blog #1)

gordonmx
gordonmx
28 Oct 2023

It has been a while since my last road-test so I had to dust off my bench and knock a few cobwebs from my brain as I dove into a very interesting new topic.  I have a slightly different approach/goal than many road-testers in that my reviews are less project and more product support oriented.  Let me explain.  How many times have you gotten your hands on what seems to be a very “cool” dev kit, only to find that the documentation or example projects lack the details to go beyond the basic understanding of the product.  Maybe there is a lack of IDE support or the board limits a full feature accessibility or the examples are not clear. 

My first impressions were very mixed.  I viewed all the introduction videos, as well as reviewing a number of LabVIEW documents, and came away very interested, but also confused.  There seemed to be great potential for developing experimental and test systems, but very little that ties everything together for such a system.  In respect to the Raspberry Pi Pico (“Pico”), no disrespect to Jan and Shabaz, the functionality is limited to a few basic I/O features.  They have laid some great groundwork for expanding the interface and I look forward to exploring future releases, as well as possibly adding to some myself.  I just need to polish up my compiling skills polished up a bit.

This brings me to a question:  Is there any other GitHub accounts working on this roadtest?  I’m assuming with 17 other Roadtesters there may be one or two out there.  I tried searching and found some non-E14 related sites.  The current release has reference for using the I2C ports (i.e., high resolution get analog input function), but no further documentation or examples.  The same documentation issue can be said about the resistor test example.

But back on my expectation, in reviewing the Labview documentation, it would seem to be a great program for tying different pieces of test equipment together to automate testing of processes and products, and not necessary a platform for building a standalone product.  With that said, if my goal was to generate a project, I would use the Pico to create a support interface that would interface with other equipment to complete a task.  Like for a battery tester, using the Pico I/O to turn a dynamic load box on during a discharge cycle, monitor the battery voltage and current, then report the results before continuing to another cycle or terminating the test.  But again, how to I bring the Pico into the overall test configuration which may include other piece of equipment? 

 

Initial Turn-on…

The short video on how to load the pico_scpi_usbtmc_labtool.uf2 boot program was spot on and easy to follow.  For further clarity here is my Windows 11 device manager display before loading the file:

image 

And after loading the boot file:

image 

Expand on the USB Test and Measurement Device to find the device ID (under the Event tab) that should be used in the initializing process.  This took a few tries before I noticed that the Pico was not the default device in the resource drop-down.

image 

image 

Easy as pi!

Down to the Nitty Gritty…

Like I mentioned before the current functionality is limited to a number of basic features or operations, as outline below:

image 

  • Initialize and Close are required to generate and disposal of a VI, respectively.
  • Action-Status is mainly for setup the digital and/or analog output functionality of a set of 3 specific GP I/O pins each. The digital output is binary, while the analog output is the duty cycle of a binary PWM waveform.  No function status is returned or supported by these functions, but the Data functions can be used to check their state.  Just a little confusing.
  • Data functions serve two tasks. One set of VI commands is used to read/get digital and/or analog input from a different set of 3 specific GP I/O pins from the Action-Status commands I/O pins.  The second task allow the monitor/query of the digital and/or analog output pins set by the Action-Status  The digital input is a single bit binary, while the get analogue input returns 12-bit binary value of the analog voltage at the one of two GP I/O pin.  The get analog output command returns the duty cycle of a binary PWM waveform set by an Action-Status function.

The following is the analog out control VI example illustrating the use of both the set analog output (Action-Status) command and the get analog output (Query Data) command:

image 

In summary, most of the current Pico interface functions access or control just a few digital and analog pins and only a single pin at a time.  In the past month work has been done to expand the analog feature to address an external ADC through the I2C port, but with little documentation.  A short tutorial on how to generate new functions would be helpful.

A Simple Project…

After successfully experimenting on the digital output example, I setup the get analogue input (stand) example.  Again, limited documentation.  The input was from a 1K/1K ohm voltage divider between 3.3V and ground.

image 

I added a circuit to convert the binary output to an actual voltage (bit count x 3.3/4096) and an indicator for when the voltage is above a certain amount (1.2V).  I also graph the voltage over time.  This could be a start of a very simple battery charging system with the addition of a digital output control to a relay connected to a power supply, but I ran out of time.

image 

 

What Next…

As mentioned in my introduction, both Jan and Shabaz did a great job laying the groundwork for the VI interface, but I would still like to explore the ability to add new functionality to the Pico.  The actual road test duration was just too short to reach that goal, but as time permits, with the holidays and all, I would like to head in that direction.  There has been some movement in the direction of accessing the I2C port, but limited to specific accessory devices (i.e., high resolution ADC, etc.).  My goal would be to create a generic I2C interface that could be used for various environmental sensors, specified in the VI’s front panel.

Second, I would like to explore the process of integrating my new visual instruments into larger systems incorporating pre-existing Vis.  In addition, I would like to try running two Picos that communicate between each other on my PC.  The documentation implies the running of multicore devices with a single VI.  From my preliminary tests, it appears that two Picos can be connected to the same PC only if each VI has a different name, even if they have the same function.

Third, improved the documentation.

Thank you for the opportunity to explore and learn about the interesting world of NI’s LabVIEW.

Gordon Margulieux (gordonmx)

  • Sign in to reply

Top Comments

  • Jan Cumps
    Jan Cumps over 1 year ago in reply to Andrew J +1
    Should I apply? Raspberry Pi USB product ID list ... because it's for legal companies (not private persons), maybe cstanton can apply for the element14 community, to aquire an ID for gizmos that…
  • cstanton
    cstanton over 1 year ago in reply to Jan Cumps +1
    " can apply for the element14 community" That sounds like something cool to do. "purchasing a manufacturer ID costs $6000" Good grief. https://docs.google.com/forms/d/e/1FAIpQLSeaAkcxVD5xSgf-vFdZe7URqDeUhAo9Vx…
  • cstanton
    cstanton over 1 year ago in reply to Jan Cumps

    "can apply for the element14 community"

    That sounds like something cool to do.

    "purchasing a manufacturer ID costs $6000"

    Good grief.

    https://docs.google.com/forms/d/e/1FAIpQLSeaAkcxVD5xSgf-vFdZe7URqDeUhAo9Vx-17YZgtpXpeTHpVQ/viewform

    Doesn't quite look low-scale as would be produced by Community members. Among other implications.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Jan Cumps
    Jan Cumps over 1 year ago in reply to Andrew J

    Should I apply?

    Raspberry Pi USB product ID list

    ... because it's for legal companies (not private persons), maybe cstanton  can apply for the element14 community, to aquire an ID for gizmos that are designed by the community ...

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Jan Cumps
    Jan Cumps over 1 year ago

    comment about the documentation:

    There's a link in quiz 10 to  the user documentation. It contains a reference to the SCPI commands, the driver blocks, and how to connect a ADC for high-res:  PST.. Program the Pico SCPI labTool? .

    More detail on the high-res external adc: Creating a Pi Pico based High-Resolution Measurement Instrument  <- this one is also explaining how to contribute.

    The resistor example has its own blog:  PST.. A little project for the Pico SCPI labTool: resistor pass / fail test bed 

    There's an example that shows how to start developing firmware changes (  PST.. Have you worked with the Pico SCPI labTool? ) ,
    and a few show how to build a new feature (PST.. develop a firmware change for the Pico SCPI labTool - unique USB enumeration ID , Creating a Pi Pico based High-Resolution Measurement Instrument ). 
    One of the contributions was a quick guide to build from source (Setting up the Raspberry Pi Pico & accessing with Labview ).

    There's a link to all posts at the footer of every article

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Jan Cumps
    Jan Cumps over 1 year ago in reply to Andrew J

    could do a gofundme Slight smile

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Andrew J
    Andrew J over 1 year ago in reply to Jan Cumps

    Grief - somebody’s making a killing!

    • 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