Note
This doesn't seem to work with newer versions of MC2MQTT. I moved to Meshcore Packet Capture with an attached USB companion node instead, but am leaving these instructions here in case anyone finds them useful.
Because the Raspberry Pi Zero 1W is a 32-bit ARM chipset, there are some difficulties installing NodeJS - if the main MC2MQTT install script is run immediately then the Pi will attempt to compile NodeJS for ARM32 when installing the Meshcore Decoder, which has failed every time I try it - eventually timing out.
Fortunately there are repositories available with already-compiled 32-bit ARM binaries which can be used to install NodeJS prior to running the installation script.
Below are the steps I use when setting up my own Pi Zero 1Ws for use with meshcoretomqtt.
- Install NVM 0.39.7. Newer versions may also be fine.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"
- Add the "unofficial-builds" NodeJS mirror which contains ARM32 binaries. To do
this, set a
NVM_NODEJS_ORG_MIRRORenvironment variable.
echo 'export NVM_NODEJS_ORG_MIRROR=https://unofficial-builds.nodejs.org/download/release' >> ~/.bashrc
export NVM_NODEJS_ORG_MIRROR=https://unofficial-builds.nodejs.org/download/release
- Install NodeJS v22.x. Newer versions may also work.
nvm install 22 && nvm use 22 && nvm alias default 22 && node -v
echo 'export PATH=$(npm config get prefix)/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
- Now you can install the Meshcore Decoder. It will detect the fact that you already have NodeJS installed so will not try to install the 64-bit version.
npm install -g @michaelhart/meshcore-decoder
- Now, you can run the meshcoretomqtt installation script
curl -fsSL https://raw.githubusercontent.com/Cisien/meshcoretomqtt/main/install.sh | bash
After that everything should be good to go. You can re-run the meshcoretomqtt script to update your Pi when new versions are released.