KNOT LR9 kit RB924i-2nD-BT5&BG77

Connecting

  • Make sure your Internet service provider is allowing hardware change and will issue an automatic IP address;

  • Connect your ISP cable to the first Ethernet port;

  • Connect the device to the power source;
  • Open network connections on your computer and search for MikroTik wireless network - connect to it;
  • The configuration has to be done through the wireless network using a web browser or mobile app. Alternatively, you can use a WinBox configuration tool https://mt.lv/winbox;
  • Open https://192.168.88.1 in your web browser to start configuration, user name: admin and there is no password by default;
  • Click the Check for updates button and update your RouterOS software to the latest version, must have an active Internet connection;
  • In the Quick Set, WISP AP menu choose your country and apply country regulation settings;
  • Set the antenna gain, depending on the antenna used;
  • Set up your wireless network password;
  • Set up your router password.

Mounting

  1. The device can be mounted using provided DIN rail mount set. Designed to fit standard 35 mm x 7.5 mm DIN rails. Attach it with two provided screws to the device and attach the device to the DIN rail. The DIN rail is not provided in the package.
  2. Alternatively, it is possible to attach the device to a wall, using the provided screw holes on the back of the unit. The device should be mounted in a way that the cable openings are pointing downward as shown in the picture.

Warning! This equipment should be installed and operated with a minimum distance of 20 cm between the device and your body. The operation of this equipment in the residential environment could cause radio interference.
The mounting and configuration of this device should be done by a qualified person.

Powering

  • Direct-input power jack (5.5 mm outside and 2 mm inside, female, pin positive plug) accepts 12-57 V DC.
  • microUSB port accepts 5 V powering.
  • Ethernet port accepts 802.3af/at Power over Ethernet 12-57 V DC.

The power consumption under maximum load with attachments can reach 20 W.
Connecting to a PoE Adapter:

  1. Connect the Ethernet cable from the device to the PoE+DATA port of the PoE adapter.
  2. Connect an Ethernet cable from your local network (LAN) to the PoE adapter.
  3. Connect the power cord to the adapter, and then plug the power cord into a power outlet.

Extension slots and ports

  • 2.4 GHz, 802.11b/g/n, antenna gain 1.5 dBi.
  • Built-in GPS module (GPS, GLONASS, BeiDou, Galileo).
  • Two 10/100 Ethernet ports, supporting automatic cross/straight cable correction (Auto MDI/X). Either straight or crossover cable can be used for connecting to other network devices. The Ethernet port accepts 12-57 V DC power from an 802.3af/at PoE injector.
  • One microUSB 2.0 port for powering only.
  • One nano SIM slot.
  • Bluetooth version 5.2, antenna gain 2 dBi.
  • LR8 card.

GPS

NB/CAT-M

Attach your antennas to the SMA connectors:



BG77 supports NB and GNSS, cannot be used together. https://help.mikrotik.com/docs/display/ROS/IoT

External antennas must be connected to use the Narrow Band modem and GPS. Not provided with the package.

Buttons and jumpers

Reset button

  • Hold this button during boot time until the LED light starts flashing, release the button to reset RouterOS configuration (total 5 seconds).
  • Keep holding for 5 more seconds, LED turns solid, release now to turn on CAP mode. The device will now look for a CAPsMAN server (total 10 seconds).
  • Or keep holding the button for 5 more seconds until LED turns off, then release it to make the RouterBOARD look for Netinstall servers (total 15 seconds).

Regardless of the above option used, the system will load the backup RouterBOOT loader if the button is pressed before power is applied to the device. Useful for RouterBOOT debugging and recovery.

GPIO pinout

GPIO pins are located on the board under the case as shown in the picture:

ADC input/analog input (pin2 or pin3):

note: Analog input voltage is 0-60 V. Theoretical resolution is 4 mV (14bit ADC). Analog input impedance is approximately 72K Ohm.

Connected relays (pin4 or pin6):

Tamper switch (pin5):

