Hobbyist Toolkit

cancel
Showing results for 
Search instead for 
Did you mean: 

LINX and Raspberry Pi4 Mis-identification Issues

Installed LV Community Edition and have been experiencing issues with establishing a proper LINX session with a  new Raspberry Pi4.  When configuring across a WIFI network (with an explicit IP address), a connection appears to be successfully established, but the Raspberry Pi is identified initially as a Pi2 and in "Target Info" the processor is identified as a BCM2835 running Version 10.3 OS.  Of course the RPi4 is a Broadcom BCM2711 processor device, so I am not having much luck with downloading code to execute.

 

Do I need a hardwired Ethernet link to configure, or am I missing something simple?

 

 

0 Kudos
Message 1 of 28
(4,994 Views)

I'd love to hear the answer to this. I'm using a RPi 3 B+ over a wired connection. I can successfully deploy the "Blink (Advanced)" example after changing the input from COM to Local I/O as detailed in the training video. I then tried to run the "WS2812 Write N LEDs" with the same change to Local I/O and when I do, I get an error that says "This program can not run on a Pi2", but it's not a Pi2?

0 Kudos
Message 2 of 28
(4,898 Views)

Nick,

I have burned way too much time on this issue.  It should be a non-issue.  I tried uninstalling LV Community Edition and re-installing and refreshed Raspbian on the Pi to no avail.  When I first installed LV and had the failure error, I noted that the LINX VIs' properties in the install reflect a version series beginning in 19, not 20 as with other VIs in the 2020 install.  It may be possible that in their haste to release the code the incorrect LINX toolkit was included.  Who knows.  Clearly the attached hardware is coming up (identified) in the LINX Configuration Tool as RPi2 and thus when the LV code is being uploaded to the Pi3 or Pi4 it is a compiled copy for the Pi2.  Thus when you execute the code it falls on its face.

 

My repeated efforts to diagnose and fix this resulted in a corruption to the VI Package Manager that supports install/uninstall for the many previous LabVIEW packages on my workstation dating back over years and years.  So, tomorrow I will be calling tech support to resolve that issue and will see if they can get someone on the LV 2020 side to investigate the misidentification issue.  I should have just waited for the standard LV2020 release...sigh.

 

Will update here if I get some resolution info.

0 Kudos
Message 3 of 28
(4,888 Views)

For documentation purposes, I'm showing the same thing in the target information box. OS Version 10.3 and CPU Info = BCM 2835 (see screenshot). The RPi 3 B+ that I have has a BCM 2837. From what I can find the RPi 2 started with a BCM 2835 and later used a BCM 2836.

Also attached is the original error that I'm getting when trying to run the WS2812 example.

 

RPi Linx Configuration.png

Pi2 Error on Pi 3B+.png

0 Kudos
Message 4 of 28
(4,881 Views)

It seems like there are 2 things going on here. I dug into the first source of error in the WS2812 example. It turns out that this example will currently not work with any RPi (2, 3, 4 or otherwise). The reason is because the RPIs use the "local IO" setting and in the WS2812 example there's a case structure that throws an error when trying to use Local I/O (see below).

RPi Local.png

This, however, does NOT answer why my RPi 3 B+ and the RPi4 mentioned by dukeofoil is being identified as RPi2 with a BCM2835 processor in the first place. But in my case, the WS2812 example wouldn't work anyways.

0 Kudos
Message 5 of 28
(4,875 Views)

Last post on this for now. I dug until I came to the Call Interface Node. It's getting the device name from the "LinxGetDeviceName" function in the "liblinxdevice" DLL. That looks like a deadend for me as the DLL would have to be modified to get a different (correct) device name for the RPi.

0 Kudos
Message 6 of 28
(4,872 Views)

Nick,

Well, you did exactly the same diagnostics and troubleshooting that I did last week, including drilling down to the VI for Device ID, and came to the same result.  This is why I concluded that the LINX toolkit is not the proper set of code for the LV2020 release.  I will know more today.

0 Kudos
Message 7 of 28
(4,861 Views)

Nick,

Just got off the phone with Tech Support regarding my issue with NI Package Manager, et.al., and the rep promised to point out these posts to the LV Community Edition Development Team.  We may see a response from them in the not too distant future.  The official release time is coming up soon I believe.  Could be resolved in that release.

0 Kudos
Message 8 of 28
(4,855 Views)

Was this issue ever resolved?  I have a new Raspberry Pi 4 B. LabVIEW 2020 Pro, and  LINX Toolkit v1.0.0.9, running under W10. 

 

The software is at least partially working; for instance, the blink example works.  However:

  • The LINX Target Configuration Wizard says that the Pi is running 20.0.0-4.  The target info says the OS is 10.4.   The CPU Info is BCM2835.   This CPU is used on the Raspberry Pi 1. The 4B uses BCM2711.
  • If I use an invalid DIO channel, say 34, I get error code 5005: "The specified Digital Output channel (34) is not available on the Raspberry Pi 2 Model B."
  • The Conditional Disable Symbols are:
    LINX_DEVICE True
    LINX_DEVICE_FAMILY 4
    LINX_DEVICE_ID 3
    I can't find a decoding table for these symbols.

Does any of this matter?  Is my Pi 4 fully functional? 

 

Thanks

0 Kudos
Message 9 of 28
(4,739 Views)

I haven't heard any update on this issue so far. I don't know if it matters or not. I haven't dug any deeper than in my above posts. I'd say try the examples and if they work, they work 🙂 In my case, I was trying to use the WS2812 example (which I know WS2812 LEDs work with an RPi, I have it working using some Python code). So for me, it doesn't matter that the RPi is misidentified, the way the code is written in that particular example, ALL RPis are excluded.

0 Kudos
Message 10 of 28
(4,729 Views)