Open-Source Hardware-Based Three-Dimensional Positioning Device for Indoor Measurement and Positioning

Indoor private (local) wireless networks are considered key enablers for the industrial Internet of Things (IIoT). To ensure that a private network satisfies its own requirements and guarantees coverage, it is important to accurately measure the radio performance at the accurate position to further optimize the network. Additionally, as carrier frequencies increase, cellular network-based positioning becomes increasingly important, as it enables more accurate positioning. For example, centimeter-level accuracy is expected in beyond 5G systems owing to the sub-THz band carrier frequency. To accurately compare and assess various cellular network-based positioning methods, positioning devices, which can move along the same trajectory more accurately than at the centimeter-level, are required. To this end, we implemented a three-dimensional (3D) positioning device developed from open-source hardware, which is generally used to implement computer numerical control (CNC) machines and 3D printers. The implemented 3D pointing device is cost-effective and portable and can be freely configurable and resized in one, two, and three dimensions owing to the use of open-source hardware. The received signal strength indicator (RSSI) employing the LoRa module can be obtained using the implemented device. Using a very low carrier frequency system, it is possible to accurately measure the RSSI variations due to multipath propagation. After demonstrating the reproducibility of the data, the effectiveness of the implemented device was confirmed by showing that the RSSI variation and fading correlation coefficient are close to the Rayleigh fading variation.


I. INTRODUCTION
In addition to outdoor environments, indoor environments are attractive and important for industrial Internet of Things (IIoT) such as smart buildings and factories. Private (local) wireless networks are considered key enablers for IIoT deployment [1]. This is because private networks can be customized to guarantee coverage in severe locations, where public network coverage is limited, to optimize the network for satisfying its own requirements.
The associate editor coordinating the review of this manuscript and approving it for publication was Parul Garg.
However, to realize the aforementioned benefits completely, it is necessary to solve difficult and important problems, such as network (cell) planning and radio parameter optimization, by considering complex indoor propagation characteristics. To perform indoor network planning, raytracing simulation-based network planning tools are generally used to accurately reflect actual building structures, layouts, and materials [2], [3]. The ray-tracing simulation constructs a radio map of performance indicators such as the received signal strength indicator (RSSI) and throughput, and optimizes the network, i.e., the location of the base stations (BSs) or access points (APs). The constructed radio map of the optimized network is verified by the measurement process using the actual terminal (walk test [4], turning process [5]). The propagation environment is highly complex than the outdoor environment; therefore, measurements are very important for indoor optimization. However, the measurements are generally performed by individuals, which are time-consuming and laborious. Additionally, to compare the results of the measurement with the radio map constructed by the ray-tracing simulation, accurate positioning information is essential. Therefore, we implemented automated measurement device that can associate accurate positioning information with radio performance.
From an another perspective, precise positioning information is becoming significantly important, particularly in the IIoT scenario. This is due to the fact that the tracking of mobile devices and mobile assets is important for improving processes and increasing the flexibility of industrial environments. Considering the importance of positioning information for the IIoT scenario, as described above, in Release-17 5G new radio (NR), an indoor positioning accuracy of less than 1 m for the IIoT use case is required [6], [7]. In [8], 5G positioning performance using a 28 GHz carrier frequency was evaluated in a hall. In this measurement, the distance error was less than 6 cm for a line-of-sight (LOS) environment. However, it is recommended that centimeter-level accuracy should be realized through continued research and refinement. Furthermore, beyond 5G systems, which will be deployed in the 2030s, are expected to provide positioning information with an accuracy in the range of centimeters [9], [10], [11]. However, obtaining indoor positioning information is very difficult, unlike outdoors, where a global navigation satellite system (GNSS) can be easily used. Therefore, various indoor positioning techniques use Wi-Fi, Bluetooth, internal sensor-based localization, and so on (see [12], [13], [14] for details of each method). To confirm the effectiveness of these techniques, it is necessary to know the exact position of the terminal performing indoor positioning with centimeter-level accuracy or better. To this end, we implemented a three-dimensional (3D) positioning device that locates a gantry at a precise position when the gantry is moving.
As described above, the purpose of this study involved obtaining radio performance at accurate positions and determining the exact position of the terminal performing indoor positioning. Specifically, we used open-source hardware to implement CNC machines, 3D printers, and DrawBots. Our method is similar to the gantry (pointer) employed in an electromagnetic anechoic chamber, which can locate very precise positions (at millimeter-level accuracy). Additionally, our method is cost-effective and portable and can be freely modified and resized in one, two, and three dimensions, owing to the use of open-source hardware. Therefore, using this method, an accurate position can be obtained, and an automated site survey can be performed by simultaneously acquiring radio performance. To the best of our knowledge, to date, no inexpensive, portable, and flexibly resizable 3D positioning device has been reported.
To verify the effectiveness of our implemented 3D positioning device, the LoRa module was mounted on the implemented 3D positioning device, and the RSSI was measured in one and three dimensions. The LoRa module has a low carrier frequency, uses a narrow-bandwidth signal, and does not apply diversity reception, which makes it possible to measure the RSSI in a basic propagation channel model such as Rayleigh fading. Using LoRa with a very low frequency of 920 MHz, measurements can be made every 5 mm, allowing RSSI performance to be measured with an accuracy of approximately 1/60 of the 325 mm wavelength. Thus, Rayleigh fading variations due to multipath propagation can be observed in detail. In this study, we confirm data reproducibility using a 1D configuration and by repeating the measurement nine times at 5 mm intervals and obtaining almost the same level of variation. Furthermore, using a 3D configuration, measurements were conducted at 20 mm intervals. the RSSI distribution and correlation were close to the theoretical values of the Rayleigh fading variation. This in turn confirmed that the proposed 3D pointing device is operating effectively. Experiments were conducted at multiple locations to demonstrate the portability of the proposed 3D pointing device.
Part of this paper was already published in [15]. However, the details of the implemented 3D pointing device have not yet been presented, and only one measured result was presented owing to page limitations. Additionally, our device's ''configurability,'' one of its most crucial features, was not demonstrated. To emphasize that the configuration can be freely modified by using open-source hardware, in this paper, we present the details of 3D pointing devices. It is also presented how larger configurations with precise positioning accuracy can be realized by connecting two or four V-slots together. An experimental campaign was also carried out to get the spatial correlations. It was demonstrated that they are in good accord with the theoretical values. Videos are generated to simplify the comprehensive data and understand them better.
The remainder of this paper is organized as follows. In section II, related studies are introduced. In section III, the implemented 3D pointing device is described. In section IV, the experimental configuration employing the LoRa module is presented, and this is followed by the experimental results in Section V. Finally, the paper is concluded in Section VI.