note: Digital input voltage is 0-2.5 V max. To receive a logical "0" on the pin, the voltage should be between 0-0.3 V.  To receive a logical "1" on the pin, the voltage should be between 0.7-2.5 V.

note: Newer routerboards will have a pull-up resistor on the PCB (on the board) - 10k ohm. Older boards (the first released batch) may need an external pull-up resistor.

Accessories

The package includes the following accessories that come with the device:

  • ADAPT1_ EU/US Switching Power Supply 24V, 1.2A, 28.8W, 86.8%, VI.
  • CAB1_ USB A Female to Micro B cable.
  • SET1_ K-47 wall mount set, two screws, and dowels.
  • SET2_ K-74 Din rail mount set.
  • Modbus connector, A+, B-.

HGO-LTE-W antenna can be purchased separately.

Operating system support

The device supports RouterOS software version 6.48.3. The specific factory-installed version number is indicated in the RouterOS menu /system resource. Other operating systems have not been tested.

Configuration

RouterOS includes many configuration options in addition to what is described in this document. We suggest starting here to get yourself accustomed to the possibilities: https://mt.lv/help. In case an IP connection is not available, the Winbox tool (https://mt.lv/winbox) can be used to connect to the MAC address of the device from the LAN side (all access is blocked from the internet port by default).
For recovery purposes, it is possible to boot the device from the network, see section Buttons and jumpers.

note: make sure that iot package is installed beforehand.

Overview

Protocols such as MQTT and HTTP are widely used to push data within M2M networks. M2M topologies can use different technologies, such as Wi-Fi or Bluetooth to send data within networks.

KNOT is a new addition to one of our IoT solutions. KNOT acts as an IoT gateway (that uses Narrow Band and CAT-M technology) and uses Bluetooth to scan broadcasted information. With the Bluetooth interface, you can use the KNOT for asset tracking and telemetry based on Bluetooth advertisement packets. KNOT supports any BLE tag that sends advertisement data. iBeacon, Eddystone, or any other format. It has powerful filters for forwarding only relevant packets and ignoring others. After the gateway processes the data that it receives, it can use an ISP connection to publish the data further to any subscriber or server that is configured accordingly.

All you need to do is to configure a script. The script can filter broadcasted information and push it to the internet.

This article explains how to configure KNOT to publish data using MQTT or HTTP protocols.

External antennas must be connected to use the Narrow Band modem and GPS. Not provided with the package.

Reports

Navigate to IoT>Bluetooth.

You can find all broadcasting devices in the “Advertising reports” tab.

In this menu, you can set up a filter by pressing the “Filter” icon. For example, knowing the MAC address of the device, you can set up a filter to only show specific reports.

You can add more filter options using “+” icon.

You can remove filter options using "-" icon.

MQTT Broker configuration

Navigate to IoT>MQTT.

You can add a new broker via “+” button.

PropertiesDescription
NameIdentification. Brokers name.
AddressIP address or FQDN name of the MQTT broker without ssl:// or tcp:// prefix.
PortNetwork port of the broker. Usually, 1883 or 8883 (for SSL).
SSLEnable/Disable Secure Socket Layer. If the server uses a self-signed certificate or certificate signed by a non-trusted CA, you have to upload the server's certificates <crt> file to RouterOS. Upload .cer file to the "Files" menu and import the file to certificates in the System>Certificates tab.
UsernameUsername for MQTT broker.
PasswordPassword for MQTT broker.
Client IdA unique ID used for the connection. The broker uses this ID to identify the client.
CertificateChose a certificate if required for the two-way authentication.

note: You do not have to specify the servers certificate (.cer file) in the MQTT broker settings. The "Certificate" field is used for the client's certificate.

note: "Name", "Address", and "Port" field configuration is required. Other parameters can be optional or required - depends on how the server/broker is set up.

Publish

After you created a broker, click the "Publish" button. This box allows you to choose a broker and specify message information.

Select an already configured broker in the "Broker" field (scroll-down menu).

You can then specify the "Topic" (a string used by a broker to filter messages), "Message" (the message itself), "QoS" (indicates Quality of Service level for the message), and "Retain" (whether to retain the message or discard it) parameters.

