You could use the code F4HWN in order to get 5% discount on the M5Stack shop 🎁
Many thanks to them and all my donors🙏🏻
M5Stack is based on an ESP-32, dual core, which can be clocked up to 240 MHz. M5Stack has 16 MB of flash memory. Like all ESPs, Wi-Fi is of course integrated. The 2 inch IPS color display, based on the ILI9342C chipset, has a comfortable resolution of 320 x 240 pixels. It is very bright. The integrated battery is 110 mAh. It is possible to add an additional battery (700 or 800mAh) if needed.
In terms of size and weight, it is very compact: 54 x 54 x 18mm for 47.2g. Can be carried in the pocket without any problem ;)
Here are the detailed technical specs, for the curious:
Resources | Description |
---|---|
ESP32 | 240MHz dual core, 600 DMIPS, 520KB SRAM, Wi-Fi, dual mode Bluetooth |
Flash | Memory 16MB |
Power | Input 5V @ 500mA |
Port | TypeC x 1, GROVE(I2C+I/0+UART) x 1 |
Core | Bottom Port PIN (G1,G2,G3,G16, G17, G18, G19, G21, G22, G23, G25, G26, G35, G36) |
IPS Screen | 2 inch, 320x240 Colorful TFT LCD, ILI9342C, max brightness 853nit |
Button | Custom button x 3 |
Speaker | 1W-0928 |
Battery | 110mAh @ 3.7V |
Antenna | 2.4G 3D Antenna |
Operating Temperature | 32°F to 104°F ( 0°C to 40°C ) |
Net weight | 47.2g |
Gross weight | 93g |
Product Size | 54 x 54 x 18mm |
Package Size | 95 x 65 x 25mm |
Case Material | Plastic ( PC ) |
About the QSJ, count around 45€. You then have a complete development platform, totally autonomous, programmable in C and C++, MicroPython and UIFlow, from Linux, Windows or MacOS, all in a compact and ultra ergonomic box.
The easiest way is to install PlateformIO for VSCode on your PC (Linux or Windows) or on your Mac (Intel or M1). It is a cross-platform and multilanguage development environment that is powerful and pleasant to use.
Then, still on your PC or Mac, clone the ICSMeter project via the command :
git clone https://github.com/armel/ICSMeter.git
You can also download a zip archive of the project, if you prefer, and unzip it.
As I said, an excellent video was released by @HamRadioDude about the installation of the IC705SMeter project. It can help you !
Since version 1.0.0, it's posssible to set multi configs. With this new feature, it is possible to switch from one configuration to another from the settings menu !
Note that if you change the connection mode, for example from USB to BT or from BT to USB, there will be a brief reboot of your M5Stack.
So, line 10, edit the constant array choiceConfig
:
const char *choiceConfig[] = {
"7300", "0x94", "USB", "/dev/ttyUSB0",
"705", "0xA4", "USB", "/dev/ttyACM0",
"705", "0xA4", "BT", "30:31:7D:33:B2:58"
};
By default, I have defined 3 configurations.
The first one is for my 7300
. Its CI-V Address is 0x94
and it is connected by USB
, on port /dev/ttyUSB0
.
The second one is for my 705
. Its CI-V Address is 0xA4
and it is connected by USB
, on port /dev/ttyACM0
.
The third one is always for my 705
. Its CI-V Address is always 0xA4
but it is connected by BT
and the BD Address of my IC-705 is 30:31:7D:33:B2:58
.
To get the BD Address of your IC-705, enter Menu and go to Set > Bluetooth Set > Bluetooth Device Information
If you're a using an IC-7300 or IC-9700, it's necessary !
Line 17 and 18, the constants WIFI_SSID
and WIFI_PASSWORD
set your Wifi configuration.
In complement, you can view your ICMultiMeter from a simple browser. It is even possible to control it by this way, as the buttons are clickable. In order to display your ICMultiMeter in your browser, just go to http://ip_address_of_your_ICMultiMeter/
. As a reminder, the IP address that your ICMultiMeter retrieves is sometimes displayed on the screen.
Beware: it's slow! And there is no automatic refresh. You have to click on the background of the screen image to make a new capture. And otherwise, as said, the buttons are functional.
If you're a using an IC-7300 or IC-9700, it's necessary !
You will need to take a look at my other project, ICUSBProxy. This project allows to set up an HTTP proxy allowing to talk wirelessly, from an M5Stack (or other equipment), with an Icom transceiver like IC-7300 or IC-9700 and sending CI-V commands.
Please, take the time to read the README.md and install ICUSBProxy.
It's done ? Nice, so we can move forward.
Line 21 the constant BAUD_RATE
set the CI-V COM port speed settings (115200, 19200, 9600, etc.). Line 22 and 23, the constants PROXY_URL
and PROXY_PORT
set the URL and port of the Proxy.
About Proxy, the idea is to use a PC or a nano computer (like a Raspberry Pi) to connect the IC-7300 or IC-9700 transceiver via the USB cable (USB type A to USB type B). The M5Stack will talk to this PC by Wifi and the PC will talk to the transceiver by the USB cable. By this way, the M5Stack keeps the big advantage of being wireless.
About Proxy, the idea is to use a PC or a nano computer (like a Raspberry Pi) to connect the IC-7300 or IC-9700 transceiver via the USB cable (USB type A to USB type B). The M5Stack will talk to this PC by Wifi and the PC will talk to the transceiver by the USB cable. By this way, the M5Stack keeps the big advantage of being wireless.
If you are using a Transverter, you can configure up to 5 Local Oscillator frequencies, lines 26 ~ 30. For example, if you are on 28500000 Hz and the constant TRANSVERTER_LO_1
is set to 116000000 (default value), your M5Stack will display 144.500.000 (not 28.500.000), if you select this option in the settings menu. This can be useful. Change theses constants only if you need.
Here is a part of my transceiver settings, on IC-7300 :
Set > Connectors > CI-V > CI-V USB Port Unlink from [REMOTE]
Set > Connectors > CI-V > CI-V USB Baud Rate 115200
Set > Connectors > CI-V > CI-V USB Echo Back OFF
If and only if you are using the ATOM Display, edit the platformio.ini
file and change line 12,
default_envs = m5stack
By,
default_envs = atom
This is the same as changing the target platform.
In addition, you can specify the resolution of your screen. Note that the DXTracker will still be displayed at 320 x 240, but will be centered on the screen. By default, the screen resolution is set to 320 x 240. But, for example, if you want to change it to 480 x 320, change line 41,
build_flags = ${env.build_flags} -D atom=1 -D displayWidth=320 -D displayHeight=240
By,
build_flags = ${env.build_flags} -D atom=1 -D displayWidth=480 -D displayHeight=320
Compile and upload the project to your M5Stack. You are done !
Once launched, if you're using Bluetooth with an IC-705, you must connect your IC-705 to your M5Stack via the menu (Set / Bluetooth Set) of your transceiver. Refer to the documentation, if needed.
If you're using USB with ICUSBProxy, plug your Transceiver via the USB cable (USB type A to USB type B) to your PC. It's time to start the Python3 script :
./ICUSBProxy.py
If you click on the middle button, you enter the settings menu. Use the right and left buttons to select a menu option and confirm with the middle button. If necessary, use the right and left buttons again to select the sub-options and the middle button to confirm.
The following options are available :
Settings | Value |
---|---|
Config | Set Config |
Measured Values | Set Measured Values (PWR, S or SWR) |
Transverter Mode | Set Transverter Mode (OFF, LO1 ~ LO5) |
Themes | Set Themes (CLASSIC ~ DARK) |
Led Mode | Set Led Mode (OFF, TX, MEASURES) |
Brightness | Set Brightness (0 ~ 100%) |
Beep | Set Beep (0 ~ 100%) |
Screensaver | Set Screensaver TimeOut (1 ~ 60 min) |
IP Address | Display your IP |
Shutdown | Shutdown your M5Stack (even if in charge) |
Exit | Menu Exit |
Config, Measured Values, Transverter Mode, Themes, Led Mode, Brightness, Beep and Screensaver are preserved at the next restart.
I have been working on making the ICSMeter needle more efficient and smoother, without jerks. Now, because of the huge BluetoothSerial library, for the moment, to take advantage of the improvements on the needle movement, you have 2 solutions. The first is to use USB mode (and ICUSBProxy) with the M5Stacks Basic or Grey. The second is to use an M5Stack with PSRAM (CORE2, AWS, Fire, etc.), which offers more memory.
So in short, if you use an M5Stack Basic or Grey and the BT mode... you will lose ICSMeter needle improvement.
I try to do my best, but I am not a magician 🧙♂️
It's possible to store several applications on the SPI Flash File Storage of your M5Stack or on SD Card Storage. At startup, a procedure is provided to load a particular application.
The Bin Loader does not work with the ATOM Display.
I will detail here the procedure to deploy ICSMeter and ICMultiMeter applications on the same M5Stack.
Start by compiling your applications, as you used to do. Nothing changes here. For example, start by compiling the ICSMeter application. Then do the same with the ICMultiMeter application.
That's it, you have compiled the ICSMeter and ICMultiMeter application? It's perfect.
Each compilation has produced a binary. It is this binary that is sent / flashed to your M5Stack, via the USB connection.
Go to the root of the ICSMeter folder, which contains the whole project. And go to the directory .pio/build/m5stack
.
You will find a firmware.bin
file there. Now, there are 2 solutions...
Format an SD Card as FAT32.
Copy the firmware.bin
at the root of the SD Card. And take the opportunity to rename it, for example, ICSMeter.bin
.
Do the same with the ICMultiMeter application. Of course rename it with a different name, for example, ICMultiMeter.bin
.
At this point, you should have 2 clearly identified binaries in the root of your SD Card : ICSMeter.bin
and ICMultiMeter.bin
.
Copy firmware.bin
in the data
directory at the root of the ICSMeter folder. And take the opportunity to rename it, for example, ICSMeter.bin
.
If the
data
folder does not exist, create it.
Do the same with the ICMultiMeter application. Go to the root of the ICMultiMeter folder, which contains the whole project. And go to the directory .pio/build/m5stack
.
You will also find a firmware.bin
file. Copy it, too, in the data
directory at the root of the ICSMeter folder. And take the opportunity to rename it to, for example, ICMultiMeter.bin
.
Important, the idea is to copy these 2 binaries in the same directory
data
** (located at the root of the ICSMeter folder).
At this point, you should have 2 clearly identified binaries: ICSMeter.bin
and ICMultiMeter.bin
in the data
directory at the root of the ICSMeter folder.
So let's move on to what is probably the most complicated step. Open the ICSMeter project from Visual Studio Code, as you would compile it.
Step 1, click on the Platformio icon (the icon with an ant's head...). Step 2, unroll the section m5stack
.
Finally, step 3, go to the Platform
sub-section. And click on Upload Filesystem Image
.
Wait ! It's coffee time (or beer) :) The contents of the data
directory will be written to the SPI Flash File Storage of your M5Stack. Are you done? You're there !!!!
Start your M5Stack. You should see a black screen with a QR code, followed by 1, 2 and 3 small dots at the top of the screen. This is the famous Bin Loader ;)
As soon as the first little dot appears, you can :
- either press the left or right button, to launch the default application.
- or press the central button. In this case, the Bin Loader menu appears and offers you the list of available binaries in SPI Flash File Storage or SD Card.
If you have followed the procedure perfectly, you should have a choice between ICSMeter.bin
and ICMultiMeter.bin
.
The left and right buttons allow you to switch from one binary to another. And the middle button validates the selected binary. In this case, the selected application will be loaded ;)
The loading takes about 20 seconds...
I think it is possible to have 3 or 4 applications cohabit in SPI Flash File Storage. If need more, use SD Card Storage.
Many thanks to...
Project | Author | Link |
---|---|---|
M5Stack | M5Stack | https://github.com/m5stack/M5Stack |
M5Stack-SD-Updater | Tobozo | https://github.com/tobozo/M5Stack-SD-Updater |
FastLED | FastLED | https://github.com/FastLED/FastLED |
Icom and the Icom logo are registered trademarks of Icom Incorporated (Japan) in Japan, the United States, the United Kingdom, Germany, France, Spain, Russia, Australia, New Zealand, and/or other countries.
Special thanks to Rolf Schroeder DL8BAG, Brian Garber WB8AM, Matt B-Wilkinson M6VWM, Robert Agnew KD0TVP, Meinhard Frank Günther DL0CN, Johan Hansson SM0TSC, Tadeusz Pater VA7CPM, Frederic Ulmer F4ESO, Joshua Murray M0JMO, Mark Hammond N8MH, Angel Mateu Muzzio EA4GIG, Hiroshi Sasaki JL7KGW, Robert John Williams VK3IE, Mark Bumstead M0IAX, Félix Symann F1VEO, Patrick Ruhl DG2YRP, Michael Beck DH5DAX, Philippe Nicolas F4IQP, Timothy Nustad KD9KHZ, Martin Blanz DL9SAD, Edmund Thompson AE4TQ, Gregory Kiyoi KN6RUQ, Patrick Samson F6GWE, George Kokolakis SV3QUP and Ambrose "Bo" Barry W4GHV for their donations. That’s so kind of them. Thanks so much 🙏🏻
If you find this project fun and useful then offer me a beer :)
You could use the code F4HWN in order to get 5% discount on the M5Stack shop 🎁
By the way, you can follow me on Twitter and post pictures of your installation with your M5Stack. It always makes me happy ;)