LoRa communication with Satellite on a Budget

By | Electronics Laboratory, Radio Communicaion

Radio and Wireless communication has always amazed me since I was a kid. We can not imagine our life without relying on wireless communication in current date. Be it WiFi or Cellular connectivity, almost everything rely a lot on Wireless Communication. The Wireless Technology has developed a lot since its inception. One of the interesting technology is LoRa, which stands for Long Range.

Although communication with satellite is nothing new. My friend Martin from U.K. (Call Sign G0PYB) is doing it since ages. The LoRa communication using satellite is something new and interesting. The LoRa communication requires much less power and have long range compared to other wireless protocols. With launch of many Cubesats (basically small satellites) in LEO (Low Earth Orbit), for educational and scientific purpose, anyone with access to basic hardware can access to LoRa communication using Satellite.

Interestingly, at the time of writing, there is one project named TinyGS, which will help you to get started with it. As per their website:

"Initially TinyGS was born under the name ESP32 Fossa Groundstation, it was developed as a "weekend" project for the FossaSAT-1 LoRa satellite. We are passionate about space and created this project to be able to track and use the satellites and to learn and experiment about radio. Currently the network is open to any LoRa satellite and we also support other flying objects that have a compatible radio modulation with our hardware such as FSK, GFSK, MSK, GMSK, LoRa and OOK. And the project was renamed to TinyGS."

There is very helpful community on Telegram (https://t.me/joinchat/DmYSElZahiJGwHX6jCzB3Q) where people are very helpful to get started with the TinyGS Project. The recommended hardware are listed at wiki page of TinyGS i.e. at https://github.com/G4lile0/tinyGS/wiki#hardware

This post is all about getting started with TinyGS project with very basic hardware in a budget friendly manner. Please note that connecting to OLED display is optional. To get started you would need the following Bill of Material (BOM):

Read More

Disable WordPress Formatted Entities

By | WordPress

Recently while I was working on my Linux blog, I noticed that WordPress started formatting "--" as "—", which was quite frustrating as commands become useless without proper attributes/switches.

The following is the table with list of text which Replaces common plain text characters with formatted entities.
Information taken from wptexturize()

source texttransformed textsymbol name
" -- ""—"em-dash
" - ""–"en-dash
``opening quote
"hello“helloopening quote
'hello‘helloopening quote
''closing quote
world."world.”closing quote
world.'world.’closing quote
" (tm)"" ™"trademark symbol
1234"1234″double prime symbol
1234'1234′prime symbol
'99’99apostrophe before abbreviated year
Webster'sWebster’sapostrophe in a word
1234x12341234×1234multiplication symbol

To disable the wptexturize() function, one can add following to the function.php of currently activated theme or  by creating a plugin

add_filter('run_wptexturize', '__return_false');

I've chosen to create a plugin and add the above code, as with changing theme, I don't need to worry about the problem arising again.

My life in Year 2020

By | Editorial

The year 2020 might be a lot for many people. Here is my summary for the Year 2020.

Nothing significant happened in the month of Jan and Feb. In March 2020, just two days before lock-down was imposed in Maharashtra, India, my main working machine, MacBook Air decided not to power itself on. It was very distressing situation for me, as at the time that was the only machine which I use exclusively for work related activity, be it development or resolving day to day client queries.

At the time, I had Intel NUC and an Samsung Laptop working as development and production server for my business activities, which I never intended to use as my work machine. But I tried to up working station by setting up Intel NUC in 10 hours.

Although the very next day I found a shop which can repair MacBook Air. I had no intention of giving MacBook Air to Authorized repair center as I heard a lot of horror stories about the inefficiency about them not delivering the machine on time[1] and overcharging the customer by providing wrong information about the fault[2].

The local repair shop repaired the laptop the very same day within 8 hours and didn’t charged kidney for repair. I was happy that I got my work machine back. The most shocking news came after reaching home after collecting MacBook air that a Lock-down will be announced in state from very next day.

In upcoming few days, a nationwide lock-down also got announced. The major problem while having this was that a product require can not be procured either via local shops or via online selling platforms. One of the water pump also gave up during this period and thanks to backup water pump, all was set to go.

This all set me thinking what if my machine give up and if there is an urgent request from the client? The answer was that I will have a lot of problem. In the month of May, when my production server decided to die I had restless sleep for few days. I backed up the production server on Intel NUC and got it up running within 24 hours, thanks to an awesome technology called docker :)

This sudden death of main server boosted my thinking of having multiple point of backups. So when the lock-down eased I’ve done following :

  1. Increased RAM of Intel NUC from 8GB to 16GB
  2. Purchased a Raspberry Pi 4 8GB model for backup workstation
  3. Purchased additional backup disks and have backup on all these backup disk.
  4. Started Investing in Solar Backup.(40W at the time of writing)
  5. Having backup routers.

From July 2020, I start getting lots of request for Online admission system, which was almost like ready for me. The most important part was recording the payment activity as client were not inclined towards integrating payment gateway(as of writing this article the clients are now ready to integrate the payment gateway as transaction reference for NEFT, UPI are very notorious which can appear differently in band statements of Payee and Payer.) This goes on till Dec 2020. In the meantime I shifted all my Evernote data to Joplin, and sync it across devices using Local Web DAV server.

Also I tried unsuccessfully the roof top gardening since Mar 2020, and I think I am not good at it. But the garden is yielding a lot of Tulsi herbs lately which I never planned. So let go with whatever grows without any problem :)


[1] Tweets by Rajesh Pandey (https://twitter.com/ePandu/status/1295345475403489280)

Reference: Bad after service by Apple in India (Credits : Rajesh Pandey (https://twitter.com/ePandu)

Reference: Bad after service by Apple in India Tweet Credits : Rajesh Pandey https://twitter.com/ePandu

[2] Rants by Louis Rossmann on his channel  (https://www.youtube.com/user/rossmanngroup)

How to Get M5Stack Battery Status with UIFlow 1.3.2 MicroPython

By | Coding Laboratory, Python Code

Recently I’ve got my hands on the M5Stack Core device. This device, not only brought possibilities of awesome ideas, but also bring me close to the world of MicroPython. For those who are unaware, MicroPython is software implementation of Programming language largely compatible with Python 3. In short, MicroPython is Python Compiler which can run on Microcontroller.

In this post, we will use MicroPython’s “machine” library for accessing i2c bus of the M5Stack Core. The battery circuit of M5Stack core is composed of IC IP5306, which provides i2c interface at 0x75 address with Battery Percentage of 0%, 25%, 50%, 75% and 100%.

To get started, UIFlow 1.3.2 firmware need to be flashed to the M5Stack Core device.

Flashing UIFlow 1.3.2 and connecting the M5Stack device in USB Mode

You can watch video till (2 Minutes 5 Sec) https://www.youtube.com/watch?v=Y9pOWgsNgKk for Flashing and connecting the M5Stack device in USB Mode.

Running Program

While device is connected with your Computer/Laptop in USB Mode, run UI Flow Desktop IDE. It will prompt for Connecting the IDE with device. Set the correct com port and you should be good to go for running the program. Select Python Mode and use the following code to access i2c bus and get the device’s battery status

Run the code and voila! you can now get battery statistics on the screen.