Advanced Search

Search Results (Searched for: raspberry)

  • atrex77
  • atrex77's Avatar
17 Apr 2025 18:13 - 17 Apr 2025 18:35

Developing a Raspberry Pi Pico-based I/O Board for LinuxCNC

Category: General LinuxCNC Questions

Dear Community,

I’m excited to share io-samurai, an open-source, budget-friendly interface for LinuxCNC and remote I/O projects, built from the ground up for makers like you! I’ve been working hard on this project, and I’m thrilled to announce that once the first batch of final PCBs arrives and I’ve thoroughly tested them, I’ll be releasing the full project on GitHub under the MIT License. Here’s a sneak peek at what’s coming:
What is io-samurai?
io-samurai is a versatile platform for CNC control and remote I/O, powered by Raspberry Pi Pico/Pico 2 and W5100S/W5500-Lite Ethernet modules. Key features:

    16 inputs (20–50 V, MCP23017, I2C) with Zener protection.
    8 high-current outputs (50 V, 500 mA, TD62783-driven, MCP23008-controlled).
    Single analog inputs (10 kΩ potentiometer, 0–3.3 V, GP26).
    40 MHz SPI (~6000 Hz burst) for fast Ethernet communication.
    Optional SH1106 OLED for I/O status and IP display.
    LinuxCNC uspace HAL driver (compiled with halcompile, .so), with safety features like timeout and data checks.
    Python library for automation and remote I/O.

It’s perfect for LinuxCNC users, but also great for IoT, home automation, or any project where you want to experiment with hardware and software.
Current Status
I’ve invested $268 into prototyping, and the first five final PCBs are on their way (~$40–50 each). Once the PCBs arrive and pass testing, I’ll publish the project on GitHub, including:

    Firmware: Pico/Pico 2 code with Wiznet’s ioLibrary_Driver (MIT licensed).
    HAL Driver: Uspace .so for LinuxCNC, with full setup guide.
    Hardware: Gerber files for PCB manufacturing (e.g., JLCPCB, PCBWay).
    Documentation: Detailed pinout.md, setup-guide.md, and io-samurai-manual.pdf.
    Python Library: For remote I/O and automation.

The GitHub repo (github.com/atrex66/io-samurai) is ready to go live under the MIT License, ensuring everyone can use, modify, and contribute to the project.
Get Involved!
I’m passionate about making io-samurai accessible to the LinuxCNC and maker communities. Here’s how you can join the journey:

    GitHub: Follow the repo for the upcoming release (github.com/atrex66/io-samurai).
    X: Follow updates and share your thoughts: @aTrEx77.

What’s Next?

    PCB Testing: Validate the final boards with W5500-Lite, MCP23017, MCP23008, and 10 kΩ potentiometer.
    GitHub Release: Share all code, docs, and Gerber files under MIT License.
    Roadmap: Mach3 driver, FPGA-based step generator, (~$150 full CNC or HMI control with display and pi Zero 2W).

I’d love to hear your feedback or ideas for io-samurai in LinuxCNC setups! What features would you like to see? Let’s build something awesome together. Built with ❤️ in Hungary.

Cheers,
Zsolt Viola

