Clone this wiki locally
HOWTO update the MagicShifter 3000 Firmware
It's easy to update the firmware of your MagicShifter 3000 to the latest version. If you want to build the firmware yourself have a look at our instructions in our MS3000 github reppsitory.
Step 1 - Download esptool
To upload the firmware you need the esptool-ck that does all the communication with the ESP8266 bootloader. Get the precompiled binaries (available for Linux, OSX and Windows) for your system. Extract the esptool (on windows it's called 'esptool.exe' and on linux and osx it's called 'esptool') and put it into a new folder called 'MS3000' in your home directory.
Step 2 - Download the MagicShifter 3000 firmware
Get the newest precompiled MagicShifter Firmware from our MS3000 releases and also put it into the 'MS3000' folder you created in Step 1.
Step 3 - Reflash the MS3000
The last step differs a bit depending on which operating system you use
Linux & OSX
Open a shell and go to the 'MS3000' directory where you put the esptool and the firmware. To update the firmware you have to know the device name of the USB serial port the MS3000 is connected to. On most Linux systems the serial port will be called /dev/ttyUSB0 but the name might be different if you allready have other USB to serial devices connected to your PC. Adapt the command below to your system by replacing SERIAL_PORT with the name of the serial port and FIRMWARE_FILE with the name of the firmware you just downloaded.
./esptool -vv -cd ck -cb 115200 -cp SERIAL_PORT -cf FIRMWARE_FILE
on most systems the following command should work:
./esptool -vv -cd ck -cb 115200 -cp /dev/ttyUSB0 -cf MS3000_Firmware_1.2.0.bin
The command takes about 7 minutes to execute so please be patient. Please note, if your laptop supports it, you can use 921600 as the baud-rate instead of the above example, which is 'safe' for most users, but slow.
./esptool -vv -cd ck -cb 921600 -cp /dev/ttyUSB0 -cf MS3000_Firmware_1.2.0.bin
If your user does not have the necessary rights to access the serial port you will get an error saying that the port could not be opened. In this case you can prefix the whole command with the 'sudo' command to execute the command with more privileges. As an alternative you can find out how to give your user the needed rights on your operating system.
Open a command prompt in the directory you created in Step 1. You can open the command line window by holding down the Shift key and right-clicking the folder you created in Step 1. The context menu should contain an entry, ‘Open command window here.‘
To update the firmware you have to know the device name of the USB serial port the MS3000 is connected to. On most Windows systems it will be called COM0 (or COM1, COM2, COM3 etc.) but the name might be different if you already have other USB to serial devices connected to your PC. Adapt the command below to your system by replacing SERIAL_PORT with the name of the serial port and FIRMWARE_FILE with the name of the firmware you just downloaded.
esptool.exe -vv -cd ck -cb 115200 -cp SERIAL_PORT -cf FIRMWARE_FILE
For example if the MS3000 is connected to COM0 the following command should work:
esptool.exe -vv -cd ck -cb 115200 -cp COM0 -cf MS3000_Firmware_v0.9.0.bin
(n.b. you can use "-cb 921600" for higher-speeds..)
The command takes about 7 minutes to execute so please be patient. (unless you used "-cb 921600", in which case it'll be about 8 times quicker..)
formating works but uploading fails
If the upload process does not start it sometimes helps to keep the B button pressed. Before starting the command keep the B button pressed till it starts to write the flash (about 10-15 seconds from the time you entered the command line). This tells the ESP that the bootloader mode should be entered on startup. This is normally done via RST and DTR via serial but this can fail sometimes.
Problems on Windows
Some windows users have reported problems with the esptool.exe.
There is an alternative way to flash it: You can also use the python variant of the esptool: esptool.py To flash the MS3000 firmware you'll need:
- Python 2.7: https://www.python.org/downloads/
- pyserial: https://pypi.python.org/pypi/pyserial
- esptool.py from https://github.com/themadinventor/esptool
The command line for flashing is:
C:\Python27\python.exe esptool.py --port COM3 write_flash 0 MS3000_Firmware_v0.9.0.bin
Before starting the command keep the B button pressed till it starts to write the flash (about 10-15 seconds from the time you entered the command line)
Adapt the name of the serial port and the firmware filename to your setup!