Diving into D-STAR – Notes
By Toshen, KEØFHS (CC BY-SA)
a) D-STAR: sites
- D-STAR Info⩘
- Parker Radio Association⩘ (Toolbox presentations⩘ )
- Charlotte Digital Radio Group⩘ (Documentation⩘ )
- BCARES D-STAR system⩘
- eHam.net – product reviews and more⩘
b) D-STAR: forums & groups
- D-STAR Round Table Forum⩘
- Digital Voice for Amateur Radio Group⩘
- Kenwood TH-D74 Group⩘
- The W6KD Forum⩘ , includes DStar Commander info and support
c) D-STAR: articles
- D-STAR Quick-Start Guide⩘ (undated) by Rob Locher, W7GH
- Digital Smart Technologies for Amateur Radio⩘ (undated) by WB8NUT
- ircDDB-Network documentation⩘ , 2015
- A Comparison of Digital Voice Modes of Amateur Radio⩘ , 2016, Andreas, OE8APR, founder of SocialHams.net⩘
- A Look inside D-STAR Modulation⩘ , 2009, by Bob Witte, K0NR
- D-PRS⩘ , 2017, by Peter Loveall, AE5PL
- D-star, DMR, Fusion, Which is right for you?⩘ , 2016, by Mike Myers, K3DO
- How to Solder⩘ and How to Desolder⩘ by Aaron Cake
- How to Solder⩘ by SparkFun (Boulder, CO)
- When everything else fails, amateur radio will still be there—and thriving⩘ , 2016, by Rupert Goodwins, Ars Technica
- Vocoding: Creating Digital Voice⩘ , by Don Rotolo, N21RZ, CQ Amateur Radio⩘
- Voice Coding Overview⩘ by DVSI
- ircDDB Call Sign Routing⩘ : Using Call Sign Routing via a Raspberry Pi D-STAR Hotspot, 2017, by Jeff, VE6DV
- XLX and XRF Reflectors, DMR, and use with DMRGateway⩘ , 2017, by John Fields, K6KD
- Jonathan Naylor, G4KLX's software (sound card/FOB) based D-Star Software⩘
- D-Star Simplified⩘ , 2017, by Mike, KD2IFF
d) D-STAR: presentations
- Hotspot Soup⩘ , 2016, and Trends in Digital Voice⩘ , 2016, by Adam, W0AKO, Parker Radio Association
- Digital Voice Progress, with a focus on hotspots & dongles - 2017 (PDF)⩘ and Digital Voice Progress - 2016⩘ by Roland Kraatz, W9HPX, via Charlotte D-STAR⩘
- Intro to D-STAR⩘ , 2011, by George Zafiropoulos, KJ6VU
e) D-STAR: books
- Nifty E-Z Guide to D-STAR Operation⩘ (2014) by Bernie Lafreniere, N6FN
f) D-Star: videos
- D-STAR Live 2017⩘
- D-STAR Training⩘ presented by John Davis, WB4QDX, at D-STAR InfoCon 2016
- Digital Voice Standards⩘ presentation given by John Hays, K7VE, of Northwest Digital Radio at the 2015 MicroHAMS digital conference
- Kenwood TH-D74 Quick Start⩘ , 2016, and Programming TH D74 software for a [hotspot] using DR mode⩘ , 2017, by Don Arnold, W6GPS
- 2016 D-STAR Forum at Dayton⩘ . Presented by Ham Radio Now's Gary Pearce, KN4AQ, hosted by John Davis, WB4QDX, with presentations by Ed Woodrick, WA4YIH, of D-STAR Info, Jim Moen, K6JM, and John Hays, K7VE of NW Digital Radio.
- Ham Radio "Now What?"⩘ talk by Ward Silver, N0AX at MicroHAMS Digital Conference 2016. In his presentation, Ward talks about Ham Radio 2.0, the second century, and challenges us to create an environment that makes it possible to:
- Understand radio’s physical environment
- Improve efficiency, accuracy, and breadth of expertise
- Encourage technical learning about communication
- Develop new radio services and techniques
- Create new opportunities for building and innovation
- Build a worldwide community of hams
g) D-STAR: hardware & software
- DStar Commander⩘ and DStar Commander FAQ⩘
- Raspberry Pi computers⩘
- Raspbian OS⩘
- BlueDV app⩘ for Android, iOS, Linux, and Windows. Supports REF, XRF, DCS, DMR, YSF, and FCS
- Kenwood TH-D74A/E Virtual COM Port Driver⩘ (required for firmware updates)
- Kenwood TH-D74A/E Firmware update information⩘
- Kenwood MCP-D74 Memory Control Program for the TH-D74A/E⩘
- Amateur Radio Digital Hotspot Comparison (PDF)⩘ , 2016, by Jeff, N8NOE
h) D-STAR: tools
- D-STAR Self Registration Instructions⩘
- D-STAR Gateway System (REGIST)⩘ – If you don't have a local gateway system to register with, you can use this.
- DStar-Gateway Registration Check⩘
- CCS7 worldwide registrations are handled by the European DMR-ID registration system⩘
- D-STAR Info Repeater Settings Calculator⩘
- D-STAR Info Closest Repeaters List⩘
- D-STARUsers.org (repeater directory and map)⩘
- QuadNet2 USA IRC Network⩘ – D-STAR routing done open style
- Hakko FX888D-23BY soldering station⩘
- Hakko Recommendations for Selection of Tip Size⩘
- Types of solder⩘ (Wikipedia.org)
- Solder alloy properties⩘ (Kester.com)
i) D-STAR: background info
- D-STAR Open Source / Dextra project⩘ by Scott Lawson, KI4LKF
- Gateways for D-STAR⩘ by John Hays, K7VE
j) D-STAR: reflectors
- Reflections on Reflectors⩘ : A basic tutorial on DSTAR reflectors, 2016, by Bob Scott, W6KD
- REF: DPLUS reflectors⩘
- XRF: X-Reflectors⩘
- DCS: Digital Call Service reflectors⩘
- XLX reflectors directory⩘
- Colorado statewide FREE STAR X-Reflector: XRF720⩘
- Parker Radio Association X-Reflector: XRF223⩘ (FAQ⩘ )
k) D-STAR: nets
- MON: Charlotte⩘ Raspberry Pi Net: REF038 C, 8p MTN
- MON: PRA D-STAR Net⩘ : XRF223 B, 8:30p MTN
- TUE: PAPA System⩘ DSTAR Tech Net: REF012 A, 9p MTN
- THU: DSTAR Roundtable Net⩘ : XRF002 A, 8p MTN
- THU: PAPA⩘ All Digital Round Table: REF012 A, 9p MTN
- SAT: Digital Voice Net⩘ : XRF002 A, 6p MTN
Pre-net checkins are taken about 15 minutes prior to the start of the net on the DSTAR1 QuadNet Smart Group.
- SAT: Saturday Night D-STAR Net: REF029 A, 8p MTN
- SUN: Arizona D-STAR Net: REF009 C, 5p MTN
- SUN: Int'l D-STAR Net: REF001 C, 6p MTN
- See also: D-STAR Info's list of nets⩘
- See also: DRM nets
1) DCS, DMR, and CCS7
DCS, DMR, and CCS7 are quite intertwined. They all use the same registration form, and DCS and DMR share the CCS7 ID.
- D-STAR DCS info⩘
- CCS7 worldwide registrations (for DMR and DCS) are handled by the European DMR-ID registration system⩘
- The DMR-MARC Network⩘
- DMR: Ham Radio Now's Gary Pearce, KN4AQ, has an interesting post about DMR on this QRZ forum discussion from Nov 2016: Hytera Enters the North American Amateur Radio Market⩘ (look for the thread's 10th post).
- CCS7: What is it (beyond "Callsign Communication System")?⩘
2) Raspbian OS for Raspberry Pi
- Download Raspbian⩘ from Raspberry Pi Foundation.
- Installation instructions⩘ .
- To download updates to installed components and perform an upgrade to install them, in the LXTerminal:
sudo apt-get update
sudo apt-get upgrade
- To change the default password, use the Change User Password setup option in the Raspberry Pi Configuration application (instructions⩘ ):
- To create a separate root password, run:
sudo passwd root
- Security update for older versions of Raspbian Pixel⩘ - addresses security concern related to SSH and the "Internet of Things" vulnerability.
- To disable SSH manually: use raspi-config or the Raspberry Pi Configuration application (instructions⩘ ).
- To update an existing Raspbian image, type the following in LXTerminal (each step takes a long time):
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install -y pprompt
- Change the Digital Clock display settings for the clock in the menu bar: The Lubuntu Clock⩘ .
For display format = Wed 17 Jan 18 10:35 AM:
%a %d %b %y %I:%M %p
- Change the date and time:
3) Installing the Chromium web browser
The Midori web browser that comes with the version of Raspbian that the DStar Commander image includes is a bit dated, so I replaced it with Chromium:
- Install Chromium browser on Raspbian Jessie:
sudo apt-get update
wget -qO - http://bintray.com/user/downloadSubjectPublicKey?username=bintray | sudo apt-key add -
echo "deb http://dl.bintray.com/kusti8/chromium-rpi jessie main" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install chromium-browser
4) Creating and editing DPlus_Hosts.txt file
With DStar Commander, the reflectors list is built in (and can be updated easily with the UR CALL command HOSTUPDT). But if you want to try to link to a repeater/gateway, you need to add the address to a special hosts file. Here's how to do it for the DStar Commander image on the Raspberry Pi:
- In the LXTerminal, to create your own root password:
sudo passwd root
# Type your own root password in twice.
- Create or edit DPlus_Hosts.txt file in root directory:
- Open the Root Terminal:
# Type in your root password
- Change to the root directory
- List the files in the root directory:
- To create or open the file in the Nano editor:
- Make edits to add the entries for the repeaters to it, for example:
Note: One entry per line, and use a tab between the callsign and address.
- Optionally, lock the entries. Locking means that if an entry for the repeater appears in the default hosts file or on the online callsign server, it will be ignored in favor of your entry in the DPlus_Hosts.txt file. To lock an entry, add a space and an L at the end of the address:
KC0DS 188.8.131.52 L
W0CDS 184.108.40.206 L
- Write the changes and exit:
# To write the changes:
# To exit
- Open the Root Terminal:
- One way to find TCP/IP address of a gateway:
- Related discussion on w6kd board⩘ .
5) DStar Commander radio commands
Set up the following codes in the UR CALL field to trigger the associated commands (you can use the same steps as for this section on page 3: Create op channels for basic D-STAR actions⩘ ):
- SYSINFO = Sends a text/email to you with your RPi's operating details (IP addr, freq, etc).
- REBOOT = Reboots the RPi.
- SHUTDOWN = Initiates an orderly shutdown of the RPi.
- CCS ON = Enables CCS7 and restarts the gateway.
- CCS OFF = Disables CCS7 and restarts the gateway.
- HOSTUPDT = Initiates an internet update of the D-STAR hosts files.
- FRQxxxxx = Persistently changes the gateway frequency; xxxxx = first five digits of new frequency with no decimal point.
- SETMOD x = Changes the gateway module to x, where x = A, B, C, or D.
- WIFICFGx = Reconfigures the WiFi to use configuration x, where x = 1,2, or 3, as defined in the setup.
- TEXT ON = Enables text messaging notifications from the RPi, if a text address is configured.
- TEXT OFF = Disables text messaging.
- EMAIL ON = Enables email notifications from the RPi, if an email address is configured.
- EMAILOFF = Disables email notifications.
- CLEANUP = Deletes accumulated G4KLX log files at next shutdown or reboot.
- SENDLOGS = Emails the RPi's ircddbgateway and dstarrepeater logs, if an email address is configured and email is on.
6) How to take screen caps on the TH-D74
This tip comes via Kai Gunther, LA3QMA.
- Access menu 94x: Configuration ≫ Auxiliary
- Assign PF key to "Screen capture":
- PF1 (Mic) = menu 942
- PF2 (Mic) = menu 943
- PF3 (Mic) = menu 944
- With the mic attached to the radio, press the PFx button you programmed, and a 240 × 180 pixel bitmap (BMP) screen capture will be taken and stored on your microSD card in a folder labeled "CAPTURE" with a filename that is the date and time & an incrementing number.
- To access the screen capture:
- Connect the radio to a PC via USB.
- Access menu 980: Interface ≫ USB function.
- Select Mass Storage.
7) Updating DVMEGA firmware
There are two methods I've used to update the DVMEGA firmware:
7a) Updating DVMEGA firmware using a BlueStack board
Initially when I tried updating my DVMEGA to v3.07, I was unsuccessful. Upgrading the firmware requires soldering a jumper wire onto the DVMEGA board, and either my soldering skills aren't good enough, which is quite possible, or something else went wrong. Despite multiple attempts, I simply couldn't get the firmware to flash to the board.
A while later, I again tried updating the DVMEGA firmware, and this time it worked. Not quite sure what I did differently so that it worked this time. Perhaps my soldering improved a bit (see the following note: Soldering – lessons learned), or maybe I handled switching to ser2net mode better or launched the X-Loader firmware updater app faster. Whatever I did differently, it worked easily the second try! Here are the steps:
- Download the short PDF of bare-bone instructions titled "Manual" from the DVMEGA Downloads⩘ page. It shows the soldering connections for the different DVMEGA boards.
- For updating the DVMEGA firmware using a BlueStack board, solder a jumper wire between the ATMEGA328 reset pin and GPIO header Pin 4.
- - - - - - - - - - - - - - -
Important! This jumper configuration is for use only when using the BlueStack board for updating the firmware. When using the Raspberry Pi, there is a different configuration (discussed below).
- - - - - - - - - - - - - - -
Important! Soldering a DVMEGA and updating its firmware are at your own risk. The only thing that is guaranteed is that if you wreck your DVMEGA doing this, then you own a wrecked DVMEGA.
- - - - - - - - - - - - - - -
Note: You can leave the soldered jumper wire in place after updating the firmware, making subsequent updates much easier.
Here's my soldering result (I definitely need to get better at soldering, but hey, at least it worked):
- On a Windows PC, download the latest firmware version zip file from the DVMEGA Downloads page⩘ page, and then extract the firmware hex file from it. (I downloaded the one labeled "BlueDV-MMDVMhost; Raspberry PI based Support for D-Star, Fusion and DMR auto mode; Singleband and Dualband Radio." The file in it was named: DVMEGA_RH_V###_UNO.cpp.hex, where ### is the version.
- Download the X-Loader app from the same place, and install it on a Windows PC.
- Activate the BlueStack's Serial Port to Network Proxy (ser2net) mode, which means the S1 switch (red button) must be engaged (in the latched-in position).
- Connect the BlueStack + DVMEGA to the PC via USB cable. Check the COM port in Device Manager so that you know which COM port it's connected to, and double check that the baud rate is set to 115200.
- Disconnect the BlueStack + DVMEGA from the PC.
- Start the X-Loader, and then choose the Hex (firmware update) file you downloaded, COM port, Baud rate (115200), and Device, which For the DVMEGA-DUAL is Uno(ATmega 328).
- Connect the BlueStack + DVMEGA to the PC via USB cable again and, within 30 seconds, press the Upload button in the X-Loader app (apparently, the ser2net mode turns off after 60 seconds of being idle).
- An "Uploading" status message will be displayed at the bottom of the X-Loader dialog box. If the upload is successful, after a short time, the status message will change to "##### bytes uploaded."
- The firmware update is now finished, and the BlueStack + DVMEGA can safely be disconnected from the PC. After the firmware update is completed, you can leave the jumper wire in place, so you'll be ready for any future firmware updates.
- You can double check that the firmware update was successful by starting the BlueDV for Windows app and enabling one of the modes, like D-STAR. The updated version should be displayed.
7b) Updating DVMEGA firmware using a RPi 3 and Pi-Star
This note moved to Pi-Star Notes: Updating DVMEGA mounted on an RPi⩘ .
8) Soldering – lessons learned
The difficulty I had the first time I attempted to solder a jumper wire to the DVMEGA board caused me to take a step back and consider my situation. I had a cheap old soldering iron and some old leaded solder left over from perhaps 20 years ago when I needed to do a simple task of soldering some electrical wiring together. I also had an obvious deficit of know-how. All in all, a perfect opportunity to make some improvements!
The first thing that dawned on me is that perhaps it would be good to do some studying of basic soldering techniques for electronic components before I did any more messing around with pricey little circuit boards (d'oh!). I found a few articles and videos that at least helped me start to get my head out of the sand.
I'm sure there are lots of Soldering 101-type articles and videos out there, but the ones I found are:
- How to Solder⩘ and How to Desolder⩘ by Aaron Cake.
- How to Solder⩘ by Boulder, CO-based SparkFun Electronics.
- Getting Started with Soldering⩘ from the Raspberry Pi Foundation.
Next, I realized it would be good to get a better soldering iron, one that gave me some control over temperature. There are a lot of soldering irons available in a vast range of prices, from cheap to astronomical. I decided to go with a reasonably priced soldering station from a company with a good reputation: the digital Hakko FX888D-23BY⩘ .
Even though the styling makes it look a bit toy-like, the reviews convinced me that it definitley isn't a toy, and my initial impression is that it's well made of quality components. For example, it uses a ceramic heating element, the base station is quite heavy because of its large transformer and thus very stable on the workbench, and the soldering iron holder base (which also holds the cleaning sponge and wire) is entirely metal, even though it looks plastic. One very nice feature is how fast it heats up compared to my old iron!
You get what you pay for:
a glimpse inside the base station.
The only thing I don't like about this soldering station is its minimal controls. It's totally unintuitive how to use them for basic setup. I actually had to jump online and watch videos to figure out how to perform some of the setup (hold this button and turn it on, hold that button for one second, press this button then hold the other button for two seconds, etc.). However, once you've got it set up the way you want, the controls are just fine for regular use, which is the important thing.
- Enable Preset Mode⩘
- Change Preset Temperatures⩘
- Factory Reset⩘
- Adjust Temperature Displayed⩘
- Change Display between C and F⩘
Heads up! Apparently there are some substandard counterfeit soldering stations made to look like the FX-888D that have been sold on eBay. Make sure you purchase the authentic unit through a reputable dealer or directly from HakkoUSA.com⩘ . There are videos online that show the differences between the real and counterfeit stations⩘ .
Soldering iron tips
After I chose a soldering iron, I read up about soldering iron tips and got a few different kinds so I'll have the right tip on hand for the job: several different sizes of chisel-shaped tips, as well as a pointed tip and an angled tip.
Hakko Recommendations for Selection of Tip Size⩘ : If the proper size (diameter) for the workpiece is selected, the following merits will be obtained and the "soldering environment" will be improved:
- Heat will be efficiently transferred to the workpiece, which offers easy wetting by solder.
- If wetting by solder is easy, the setting temperature can be set to the lowest possible temperature.
- If the set temperature is lower, tip oxidation is prevented.
- If tip oxidation is prevented, the service life of the tip will be prolonged.
A note about cleaning soldering iron tips from SparkFun:
As you solder, your tip will tend to oxidize, which means it will turn black and not want to accept solder. Especially with lead-free solder, there are impurities in the solder that tend to build up on the tip of your iron, which causes this oxidization. This is where the sponge comes in. Every so often you should give your tip a good cleaning by wiping off this build-up.
Traditionally, an actual wet sponge was used to accomplish this. However, using a wet sponge can drastically reduce the lifespan of your tip. By wiping your tip on a cool, wet sponge, the tip tends to expand and contract from the change in temperature. This expansion and contraction will wear out your tip and can sometime cause a hole to develop in the side of the tip. Once a tip has a hole, it is no good for soldering.
Thus, brass sponges have become the standard for tip cleaning. Brass sponges pull the excess solder from your tip while allowing the tip to maintain its current heat level. If you do not have a brass sponge, a regular sponge is better than nothing.
This turned out to be the most difficult choice. There are a lot of different solders available and it's confusing to figure out what to get for hobbyist electronics use. Compounding the difficulty of making the choice, a lot of the info available online is for industrial applications, and the opinions expressed by hobbyists vary w-i-d-e-l-y.
Anyway, it seems that the most basic choice is between leaded and lead-free solder. Some hobbyists like leaded solder because it flows well and melts at a lower temperature. But lead is so crazy toxic that I want to avoid it, even if lead-free solder is a bit more challenging to use. (It's important to know that there is no minimal level of exposure to lead that is not toxic. In light of that, some of the opinions I read about using leaded solder were almost comic, like: "Don't worry about using leaded solder, just don't touch your face after handling it until you wash your hands thoroughly, so you don't accidentally ingest it." Yeah, right … no thanks!)
The next question to consider is the flux, which contributes to the formation of reliable joints when soldering. Almost all available soldering wire has a flux core, but there are several different types available, each with advantages and disadvantages. The most important thing, though, is that for electronics, acid-based flux must be avoided; that kind of flux is for plumbing only and is far too corrosive for electronics. That leaves rosin flux, mildly activated rosin flux (RMA), activated rosin flux (RA), water-soluble flux, and no-clean flux.
Initially, I was interested in water-soluble flux, since it's supposed to be more environmentally friendly, but as I read more about it, I concluded that it seems to be better suited for industrial applications, because the activators in this type of flux leave behind a residue that can be highly corrosive to the circuit board. That means thorough cleaning is a must; however, some components can be damaged by water, so you really need to know the specific types of applications for which it's appropriate to use this type of flux. Not so great for general hobbyist purposes.
I also looked at activated, mildly activated, and no-clean fluxes, but each has downsides that seems to make them iffy choices for hobbyist electronics soldering, unless you really know what you're doing, and I simply don't have that level of know-how.
That left plain old rosin fluxes. Rosin is, basically, pine sap (but it gets mixed with a lot of different things in the different formulations). Rosin flux is a decent general-purpose flux; however, rosin flux residue should be cleaned off, too. That good news is that apparently you can do a decent enough job of that with simple isopropyl or denatured alcohol, which is safer to use around most components. An upside is that, with adequate ventilation, rosin fluxes are relatively safe to use.
The final thing related to flux is its percentage in a flux-core wire, which in the solder wires I saw ranged from 1% to 3%. You want to achieve the right balance between using enough to create a good bond, but not using so much that an excess amount of residue gets created and left behind.
You also need to choose the solder composition, which affects things like wetness, how well it flows, melting point, etc. The Wikipedia solder article⩘ lists more than 150 different compositions! Each one has advantages and disadvantages that you need to weigh, for example, lead-free solder with "higher" silver content (for example, 3% vs 0.3%) melts at a lower temperature, which is a good thing, but the higher silver content fluxes I found were all activated, and I read that activated fluxes leave behind more corrosive residue.
And on and on.
By this point in my research, my head was spinning good and fast. In the end, I chose a relatively inexpensive lead-free, 2% rosin flux-cored, Sn99.0 Ag0.3 Cu0.7 (tin, silver, copper) solder wire. Hopefully, it will prove to be a reasonable choice for my occasional hobbyist use.
Follow-up note: Well, in my first few attempts to solder with my new setup, I've had some success, but some failure, too. The solder I chose didn't work well, so I looked for something else and found a solder made by the well-known company, Kester, specifically, Kester 275 (part #2470687601)⩘ , which is a 2.2% Flux-Cored, lead-free, 0.80mm wire composed of Sn96.5 Ag03.0 Cu0.5 (tin, silver, copper), with a melting range of 217 - 218 C (423 - 424 F)⩘ .
They say Kester 275 "was developed to provide superior wetting performance for hand soldering in the electronics industry." Although it has a higher silver content and a "no-clean" flux, they also say that the "use of 275 No-Clean Flux results in an extremely clear post-soldering residue without cleaning." So far, it's working better for me that the previous off-brand solder I mentioned. It's expensive, but worth it to me to get decent results.
9) QuadNet Smart Groups
Something new to play around with! QuadNet Smart Groups are a type of smart D-STAR routing: "The purpose of QuadNet is to support ROUTING. Routing is an alternate method of connecting to other D-Star users. Routing does NOT require your gateway to know the IP addresses of reflectors or repeaters to which you want to connect. You use special Routing callsigns in the UR field (YOURCALL) of your radio (instead of the usual "CQCQCQ") and QuadNet figures out how to get your signal to the proper destination."
Thanks to Tom, N7TAE, Colby, W1BSB, and the others who are working on this excitingly innovative amateur radio frontier! More info:
- QuadNet2 USA IRC Network – D-STAR routing done open style!⩘
- Router Port Forwarding for D-STAR⩘
- Post in D-STAR Users group about setting this up by Jeff, VE6DV⩘ :
"The D-STAR Users facebook group is not only an online community. We have teamed up with QuadNet to provide an on air gathering place to talk with other members that we see posting here on the Facebook group."
- When QuadNet Smart Groups are used with a home network, port 40000 needs to be forwarded to the hotspot. Thanks to recent advances, this isn't necessary when used with a mobile hotspot.