Patreon: Support development for early firmware access, technical posts, or consultations ($5–$30/month)
Patreon link ( #)
 
  • atrex77
  • atrex77's Avatar
16 Apr 2025 10:01

Developing a Raspberry Pi Pico-based I/O Board for LinuxCNC

Category: General LinuxCNC Questions

i think i finished the prototype stage, all of the prototype faults are corrected, pcb updated, Linuxcnc HAL Driver finished with safety mechanism (watchdog + jump code checksum, (also in the pico)), added optional lcd connector(128x64 sh1106) to the pcb, python library is ready for other uses (experimenting, remote io, etc....)

 
  • H-S-W
  • H-S-W
14 Apr 2025 08:02

Script to update 2.9.x ISO to use Linuxcnc Version 2.10 (master branch)

Category: Installing LinuxCNC

I still can't get it to work! changed the arch=amd64 to arch=arm64?
cnc@raspberrypi:~$ #! /bin/bash
cnc@raspberrypi:~$ mkdir ~/apt
mkdir: cannot create directory ‘/home/cnc/apt’: File exists
cnc@raspberrypi:~$ sudo cp -r /etc/apt/*.* ~/apt
cnc@raspberrypi:~$ sudo wget http://buildbot2.highlab.com/buildbot-archive-key.gpg -P /etc/apt/trusted.gpg.d
--2025-04-14 09:58:49--  http://buildbot2.highlab.com/buildbot-archive-key.gpg
Resolving buildbot2.highlab.com (buildbot2.highlab.com)... 184.96.146.47
Connecting to buildbot2.highlab.com (buildbot2.highlab.com)|184.96.146.47|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1190 (1.2K)
Saving to: ‘/etc/apt/trusted.gpg.d/buildbot-archive-key.gpg.3’

buildbot-archive-ke 100%[===================>]   1.16K  --.-KB/s    in 0s      

2025-04-14 09:58:49 (146 MB/s) - ‘/etc/apt/trusted.gpg.d/buildbot-archive-key.gpg.3’ saved [1190/1190]

cnc@raspberrypi:~$ sudo rm -f /etc/apt/preferences.d/99linuxcnc-uspace.pref
cnc@raspberrypi:~$ sudo rm -f /etc/apt/sources.list.d/linuxcnc-uspace.list
cnc@raspberrypi:~$ sudo tee /etc/apt/sources.list.d/linuxcnc-uspace.list > /dev/null <<EOT
deb [arch=amd64, signed-by=/etc/apt/trusted.gpg.d/buildbot-archive-key.gpg] http://buildbot2.highlab.com/debian/ bookworm master-uspace 2.9-uspace
EOT
cnc@raspberrypi:~$ sudo apt update
Hit:1 http://deb.debian.org/debian bookworm InRelease
Hit:2 http://deb.debian.org/debian bookworm-updates InRelease                  
Hit:3 http://deb.debian.org/debian bookworm-proposed-updates InRelease         
Hit:4 http://deb.debian.org/debian-security bookworm-security InRelease        
Hit:5 http://deb.debian.org/debian bookworm-backports InRelease                
Hit:6 http://download.opensuse.org/repositories/science:/EtherLab/Debian_12 ./ InRelease
Hit:7 http://buildbot2.highlab.com/debian bookworm InRelease                   
Hit:8 https://www.linuxcnc.org bookworm InRelease                              
Get:9 https://gnipsel.com/mesact/apt-repo stable InRelease [2608 B]
Err:9 https://gnipsel.com/mesact/apt-repo stable InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6F8DFB65A82CD322
Reading package lists... Done
W: Target Packages (master-uspace/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:6 and /etc/apt/sources.list.d/linuxcnc-uspace.list:1
W: Target Translations (master-uspace/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:6 and /etc/apt/sources.list.d/linuxcnc-uspace.list:1
W: Target Packages (2.9-uspace/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:6 and /etc/apt/sources.list.d/linuxcnc-uspace.list:1
W: Target Translations (2.9-uspace/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:6 and /etc/apt/sources.list.d/linuxcnc-uspace.list:1
W: Skipping acquire of configured file 'master-uspace/binary-arm64/Packages' as repository 'http://buildbot2.highlab.com/debian bookworm InRelease' does not seem to provide it (sources.list entry misspelt?)
W: Skipping acquire of configured file '2.9-uspace/binary-arm64/Packages' as repository 'http://buildbot2.highlab.com/debian bookworm InRelease' does not seem to provide it (sources.list entry misspelt?)
W: GPG error: https://gnipsel.com/mesact/apt-repo stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6F8DFB65A82CD322
E: The repository 'https://gnipsel.com/mesact/apt-repo stable InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: Target Packages (master-uspace/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:6 and /etc/apt/sources.list.d/linuxcnc-uspace.list:1
W: Target Translations (master-uspace/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:6 and /etc/apt/sources.list.d/linuxcnc-uspace.list:1
W: Target Packages (2.9-uspace/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:6 and /etc/apt/sources.list.d/linuxcnc-uspace.list:1
W: Target Translations (2.9-uspace/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:6 and /etc/apt/sources.list.d/linuxcnc-uspace.list:1
cnc@raspberrypi:~$ sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
  • llamatrails
  • llamatrails
13 Apr 2025 21:45

RPi 4, LinuxCNC upgrade doesn't upgrade kernel

Category: Installing LinuxCNC

Raspberry Pi 4 Model B Rev 1.2
Mesa 7c81
Debian GNU/Linux 12 (bookworm) 6.1.54-rt15 #1_RT Fri Nov 17 17:02:27 AEST 2023 aarch64

I installed LinuxCNC 2.9.3 from the linuxcnc ISO image a couple of years ago, and upgraded to 2.9.4 yesterday by:
$ sudo apt update  && sudo apt full-upgrade

I now have:
rick@raspi4:~$ dpkg -l | grep linux-image
ii  linux-image-bcm2711-rpi-4            6.1.54-rt15-1                           arm64        Linux kernel, version 6.1.54-rt15
rick@raspi4:~$ dpkg -l | grep linuxcnc
ii  linuxcnc-doc-en                      1:2.9.4                                 all          motion controller for CNC machines and robots (English documentation)
ii  linuxcnc-uspace                      1:2.9.4                                 arm64        motion controller for CNC machines and robots
ii  linuxcnc-uspace-dev                  1:2.9.4                                 arm64        PC based motion controller for real-time Linux

rick@raspi4:~$ uname -a
Linux raspi4 6.1.54-rt15 #1 SMP PREEMPT_RT Fri Nov 17 17:02:27 AEST 2023 aarch64 GNU/Linux

Is there a newer RT kernel then the one from 2023 ?
If so, how can I upgrade the kernel without having to reload the entire system from the latest ISO image ?

TIA,
Rick
 
  • pgf
  • pgf
12 Apr 2025 14:23

Running an external program from a HAL pin

Category: HAL

I spent my career trying to write reasonably efficient and fast code in firmware, device drivers and system level utilities. I'm afraid I just couldn't stomach adding a polling loop on top of the polling loop (every .2 seconds) that I discovered at the core of halui.

So I've done an end-run around the problem, which works nicely.

My mill runs from a Raspberry Pi, connected via a Mesa ethernet card. It occurred to me that if HAL could twiddle an actual gpio pin, then I could easily read that, and hook it up to action.  And of course if there's one thing the RPi has, it's plenty of gpio.

So I loaded hal_gpio, and hooked up a couple of output pins:
loadrt hal_gpio outputs=GPIO16,GPIO20
addf hal_gpio.write servo-thread
 
net external-estop-off \
        estop-latch.0.fault-out => hal_gpio.GPIO16-out
 
net coolant-mist => hal_gpio.GPIO20-out

Those pins were chosen because they were eacy immediately adjacent to another unused pin.  Gpio 16 is next to 19, and 20 is next to 26.  I jumpered those two pairs.

Then I wrote a short script using gpiomon to watch pins 19 and 26 for transitions.
#!/bin/bash

estop=19
vacuum=26

switch()
{
    echo Turning $1 $2   # e.g. "Turning vacuum on"
    wget -q -O /dev/null http://service:9901/event:cnc-mill-$1-$2 &
}

while read pinevent
do
    echo got $pinevent   # this will be "19-1", "19-0", "26-1", or "26-0"
    case $pinevent in
    $estop-1)
        switch spindle off
        ;;
    $vacuum-0)
        switch vacuum off
        ;;
    $vacuum-1)
        switch vacuum on
        ;;
    esac
done < <( gpiomon  --line-buffered --format="%o-%e" gpiochip0 19 26)

This works perfectly.

While I'm pleased to have found this solution, it sure seems silly to have had to consume 4 gpio pins in order to do it.

Thanks for all your suggestions!
paul
  • robforbes
  • robforbes
09 Apr 2025 18:24 - 09 Apr 2025 22:00

Inexpensive hardware setup: N95 Mini PC, Mesa 7I92T (Ethernet) and G540

Category: Computers and Hardware

Hi all, 

In case anyone else is interested in using inexpensive mini PCs and Mesa ethernet boards, I thought I'd share some details of my new setup. It's early days, but it seems to be working well--I'd be interested to hear about other people's experience with similar setups...

Mini PC, N95 $120 It's tiny, like 3-1/2" square!
Mesa 7192T $110 has ethernet and parallel port for the G540 (you need to build your own enclosure and supply 5v)
Gecko G540

I got the PC off Amazon:
www.amazon.com/dp/B0DGQ1P667?ref=ppx_yo2..._fed_asin_title&th=1
described as:
Mini PC Alder Lake-Ν95 (up to 3.4GHz) 4 Cores 4 Threads, Mini Computers 8GB DDR5 256GB M.2 SSD, Mini PC Dual Lan Support

Here are my somewhat cryptic notes about the configuration process. It's basically an assembly of techniques from other threads on this forum. I changed the IP address of the card from the default, but in hindsight I don't think that was really necessary.

Install linuxcnc from USB stick

Disable Turbo mode in BIOS (not sure this is really necessary)

(Note: there is no hyperthreading option in this particular machine)

Change mesa card jumper for "static IP from EEPROM"

edit /etc/network/interfaces to add static address for the card:
auto enp2s0
  iface enp2s0 inet static
    address 10.10.10.11
    netmask 255.255.255.0

sudo mesaflash --device 7I92T --addr 10.10.10.10 --write 7i92t_g540d.bin

change grub:
  isolcpus=2,3

===== At this point I was getting network timeouts. The fix for this has been posted on this forum, and is as follows: ============

Because of network latency issues it is necessary to install the dkms driver per this thread:
docs.google.com/document/d/1jeV_4VKzVmOI...ading=h.macj649sy0yq
Open a terminal window and Type the following lines: 
sudo apt update 
sudo dpkg -P raspi-firmware
sudo apt dist-upgrade
Note that the second line (sudo dpkg …) removes firmware for the raspberry pi incorrectly installed by Debian and is a bug out of our control

Type:
sudo apt update
you need to install some utilities. Type:
sudo apt install build-essential dkms 
If you have not installed a later kernel as described above install linux-headers. Type:
sudo apt install linux-headers-$(uname -r)
sudo apt install r8168-dkms 

Rob
  • behai
  • behai
09 Apr 2025 07:43

4-Gang 1-Way Switch To Control 3 Power Supplies and a Router Independently

Category: Computers and Hardware

For a control box, the simplest way is to use a switched, EMI filtered and fused IEC connector
www.amazon.com.au/uxcell%C2%AE-IEC320-Sw...Filter/dp/B01FT0VRTS
You can see one of these used at the bottom right of my photo shared earlier.

But in your case, this won't work if you want to switch the router on and off because the current of the router will be too high for the typically 6 amp AC rating. Plus you would not want the electrically noisy router to be on the same side of the EMI filter as your electronics.

So in your case, I would use a fixed power lead and a cable gland to bring mains into the control box to two household breakers around 10 amp. One of these will protect your router circuit and the other your electronics, On the electronics circuit, immediately after the breaker, fit an EMI filter
www.jaycar.com.au/240v-ac-emi-filter/p/MS4001
Then connect all of your power supplies to the filtered mains power.

Filtering the power is really important to avoid spurious triggering from electrical noise. I learnt the hard way.

The next thing to work out is your estop. That's a bit tricky because you need to disable the router and the stepper motor power supply without using any relays that could fail. The estop needs to drop power to your router power and  stepper mains motion. You could use 2 phases of a 3 phase breaker but technically you would then need  to use a safety relay to be compliant.
Its probably acceptable to disable your stepper drivers using the enable pins on them that are usually left disconnected.


 

Thank you Rod,

I have been thinking about your advice on the router, I am trying something I don't have any practical knowledge of, I will just leave this one out, I will get the other three working, as my knowledge increase, I might rewire it again. This just my hobby project. But I really like learning electronics now, I have always been afraid of it.

You are right, the ENABLE pin on the CLT57T-V41 is left unconnected. During my learning of this driver, I used only the Raspberry Pi 4 and Python to program it, setting ENABLE to high disables the motor.

Best regards,

...behai.
 
  • rodw
  • rodw's Avatar
08 Apr 2025 09:31
Replied by rodw on topic LinuxCNC S-Curve Accelerations

LinuxCNC S-Curve Accelerations

Category: General LinuxCNC Questions

Glad you waded into the live build environment. Wait till I get you going on the raspberry Pi 
Sorry it failed for you.. I had plenty of that. The biggest issue I had was getting apt configured and installing the gpt keys.
Bjarne from Etherlab was a big help there.

I think Linuxcnc builds all of the Debs in the one go.
There was a really interesting pull request from Stefan Moller that has yet to be committed which installed the dependencies the Debian way (eg. Just using one command. It would have been nice to see it in the code by now.
  • Krimbles13
  • Krimbles13
04 Apr 2025 10:14 - 04 Apr 2025 10:18

Remora - Rpi Software Stepping Using External Microcontroller via SPI

Category: Computers and Hardware

Hey,
sorry to bother you with this but i can't get this to work and i'm kinda frustrated.
I can't get out of e-stop and get a bad spi payload = 646174

My hardware:
Raspberry Pi 4B
BTT Octopus Pro v1.1 with stm32f446
TMC2209 Drivers with jumpers in SPI mode

I did the wiring acording to the docs and also the installation.
With cutecom i get the output in the attached file for the octopus xyz.hal.
SPI and UART are activated on the Pi and i already did a rewiring of the whole thing.
I'm tottaly new to LinuxCNC so i would really appreciate your help on this.

Thanks! peter

 

File Attachment:

File Name: debugoutput.txt
File Size:2 KB
  • unknown
  • unknown
03 Apr 2025 21:37

Linuxcnc & the Raspberry Pi (4 & 5) Official Images Only!!!

Category: Installing LinuxCNC

Look for the ethercat thread, process is the same for as for the amd64 platform.

I have gone through the installation process and it completes without any errors.
  • atrex77
  • atrex77's Avatar
03 Apr 2025 20:11

Developing a Raspberry Pi Pico-based I/O Board for LinuxCNC

Category: General LinuxCNC Questions

Houston, we have a problem, i ordered the io port expander (mcp23017) in wrong package so28 instead of ssop28, and the zener diodes is missing from the order, and i missed the i2c port pullup resistors from the design this need a littlebit of workaround, but the outputs are working now (tbd 62783). Tested with 5v and 24v without load, i messed up 1 of the w5100s-evb-pico-s usb port by pulling the whole microusb inside out but now this programmed trough the SWD debug port, the positive side is i do not need to printing debug info in the usb serial port.
  • jdowsonjr
  • jdowsonjr
03 Apr 2025 16:03

Linuxcnc & the Raspberry Pi (4 & 5) Official Images Only!!!

Category: Installing LinuxCNC

I can give it a try, could you please share more details on how you got ethercat installed so i can reproduce your setup?
  • unknown
  • unknown
03 Apr 2025 04:29

PCIe - No parport registered at "0x " . This is not Always an error.Continuing.

Category: Advanced Configuration

Just gone 3pm here in Sydney.

No something interesting.

I worked on a little project using an FPGA dev board to run MESA's hostmot2 firmware. First attempt was based on the 7c81 using either SPI (raspberry pi) or EPP (best on motherboard based parallel ports). The issue with the board I used is that the EEPROM need to be changed and the headers were already soldered on.
That same hardware can also be used with the LinuxcncRIO project.

Another project I had a go at was modding the 7i90 Smart serial firmware to support 4 encoders to run on a dev board.

For my latest I've grabbed a different dev board (eeprom is correct size & bought with the headers unslodered, but this time I'll be trying a Ethernet interface, chip is same as use on the Mesa products, so no having to rewrite a driver, which requires a couple of steps, first being working out the instructions of the softcore, working how the driver talks to the chip and then how it integrates with the rest.

Some pics, 2x17 ports from breakout boards (mesa 25 pin daughter boards can be used as well) and 4 extra pins for 2 smart serial ports or extra I\O.

First off is the FPGA from aliexpress:
 

The Ethernet board, this is experiment only, the FPGA board sits on top, disregard the type of 2x25 headers they can be changed to suit. Should have the boards in a couple of weeks.
 

One of the daughter boards from the orignal project.
 
  • H-S-W
  • H-S-W
02 Apr 2025 07:35

Script to update 2.9.x ISO to use Linuxcnc Version 2.10 (master branch)

Category: Installing LinuxCNC

cnc@raspberrypi:~$ sudo apt-add-repository "deb buildbot2.highlab.com/debian/ bookworm master-uspace 2.9-uspace"
sudo: apt-add-repository: command not found
Displaying 121 - 135 out of 922 results.
Time to create page: 1.023 seconds
Powered by Kunena Forum