Pico Universal PWM Won't boot Random pins not working

  • LearningLinuxCNC
  • LearningLinuxCNC's Avatar Topic Author
  • Offline
  • Elite Member
  • Elite Member
More
19 Dec 2025 02:19 #340295 by LearningLinuxCNC
So I have not used my RB1-CNC machine for a while. I tried starting it up today and I am getting errors on load that have to do with not being able to find pins on the Pico Systems Universal PWM board. Sometimes it won't find the board at all other times it won't find an generic IO pin other times it won't find an encoder pin.

This was working then I had to reconfigure from 2.7 to 2.8 and got it working again and now after setting for around a year I can't get it to load into linuxcnc unless I comment out of the hal files that tie to the pins on the UPWM board.

Here is one of the error outputs.
Error report created by /usr/lib/tcltk/linuxcnc/show_errors.tcl:

Print file information:
RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/usr/bin
LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/usr/lib/linuxcnc/modules
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/lib/tcltk/linuxcnc/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.6
LINUXCNC - 2.8.4-1-gb7824717b
Machine configuration directory is '/home/jim/linuxcnc/configs/RB1-CNC_Gmoccapy_DEV_1_10'
Machine configuration file is 'RB1-CNC_Gmoccapy.ini'
INIFILE=/home/jim/linuxcnc/configs/RB1-CNC_Gmoccapy_DEV_1_10/RB1-CNC_Gmoccapy.ini
VERSION=1.1
PARAMETER_FILE=sim.var
TASK=milltask
HALUI=halui
DISPLAY=gmoccapy
COORDINATES=XYZ
KINEMATICS=trivkins coordinates=XYZ
Starting LinuxCNC...
Starting LinuxCNC server program: linuxcncsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting LinuxCNC IO program: io
Starting HAL User Interface program: halui
Found file(REL): ./univpwm_load.hal
Found file(REL): ./univpwm_servo.hal
Found file(REL): ./univpwm_io.hal
Shutting down and cleaning up LinuxCNC...
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments

Debug file information:
Note: Using POSIX realtime
PPMC: bus 0 epp_dir = 0
PPMC: bus 1 epp_dir = 0
PPMC: bus 2 epp_dir = 0
PPMC: checking EPP bus 0 at port 0378
PPMC: slot 0: ID code: 08 PPMC: Check Parallel Port connection.
read cache bitmap: 00000000
write cache bitmap: 00000000
PPMC: slot 1: ID code: 10 PPMC encoder card 1
PPMC: exporting encoder pins / params
read cache bitmap: 00001fff
write cache bitmap: 00002000
PPMC: slot 2: ID code: 28 PPMC DAC card
PPMC:  exporting PPMC DAC
read cache bitmap: 00000000
write cache bitmap: 000000ff
PPMC: slot 3: ID code: 21 PPMC DAC card
PPMC:  exporting PPMC DAC
read cache bitmap: 00000000
write cache bitmap: 000000ff
PPMC: slot 4: nothing detected at addr 4 reads 4f
PPMC: slot 5: nothing detected at addr 5 reads 5f
PPMC: slot 6: nothing detected at addr 6 reads 6f
PPMC: slot 7: nothing detected at addr 7 reads 7f
PPMC: slot 8: nothing detected at addr 8 reads 8f
PPMC: slot 9: nothing detected at addr 9 reads 9f
PPMC: slot 10: nothing detected at addr a reads af
PPMC: slot 11: nothing detected at addr b reads bf
PPMC: slot 12: nothing detected at addr c reads cf
PPMC: slot 13: nothing detected at addr d reads 5f
PPMC: slot 14: nothing detected at addr e reads ef
PPMC: slot 15: nothing detected at addr f reads ff
PPMC: bus 0 complete
./univpwm_io.hal:14: Pin 'ppmc.0.din.04.in' does not exist
1199
Stopping realtime threads
Unloading hal components
PPMC: shutting down
Note: Using POSIX realtime



-----------------------------------------------------------------------
Info report created by linuxcnc_info:
The file:    /tmp/linuxcnc_info.txt
can be posted to a forum or a web site like:
     http://pastebin.com
