APPENDIX II: SENSOR DATA FORMAT ............................................................................. 40
WISE-1510 User Manual 10
1. Product Overview
1.1. Introduction
WISE-1510 is a wireless module integrated with ARM Cortex-M4 Processor and LoRa
/ LoRaWAN connectivity. This technology is the best solution for Low-Power
Wide-Area Network (LPWAN) Applications. LoRaWAN is defined to optimize the
power consumption and wide range. Your sensors or applications with low data rate
requirement can be achieved years battery lifetime and kilometers long distance
connection. Advantech WISE-1510 also provides multi-interfaces for sensor and I/O
control. With ARM mbed embedded microprocessor operating system and add-on
software stacks, it's convenient to build the application software or sensor algorithm
over mbed OS. Data can be quickly and easily acquired and transformed into a
different format to communicate with WISE-PaaS or other cloud services. Developer
can build their application backbone faster and focus on their applications,
value-added services.
The main features of WISE-1510 are:
ARM Cortex-M4 Core Processor
Built-in LoRa / LoRaWAN connectivity
Great for Low Power Wide Range application
Rich interfaces for sensor and I/O control
Support mbed OS 5.2
Support wide temperature -40 ~ 85 °C
WISE-1510 User Manual 11
1.2.Specifications
Processor System
MCU
ARM Cortex-M4 Core Processor 80MHz
STM – STM32L443RC
Memory
RAM
64KB
Flash
256KB
Form Factor
M2.COM Type A 2230
Spec. Standard
M2 COM Technical SPEC_v1.1
Wireless Network
Standard
LoRa Proprietary (Harmony Link) / LoRaWAN
Frequency
Band
863-870MHz for Europe (LoRaWAN)
902-928MHz* for North America (LoRaWAN)
Channels
Spreading Factor: 7 ~ 12
Topology
Star network
Transmit
Power
Up to +18dBm
Receiver
Sensitivity
Up to -136dBm at SF = 12 / 125KHz
RF Data
Rate
50 kbps at FSK mode EU868
(Based on LoRaWAN spec 1R0 version)
21.9 kbps at SF7 mode US915
(Based on LoRaWAN spec 1R0 version)
Function
End node
Antenna
connector
MHF4 connector
I/O
UART
1 (4-wire, support RTC/CTS)
I2C
1 GPIO
8 PWM
1 SPI
1 ADC
4 USB
1 (device only)
Programming / Debug
Port
1 via WISE-ED20 (CN1)
Power
3.3V
Environment
Operational
Temperature
-40 ~ 85° C
Operating
Humidity
5% ~ 95% Relative Humidity, non-condensing
WISE-1510 User Manual 12
Physical
Characteristics
Dimensions
(WxD)
22 x 30 mm
OS
mbed 5.2
* Note: Frequency Band can be configurable for Japan or Korea by request.
2. H/W Installation
2.1. Board Connector
M2.COM Type A Module
Module size: 22 mm x 30 mm
PCB thickness: 0.8 mm ± 10%
Pin count: 75 pins
Module input voltage: 3.3V DC-in
Connector mating force: 30N Maximum
Connector current rating: 0.5A / Power contact
Connector operation temperature range: -45 °C to +85 °C
The mechanical dimension information of M2.COM form factor follows the Type A 2230
module size: 22 x 30 mm. Both module types use a 75-position host interface
connector and have room to support up to four RF connectors in the upper section.
Figure 4 Type A 2230
2.3. Connector Specifications
2.3.1. Top Side Connector Physical Dimensions
The top-side scheme has two connectors that share a common footprint but have
different stack-up requirements.
Length – 22 mm maximum including land pattern
Width – 9.1 mm maximum including land pattern
WISE-1510 User Manual 15
Figure 5 Top Side Connector Physical Dimensions
Reference from PCI Express M.2 Specification, Revision 1.0, November 1, 2013
2.3.2. Carrier Board Connection Length
The carrier board connector of M2.COM follows the Type 2230 M.2 module connector:
The additional increase in length is 7.05mm maximum for top-side connector to
the module length.
The retention screw adds 2.75 mm maximum.
The maximum extension, including land pattern, beyond the module leading
edge is 4.3 mm.
M2.COM module lengths are 30 mm and 42 mm.
WISE-1510 User Manual 16
Figure 6 Carrier Board Connection Length
Reference from PCI Express M.2 Specification, Revision 1.0, November 1, 2013
2.3.3. Carrier Board Connector Height
The dimensions of M2.COM form factor follow the Type A 2230 -D3 M.2 module size.
Hence, the carrier board connectors must choose H3.2-D3 or H4.2-D5 connector as in
the following diagrams.
Figure 7 H3.2-D3
Reference from PCI Express M.2 Specification, Revision 1.0, November 1, 2013
WISE-1510 User Manual 17
2.4. WISE-1510 Pin-Out Map
PIN
M2.COM
Signal name
STM32L443RCI6
MCU Pin Name
M2.COM
Signal name
PIN
1
GND
GND
3.3V
VCC
2 3 USB_DP
PA12
3.3V
VCC
4 5 USB_DM
PA11
N.C.
6 7 GND
GND
N.C.
8 9 N.C.
N.C.
10
11
N.C.
N.C.
12
13
N.C.
N.C.
14
15
N.C.
PC6
CB_RESET_OUT#
16
17
N.C.
GND
GND
18
19
N.C.
PC9
CB_PWR_ON
20
21
N.C.
PC4
UART TX (O)
22
23
N.C.
Connector Key
Connector Key
Connector Key
Connector Key
Connector Key
Connector Key
Connector Key
Connector Key
PB11
UART RX (I)
32
33
GND
GND
PB1
UART RTS (O)
34
35
N.C.
PB13
UART CTS (I)
36
37
N.C.
PA8
GPIO0
38
39
GND
GND
PC8
GPIO1
40
41
PWM0
PA5
PC7
GPIO2
42
43
N.C.
PC5
GPIO3
44
45
GND
GND
PB0
GPIO4
46
47
ADC0
PA7
PA3
GPIO5
48
49
N.C.
PA2
GPIO6
50
51
GND
GND
PB6
GPIO7
52
53
ADC2
PA6
N.C.
54
55
ADC3
PA4
PC2
W_DISABLE#
56
57
GND
GND
PC1
I2C_DATA
58
59
ADC4
PA0
PC0
I2C_CLK
60
61
N.C.
PB15
SPI_MOSI
62
63
GND
GND
PB14
SPI_MISO
64
65
VDD_RTC
VBAT(3.3V)
PB10
SPI_CLK
66
67
Backup#
PA1
PB12
SPI_CS0#
68
WISE-1510 User Manual 18
69
GND
GND
PB9
SPI_CS1#
70
71
RESET_IN#
NRST
3.3V
VCC
72
73
Wake#
PC3
3.3V
VCC
74
75
GND
GND
Figure 8 M.2 Connector
2.5. Quick Starter of WISE-1510
2.5.1. Debug Port Connection
1. Connect debug port FPC cable to WISE-1510 debug port (CN1; on the back of
PCB)
2. Connect WISE-ED20 debug board to the FPC debug cable.
3. Connect USB-to-microUSB cable from WISE-ED20 to the USB port on your PC.
WISE-1510 User Manual 19
2.5.2. Debug Port Setting
WISE-1510 can communicate with a host server (Windows or Linux) by using serial
cables. Common serial communication programs such as Hyper Terminal, Tera Term
or PuTTY can be used in this case. The example below describes the serial terminal
setup using Hyper Terminal on a Windows host:
1. Connect WISE-ED20 with your Windows PC by using a serial cable.
2. Open Hyper Terminal on your Windows PC, and select the settings as shown in
Figure 9.
3. Terminal will show the image version as Figure 10.
WISE-1510 User Manual 20
Figure 9 Hyper Terminal Settings for Terminal Setup
Figure 10 Image version is shown on terminal
WISE-1510 User Manual 21
3. Development Environment Setup
3.1. Overview
ARM mbed is used for you to create applications running on WISE-1510. Your
application code is written in C++. It uses the application programming interfaces
(APIs) that mbed OS provides. These APIs allow your code to work on different
microcontrollers in a uniform way. This reduces a lot of the challenges in getting
started with microcontrollers and integrating large amounts of software. Besides, we
also provide you node APIs which facilitates LoRa node development. Our offline
development tool is the mbed CLI, a command-line tool. This requires having a
toolchain installed on your computer. mbed CLI is the name of the ARM mbed
command-line tool, packaged as mbed-cli, which enables the full mbed workflow:
repositories version control, maintaining dependencies, publishing code, updating
from remotely hosted repositories and invoking ARM mbed’s own build system and
export functions, among other operations. The basic workflow for mbed CLI is to:
1. Initialize a new repository, for either a new application (or library) or an imported
one.
2. Build the application code.
3. Test your build.
4. Publish your application.
3.2. Installation
To install mbed CLI, related tools are required to be installed first. Please refer to the
video tutorial. ( https://www.youtube.com/watch?v=cM0dFoTuU14 )
Please follow the steps described in the tutorial video to install mbed CLI.
1. Install Python
mbed CLI supports Windows, Linux and Mac OS X operating systems. You can select
the OS you prefer to work with. mbed CLI is a Python script, so you’ll need Python to
use it. The version 2.7.11 of Python has been verified with mbed CLI.
If you would like to maintain your source code in repositories, you can continue
with the next step. mbed CLI supports both Git and Mercurial repositories, you can
install which one you prefer:
WISE-1510 User Manual 22
Git - version 1.9.5 or later ( https://git-scm.com/ ).
Mercurial - version 2.2.2 or later ( https://www.mercurial-scm.org/ ).
If you don’t want to use repositories, you can just skip it.
3. Install gcc
mbed CLI invokes the mbed OS 5 tools for various features, such as compiling,
testing and exporting to industry standard toolchains. To compile your code, you will
need either a compiler or an IDE:
Compilers: GCC ARM, ARM Compiler 5, IAR.
IDE: Keil uVision, DS-5, IAR Workbench.
We select GCC ARM Embedded, so you can install version 4.9 of GCC ARM
Embedded ( https://launchpad.net/gcc-arm-embedded ).
Note: Version 5.0 or any other versions above may be incompatible with the tools.
4. Install mbed CLI
You can get the latest stable version of mbed CLI from PyPI
$ pip install mbed-cli
Note: On Linux or Mac, you may need to run with sudo.
Finally, you’ve to extract the source code to the working directory from the SDK we
released. The structure of the working directory is as below:
docs/ <-- Documents for SDK
loranode_L443_sdk_R1_0_02/mbed-os/ <-- mbed os
loranode_L443_sdk_R1_0_02/libHLLoraNode.a <-- Harmony Link Lora
Node library
loranode_L443_sdk_R1_0_02/node_api.h <-- Node API header file
loranode_L443_sdk_R1_0_02/main.cpp <-- Sample code
3.3. Configuration
After the installation of required tool chains, please set up the directory of mbed CLI to
link the folder of toolchains which you want to use for compiling the source tree.
You can set the GCC ARM Embedded location via the command as below:
[mbed] C:\Program Files\GCC_ARM now set as global GCC_ARM_PATH
WISE-1510 User Manual 23
Next, you can select the tool chain and target platform which mbed CLI uses to build
applications. Change directory to target mbed program.
$ mbed config target NUCLEO_L443RC
[mbed] NUCLEO_L443RC now set as default target in program "xxxxx"
$ mbed config toolchain GCC_ARM
[mbed] GCC_ARM now set as default toolchain in program "xxxx"
You can see the active mbed CLI configuration via:
$ mbed config --list
[mbed] Global config:
GCC_ARM_PATH =C:\Program Files\GCC_ARM
[mbed] Local config (xxxx):
TOOLCHAIN=GCC_ARM
TARGET=NUCLEO_L443RC
3.4. Compilation
mbed CLI uses the current directory as a working context. This means that before
calling any mbed CLI command, you must first change to the working directory
containing the code. Then, Use the mbed compile command to compile your code:
Now, you have your application in binary format ready for flashing.
3.5. Memory Layout
A basic overview of mbed memory model is as below:
Each thread of execution in the RTOS has a separate stack. When you use the RTOS,
before explicitly initializing any additional thread, you will have four separate stacks:
• The stack of the main thread (executing the main function).
• The idle thread executed each time all the other threads are waiting for external
or scheduled events. This is particularly useful for implementing energy saving
strategies (like sleep).
• The timer thread that executes all the time-scheduled tasks (periodic and
nonperiodic).
• The stack of OS scheduler itself (also used by the ISRs).
Stack checking is turned on for all threads, and the kernel will error if an overflow
condition is detected.
WISE-1510 User Manual 25
WISE-1510 User Manual 26
3.6. Partitioning
The content of flash is portioned by boot loader as below:
Boot Loader occupies the first 16 kilo-bytes starting at 0x8000000. LoRa Config
partition is used to store LoRa parameters, which occupies no more than 4 kilo-bytes.
All user own parameters should be written into User Config partition, for which another
4 kilo-bytes are reserved. Application (Runtime image) partition is where users’
application is stored, up to 224 kilo-bytes can be used.
WISE-1510 User Manual 27
3.7. Flashing Application (Runtime Image)
To flash runtime image, your terminal program needs to support “Y-Modem”.
Tera Term is used for demonstration here.
Step 1: UART port connect via debug board
Connect USB-to-microUSB cable from WISE-ED20 to the USB port on your Windows
PC. (Red frame is reset button.)
Open the corresponding COM port in serial program, ex: Tera Term.
Set baud rate to 115200.
WISE-1510 User Manual 28
Step 2: Runtime image upgrade mode
Press ‘u’ on the PC keyboard and press reset button on ED-20 debug board.
The terminal will show messages as below.
Press "1" to “Download image to the internal Flash”.
WISE-1510 User Manual 29
Step 3: Start upgrading via Y modem
Select the run-time image ".bin" file via Y-Modem.
Waiting for run-time image transmission is complete.
WISE-1510 User Manual 30
After downloading completed, the terminal will show as below.
Step 4: Reset device
Press reset button on ED-20 debug board to reset device.
WISE-1510 User Manual 31
3.8. Testing
Now, you’re ready to test your WISE-1510. The sample application we created is to
send sensor data every 5 seconds via LoRa if values are changed. To observe it, you
can connect the debug port as described earlier. After reset WISE-1510, the result is
shown on your Terminal as below:
WISE-1510 User Manual 32
4. Application Development
Node APIs were provided to assist user develop applications. There are 2 UART
interfaces in WISE-1510. “debug_serial” is used for user development and debug.
User can see debug information of sample code via debug_serial. “m2_serial” is the
UART interface of M2.com.
4.1. Node API
Following show the architecture of the layer of LoRa Node and user application. User
can send request to LoRa node via API and got response. Besides, application can
also be notified by callback function if some event occurs from LoRa node.
Node APIs were listed as below:
System Start/reboot
nodeApiInitCarrierBoard
nodeApiStartLora
nodeApiReboot
Configuration get/set/save/factory reset
WISE-1510 User Manual 33
nodeApiGetDevEui
nodeApiGetAppEui
nodeApiGetAppKey
nodeApiGetDevAddr
nodeApiGetNwkSKey
nodeApiGetAppSKey
nodeApiGetDevActMode
nodeApiGetDevOpMode
nodeApiGetDevAdvwiseFreq
nodeApiGetDevAdvwiseDataRate
nodeApiGetDevAdvwiseTxPwr
nodeApiSetDevEui
nodeApiSetAppEui
nodeApiSetAppKey
nodeApiSetDevAddr
nodeApiSetNwkSKey
nodeApiSetAppSKey
nodeApiSetDevActMode
nodeApiSetDevOpMode
nodeApiSetDevAdvwiseFreq
nodeApiSetDevAdvwiseDataRate
nodeApiSetDevAdvwiseTxPwr
nodeApiSaveCfg
nodeApiLoadCfg
nodeApiApplyCfg
nodeApiFactoryReset
LoRa callback function register/status check/send data
nodeApiSetTxDoneCb
nodeApiSetRxDoneCb
nodeApiJoinState
nodeApiSendData
System deep sleep (low power) mode
WISE-1510 User Manual 34
nodeApiSetDevSleepRTCWakeup
The detailed description of APIs can be found in /docs/html/index.html in the released
SDK.
4.2. Sample Code for API
If WISE-1510 was plugged in M2.com carrier board (WISE-DB1500), do below action
to enable M2.com carrier board.
Set boud rate of debug_serial and m2_serial.
Create sensor thread.
Set and apply node configuration.
Start LoRa.
Start LoRa State loop to start rx/tx data.
Deep sleep mode is supported but disabled in default, please enable
NODE_DEEP_SLEEP_MODE_SUPPORT if you want to try low power mode.
WISE-1510 User Manual 35
2 API were used to notify user application that LoRa finished transmit or receive
action. What you should do is Register callback function in the beginning.
Make sure node successfully joined LoRa gateway.
Then, start to run the state machine. If no data need to send, enter deep sleep
mode and wait for waking up NODE_ACTIVE_PERIOD_IN_SEC seconds.
This example send sensor (Temperature, Humidity) data periodically, user should
modify node_get_sensor_data() to implement read sensor data.
If Tx complete, node_tx_done_cb() will transfer to NODE_STATE_LOWPOWER
and prepare to read/send sensor data again.
If LoRa node got downlink data, node_rx_done_cb() will be invoked to get data.
Then transfer to NODE_STATE_LOWPOWER.
WISE-1510 User Manual 36
The detailed description of Sample code can be found in /docs/html/index.html in the
released SDK.
WISE-1510 User Manual 37
Appendix I: Node Setup Parameters
In the sample application, there is a function node_set_config() as below:
This function is used to configure all parameters of nodes. Let’s go through them
briefly.
1. Device EUI (DevEUI) is read from eFuse, and set without any change.
2. Two application dependent parameters, application EUI (AppEUI) and application
key (APPKey), are set respectively (line 218 and 219).
3. Device address (DevAddr) is derived from DevEUI by extracting the last 8 bytes
(line 220), and set (line 221). It’s up to users to define the format as long as it
matches with gateway’s setting.
4. Two session keys: network session key (NwkSKey) and application session key
(AppSKey) are set (line 222 and 223).
5. So far, all required parameters for node activation are set properly. Then, you can
decide to activate the node by either ABP (Activation By Provisioning) or OTAA
(Over-The-Air Activation). Here, we set it to ABP (line 224). Please be noted that,
only three of the above parameters are used for ABP, including DevAddr,
NwkSKey and AppSKey. If you’d like to use OTAA, then change the input
parameter of nodeApiSetDevActMode() from 2 to 1. The other three parameters
are used for OTAA, including DevEUI, AppEUI, and APPKey are set.
6. Select nodes to work with LoRaWAN or Harmony Link by setting the device
WISE-1510 User Manual 38
operating mode (DevOpMode): 1 for Harmony Link* and 2 for LoRaWAN. Here,
Harmony Link is selected as the default. (line 225) If you’d like to use LoRaWAN,
change it from 1 to 2.
* Harmony Link is Advantech’s proprietary LoRa MAC.
7. You can select which class of Node: 1 for Class A, and 3 for Class C. (2 for Class B
is reserved for future use.) Here, Class C is selected (line 226).
8. The remaining part are used to set radio related parameters, including data rate
(DevAdvwiseDataRate), frequency (DevAdvwiseFreq) and transmission power
(DevAdvwiseTxPwr) (line 227~229). Please be noted all of RF parameters are
region dependent, so you’ve to set their values accordingly. Make sure you DO
NOT violate the regional regulation.
After all parameters are configured, be reminded to apply them by nodeApiApplyCfg().
WISE-1510 User Manual 39
Appendix II: Sensor Data Format
In the sample application, node_get_sensor_data() encodes sensor data according to
the following format:
,where
Length: Total TLV length
MsgType: Fixed as 0xc
Multiple TLVs are one or more Tag-Length-Values: tag matches with gateway’s setting,
length is sensor data length, and value is sensor data. All octets are in hexadecimal.
For example, LoRa Payload Field setting on WISE-3610 is as below:
If temperature is 25.55 Celsius degree, translate decimal 2555 to hexadecimal 9FB.
Similarly, if humidity is 60.55%, translate from decimal 6055 to hexadecimal 17A7.
The encoded data will be
0x9 | 0xc | 0x1 | 0x3 | 0x1 | 0x9 | 0xFB | 0x2 | 0x2 | 0x17 | 0xA7
, where
0x9: the Total TLV length, included two TLVs
0xc: the fixed MsgType
0x1 | 0x3 | 0x1 | 0x9 | 0xFB: the first TLV with tag id (0x1), value length (0x3), and
positive (0x1) value (0x9FB)
0x2 | 0x2 | 0x17 | 0xA7: the second TLV with tag id (0x2), value length (0x2), and
unsigned value (0x17A7)
Be reminded temperature “Sign” setting is On, 1 extra byte is required to indicate (0
means negative, and 1 means positive) , but humidity "Sign" setting on gateway is Off,
so no extra 1 byte is required.
Users are free to define their own payload field format, but only sensor data encoded
according to the above format can be decoded successfully, and displayed on LoRa
Dashboard on WISE-3610.
WISE-1510 User Manual 40
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.