II. RELATED WORKS
Our 3D positioning device was developed using open-source hardware products from OpenBuilds [16], which can be used to implement CNC-machines, 3D printers, and DrawBots. As a DrawBot can be constructed using OpenBuilds, it is possible to specify not only a simple positioning but also an arbitrary trajectory. This implies that our 3D positioning device exhibits precise navigational capabilities. Additionally, the current position can be obtained even when the device is in motion. Therefore, an accurate localization can be realized. Open-source hardware allows our device to be  The values listed in the table are typical values based on values reported in papers and websites. The purchase of a more costly device will increase the accuracy and extend the measurement range. Therefore, it should be noted that the most inexpensive configuration does not guarantee the accuracy and measurement range listed in the table.
freely resizable, portable, and cost effective. The simplest 1.5 m 1D configuration can be realized with a linear rail, actuator set, motor driver, and power supply for approximately $250, whereas a 3D configuration requires four actuators and motor drivers for approximately $1,000. However, the drawback is that the measurement range is limited to the range of the implemented pointing device. Hence, based on the above discussion, the four items, i.e., navigation, localization, measurement range, and costs, were compared with other alternatives.
The first alternative involves the motion capture system, which records the movement of objects or individuals. It is used in the military, entertainment, sports, medical applications, and the validation of computer vision and robots. Optical-passive motion capture systems, such as Vicon [17] and OptiTrack [18], are widely used for the validation and control of computer vision and robotics in indoor laboratory settings. In an optical-passive system, retroreflective markers are tracked by a set of infrared cameras to obtain precise 3D positions of the markers. Although it is dependent on the setting and environment, motion capture systems have been shown to be capable of millimeter-scale accurate localization (estimating the position of an object) [19], [20], [21], [22]. However, motion capture systems do not exhibit a navigation function, and other techniques must be used if necessary. OptiTrack's most affordable motion capture camera (Flex 3) costs $659, and the most affordable configuration using four Flex 3s, which can be configured on the ''build my system'' in the ''build my system'' section of OptiTrack's website, costs more than $5,000. Although cameras should be fixed and calibrated when installed at different locations, they offer a high degree of flexibility and portability. There are concerns that the number of cameras can increase if the measurement range is extended.
The second alternative involves total stations (TSs) [23]. TSs are electronic surveying instruments that incorporate electronic distance measurements to allow for the measurement of 3D locations with a high degree of accuracy and precision. The accuracy decreases at greater measurement distances from the instrument owing to the diverging radial lines of the potential readings. At a typical long measurement distance of 100 m, intrinsic errors of approximately 1−3 mm are expected. The cost can range from under $5,000 more than $30,000 depending on the accuracy and features [23]. Similar to motion capture systems, TSs do not exhibit a navigation function and offer a high degree of flexibility and portability.
The measurement range is relatively wide with a typical value of 100 m.
The third alternative is an automated guided vehicle (AGV). An AGV generally uses odometry, i.e., counting wheel revolutions, to derive position information. Odometry is based on the assumption that the wheel revolutions can be translated into linear displacements relative to the floor. However, in the case of wheel slippage and other more subtle causes, this assumption is not true, resulting in errors in the position information. Therefore, the AGV uses other sensor information to compensate for this positioning error. Laser range finders (LRFs) are one of the most popular choices for these types of sensors, as they can measure the direction and distance to objects. With the measured results of LRFs and a map including the exact positions of the objects around the AGV, the AGV can compensate for the positioning errors. If a map is not available in advance, then the simultaneous localization and mapping (SLAM) algorithm [24], [25] is used. Specifically, a mobile robot can build a map of the environment and simultaneously use this map to compute its own location via SLAM. Although positioning errors can be compensated for, positioning accuracy depends on various factors, including odometry, sensor accuracy, SLAM parameters, and geographical features. An AGV has a navigation function and offers a high degree of flexibility and portability. The measurement range is relatively wide. The costs are widely distributed according to the configuration. Table 1 compares the implemented 3D pointing device to other alternatives. As listed in the table, when compared to motion capture systems and TSs, this system offers almost the same level of localization accuracy at less than one-fifth the cost, and it also has a navigation function. If a wider measurement range is required, an AGV can be used. However, the localization accuracy is slightly degraded. As described above, the implemented 3D positioning device is effective as an inexpensive method to realize very high accuracy in localization and has a navigation function.