note: "Broker" and "Topic" field configuration is required. "Message", "QoS", and "Retain" can be optional or required - depends on how the server/broker is set up.

MQTT with script scenario

MQTT broker can be configured with scripts.

Create a new script, use the template as a reference, change the parameters accordingly and run the script.

Every line that begins with the symbol "#" is instructional and it describes the parameter that is going to be configured below the line. Change the parameters within quotation marks "" that would apply to your specific case.

Script example:

# Required packages: iot

################################ Configuration ################################
# Name of an existing MQTT broker that should be used for publishing
:local broker "Demo Device"

# MQTT topic where the message should be published
:local topic "v1/devices/me/telemetry"

# Interface whose MAC should be used as 'Locator ID'
:local locatorIface "ether1"

# POSIX regex for filtering advertisement Bluetooth addresses. E.g. "^BC:33:AC"
# would only include addresses which start with those 3 octets.
# To disable this filter, set it to ""
:local addressRegex ""

# POSIX regex for filtering Bluetooth advertisements based on their data. Same
# usage as with 'addressRegex'.
:local advertisingDataRegex ""

# Signal strength filter. E.g. -40 would only include Bluetooth advertisements
# whose signal strength is stronger than -40dBm.
# To disable this filter, set it to ""
:local rssiThreshold ""

#################################### System ###################################
:put ("[*] Gathering system info...")
:local ifaceMac [/interface get [/interface find name=$locatorIface] mac-address]
:local cpuLoad [/system resource get cpu-load]
:local freeMemory [/system resource get free-memory]
:local usedMemory ([/system resource get total-memory] - $freeMemory)
:local rosVersion [/system package get value-name=version \
    [/system package find where name ~ "^routeros"]]
:local model [/system routerboard get value-name=model]
:local serialNumber [/system routerboard get value-name=serial-number]
# Health is a bit iffy since '/system health' does not have 'find' in ROS6
:local health [/system health print as-value]
:local supplyVoltage 0
:local boardTemp 0
:foreach entry in=$health do={
    :if ($entry->"name" = "voltage") do={:set $supplyVoltage ($entry->"value")}
    :if ($entry->"name" = "board-temperature1") do={:set $boardTemp ($entry->"value")}
}

################################## Bluetooth ##################################
:put ("[*] Gathering Bluetooth info...")
:global btOldestAdvertisementTimestamp
:if ([:typeof $btOldestAdvertisementTimestamp] = "nothing") do={
    # First time this script has been run since booting, need to initialize
    # persistent variables
    :set $btOldestAdvertisementTimestamp 0
}
:local btProcessingStart [/system clock get time]
:local advertisements [/iot bluetooth scanners advertisements print detail \
    as-value where \
        epoch > $btOldestAdvertisementTimestamp and \
        address ~ $addressRegex and \
        data ~ $advertisingDataRegex and \
        rssi > $rssiThreshold
]
:local advJson ""
:local advCount 0
:local advSeparator ""
:local lastAdvTimestamp 0
# Remove semicolons from MAC/Bluetooth addresses
:local minimizeMac do={
    :local minimized
    :local lastIdx ([:len $address] - 1)
    :for idx from=0 to=$lastIdx step=1 do={
        :local char [:pick $address $idx]
        :if ($char != ":") do={
            :set $minimized "$minimized$char"
        }
    }
    :return $minimized
}

:foreach adv in=$advertisements do={
    :local address ($adv->"address")
    :local ts ($adv->"epoch")
    :local rssi ($adv->"rssi")
    :local ad ($adv->"data")
    :local obj "\
        {\
            \"id\":\"$[$minimizeMac address=$address]\",\
            \"ts\":$ts,\
            \"rssi\":$rssi,\
            \"ed\":{\
                \"ad\":\"$ad\"\
            }\
        }"
    :set $advCount ($advCount + 1)
    :set $lastAdvTimestamp $ts
    # Ensure that the last object is not terminated by a comma
    :set $advJson "$advJson$advSeparator$obj"
    :if ($advSeparator = "") do={
        :set $advSeparator ","
    }
}