in order to provide information about the linuxcnc
system and configuration.

                Date: Thu 18 Dec 2025 08:12:47 PM CST
            UTC Date: Fri 19 Dec 2025 02:12:47 AM UTC
        this program: /usr/bin/linuxcnc_info
              uptime: 20:12:47 up 1 min, 1 user, load average: 0.98, 0.53, 0.20
     lsb_release -sa: Debian Debian GNU/Linux 10 (buster) 10 buster
      which linuxcnc: /usr/bin/linuxcnc
                 pwd: /home/jim/linuxcnc/configs/RB1-CNC_Gmoccapy_DEV_1_10
                USER: jim
             LOGNAME: jim
                HOME: /home/jim
              EDITOR:
              VISUAL:
            LANGUAGE:
                TERM: dumb
           COLORTERM:
             DISPLAY: :0.0
             DESKTOP: lightdm-xsession
        display size: 1600x900 pixels (423x238 millimeters)
                PATH: /usr/bin:/home/jim/linuxcnc/configs/RB1-CNC_Gmoccapy_DEV_1_10/bin:/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

uname items:
         nodename -n: RB1CNC
      kernel-name -s: Linux
      kernel-vers -v: #1 SMP PREEMPT RT Debian 4.19.249-2 (2022-06-30)
          machine -m: x86_64
        processor -p: unknown
         platform -i: unknown
      oper system -o: GNU/Linux

/proc items:
             cmdline: BOOT_IMAGE=/boot/vmlinuz-4.19.0-21-rt-amd64 root=UUID=43e45ba2-b737-4e61-84e3-76e380b282e4 ro quiet
          model name: Intel(R) Celeron(R) CPU J3455 @ 1.50GHz
               cores: 4
             cpu MHz: 1191.600
             parport: 0000-0000 : parport0 0000-0000 : parport0
              serial: 0000-0000 : serial 0000-0000 : serial

Versions:
                 gcc: gcc (Debian 8.3.0-6) 8.3.0
              python: Python 2.7.16
                 git: not_in_PATH
          git commit: NA
                 tcl: 8.6
                  tk: 8.6
               glade: not_in_PATH
          glade-gtk2: not_in_PATH

linuxcnc_var all:

     LINUXCNCVERSION: 2.8.4-1-gb7824717b
LINUXCNC_AUX_GLADEVCP: /usr/share/linuxcnc/aux_gladevcp
LINUXCNC_AUX_EXAMPLES: /usr/share/linuxcnc/aux_examples
            REALTIME: /etc/init.d/realtime
                 RTS: uspace
          HALLIB_DIR: /usr/share/linuxcnc/hallib

dpkg -l '*linuxcnc*':
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                Version              Architecture Description
+++-===================-====================-============-=====================================================================
un  linuxcnc            <none>               <none>       (no description available)
un  linuxcnc-dev        <none>               <none>       (no description available)
un  linuxcnc-doc        <none>               <none>       (no description available)
ii  linuxcnc-doc-en     1:2.8.4.1.gb7824717b all          motion controller for CNC machines and robots (English documentation)
ii  linuxcnc-doc-es     1:2.8.4.1.gb7824717b all          controlador de movimiento para máquinas CNC y robots (Español).
ii  linuxcnc-doc-fr     1:2.8.4.1.gb7824717b all          motion controller for CNC machines and robots (French documentation)
un  linuxcnc-sim        <none>               <none>       (no description available)
un  linuxcnc-sim-dev    <none>               <none>       (no description available)
ii  linuxcnc-uspace     1:2.8.4.1.gb7824717b amd64        motion controller for CNC machines and robots
ii  linuxcnc-uspace-dev 1:2.8.4.1.gb7824717b amd64        PC based motion controller for real-time Linux

Please Log in or Create an account to join the conversation.

More
19 Dec 2025 15:44 #340304 by jmelson
That report lists 4 PPMC boards at "slots" 0, 1, 2 and 3. That is pretty odd. Are you sure this machine has a PWM controller? Are you sure the parallel port is set up correctly? Did the CMOS battery go dead? If so, the BIOS settings for the parallel port would have gotten lost. Make sure the BIOS peripheral settings for the parallel port are set to EPP mode.
Those are the first things that come to mind.
Report back if these hints don't fix it.
Jon
The following user(s) said Thank You: tommylight

Please Log in or Create an account to join the conversation.

  • LearningLinuxCNC
  • LearningLinuxCNC's Avatar Topic Author
  • Offline
  • Elite Member
  • Elite Member