III. IMPLEMENTED 3D POINTING DEVICE
Our 3D positioning device was developed using belt-driven actuators, which convert rotary motion into linear motion using a timing belt. This section first provides an overview of the 1D arrangement of the belt-driven actuators and then describes the accurate positioning technique. Next, we discuss our device's configurability.  Figure 1 schematically illustrates two types of belt-driven actuator configurations: In one configuration, the actuator is fixed to one side of the rail and only the gantry moves ( Fig. 1(a)), and in another configuration, the actuator is fixed to the gantry and both move as one ( Fig. 1(b)). In the configuration shown in Fig. 1(a), the belt is tied to the gantry and looped around two pulleys at either end of the rail. The belt contains teeth that mesh with pulleys, and an actuator is connected to each of the pulleys. In the configuration shown in Fig. 1(b) (also see Fig. 2), both ends of the belt are fixed to the ends of the rail, and pulleys connected to an actuator fixed to the gantry mesh with the belt. These configurations enable efficient transmission of torque and prevent slippage.

A. 1D CONFIGURATION OF BELT-DRIVEN ACTUATORS
The actuator is controlled using an Arduino with GRBL [26] installed. GRBL is an open-source, softwareembedded, high-performance G-code-parser and CNC milling controller. GRBL is compatible with G-code [27], and it is controlled by sending G-code from a PC connected to the Arduino using the Python library ''pySerial'' [28].

B. ACCURATE POSITIONING TECHNIQUE
We first define the gantry position, x. As shown in Fig. 1, let n p and l p be the number of teeth on the pulleys attached to the actuator and pitch length of the belt, respectively. Additionally, let N stp_rev be the number of (micro) steps per revolution. Based on the aforementioned definition, the belt, and then the gantry connected to the belt, move n p l p when the pulley rotates by a revolution. Hence, in one (micro) step, the gantry advances by n p l p /N stp_rev . In our configuration, n p = 20 teeth, l p = 3 mm, and N stp_rev = 25000 steps/revolution. The minimum travel distance is 0.0024 mm, which is very small and fine control is possible.
The gantry position can be obtained from the initial position x init , and the integrated number of steps in the actuator, N stp , as follows: where the number of steps required to travel one millimeter, T stp_mm , is defined as T stp_mm = N stp_rev /n p l p . Based on the perspective of data reproducibility, it is important that the command to move to position x dst is always guaranteed to move to x dst . This requires that x init and T stp_mm be determined precisely.

1) INITIAL POSITION, x init : HOMING COMMAND USING LIMIT SWITCH
First, we discuss the origin (x init = 0). To precisely define the origin, a normally open limit switch [29] is installed on one side of each rail and connected to the Arduino, as shown in the figure. Specifically, the actuator rotates in a prespecified direction by executing the homing command (H) in the Gcode. The origin is then defined as the location where the limit switch is detected as closed. 1 Here, x init = 0 and N stp = 0 at a point where the homing command is correctly executed and completed. Thus, x = 0 always maintains the same position.

