I’ve been writing about Meshtastic firmware and hardware since 2020, but I never had the opportunity to test it myself. This has now changed as Elecrow sent us the ThinkNode M1 and ThinkNode M2 Meshtastic nodes for review.
Both rely on Semtech SX162x radios, but the M1 is based on a Nordic Semi nRF52840 Bluetooth MCU with a 1.54-inch E-Ink display and GPS, and the smaller M2 is based on an ESP32-S3 chip and a 1.3-inch OLED but lacks a built-in GPS module. Since I’ve never used Meshtastic before, this “review” will be more like a Getting Started Guide from a beginner’s perspective. After an unboxing and a teardown, I’ll test messaging, GPS sharing, and the range I can get in a suburban environment in Thailand.
ThinkNode M1/M2 unboxing
Both packages look similar, with a plastic case and a white cover. The ThinkNode M1’s main features include a high-gain antenna, Meshtastic app compatibility, location support, 1,200 mAh battery, low power, and LoRa connectivity. The M2 is similar but lacks location support, features a 1,000 mAh battery, and a 1.3-inch OLED. It’s also described as a “high performance” solution with ESP32-S3 SoC rather a the “lower power” solution using nRF52840 MCU.
The package content is similar with some small variations. The ThinkNode M1 ships with a USB cable for charging, a LoRa antenna with a rubber joint, and a user manual, while the ThinkNode M2’s antenna is integrated into the design.
The M1 is large and thicker. It features a knob for power and the epaper display’s backlight, a GPS switch, as well as function and page turn buttons. The more compact M2 only comes with power and function buttons, notably because it lacks GPS, and an OLED does not need brightness adjustment as it’s readable in the dark.
Both came charged, and we could turn them on out of the box.
Teardown
Let’s try to have a look inside both Meshtastic nodes. We’ll start with the M1 loosening four screws on the bottom side of the plastic enclosure. We can see the 1,200 mAh battery and the GPS antenna on this side.

