"IoT Made Easy!"
Devices: | PIC32CXBZ2 | WBZ45x |
Features: | OpenThread |
THE SOFTWARE ARE PROVIDED "AS IS" AND GIVE A PATH FOR SELF-SUPPORT AND SELF-MAINTENANCE. This repository contains example code intended to help accelerate client product development.
For additional Microchip repos, see: https://github.com/Microchip-MPLAB-Harmony
Checkout the Technical support portal to access our knowledge base, community forums or submit support ticket requests.
- Introduction
- Bill of materials
- Hardware Setup
- Software Setup
- Harmony MCC Configuration
- Board Programming
- Run the demo
This application enables the users to create a Full Thread Device. Thread Servo Panel reports Light Intensity and Solar Panel Voltage values to the Thread co-processor device with the use of BH1750 Module and ADC. The Thread co-processor device prints the reported Light Intensity and Solar Panel Voltage data onto the console.
Supported Propreitary Device Types:
1. Thread co-processor device
2. Thread temperature sensor
3. Thread Thermostat
4. RGB Light control
Tip | Go through the overview for understanding few key Thread protocol concepts |
---|
TOOLS | QUANTITY |
---|---|
PIC32CX-BZ2 and WBZ451 Curiosity Development Board | 1 |
BH1750 Light Intensity Module | 1 |
Servo Motor Mounting Bracket | 1 |
MG90S Metal Gear Servo Motor | 2 |
Mini Solar Panel | 1 |
Connect the SERVO Motor, BH1750 Light Intensity and Solar Panel onto the Mikro bus header of the WBZ451 Curiosity board as shown below.
-
- Version: 6.20
- XC32 Compiler v4.35
- MPLAB® Code Configurator v5.5.0
- PIC32CX-BZ_DFP v1.2.230
- MCC Harmony
- csp version: v3.18.0
- core version: v3.13.1
- bsp version: v3.17.0
- CMSIS-FreeRTOS: v10.4.6
- dev_packs: v3.18.1
- wolfssl version: v5.4.0
- crypto version: v3.8.1
- wireless_pic32cxbz_wbz: v1.3.0
- wireless_15_4_phy version: v1.2.1
- wireless_thread: v1.1.1
- openthread version : thread-reference-20230706
-
Any Serial Terminal application like TERA TERM terminal application
Tip | New users of MPLAB Code Configurator are recommended to go through the overview |
---|
Step 1 - Connect the WBZ451 CURIOSITY BOARD to the device/system using a micro-USB cable.
Step 2 - This application is built by using Thread UDP Application as the building block. Please go through this link to create the project from scratch.
Step 3 - The "MCC - Harmony Project Graph" below depicts the harmony components utilized in this project.
-
From Device Resources, go to Libraries->Harmony->Board Support Packages and add WBZ451 Curiosity BSP.
-
From Device Resources, go to Libraries->Harmony->Wireless->Drivers->Thread and add Thread Stack. Click "Yes" on all the Pop-ups to add the link the dependencies.
-
Ensure the configuration of Thread Stack is as below.
- Ensure the configuration of FreeRTOS is as below. Total heap size should be 61440.
- Right Click on SYS_CONSOLE of COMMAND and add CONSOLE as below. Ensure the configurations.
- Right Click on UART of CONSOLE and add SERCOM0 as below. Ensure the configurations.
- In Device resources, go to Harmony->Peripherals->SERCOM and select SERCOM2. The SERCOM2 I2C configuration is depicted as follows.
- In Device resources, go to Harmony->Peripherals->ADCHS and select ADCHS. The ADCHS configuration is depicted as follows.
- In Device resources, go to Harmony->Peripherals->TCC and select TCC0. The TCC0 configuration is depicted as follows.
-
In Device resources, go to Harmony->wireless->System Service and select APP_TIMER_SERVICE to add it.
-
The SYSTEM configuration is depicted as follows.
- In Plugins, go to Pin Settings and configure as shown below.
Step 4 - Generate the code.
Step 5 - In "app_user_edits.c", make sure the below code line is commented
- "#error User action required - manually edit files as described here".
Step 6 - Copy the mentioned files from this repository by navigating to the location mentioned below and paste it your project folder.
Note | This application repository should be cloned/downloaded to perform the following steps. |
---|
- Copy the "Thread_demo.c" and "Thread_demo.h" files, which can be found by navigating to the following path: "...firmware\src"
- Paste the folder under source files in your project folder (...\firmware\src).
Step 7 - Add the files in MPLAB X IDE to your project by following the steps mentioned below.
- In Projects section, right click on Source files to add the ".c" file and Header files to add the ".h" file.
- Select "Add existing items from folder"/"Add existing item".
- Select Add and browse the location of the mentioned files(...\firmware\src).
- Make sure the "Files of type" is "C Source files" while adding ".c" files and "Header files" while adding ".h" files.
- Select the folder and click "add".
Step 8 - Copy the mentioned files from this repository by navigating to the location mentioned below and paste it your project folder.
Note | This application repository should be cloned/downloaded to perform the following steps. |
---|
- Copy the "app.c" and "app.h" folder, which can be found by navigating to the following path: "...firmware\src"
- Paste the folder under source files in your project folder (...\firmware\src).
Step 9 - Clean and build the project. To run the project, select "Make and program device" button.
The application hex file can be found in the hex folder.
Follow the steps provided in the link to program the precompiled hex file using MPLABX IPE to program the pre-compiled hex image.
Follow the steps provided in the link to Build and program the application.
- Once the Thread co-processor device is powered on the Solar Panel will join the network. The Solar Voltage and Light Intensity will get reported periodically to the Thread co-processor device. Once the Solar Panel has joined with Thread co-processor device we can set the position of the solar panel from gateway console.Refer the Thread co-processor device to know more about the commands to set the Solar Panel position.