mongoose/examples/rp2040/pico-rndis-device
Sergio R. Caprile 4c6c27d8f6 fix 573f13c
2024-05-09 14:38:57 -03:00
..
netif Add MQTT device through RNDIS example 2023-12-13 17:24:52 -03:00
CMakeLists.txt remove arch autodetection for embedded 2024-04-18 17:28:40 -03:00
hal.h Add MQTT device through RNDIS example 2023-12-13 17:24:52 -03:00
main.c fix 573f13c 2024-05-09 14:38:57 -03:00
Makefile Add MQTT device through RNDIS example 2023-12-13 17:24:52 -03:00
mongoose_config.h remove arch autodetection for embedded 2024-04-18 17:28:40 -03:00
mongoose.c Add MQTT device through RNDIS example 2023-12-13 17:24:52 -03:00
mongoose.h Add MQTT device through RNDIS example 2023-12-13 17:24:52 -03:00
net.c Add MQTT device through RNDIS example 2023-12-13 17:24:52 -03:00
net.h Add MQTT device through RNDIS example 2023-12-13 17:24:52 -03:00
README.md Add MQTT device through RNDIS example 2023-12-13 17:24:52 -03:00
tusb_config.h Add MQTT device through RNDIS example 2023-12-13 17:24:52 -03:00
usb_descriptors.c Add MQTT device through RNDIS example 2023-12-13 17:24:52 -03:00

Remote MQTT Device on an RP2040

Your headless Raspberry Pi Pico-based hardware can also be a remote gadget when you connect it to your computer via USB

For the USB specifics, see this related tutorial at https://mongoose.ws/tutorials/rp2040/pico-rndis-dashboard/

See this tutorial to control your device: https://mongoose.ws/tutorials/mqtt-dashboard/

For this to work, you need your computer to act as a router (gateway) and NAT for your device.

Linux setup

Enable "masquerading"; the quick and simple options are:

sudo iptables --flush
sudo iptables --table nat --flush
sudo iptables --delete-chain
sudo iptables --table nat --delete-chain

# Do masquerading
sudo iptables -t nat -A POSTROUTING -o yourifc -j MASQUERADE
# enable routing
sudo echo 1 > /proc/sys/net/ipv4/ip_forward

Where yourifc is the interface that is connected to your network

MacOS setup