@bearer said in Replace the Wifi or Ethernet module by the ESP-13?:
(I'll see if I can find time later this week to borrow the Duet 3's RPi 3B and try bridging it to the Duet 2 Maestro, but busy week)
@Kanyo FYI this works with my RPi 3B+ https://willhaley.com/blog/raspberry-pi-wifi-ethernet-bridge/
I tested Option 1 and it works just fine with my Duet 2 Maestro. The Pi gets an IP address of its own so you can still administrate it from the same network. The Duet 2 Maestro even gets the same (non reserved) DHCP lease through the bridge and mDNS works with the older firmware, but the Pi could probably be made to announce on the Duet's behalf if needed.
Edit: I'll add the whole thing here, with warnings and all; in case the link dies in the future..
Note: This script drastically changes the networking configuration and your Pi may end up in an unreliable networking state if anything goes wrong
#!/usr/bin/env bash
set -e
[ $EUID -ne 0 ] && echo "run as root" >&2 && exit 1
# Update these variables as needed
ssid="the ssid"
psk="the password"
country="US"
# You should not need to update anything below this line
apt update && apt install parprouted dhcp-helper
systemctl stop dhcp-helper
systemctl enable dhcp-helper
systemctl mask networking.service
systemctl mask dhcpcd.service
if [ -d /etc/network/interfaces ];
then
mv /etc/network/interfaces /etc/network/interfaces.bak
fi
sed -i '1i resolvconf=NO' /etc/resolvconf.conf
systemctl enable systemd-networkd.service
systemctl enable systemd-resolved.service
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
cat > /etc/wpa_supplicant/wpa_supplicant-wlan0.conf <<EOF
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=${country}
network={
ssid="${ssid}"
psk="${psk}"
}
EOF
chmod 600 /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
systemctl disable wpa_supplicant.service
systemctl enable wpa_supplicant@wlan0.service
cat > /etc/systemd/network/08-wlan0.network <<EOF
[Match]
Name=wlan0
[Network]
DHCP=yes
IPForward=yes
EOF
cat > /etc/default/dhcp-helper <<EOF
DHCPHELPER_OPTS="-b wlan0"
EOF
cat <<'EOF' >/etc/avahi/avahi-daemon.conf
[server]
use-ipv4=yes
use-ipv6=yes
ratelimit-interval-usec=1000000
ratelimit-burst=1000
[wide-area]
enable-wide-area=yes
[publish]
publish-hinfo=no
publish-workstation=no
[reflector]
enable-reflector=yes
[rlimits]
EOF
cat <<'EOF' >/etc/systemd/system/parprouted.service
[Unit]
Description=proxy arp routing service
Documentation=https://raspberrypi.stackexchange.com/q/88954/79866
[Service]
Type=forking
# Restart until wlan0 gained carrier
Restart=on-failure
RestartSec=5
TimeoutStartSec=30
ExecStartPre=/lib/systemd/systemd-networkd-wait-online --interface=wlan0 --timeout=6 --quiet
ExecStartPre=/bin/echo 'systemd-networkd-wait-online: wlan0 is online'
# clone the dhcp-allocated IP to eth0 so dhcp-helper will relay for the correct subnet
ExecStartPre=/bin/bash -c '/sbin/ip addr add $(/sbin/ip -4 -br addr show wlan0 | /bin/grep -Po "\\d+\\.\\d+\\.\\d+\\.\\d+")/32 dev eth0'
ExecStartPre=/sbin/ip link set dev eth0 up
ExecStartPre=/sbin/ip link set wlan0 promisc on
ExecStart=-/usr/sbin/parprouted eth0 wlan0
ExecStopPost=/sbin/ip link set wlan0 promisc off
ExecStopPost=/sbin/ip link set dev eth0 down
ExecStopPost=/bin/bash -c '/sbin/ip addr del $(/sbin/ip -4 -br addr show eth0 | /bin/grep -Po "\\d+\\.\\d+\\.\\d+\\.\\d+")/32 dev eth0'
[Install]
WantedBy=wpa_supplicant@wlan0.service
EOF
systemctl daemon-reload
systemctl enable parprouted.service
systemctl start wpa_supplicant@wlan0 dhcp-helper systemd-networkd systemd-resolved
Edit 2: Pay attention to the country="US" variable to ensure local compliance with Wifi channels/frequencies