MatrixVoice PlatformIO
The current guide show how build and upload any firmware for the MatrixVoice ESP32 board using PlatformIO via OTA updates or Arduino OTA
.
note: The next documentation is based on Program Over the Air on ESP32 MATRIX Voice documentation but it using PlatformIO instead Arduino IDE. You dont need IDF toolchain or any library, PlatformIO do it for you.
Prerequisites
Please review the last version of this document in github
PlatformIO software
Please install first PlatformIO open source ecosystem for IoT development and its command line tools (Windows, MacOs and Linux). Also, you may need to install git in your system (PC).
MatrixVoice software
For get OTA updates without RaspberryPi, first you should have a one RaspberryPi with MatrixVoice
software. Please run into your RaspberryPi shell or ssh:
add debian repository key:
curl https://apt.matrix.one/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.matrix.one/raspbian $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/matrixlabs.list
update your repository and packages:
sudo apt-get update
sudo apt-get upgrade
install the MATRIX init package
sudo apt install matrixio-creator-init
reboot your Raspberry Pi
sudo reboot
SSH back into the pi, execute this command:
voice_esp32_enable
Installing initial firmware for OTA
Return to your PC and clone this repository:
git clone https://github.com/hpsaturn/matrixvoice_platformio.git
cd matrixvoice_platformio
Copy platformio.ini
sample and change your network parameters:
cp platformio.ini.sample platformio.ini
NOTE: plase change platformio.ini
and set your SSID
and PASSW
like this:
'-DWIFI_SSID="MyWifiSsid"'
'-DWIFI_PASS="MyWifiPassw"'
building
pio run
upload
Enter to OTA directory and upload the firmware. Please replace the ip
parameter with your RaspberryPi
ip like this:
cd ota
./install.sh 192.168.178.65
Note: also you can try with raspberry.local instead ip address (sometimes it works)
The console output should be like this:
(master) avp:ota$ ./install.sh 192.168.178.65
Loading firmware: ../.pio/build/esp32dev/firmware.bin
-----------------------------------
esptool.py wrapper for MATRIX Voice
-----------------------------------
esptool.py v2.7
Serial port /dev/ttyS0
Connecting....
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, Coding Scheme None
Crystal is 40MHz
MAC: 30:ae:a4:07:6f:7c
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Wrote 32768 bytes at 0x00001000 in 3.0 seconds (86.2 kbit/s)...
Hash of data verified.
Wrote 966656 bytes at 0x00010000 in 90.4 seconds (85.6 kbit/s)...
Hash of data verified.
Wrote 16384 bytes at 0x00008000 in 1.5 seconds (86.5 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
done
[SUCCESS] Please disconnect your MatrixVoice from the RaspberryPi and reconnect it alone for future OTA updates.
(end of Prerequisites
)
Upload via PlatformIO OTA
After that, you can using your MatrixVoice without
RaspberryPi. For send new OTA updates, you only need:
pio run --target upload
For update MatrixVoice
libraries in the future, you only need:
pio lib update
Troubleshooting
Uploading issues
If pio run --target upload
not works, please check MVID
parameter, it should be a short name, or you can passing ESP32 ip in upload_port
parameter in platformio.ini
file.
Building issues
For a complete clean
of the project and get the last version of the libraries, please test the next commands:
git pull
pio run -t clean && rm -r .pio
pio run