2) INTEGRATED NUMBER OF STEPS IN ACTUATOR, N stp : POST-CALIBRATION
Next, we discuss T stp_mm . Given that this device has a belt, T stp_mm can differ from the calculated value based on belt tension and belt age. To ensure accuracy, post-calibration is performed. After homing, the gantry is moved to the reference position x = x ref using the GRBL command. Calipers or other instruments are used to measure the current position. If the measured current position (defined as x mea ) contains an error, T stp_mm is changed to value T stp_mm (x ref /x mea ). The same process is repeated until the gantry moves to the correct position x ref . Post-calibration is very important for this device to confirm that the position accuracy is within the required range. Post-calibration results are provided in Appendix A.

C. CONFIGURABILITY OF 3D POSITIONING DEVICE
This subsection demonstrates one of the most crucial features of our device, ''configurability.'' The realization of 1-, 2-, and 3-dimensional configurations are first described, and then the range expansion for each axis is addressed. Detailed information on constructing various configurations of the 3D positioning device are available on OpenBuilds website [16] and YouTube channel [30]. Figure 3 and 4 show the outlook and the schematic illustration of the implemented 3D pointing device, respectively. By using V-slot linear rail [31] and up to four actuators [32], arbitrary configurations in one, two, and three dimensions can be realized. 2 For example, Figure 3(a) shows a 1D pointing device of 3 m by connecting two V-slots, and Figure 3(b) shows a 2D pointing device with a size of 1.5 × 1.5 m by combining five V-slots.

1) CONFIGURATIONS IN ONE, TWO, AND THREE DIMENSIONS
To realize a 3D pointing device, two types of implementations are presented. Specifically, a cube is formed by 12 V-slots; actuators and one V-slot, which control the x-and y-axes, are installed at the top of the cube, and a gantry is hung from the top using an additional V-slot and actuator as shown in Fig. 3(c). However, the 3D pointing device, shown in Fig. 3(c), can affect the propagation of radio signals from higher frequency bands (mmWaves as well as sub-THz) to a certain extent. To reduce such impacts to the maximum possible extent, an additional implementation is presented in Fig. 3(d). This implementation is to form a rectangle with four V-slots, install actuators that control x-and y-axes on the rectangle, and use another V-slot and an actuator to lift the gantry. In our implementation, the thinnest V-slot 20 × 20 linear rail among six variations 3 was used. This is because we prioritized minimizing the influence of our 3D pointing device on radio performance as opposed to the stability and robustness of the structure. Furthermore, even when the configuration is thin, limiting the maximum values of the speed and acceleration of the gantry can reduce sway. However, measurement time increases. 4

2) RANGE EXPANSION
We employed a 1500 mm long V-slot linear rail [31], which can be combined to realize an integral multiple of this length. We have previously shown the case of two V-slots connected together in Fig. 3(a), but here is an example of an even larger configuration. Figure 5 shows a 1D configuration of six meters by connecting four V-slots. Large configurations can be realized in 2D and 3D in a similar manner. This is one of the advantages of using open-source hardware.