:if ($advCount > 0) do={

    :set $btOldestAdvertisementTimestamp $lastAdvTimestamp

}

:put ("[*] Found $advCount new advertisements \
    (processing time: $[([/system clock get time] - $btProcessingStart)])")

#################################### MQTT #####################################
:local message \
    "{\
        \"clientId\":\"$[/iot mqtt brokers get value-name=client-id \
            [/iot mqtt brokers find name=$broker]]\",\
        \"t\":0,\
        \"v\":1,\
        \"OldestAdvertisementTimestamp\":$btOldestAdvertisementTimestamp,\
        \"locs\":[{\
            \"id\":\"$[$minimizeMac address=$ifaceMac]\",\
            \"tags\":[$advJson],\
            \"ed\":{\
                \"model\":\"$model\",\
                \"sn\":\"$serialNumber\",\
                \"ros\":\"$rosVersion\",\
                \"cpu\":$cpuLoad,\
                \"umem\":$usedMemory,\
                \"fmem\":$freeMemory,\
                \"psu\":$supplyVoltage,\
                \"temp\":$boardTemp\
            }\
        }]\
    }"
:log info "$message";
:put ("[*] Total message size: $[:len $message] bytes")
:put ("[*] Sending message to MQTT broker...")
/iot mqtt publish broker=$broker topic=$topic message=$message
:put ("[*] Done")

To run this script, the Broker should be pre-configured:

For example, thingsboard only requires settings that are shown in the screenshot above. When you successfully configure the broker, the only thing that needs to be changed in the script is:

:local broker "Demo Device"

line, where you should specify the broker's name within the quotation marks "".

Another line that should be taken into account is:

:local topic "v1/devices/me/telemetry"

, where you should specify the topic.

The rest of the script configuration depends on the overall requirements. The script explains which exact parameters are configured to be published.

Navigate to System>Scripts and add a new script there (name it, for example, script1).

To run the script, you can use the command line:

/system script run script1

HTTP fetch with script scenario

Another way to publish data is to use HTTP (instead of MQTT). This can be achieved using the fetch tool.

The same principles apply:

Create a new script, use the template as a reference, change the parameters accordingly and run the script.

Every line that begins with a symbol "#" is instructional and it describes the parameter that is going to be configured below the line. Change the parameters within quotation marks "" that would apply to your specific case.

Script example:

# Required packages: iot

################################ Configuration ################################
# Interface whose MAC should be used as 'Locator ID'
:local locatorIface "ether1"

# POSIX regex for filtering advertisement Bluetooth addresses. E.g. "^BC:33:AC"
# would only include addresses which start with those 3 octets.
# To disable this filter, set it to ""
:local addressRegex ""

# POSIX regex for filtering Bluetooth advertisements based on their data. Same
# usage as with 'addressRegex'.
:local advertisingDataRegex ""

# Signal strength filter. E.g. -40 would only include Bluetooth advertisements
# whose signal strength is stronger than -40dBm.
# To disable this filter, set it to ""
:local rssiThreshold ""

#################################### System ###################################
:put ("[*] Gathering system info...")
:local ifaceMac [/interface get [/interface find name=$locatorIface] mac-address]
:local cpuLoad [/system resource get cpu-load]
:local freeMemory [/system resource get free-memory]
:local usedMemory ([/system resource get total-memory] - $freeMemory)
:local rosVersion [/system package get value-name=version \
    [/system package find where name ~ "^routeros"]]
:local model [/system routerboard get value-name=model]
:local serialNumber [/system routerboard get value-name=serial-number]
# Health is a bit iffy since '/system health' does not have 'find' in ROS6
:local health [/system health print as-value]
:local supplyVoltage 0
:local boardTemp 0
:foreach entry in=$health do={
    :if ($entry->"name" = "voltage") do={:set $supplyVoltage ($entry->"value")}
    :if ($entry->"name" = "board-temperature1") do={:set $boardTemp ($entry->"value")}
}