More
20 Dec 2025 01:34 #340326 by LearningLinuxCNC
Replied by LearningLinuxCNC on topic Pico Universal PWM Won't boot Random pins not working
John,

Yes it is the UPWM board. It is driving your pwm servo drives. The CMOS battery did die at one point but the parallel port is set up in epp mode. I am not sure why it is doing this. If you have any troubleshooting tips I would be glad to hear them. Could the eeprom be bad?

Please Log in or Create an account to join the conversation.

More
20 Dec 2025 13:34 #340346 by jmelson

John,

Yes it is the UPWM board. It is driving your pwm servo drives. The CMOS battery did die at one point but the parallel port is set up in epp mode. I am not sure why it is doing this. If you have any troubleshooting tips I would be glad to hear them. Could the eeprom be bad?
 

OK, so the scan of the parallel port is getting some random stuff, since it thinks it sees a bunch of PPMC boards there.
The FPGA on the UPC runs a checksum on the data loaded from EPROM, so if the red (load fail) LED flashes and goes out when power is applied, then it is accepting the firmware as valid.  If that LED stays on, then the firmware did NOT load.  First, check that the BIOS settings are for the parallel port to be at address 378, as that is what LinuxCNC is using.  If this is a PCI or PCIe parallel port, then the address will not be 0x378.  There are several versions of EPP mode, if the BIOS allows to select between 1.7 and 1.9 versions, try both.  If your parport cable is not rated for IEEE1284 operation, that can be the problem.
Oh, one other thing is there are some ppmc driver options that may need to be changed for the newer LinuxCNC version.
In your config file set, in ppmc_load.hal, on the line that loads the ppmc driver,
loadrt hal_ppmc timestamp="0x00"
try adding this to the end of that line:
< space> epp_dir=1
That might fix it.  This is documented in a comment in that file.

I'm not too sure what else to suggest.
Jon

Please Log in or Create an account to join the conversation.

  • LearningLinuxCNC
  • LearningLinuxCNC's Avatar Topic Author
  • Offline
  • Elite Member
  • Elite Member
More
20 Dec 2025 23:15 #340359 by LearningLinuxCNC
Replied by LearningLinuxCNC on topic Pico Universal PWM Won't boot Random pins not working
Jon,

I have tried both 1.9 and 1.7 on the bios epp setting.

I tried the epp_dir=1 setting as you suggested.

The cable is the same one I have been using since I converted the machine back in 2015 or so.

The load fail red led does come on and stay on when I boot up linuxcnc and get the error messages. also the green estop ok led is lit as well. Prior to starting linuxcnc the light is off.

I decided to try and update to 2.9 linuxcnc and see if that helps but I am running into issues with that also. I need to get python3.7 installed but it is not playing nice. I will keep working on it but I suspect it is a hardware issue.

Do we need to try another eprom?
 

Please Log in or Create an account to join the conversation.

More
21 Dec 2025 22:17 #340383 by jmelson

Jon,


The load fail red led does come on and stay on when I boot up linuxcnc and get the error messages. 

This is the killer problem!  The FPGA is not accepting the load of its program.  It is somewhat unlikely the EPROM has gone bad, but possible.  First, check that the +12V supply is operating properly, and does not have excessive ripple.  Without a valid program in the FPGA, nothing will ever work.  If the power supply is good, then it is possible the FPGA has been damaged, or one of the regulators on the board has gone bad or is overloaded.  You can check from the wide tab of U31 to one of the G terminals of P2.
That should read +3.3 V.  Then check the wide tab of U32, that should read +1.2V.  If either of these is out of range, something got popped.  You can also check for correct power up with the parallel port cable disconnected.  D4 (Load Fail) should blink once and then stay out.
Jon

Please Log in or Create an account to join the conversation.

More
21 Dec 2025 22:20 #340384 by jmelson

The load fail red led does come on and stay on when I boot up linuxcnc and get the error messages. also the green estop ok led is lit as well. Prior to starting linuxcnc the light is off.


 

OH, didn't read closely enough!  If you are saying the Load Fail LED only stays on after LinuxCNC starts?  I know of NO WAY LinuxCNC can turn this light on, except by maybe causing a fluctuation of the 12 V supply.
Please give a bit more detail.
Jon

Please Log in or Create an account to join the conversation.

Moderators: PCWjmelson
Time to create page: 0.071 seconds
Powered by Kunena Forum