IV. EXPERIMENTAL SETUP EMPLOYING LoRa MODULES
Wireless modules, such as LoRa, private long-term evolution (LTE), and local 5G, are mounted on the gantry, which can be moved by actuators. In this study, we employed LoRa modules as wireless devices. LoRa devices can be connected via USB as well as a 3D pointing device and can communicate with the control PC. Therefore, 3D pointing devices and LoRa modules can be controlled using the same Python program. This algorithm is described in detail below.  Figure 6 shows the experimental setup employing LoRa modules. Figure 6(a) shows a diagram of the experimental setup, and Figure 6(b) shows the outlook of the experimental equipment. The PC labeled ''RxPC'' in Figure 6 is defined as the control PC in Figure 4 and controls the gantry in the 3D pointing device via Arduino. Furthermore, RxPC is also connected to a LoRa module labeled ''LoRaRx,'' which is mounted on the gantry in the 3D pointing device. Another LoRa module labeled ''LoRaTx'' is connected to the TxPC, specifically Raspberry Pi. Therefore, ''LoRaTx'' is fixed, and ''LoRaRx'' moves within the 3D pointing device to perform measurements. Algorithms 1 and 2 show the processes implemented in RxPC and TxPC. As shown in Algorithm 2, the algorithm implemented in TxPC is passive and sends echoes when received. Therefore, we used Algorithm 1 to describe our measurement method. Before executing this algorithm, it was necessary to generate a list of destinations. For example, to perform data acquisition on a 1 m 3 cube with 20 mm intervals in the x, y, and z axes, it is necessary to generate a list of (1000/20 = 50) 3 = 125, 000 destinations.
First, to obtain an accurate position for each measurement, the homing command in the G-code is executed in Algorithm 1. The homing command forces the gantry to move in the negative direction of the x, y, and z axes until the limit switch is activated, and the location at which it stops is defined as the origin (0, 0, 0). Next, after setting the first destination to D(x d , y d , z d ), the gantry is moved to point D. To confirm the arrival at point D, status reporting is performed. Specifically, RxPC waits for the next process until the current gantry position G(x, y, z) becomes D(x d , y d , z d ) and the status, , becomes idle. After confirmation, RxPC sends location information ''x d , y d , z d '' defined as msg1.
As explained, TxPC always waits to receive a message. If TxPC receives a message, then TxPC obtains the RSSI when the message is received (hereinafter defined as ''uplink RSSI''). Furthermore, TxPC sends the received message (location information) with uplink RSSI information attached to it.
Meanwhile, RxPC sends msg1 and waits to receive a message; when a message is received by RxPC, it obtains the RSSI at the time the message is received (hereinafter defined as ''downlink RSSI'') and checks whether the message sent by the RxPC (msg1) is included in the message received (defined here as msg2). If msg1 is included in msg2, then the measurement at point D is considered to have been completed correctly and the downlink and uplink RSSI are stored together with msg1 (location information) in RxPC. If no message is received at RxPC after a certain period after sending msg1 or if the received msg2 does not contain msg1, then msg1 is retransmitted, assuming transmission becomes erroneous. Furthermore, if the message is not correctly received even after N max transmissions are performed, then the measurement at this destination is terminated. In this study, we set N max = 4 and the timer to 5 s.
This process continues until all the destinations have been completed. Hence, RxPC stores the uplink and downlink RSSI corresponding to the gantry location.

V. EXPERIMENTAL RESULTS
To validate the effectiveness of the implemented 3D pointing device, we employed LoRa ES920LR based on SEMTECH SX1276 [33] as a wireless module (see Table 2 for basic parameters). This is because the LoRa module ES920LR has a low carrier frequency of 920 MHz, uses a narrow-bandwidth signal, and does not apply diversity reception. This in turn makes it possible to measure the RSSI in a basic propagation channel model. We used one-dimensional measurements to verify the data reproducibility of our implemented 3D VOLUME 11, 2023 Wait until receive msg2 or Timer expires 13: if msg2 is received and msg2 includes msg1 then 14: Obtain RSSI when msg2 is received 15: Define RSSI as ''downlink RSSI'' 16: Recode ''msg1 + uplink RSSI + downlink RSSI'' Wait until receive msg1 3: Obtain RSSI when msg1 is received 4: Define RSSI as ''uplink RSSI'' 5: Send ''msg1 + uplink RSSI'' 6: end loop pointing device and then compare the three-dimensional measurements with the theoretical values of the Rayleigh fading variation. Figure 7 shows the experimental setup used in this study. As shown in the figure, four types of measurements were performed.
• Measurement #1: We performed one-dimensional measurements in a magnetic shield room to verify the data reproducibility of the 3D pointing device by eliminating the effects of RSSI fluctuations due to human movement as shown in Fig. 7. In this evaluation, multiple trials were performed.
• Measurement #2: We performed three-dimensional measurements in a magnetic shield room at a distance of approximately 3 m to verify the distribution and correlation of RSSI fluctuations due to multipath fading channels, as shown in Fig. 7. In this evaluation, only one trial was performed because 125, 000 point measurements require approximately two days.
• Measurement #3: For the same reason as that for measurement #2, we performed three-dimensional measurements inside the building at a distance of ∼ 6 m as shown in Fig. 7. In this evaluation, only one trial was performed.  • Measurement #4: For the same reason as that for measurement #2, we performed three-dimensional measurements inside the building at a distance of ∼ 25 m as shown in Fig. 7. The most significant difference is that there are no line-of-sight (NLOS) conditions. In this evaluation, only one trial was performed. Here, ''measurements'' and ''trials'' are defined as follows: • Measurement: Measurements #1, #2, #3, and #4 are defined as cases in which the transmitter and receiver are placed at different locations.
• Trial: Trials #1, #2, · · · are defined as different measurements performed multiple times without changing the location of the transmitter and receiver. The definitions of the x, y, and z axes for each measurement are indicated by blue lines in the figure. We first verified data reproducibility using one-dimensional measurements in a magnetic shield room, which is denoted as measurement #1. A 3D pointing device was installed near the transmitter (LoRaTx). Therefore, the receiver (LoRaRx) installed on the 3D pointing device can be any point in the LOS environment in the range of 0.5-3.0 m from the transmitter. Specifically, measurements were conducted at a 5 mm spacing over a distance of 2.5 m in total length and at 500 points. The trials were performed nine times, and the measured uplink and downlink RSSI at position x were defined as P D(l) (x) and P U(l) (x) for trial #l, respectively.

