It’s been quite a while since I last posted here (more than a year ago…). Let’s see what happened with me this year:
- Quit my daily job and started an own company called SharkRF.
- Developed and released openSPOT.
- Finished my amateur radio club’s streaming system, so we can arrange remote courses and live streamed presentations.
- Updated the Hungarian DMR network’s page and Brandmeister status page with lots of info.
- Written some scripts for Brandmeister.
I’ll try to post here more frequently than once a year :)
I partitioned and formatted a 2TB HDD connected with an USB HDD adapter to a Debian system running under VMware, copied the files and moved the HDD to an old P4 system with Debian and a non-AHCI capable BIOS. The HDD showed up as a 232.9GB one:
Device Boot Start End Sectors Size Id Type
/dev/sdc1 256 488378645 488378390 232.9G 83 Linux
After googling a while I found out that the problem is with the BIOS reporting the HDD to the OS as if it had 512 bytes long sectors, not 4096 ones.
I could mount the ext4 file system with losetup by telling that it starts at byte no. 8*256 = 2048:
losetup /dev/loop0 /dev/sdc -o 2048
mount /dev/sdc1 /home/storage4
A permanent fix is to edit the HDD’s MBR partition table to have the file system start at the correct byte no. I exported the partition table to a text file with sfdisk:
sfdisk -d /dev/sdc > sdc.partitions.sfdisk.text
Then opened the file and edited the start value to 2048, and size to 8*488378390=3907027120. After that I wrote back the partition table to the drive:
cat sdc.partitions.sfdisk.text | sfdisk /dev/sdc
After running partprobe everything was all right again.
Disk /dev/sdc: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x0006aac3
Device Boot Start End Sectors Size Id Type
/dev/sdc1 2048 3907029167 3907027120 1.8T 83 Linux
A few weeks ago I ordered an Android TV box called U BOX i one (i828) from gearbest.com. To my suprise, the updated YouTube app only played videos at 360p resolution. The stock app works fine, but I wanted to use the latest one. After googling a while I found a Japanese site with the fix:
- Install Build Prop editor
- Set these key-value pairs:
ro.build.description=mantaray-user 4.2.2 JDQ39 573038 release-keys
- Clear YouTube app cache and data in Android settings / App settings
Optionally you may need to open a terminal before rebooting and enter these commands:
wm size 2560x1440
wm density 320
And after the system booted up:
wm size reset
wm density reset
As I updated my blog quite a while ago, here are a few videos in a bunch:
Swimming with my Hytera PD785 in Lake Balaton :)
A quick look at the Hytera MD655 mobile radio
Hytera RD985 DMR repeater unboxing
Installing the HG5RUC Hytera DMR repeater
Turning back on the HG5RUC DMR repeater
Radio club day in July
Campfire in the radio club
A problem in our underground garage
Motorola DM4600 poweron-poweroff animation
Motorola DM4600 unboxing
An evening in the radio club
Our dog Scottie in 1998
An old clip recorded in my bedroom when I was an 8th grader :)
Cycling to work
A weekend in Tata
A visit to the Gallina family in Austria
A walk in the Mátra mountains
Trip to Ágasvár in the Mátra mountains
The new features are:
- The info column shows decoded SMS messages and GPS coordinates.
- dmrshark decodes voice calls and calculates their current and average RMS volumes. There’s a circle which varies it’s color according to the volume and helps setting the correct mic gain.
- Several new columns added to the repeater table.
- dmrshark can record decoded voice data to .mp3 files. Recorded files of the Hungarian network can be downloaded from the archive page.
- Live streaming via WebSockets or HTTP are now supported.
- DMR messages can be sent from an external SQL database table (see the Hungarian live status page). Both Hytera and Motorola formats are supported.
- Data packet sending and receiving with full FEC encoding/decoding and selective retransmission.
- SMS format conversion is supported. If you send an SMS from a Hytera transceiver to a Motorola (or Chinese one), dmrshark detects that the message send was unsuccessful and retries sending your message in the opposite (in this case, Motorola) format.
- If you send the message “help” (without quotation marks) to dmrshark’s DMR ID (7777), you can get the supported command list in SMS.
- If the first word of a message to 7777 is an email address, and the other words are the message, dmrshark will send the message as an email to the given destination address.
- If you send the word “ping” to 7777, it will answer with “pong”.
- If you send the word “info” to 7777 with a callsign or DMR ID as the second word, it will give you info back about the given callsign/ID from the callsign book database.
- If you send a message to 7777 with the first word being a callsign and the rest are the message, it will be sent to the APRS-IS system as an APRS message.
- APRS message sending/receiving to and from APRS-IS
- GPS position decoding and sending to the APRS network. Both time and button triggered Hytera GPS position packets can be decoded. DMR data ack is sent after a successful GPS position packet has been decoded, so the transceivers won’t send duplicate position packets unnecessarily.
- Echo service is available on 7777, in both timeslots and both private and group calls. After the echo test ends, dmrshark will send you back your average RSSI and RMS volume values during the echo test. This echo test SMS gets sent also after a normal DMRplus echo test sent to TS2/9990.
- Most of the FEC algorithms are used not only for error checking but for error correction too. Most of the DMR protocol’s packets can be decoded and displayed in the log.
Another great book from PacktPub. The subtitle is great to give a short description on what this book is about: “Integrate sensors into your Raspberry Pi projects and let your powerful microcomputer interact with the physical world“.
It begins with an introduction to Linux, basic electronics, communication protocols, so everyone who is interested in the topic can begin tinkering, you don’t need to be an embedded Linux expert. The chapters cover very interesting topics like measuring distance using ultrasonic sensors, measuring temperature, air pressure, humidity, using a photoresistor, an A/D converter, how to process and store gathered data, and lastly how to use OpenCV for simple image processing.
I recommend this book for everyone who want to learn building something with sensors connected to the Raspberry Pi.
In the last 2 weeks I’ve been working on a software called dmrshark in my free time. It uses libpcap to analyse the traffic of a Hytera IPSC network.
It can be used for:
- Tracking calls, logging to a text file, and/or inserting them to a remote MySQL-compatible database.
- Automatic and periodic reading of repeater timeslot RSSI values during calls and also inserting them to the remote database.
- Updating a remote database table with currently active repeaters and their info (ul/dl freqs, type, fw version etc.).
- I’m planning other features as well, development hasn’t stopped of course :)
Here’s a video of an early preview version which only supported DMR packet structure decoding and logging to the text console:
I’ve translated my recent blogpost on ham-dmr.hu, so here’s some info about the Hytera RD625 DMR repeater and about setting up VoIP communications.
We’ve measured the bandwidth required for the repeater to communicate with the DMR master software to transfer one timeslot. The result is 15-17 kbit/s for both up and download directions, so the bandwidth required is about 35 kbit/sec, if there’s someone talking on one timeslot. We’ve conducted the tests using a 3G internet connection with an 8 slot length jitter buffer. The latency of our 3G connection is quite high, but the voice communication remained perfect. I’ve made a video about the tests:
Some interesting facts
- The blue LED under the D sign is on when the repeater is communicating with the master software. When the repeater connects to the master, a voice says on TS2 TG9 that the reflector 4770 got connected.
- The repeater doesn’t care about an unplugged Ethernet cable, it won’t ask for a new IP address. It doesn’t care about DHCP lease timeouts, it only asks for an IP address in DHCP mode only when we power it on.
- All 3G connections are NATted in Hungary, so there’s no external address and connection tracking for the UDP packets, so incoming packets can’t find a way to the repeater. We had the repeater plugged into a Routerboard, which had the 3G stick in it, and we created a VPN tunnel to our server and set the default gateway for that VPN connection. This way we had an external IP address and could set up our firewall to pass through UDP packets destined to the repeater.
- The repeater uses the following UDP ports: 62005 (status, heartbeat, etc.), 62006 (general traffic), 62007 (management info, RDAC)
I had two PD785Gs this evening with me so I couldn’t resist to do the glass of water test :)
Today we tested the bandwidth and the VoIP integration of the Hytera RD625. I’ve made a (Hungarian) tutorial on how to set up Asterisk, the repeater and a handheld radio to be able to make and receive VoIP calls.