It was then fairly easy to move the board from the enclosure and access the side with the E-Ink display, Buzzer, and LEDs for power and data. There’s also a four-pin header with CLK, DIO, 3.3V, and GND signals, which might be used to connect an external GPS module.
The battery and E-Ink display were firmly attached (glued), so I did not attempt to remove those.
Let’s now do a teardown for the ThinkNode M2.
One we open the case, we can see the 1,000 battery, as well as a 12-pin header for expansion. Somehow, I was unable to remove the board from the enclosure.
So I removed the battery to have a closer look, but there are no visible screws. Maybe the board is glued to the case or a few screws can be found under the sticky pad. I’ll skip this as I need to use the device first…
Meshtastic app connection to ThinkNode M1/M2 and configuration
Let’s now install the Meshtastic app on two Android smartphones from the Google Play Store. When we start the app, we’re asked to connect a device. So I turned on the ThinkNode M1, went to the Bluetooth section on Android, and the “Meshtastic_b525” device was shown in the list of available devices. I could pair my phone to it after entering the pairing code, and the “b525” device was shown as connected in the Meshtastic app.
I did the same with the ThinkNode M2 and another Android phone. However, I was not sure what step to take next, so I went to the initial config documentation on the Meshtastic website. One important consideration is to select the proper region code. I live in Thailand, so I would have to select a 920 – 925 MHz Frequency range, 100% duty cycle, and a 16 dBm power limit.
This varies a lot between countries. For instance, the European Union regulation requires a 10% duty cycle and a 27 dB power limit. The power limit is quite low in Thailand, so the range will be limited compared to other countries like New Zealand (36 dBm) or neighbouring Malaysia (20 or 27dBm). For reference, 16 dBm converts to 40 mW, and 36 dBm to 4 Watts, or 100 times more power! If we wanted a longer range in the ~923 MHz range, we would select Malaysia, but as law-abiding citizens, we’ll only use Thailand settings for this review.
As a messaging and GPS coordinate sharing solution, I thought that Meshtastic settings would be pretty basic with only a few options, but my assumption was completely wrong, and if I were to go through all of them, I’d have to write a book instead of a review. They can be accessed by clicking the top right icon (with three points) and selecting Radio configuration.
We can now go to User to configure the long and short names, then to LoRa to select the frequency plan (Thailand here). We’ll do that on both smartphones, and then tap the fourth icon at the bottom, so scan the QR code from one phone to the other.
Note that changing the configuration requires the user to click the Send button at the bottom of the configuration page. This will reboot the Meshtastic node.
We now have two Meshtastic nodes: CNX Software/CNX and LPT Maker/LPT. As long as a phone is in the Bluetooth range of either we can send messages to the LongFast channel. The messages will also show on the ThinkNode M1/M2 nodes, at least if it is in English. Thai language works in the app, but will be blank on the displays. I could also see the rough GPS coordinates for the CNX node (M1 with built-in GPS) in the map (third icon at the bottom), but with low accuracy. I initially thought it was because I was indoors, but that’s not quite the case. More on that later.
First Meshtastic test in the field – A forest run
Since we went for a run in a forest park with a ring that’s about 4.5 to 5 km long and a straight-line distance of about 1.5km, I thought it would be ideal for a GPS and range test.
We could chat normally when the two smartphones and nodes were close to each other, but I still noticed the GPS coordinates showed a circle of about 5km in diameter on the map. Not overly useful…
The third icon from the top right in the map section will show the phone’s GPS location along with the ThinkNode M1 location (CNX 2 min). It’s well over two kilometers apart, which is disappointing. I tried to to in the Position config to find a “precise location” option, but there was nothing there. While the ThinkNode M2 lacks GPS hardware, since it’s connected to a smartphone, I thought it might be possible to share GPS coordinates too. I’ll try to figure out both the GPS accuracy and M2’s GPS coordinate sharing once I’m back home.
We can still check the range. When we were at the furthest distance between the M1 and M2, we tried to chat over Meshtastic, but it did not work. When a message doesn’t go through, it will show a crossed cloud, and when it’s trying to send, it will just show a cloud. A successfully sent message will have a cloud with a tick, as we’ve seen above.
We can tap on the crossed cloud and select Resend if needed. So I walked back towards the node M2, which was in a car (admittedly not ideal), and resent the message from time to time. As mid-distance, it was still not working, so I asked to test the M2 out of the car, but it didn’t help. It was only when I was at a little over 100 meters that the message went through. LoRa is often advertised with a range of up to 10 km in line-of-sight, or 2 to 3 km in urban environments, so it was disappointing, even though I was expecting a shorter range due to the power limitation in Thailand.
I also left both devices on until their battery was depleted, and the nRF52840-based ThinkNode M1 with E-Ink display could last over 24 hours on a charge, while the ESP32-S3-based ThinkNode M2 would only last 7 to 8 hours in LONG_FAST mode.
Firmware update, GPS precision, and providing phone location to Mesh
Before I worked on the issue above, I noticed the firmware installed on the Meshtastic M1 and M2 was version 2.6.5, but a new stable version (2.6.11) was available.
So I decided to update the M2 to make sure I did not miss any potential recent features and fixes. Unless I missed something, the firmware can’t be updated from the Android app, and instead, we can go to flasher.meshtastic.org in Chrome or another browser with USB serial support (Firefox won’t work).
I connected the ThinkNode M2 to my Ubuntu laptop with the provided USB-C cable, and the device was automatically detected. I then selected firmware 2.6.11 Beta from the “Stable” list and clicked the Flash button.
If Full Erase and Install is enabled, you’ll lose all your data, so I didn’t change that setting, and click Update to carry on.
It will take a couple of minutes to complete, and once done, we can go back to the Meshtastic app to double-check that the firmware was updated to version 2.6.11.
Let’s now try to address the GPS location accuracy issue. This can be changed in the Channel settings. Tap on LongFast, and there we can see that the position is enabled with an accuracy of 2.9 kilometers… But we can change by enabling “Precise location”.
It works, but LongFast is the default channel, and it’s like a public channel, so anybody with another Meshtastic node could also access the GPS data. So it’s recommended to create another channel to share this data. So I did that, called it ChiangMai, enabled Precise location, and moved it as the Primary channel since it is where periodic position (and telemetry if you have sensors) broadcast occurs.
We can now chat in the ChiangMai and LongFast channels, and you can see the “CNX 1 Min” pin does not have a large circle around it, and it’s quite close to the location reported by the phone’s GPS (blue circle). You’ll also notice the “LPT now” pin on the map, meaning I could get the location data with the ThinkNode M2.
How did I do that? I first wasted time trying to find the option “Provide phone location to mesh” in the settings as mentioned in some instructions, and was getting nowhere… That’s because the option is in the Connect to radio section (fifth icon from the bottom bar), and is only available once the phone is connected to the node over Bluetooth.
Once I did that, the location of the ThinkNode M2, or more exactly, the phone attached to it, was shared through the Meshtastic app.
ThinkNode M1/M2 range testing in a suburban environment
Some people achieved ranges of over 300km with Meshtastic, but that’s with fixed stations placed on a pole and using large antennas. What we’ll be testing here is the range between the M1 and M2 Meshtastic nodes in LONG_FAST mode with the M2 in a fixed outdoor location on somebody’s lap and the M1 in my pocket while I walk away, also I will also hold the M2 in my hand raising my arm to extend the range if the message can’t be sent. This will be done in a suburban environment with a few buildings not over two or three stories tall and some trees.
I initially enabled Range Test mode on the M2, but I failed to properly read the documentation, which stipulated “Both Sender and Receiver must have the module enabled”. Oops, luckily, I also tested that manually by sending text and receiving an answer in various locations along the way. Raising the M2 node in my hand increased the range by maybe 20 to 30 meters. I found out the range to receive and send messages was 286 meters in this test.
The distance between the two devices is also shown on the display, but I wanted to double-check on Google Maps, as shown above, and both results are approximately the same (286m vs 265m).
I repeated the test walking in another direction, and the end result was similar at 262 meters.
I found the range somewhat disappointing, so I consulted with Grok to find a way to extend the range without increasing the Tx power and staying within the range stipulated by Thailand regulations. I was told that switching to LONG_SLOW mode could double the range, at the cost of increased power consumption. So the next day, I changed LoRa settings on both the M1 and M2 nodes to set the Model Preset to LONG_SLOW.
I repeated the test, and I could indeed walk further while still being able to chat with the other party. If I remember correctly, I read 565m on the M1 display (forgot to take a photo), and checking in Google Maps reports 550 meters. The small difference may be due to the slightly different location reported by the built-in GPS compared to the phone’s GPS.
That’s more like it, and it might be enough if we need connectivity when hiking in groups in the same direction. Since it’s a mesh network, we could further extend the range by adding additional nodes, and other countries will have longer or shorter ranges depending on local regulations. A fixed node placed higher and with a large antenna would help extend the range as well.
Display and buttons
To conclude, let’s have a quick look at the menu on the display and the functions enabled by the buttons. I’ll start with the ThinkNode M1.
We can switch between pages with the “page turn” button. The first page shows the latest message and its source/time, the second shows the signal strength, distance, angle to the other node(s), the third page shows the list of nodes and channels, and the final page provide battery information, time (not correct, I must have forgotten to set the timezone somewhere), channel utilitisation, altitude, and GPS coordinates. Note: the first page will disappear if you send a message, and come back once you receive one.
The Function button enables four actions:
- Single press – Ping to network to report the device location (instead of relying on timed or distance-based updates)
- Double press – Turn the LED backlight on/off. If you rotate the power know and the backlight is not adjusted, that’s probably because you pressed the button twice.
- Triple press – Trigger an SOS alarm signal. But it’s a joke… It will continuously trigger the buzzer and blink an LED, and around one meter away, it can be heard and seen, but when we tried it three meters away, we could never hear the buzzer or see the LED in an outdoor setting.
- Long press – Enter standby power-saving mode
Now let’s do that with the ThinkNode M2. There are also four pages, but at the time, I had sent a message, so there were only three.
It’s basically the same, minus the GPS coordinates since the ThinkNode M2 lacks a built-in GNSS module.
There’s a single Function button enabling three actions:
- Single press – Switch between pages
- Double press – Ping to network to report the device location. Note: It does seem to work even without a GPS module. It will show the text “Send ad-hoc nodeinfo” on the display, and the position is updated on the other side, with the Meshtastic app showing “LPT Now” in the Map section.
- Triple press – Trigger an SOS alarm. Same joke as the M1…
Conclusion
That was an interesting experience, and I’d like to thank Elecrow for sending the ThinkNode M1 and M2 for review and getting started with Meshtastic. I personally prefer the M1 with its built-in GPS, E-Ink display, and much longer battery life, but the M2 model is smaller, cheaper, and also supports WiFi in case you need this feature (not tested here). The ThinkNode M1 is sold for about $70 on AliExpress, while the ThinkNode M2 goes for under $60 before eventual taxes. You’ll also find both on the Elecrow store, with the M1 going for $53.90 and the M2 for $43.90 plus shipping and taxes. You can save $14 and $22, respectively, if you don’t need an enclosure.

Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress. We also use affiliate links in articles to earn commissions if you make a purchase after clicking on those links.

