1) COMPARISON BETWEEN UPLINK AND DOWNLINK RSSI
We compared the uplink RSSI and downlink RSSI for the same trial. Figure 8 shows the RSSI variation at different positions x of the uplink RSSI and downlink RSSI for trial #1 (l = 1). As shown in Fig. 8, deep fading was clearly observed multiple times. In particular, it was observed periodically in the region from x = 1300 mm to 2400 mm. Specifically, the deeply faded locations were x = 1390, 1490, 1710, 1830, 1980, 2185, 2390 mm, and the intervals were close to half the wavelength. These intervals are discussed in detail in Measurements #2, #3, and #4. Furthermore, the uplink and downlink RSSI fluctuated almost similarly with the difference being approximately 1.07 (= 16/15) dB or one-bit resolution when quantized in SEMTECH SX1276 [33].
To confirm this point in detail, we evaluated the uplink and downlink RSSI differences in the same trial, which are defined as P dB DU(l) (x) = |10 log 10 P DU(l) (x) |.
(3) Figure 9 presents the cumulative distribution of P dB DU(l) (x). As shown in the figure, approximately 53 % of the uplink RSSI completely matched the downlink RSSI. Additionally, in more than 95 % of the cases, the difference between the uplink and downlink RSSI was 1.07 dB, which is within a one-bit resolution. In [34], 1 − 2 dB variations were observed when there were no individuals in the environment. We confirmed the same result by conducting measurements at specific points in the magnetic shield room for more than 6 h. Therefore, the results shown in Fig. 9 confirm that the implemented 3D positioning device operates accurately.

2) COMPARISON OF MULTIPLE TRIALS IN DOWNLINK RSSI
Next, we compared trials #1 to #9 in the downlink RSSI. Figure 10 shows the downlink RSSI variations at different positions x for all trials (l = 1, 2, · · · , 9). As shown in the figure, the RSSIs in all the trials fluctuated almost similarly. However, relatively large RSSI variations were observed near x = 1400 − 1500 mm, and relatively small RSSI variations were observed near x = 1700 − 1800 mm. In the region near x = 1400−1500 mm, the maximum variation was 10 dB with a movement of 5 mm, which led to a considerable variation even with a slight shift during the measurement. In the region near x = 1700 − 1800 mm, relatively high RSSI values were observed in trials #1, #3, #5, #7, and #9, whereas lower RSSI values were observed in trials #2, #4, #6, and #8. Given that the gantry was moved from x = 2500 mm to 0 mm for odd-numbered trials and from x = 0 mm to 2500 mm for even-numbered trials, the position in y-and/or z-axis can potentially change slightly based on the gantry movement. It can be presumed that the area around x = 1700−1800 mm is a region where RSSIs fluctuate significantly with only small changes in y-and/or z-axis because the measured RSSI values are almost the same at other locations regardless of the trials. However, this difference was at most 3.20 dB (3-bit resolution), which is considered as highly accurate considering that the range is approximately 100 mm out of the measurement range of 2500 mm.
To show this clearly, we evaluated the downlink RSSI difference between trials #l and #1, which is defined as follows: Figure 11 illustrates the cumulative distribution of P dB D(l/1) (x). As shown in the figure, the P dB D(l/1) (x) value becomes slightly larger than the P dB DU(l) (x) value. This is because when measuring the uplink and downlink RSSI in the same trial, the gantry is located at the exact same point, whereas when measuring the downlink RSSI in different trials, there can be a slight difference in position. From Fig. 11, it can be observed that approximately 45 % of the downlink RSSI at trial #l was completely matched to that at trial #1. Additionally, in more  than 91 % (97 %) of the cases, the difference between the downlink RSSI in trials #l and #1 was 1.07 dB (2.13 dB), which is within a one-bit (two-bit) resolution, indicating that the measurements are accurate.
Based on the aforementioned discussion, we confirmed the data reproducibility of the implemented 3D pointing device.
In the aforementioned equations, δ and N denote the distance between the measurement points and number of measurement points on one axis, which were set to 20 mm and 50, respectively. The RSSI at x = (x i , y j , z k ) is defined as P(x) = P(x i , y j , z k ). Here, only the downlink RSSI was evaluated because it was confirmed that the uplink and downlink RSSIs are almost the same. Hence, notation ''D'' is omitted in equation P(x). Similarly, notation ''l'' is also omitted from P(x) because only one trial was performed for each measurement.
Given that it is difficult to show three-dimensional RSSI measurement results P(x), we present P(x) as a cross-sectional view with one of x, y, z fixed. For example, if x = 500 mm, then the value is denoted as P(x = 500, y, z). Figure 12 shows a counterplot of the surface of the cube as an example of the three-dimensional RSSI distribution for Measurements #2, #3, and #4. In this figure, P(x, y, z = 980), P(x, y = 0, z), and P(x = 980, y, z) are presented. It should be noted that the range of the colorbar is defined as 10 dB added to 50 dB subtracted from the average RSSI, P ave , in each measurement, because the average received power varies considerably based on the measurement environment. The average RSSI P ave is defined as follows: P dBm ave = 10 log 10 (P ave ) .
In all the measurements, standing waves with half the wavelength were observed as shown in Fig. 8. Next, the RSSI distribution is shown in more detail for Measurement #2. Figure 13 shows the counter and surface plots of RSSI P(x, y, z = 500) in two dimensions. The z value is fixed at 500 mm. Similar tendencies to those in the one-dimensional measurements are observed in Fig. 13. Clear standing waves with half a wavelength are also observed.
Detailed data are presented in Appendix B and video for reference. In particular, the video shows all points in Measurements #2, #3, and #4 by animating the cross-sectional view in sequence. Based on previous data and data in Appendix B, the variation in the half-wavelength period was clearly visible. Therefore, using 125,000 data points, the RSSI variations and correlations were calculated and compared with the theoretical values of Rayleigh fading variations.