################################## Bluetooth ##################################
:put ("[*] Gathering Bluetooth info...")
:global btOldestAdvertisementTimestamp
:if ([:typeof $btOldestAdvertisementTimestamp] = "nothing") do={
    # First time this script has been run since booting, need to initialize
    # persistent variables
    :set $btOldestAdvertisementTimestamp 0
}
:local btProcessingStart [/system clock get time]
:local advertisements [/iot bluetooth scanners advertisements print detail \
    as-value where \
        epoch > $btOldestAdvertisementTimestamp and \
        address ~ $addressRegex and \
        data ~ $advertisingDataRegex and \
        rssi > $rssiThreshold
]
:local advJson ""
:local advCount 0
:local advSeparator ""
:local lastAdvTimestamp 0
# Remove semicolons from MAC/Bluetooth addresses
:local minimizeMac do={
    :local minimized
    :local lastIdx ([:len $address] - 1)
    :for idx from=0 to=$lastIdx step=1 do={
        :local char [:pick $address $idx]
        :if ($char != ":") do={
            :set $minimized "$minimized$char"
        }
    }
    :return $minimized
}

:foreach adv in=$advertisements do={
    :local address ($adv->"address")
    :local ts ($adv->"epoch")
    :local rssi ($adv->"rssi")
    :local ad ($adv->"data")
    :local obj "\
        {\
            \"id\":\"$[$minimizeMac address=$address]\",\
            \"ts\":$ts,\
            \"rssi\":$rssi,\
            \"ed\":{\
                \"ad\":\"$ad\"\
            }\
        }"
    :set $advCount ($advCount + 1)
    :set $lastAdvTimestamp $ts
    # Ensure that the last object is not terminated by a comma
    :set $advJson "$advJson$advSeparator$obj"
    :if ($advSeparator = "") do={
        :set $advSeparator ","
    }
}

:if ($advCount > 0) do={

    :set $btOldestAdvertisementTimestamp $lastAdvTimestamp

}

:put ("[*] Found $advCount new advertisements \
    (processing time: $[([/system clock get time] - $btProcessingStart)])")

#################################### MQTT #####################################
:local message \
    "{\
        \"t\":0,\
        \"v\":1,\
        \"OldestAdvertisementTimestamp\":$btOldestAdvertisementTimestamp,\
        \"locs\":[{\
            \"id\":\"$[$minimizeMac address=$ifaceMac]\",\
            \"tags\":[$advJson],\
            \"ed\":{\
                \"model\":\"$model\",\
                \"sn\":\"$serialNumber\",\
                \"ros\":\"$rosVersion\",\
                \"cpu\":$cpuLoad,\
                \"umem\":$usedMemory,\
                \"fmem\":$freeMemory,\
                \"psu\":$supplyVoltage,\
                \"temp\":$boardTemp\
            }\
        }]\
    }"
:log info "$message";
:put ("[*] Total message size: $[:len $message] bytes")
/tool fetch http-method=post http-header-field="Content-Type:application/json" http-data=$message url="https://demo.thingsboard.io/api/v1/Q99YlBqv59NdzOel6tyP/telemetry"
:put ("[*] Done")


Change the URL accordingly (depends on the server configuration).

/tool fetch http-method=post http-header-field="Content-Type:application/json" http-data=$message url="https://demo.thingsboard.io/api/v1/Q99YlBqv59NdzOel6tyP/telemetry"


Navigate to System>Scripts and add a new script there (name it, for example, script1).

To run the script, you can use the command line:

/system script run script1

MikroTik mobile app

Use the MikroTik smartphone app to configure your router in the field, or to apply the most basic initial settings for your MikroTik home access point.

  1. Scan QR code and choose your preferred OS.
  2. Install and open the application.
  3. By default, the IP address and user name will be already entered.
  4. Click Connect to establish a connection to your device through a wireless network.
  5. Choose Quick setup and the application will guide you through all basic configuration settings in a couple of easy steps.
  6. An advanced menu is available to fully configure all necessary settings.

Federal Communication Commission Interference Statement

Model

