https://github.com/microchiptech/pic32cxbz2_wbz45x_thread_solar_panel
"IoT Made Easy!" - This application demonstrates the integration of the Solar Panel kit and Thread stack on the PIC32CxBZ2/WBZ451 device.
https://github.com/microchiptech/pic32cxbz2_wbz45x_thread_solar_panel
full-thread-device openthread openthread-application wbz451-curiosity
Last synced: 4 months ago
JSON representation
"IoT Made Easy!" - This application demonstrates the integration of the Solar Panel kit and Thread stack on the PIC32CxBZ2/WBZ451 device.
- Host: GitHub
- URL: https://github.com/microchiptech/pic32cxbz2_wbz45x_thread_solar_panel
- Owner: MicrochipTech
- Created: 2024-04-21T14:20:02.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-06-11T12:18:53.000Z (about 1 year ago)
- Last Synced: 2025-01-10T10:59:55.738Z (5 months ago)
- Topics: full-thread-device, openthread, openthread-application, wbz451-curiosity
- Language: C
- Homepage:
- Size: 168 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# PIC32CXBZ2_WBZ45x THREAD SOLAR PANEL DEMO
> "IoT Made Easy!"
Devices: **| PIC32CXBZ2 | WBZ45x |**
Features: **| OpenThread |**## ⚠ Disclaimer
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.
## Contents
1. [Introduction](#step1)
1. [Bill of materials](#step2)
1. [Hardware Setup](#step3)
1. [Software Setup](#step4)
1. [Harmony MCC Configuration](#step5)
1. [Board Programming](#step6)
1. [Run the demo](#step7)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](https://github.com/MicrochipTech/PIC32CXBZ2_WBZ45x_THREAD_co-processor) 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](https://github.com/MicrochipTech/PIC32CXBZ2_WBZ45x_THREAD_co-processor)
2. [Thread temperature sensor](https://github.com/MicrochipTech/PIC32CXBZ2_WBZ45x_THREAD_TEMPERATURE_SENSOR)
3. [Thread Thermostat](https://github.com/MicrochipTech/PIC32CXBZ2_WBZ45x_THREAD_THERMOSTAT)
4. [RGB Light control](https://github.com/MicrochipTech/PIC32CXBZ2_WBZ45x_THREAD_LIGHTING)
| Tip | Go through the [overview](https://onlinedocs.microchip.com/oxy/GUID-2DB248AF-C243-496D-9819-969E43CA63BC-en-US-1/GUID-162D7BE7-3A35-4D12-AE09-EE84C6554377.html) for understanding few key Thread protocol concepts |
| :- | :- || TOOLS | QUANTITY |
| :- | :- |
| [PIC32CX-BZ2 and WBZ451 Curiosity Development Board](https://www.microchip.com/en-us/development-tool/EV96B94A) | 1 |
| [BH1750 Light Intensity Module](https://amzn.in/d/5UxVTGC) | 1 |
| [Servo Motor Mounting Bracket](https://amzn.in/d/2OlVpnz) | 1 |
| [MG90S Metal Gear Servo Motor](https://amzn.in/d/77Piv6F) | 2 |
| [Mini Solar Panel](https://amzn.in/d/fIcNo89) | 1 |Connect the SERVO Motor, BH1750 Light Intensity and Solar Panel onto the Mikro bus header of the WBZ451 Curiosity board as shown below.


- [MPLAB X IDE ](https://www.microchip.com/en-us/tools-resources/develop/mplab-x-ide#tabs)
- 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](https://download.cnet.com/Tera-Term/3000-2094_4-75766675.html) terminal application
- [MPLAB X IPE v6.20](https://microchipdeveloper.com/ipe:installation)
## 5. Harmony MCC Configuration
### Getting started with Multisensor application in WBZ451 Curiosity board
| Tip | New users of MPLAB Code Configurator are recommended to go through the [overview](https://onlinedocs.microchip.com/pr/GUID-1F7007B8-9A46-4D03-AEED-650357BA760D-en-US-6/index.html?GUID-B5D058F5-1D0B-4720-8649-ACE5C0EEE2C0) |
| :- | :- |**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](https://onlinedocs.microchip.com/oxy/GUID-2DB248AF-C243-496D-9819-969E43CA63BC-en-US-1/GUID-10731AEE-FEA5-4059-8279-2DBFBDBAD2F0.html) 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](https://onlinedocs.microchip.com/pr/GUID-A5330D3A-9F51-4A26-B71D-8503A493DF9C-en-US-1/index.html?GUID-9C28F407-4879-4174-9963-2CF34161398E) 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.
### Program the precompiled hex file using MPLAB X IPE
The application hex file can be found in the hex folder.
Follow the steps provided in the link to [program the precompiled hex file](https://microchipdeveloper.com/ipe:programming-device) using MPLABX IPE to program the pre-compiled hex image.
### Build and program the application using MPLAB X IDE
Follow the steps provided in the link to [Build and program the application](https://github.com/Microchip-MPLAB-Harmony/wireless_apps_pic32cxbz2_wbz45/tree/master/apps/ble/advanced_applications/ble_sensor#build-and-program-the-application-guid-3d55fb8a-5995-439d-bcd6-deae7e8e78ad-section).
- Once the [Thread co-processor device](https://github.com/MicrochipTech/PIC32CXBZ2_WBZ45x_THREAD_co-processor) 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](https://github.com/MicrochipTech/PIC32CXBZ2_WBZ45x_THREAD_co-processor) we can set the position of the solar panel from gateway console.Refer the [Thread co-processor device](https://github.com/MicrochipTech/PIC32CXBZ2_WBZ45x_THREAD_co-processor) to know more about the commands to set the Solar Panel position.