1) FADING RSSI DISTRIBUTION
To verify the distribution of the RSSI, we compared the measured RSSIs with the cumulative distribution of the received power for Rayleigh fading, which is expressed as follows: where γ and F(γ ) represent the received signal power and cumulative distribution function of the received signal power γ , respectively. Figure 14 shows the cumulative distribution of downlink RSSI for the three measurements. As shown in the figure, all measurements show a distribution very close to the theoretical distribution of Rayleigh fading, except for the extremely low RSSI region of less than −120 dBm in FIGURE 12. Measured three-dimensional RSSI variation (surface of cube). It should be noted that the range of the colorbar is defined as P dBm ave − 50, P dBm ave + 10 because average RSSI differs for Measurements #2, #3, and #4. Furthermore, the video shows all points by animating the cross-sectional view in sequence. Measurement #4, which is close to the RF sensitivity of LoRa chip SX1276 [33]. In [35], the minimum observed RSSIs were reported as higher than the specified RF sensitivity. It should be noted that when the RSSI is below −120 dBm, as observed in Measurement #4, the accuracy of the measured RSSI is considered as degraded because it is close to RF sensitivity. Therefore, in these regions, the received RSSIs measured by the LoRa chip were considered relatively inaccurate. We also obtained similar results in the outdoor LoRa evaluation.

2) FADING CORRELATION
The measurement results were also compared with the Rayleigh fading distribution in terms of fading correlation. Given that the phase component cannot be obtained from measurements using LoRa module, a comparison was made using power correlation [36]. The power correlation coefficient, ρ, in one dimension is defined as where ⟨·⟩, p(x), and denote the ensemble average, received power at position x, and position difference, respectively. The power correlation coefficient ρ is as follows:  where J 0 (x) and λ denote the Bessel functions of the first-order zero and wavelength, respectively. In this study, spatial average was used to obtain the power correlation coefficient. Furthermore, we performed spatial averages in the xy-plane because the transmitter and receiver antennas are oriented along the z-axis. Specifically, to obtain the power correlation between two points separated by a fixed distance = δd, we performed spatial averaging on both points apart in the x-axis and apart in the y-axis. Based on the above discussion, the spatial correlation ρ mea ( ) is calculated as follows: P(x)P(x + ), P(x), P 2 (x) are defined by equations (13), as shown at the bottom of the page, (14), and (15), respectively.
(15) Figure 15 shows the power correlation coefficients for the three measurements as functions of . The range of was set to [0, λ]. In the figure, the power correlation coefficient is defined in Eq. (11). The figure shows that the correlation is close to the theoretical value, particularly in the region of small . Although the error from the theoretical value increases as increases, the trend of having a minimum value in the region of approximately 120 mm, which increases slightly and then decreases after reaching a maximum value again, is reproduced. While the theoretical value is obtained by assuming that elementary waves arrive with equal probability from all directions, the actual measurement is considered as erroneous because of the presence of bias in the direction of the arrival of elementary waves.
However, the theoretical and measured values can be considered to be in agreement with each other with sufficient accuracy. Based on the discussion in this section, we confirmed that the implemented 3D pointing device operates with a millimeter-level accuracy.