FCC ID

Contains FCC ID

RB924iR-2nD-BT5&BG77&R11e-LR9TV7924BT5LR9XMR201912BG77

This equipment has been tested and found to comply with the limits for a Class B digital device, pursuant to Part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference in a residential installation.

This equipment generates, uses, and can radiate radio frequency energy and, if not installed and used in accordance with the instructions, may cause harmful interference to radio communications. However, there is no guarantee that interference will not occur in a particular installation. If this equipment does cause harmful interference to radio or television reception, which can be determined by turning the equipment off and on, the user is encouraged to try to correct the interference by one or more of the following measures:

  • Reorient or relocate the receiving antenna.
  • Increase the separation between the equipment and receiver.
  • Connect the equipment into an outlet on a circuit different from that to which the receiver is connected.
  • Consult the dealer or an experienced radio/TV technician for help.

FCC Caution: Any changes or modifications not expressly approved by the party responsible for compliance could void the user’s authority to operate this equipment.

This device complies with Part 15 of the FCC Rules. Operation is subject to the following two conditions: (1) This device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation.

Note: This unit was tested with shielded cables on the peripheral devices. Shielded cables must be used with the unit to ensure compliance.

Innovation, Science and Economic Development Canada

Model

IC

Contains IC

RB924iR-2nD-BT5&BG77&R11e-LR97442A-924BT5LR910224A-201912BG77

This device contains license-exempt transmitter(s)/receiver(s) that comply with Innovation, Science, and Economic Development Canada’s license-exempt RSS(s). Operation is subject to the following two conditions: (1) This device may not cause interference. (2) This device must accept any interference, including interference that may cause undesired operation of the device.

L’émetteur/récepteur exempt de licence contenu dans le présent appareil est conforme aux CNR d’Innovation, Sciences et Développement économique Canada applicables aux appareils radio exempts de licence. L’exploitation est autorisée aux deux conditions suivantes: 1) L’appareil ne doit pas produire de brouillage; 2) L’appareil doit accepter tout brouillage radioélectrique subi, même si le brouillage est susceptible d’en compromettre le fonctionnement.

This Class B digital apparatus complies with Canadian ICES-003.

Cet appareil numérique de la classe [B] est conforme à la norme NMB-003 du Canada.

CAN ICES-003 (B) / NMB-003 (B)

Bluetooth Qualified Product
This product has successfully completed Bluetooth Qualification Process. For more information on Bluetooth Qualified products please use the following link: https://launchstudio.bluetooth.com/Listings/Search

(EN) Technical Specifications / (DE) Technische Spezifikationen / (FR) Spécifications techniques

/ (IT) Specifiche tecniche / (ES) Especificaciones técnicas / (RU) Технические характеристики:

(EN) Product Power Input Options
(DE) Produkt Stromquellen Optionen
(FR) Options d'entrée d'alimentation du produit
(IT) Opzioni di ingresso alimentazione del prodotto
(ES) Opciones de entrada de energía del producto
(RU) Варианты входной мощности продукта
(EN) DC Adapter Output Specification, (V/A)
(DE) Ausgangsspezifikationen des Gleichstromadapters, (V/A)
(FR) Spécifications de sortie de l'adaptateur de courant continu, (V/A)
(IT) Specifiche di uscita dell'adattatore di corrente continua, (V/A)
(ES) Especificaciones de salida del adaptador de corriente continua, (V/A)
(RU) Выходные характеристики адаптера постоянного тока, (В/А)
(EN) IP class of the enclosure
(DE) IP-Klasse des Gehäuses
(FR) Classe IP du boîtier
(IT) Classe IP della custodia
(ES) Clase de IP del recinto
(RU) Класс защиты корпуса IP



(EN) Operating Temperature
(DE)Betriebstemperatur
(FR) température de fonctionnement
(IT) temperatura di esercizio
(ES) Temperatura de funcionamiento
(RU) Рабочая Температура

DC Jack

PoE In Ethernet Port

MIcroUSB 5V Port


24 V / 1.2


IP20


±0°..+40°C