You are new to this. Finally. Carry the M1 daily with you and see if you can find any other person using meshtastic in thailand.
Btw. here some basics:
The NRF chipset is really low on capabilities. With meshtastic for example it starts glitching when there are about 80clients. But the NRF have one core benefit and it is its low power. You run them often with solar.
Thats why its the eink version. Because eink also save power.
The M2 with its oled and esp32 chip is the beefy one. It does not have such computing resource problems like the NRF have.
Its by the way recommended to choose when possible the full erase and install option when flashing firmware. Often you carry on strange issues when you do not choose that option.
Why would somebody carry this around while in the city?
Do you mean 80 clients to a single Meshtastic node? In which use cases are there so many clients?
No, due to the only 28kb available on nrf52840 internal flash *User Data” area for the nodedb and settings
The Meshtastic node database (nodedb) on NRF52 devices is limited to 80 nodes. This means the device can only store information about a maximum of 80 other nodes in its network. If the number of connected nodes exceeds this limit, the oldest entries in the database may be removed.
https://learn.adafruit.com/bluefruit-nrf52-feather-learning-guide/hathach-memory-map
Areas where potential wars may occur, avoid infrastructure construction, and cannot connect after the network is disconnected.
Why would you carry on a phone with you around the city?
Its same answer. Its a communication device. If you want to communicate when you walk in the city, carry it with you.
In case of Meshtastic and range in your case, you could probably meet some other users there when you are living in a dead area when it comes to Meshtastic.
There’s close to no chance I randomly come across another person with a Meshtastic node in Thailand. A phone works 99% of the time and has other uses, while a Meshtastic node would work close to 0% of the time here. The main use case of Meshtastic is to enable messaging and/or tracking where there’s no network connectivity.
Checking Meshmap in Thailand, there are only six Meshtastic nodes connected over MQTT right now. I understand it’s only a small subset of all nodes here, but compared to what people have set up in Europe or the US, it’s clear the adoption is virtually non-existent.
Its wrong that Meshtastic is for places without network access. Look at the biggest cities in the world. Its where most people are using Meshtastic. Thats why i also gave you the infornations about the limitations of the nRF chip. People are also switching away from LONG_FAST because there are so much nodes and the capacity of LONG_FAST is fully overused when there are 100nodes in reach.
Nearly noone is using MQTT. So there are nearly no entries in that map. When you visit a big city with many nodes, take a look at the map and you would understand that.
If you say that there are no other nodes in Thailand, then put out solar nodes around thailand and create the network infrastructure on your own. You should not be the one waiting for the others to do this for you.
Thank you for this review !! I haven’t started yet and this could help a lot. It would be wonderful if you could add different devices within the same channel and benchmark the performances.
I have to work on other reviews, so it will be for later.
But I can see Meshtasticator simulator may help testing the network with multiple clients -> https://meshtastic.org/docs/software/meshtasticator/
I’ve been writing about Meshtastic firmware and hardware since 2020, but I never had the opportunity to test it myself.”
That’s the problem.
Go learn about it first.
Jean-Luc, thank you for this. It mirrors my experiences with mestastic (minus the nasty delve into the community) system. I think you’re going to find that–with your extreme power limits–that antenna placement and antenna gain will be all that might save you. If you can put up a decent antenna at your home (high up, good gain, good *view* of the surroundings) that your mobile client will have better range. If you can use a mobile with a better antenna when you’re in a vehicle, that will go a long way to improve the range as well.
There’s not much you can do about the frequency and power limits as that’s what your country requires. You can try appealing to your regulatory agency to improve things, but that’s not going to happen quickly if at all.
One other thing that can help you is that meshtastic is a mesh network (surprise!) and you can have many nodes in the network. They each repeat the message and flood the area with transmissions. That allows you to have a large number of fixed and mobile stations each relaying messages to each other. This allows much better coverage than you would get with just two stations. So, you’re sort of handycapped with just the two nodes you have. If you have other locations where you can put up–at least temporarily–another base station with a good antenna that’s well sited, you may see a lot of improvement.
Feel free to email me if you want to talk more.
One of my solar-powered security cameras died. It was pole-mounted and used a USB-C solar panel, so I considered mounting one of the ThinkNode there, but they don’t seem weatherproof (no IP rating that I could find), so I’ll skip this option.
There are a lot of other devices meant for outdoor useage, but I agree that these look like medium duty handheld devices. I, too, would want something more suitable for outdoor use. I can see how the existing solar pannel would be very tempting.
It work with meshcore?