VI. CONCLUSION
We implemented a 3D positioning device developed from open-source hardware, which is generally used to implement CNC machines and 3D printers. The implemented 3D pointing device is cost-effective, portable, and freely configurable and can be resized in one, two, and three dimensions owing to the use of open-source hardware. As an example of the freely configurable aspect, it was shown that four V-slots can be connected to realize a 6 m configuration. An even longer configuration is also possible but requires the use of a longer single rail configuration for strength. The best construction method for this type of extremely lengthy configuration will be investigated in future studies. It should also be noted that in contrast to measuring instruments available on the market, this device is built using open-source hardware and requires an additional step to verify positioning accuracy  using calipers or tape measures before actual measurement is performed. The RSSI using LoRa module was obtained using the implemented device. Using a very low carrier frequency system, it is possible to accurately measure RSSI variations due to multipath propagation. After demonstrating the reproducibility of the data, the effectiveness of the implemented device was confirmed by showing that the RSSI variation and power correlation coefficient were close to the Rayleigh fading variation.
In this paper, although only the evaluation results employing the LoRa module were presented, the implemented 3D pointing device can be used in other scenarios, which are discussed in Appendix C. Figure 16(a) and 16(b) show the 1D configuration of the implemented 3D positioning device before and after the calibration. A tape measure was placed under the rail to determine its position. Before post-calibration, T stp_mm was set to N stp_rev /n p l p = 25000/(20 · 3) ≈ 416.666. When the homing command was executed, the limit switch was closed at the 225 mm position, and the gantry stopped at 230-mm position because the homing pull-off was set to 5 mm. By executing the GRBL command G0(2500), the gantry moved x ref = 2500 mm away from the origin. However, there was an error of approximately 6 mm, which stopped at x mea = 2494 mm. After changing T stp_mm to T stp_mm (x ref /x mea ) = 416.666(2500/2494) ≈ 417.668 and moving it to x ref = 2500 mm again, it stopped at the correct position as shown in Fig. 16(b).

APPENDIX B DETAILED PERFORMANCE
In this section, we present the details of data 5 with a particular focus on Measurement #2. Figure 17(a) shows the cross-sectional plot of the three-dimensional RSSI distribution for Measurement #2, which represents the xy, yz, and FIGURE 19. Example of application scenarios. The 3D positioning device can be controlled to move on a grid of points, as shown in (a), or to move precisely on an arbitrarily shaped trajectory, such as on an L-shape or curve, as shown in (b). By appropriately designing the curve, the device can even move on a trajectory that is a certain distance away from the transmission point.
zx planes for z = 0 mm, x = 500 mm, and y = 500 mm, respectively. The counter plots for yz and zx planes are shown in Fig. 17(b) and (c).
Additionally, figure 18 shows eight counterplots of xy planes. Each of the eight figures correspond to the xy-plane at z = 0, 40, 80, 120, 160, 200, 240, and 280 mm. Given that the measurement results are spaced 20 mm apart, skipping one xy plane yields plots closer to one wavelength. A gradual variation of approximately half the wavelength in the xy-plane was observed.

APPENDIX C POTENTIAL APPLICATION SCENARIOS
In this paper, although only the evaluation results employing the LoRa module were presented, the implemented 3D pointing can be used in other scenarios.
The first scenario was a site survey and channel measurements employing higher-frequency bands. The 3D positioning device is more effective at higher frequencies, such as millimeter waves, than at the 920 MHz frequency band used in this study because it can be moved to precise positions with millimeter-level accuracy. For example, a 2D configuration is useful for measuring all grid points in a rectangular area, which is part of an area that corresponds to an NLOS condition owing to an L-shaped corridor as shown in Fig. 19(a). In [37], indoor coverage extension using passive reflectors was investigated in an L-shaped corridor. Furthermore, as shown in Fig. 19(c), measurement of a point at a fixed distance from the transmitter can be easily realized.
The second scenario is a performance comparison of the different parameters. One advantage of this device is that it can reproduce any trajectory within the device range with high accuracy. An example of this feature can be used to optimize parameters by conducting experiments. When comparing the performances under different parameters, it is necessary to match the conditions to the maximum potential. Using this device, the movement of the terminals can be exactly matched. Therefore, in addition to the performance when the radio parameters are changed, the configuration shown in Fig. 19(b) can be used to evaluate the impact of the handover parameters. The two trajectories are shown in the figure.
The third scenario involves indoor positioning. As discussed in Section I, the centimeter-accurate positioning of the moving terminals in the network is effective and required for systems beyond 5G. A pointing device that accurately traces the same trajectory is essential for comparing and assessing multiple indoor positioning techniques. The implemented 3D pointing device is appropriate for such scenarios.