This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP-EXP432E401Y: Configuration Help Needed for BOOSTXL-TECDRV Module with MSP432E401Y

Part Number: MSP-EXP432E401Y
Other Parts Discussed in Thread: MSP432E401Y, TPS63810, ENERGIA, TMP117

Tool/software:

Hi everyone,

I am currently working on a temperature control project using the BOOSTXL-TECDRV module and MSP432E401Y LaunchPad. My setup includes:

- A **10kΩ NTC thermistor** for temperature sensing.
- A TEC module rated for **5V, 2A**.

Previously, I implemented a temperature control solution using a **Raspberry Pi CM4** and a **MAX1978 TEC controller**, which worked but had limitations:
1. **Heating efficiency** was insufficient (heating speed too slow).
2. The PID control in MAX1978 is hardware-based, making it inconvenient to modify or tune.

Given these issues, I decided to try the **TI solution** with BOOSTXL-TECDRV and MSP432E401Y. However, I seem to have underestimated the complexity of the setup.

### Current Issue:
When I power up the BOOSTXL-TECDRV module, the GUI shows "waiting for data" (see attached screenshot). Clicking "Initialize TPS63810" has no response.

### What I’ve Tried:
1. Checked all connections:
- JP1 jumper set to VSEL and VOUT1.
- JP2 jumper set to EN and ON.
- External 3.3V power supply connected to the BOOSTXL-TECDRV module.
2. Connected the TEC and the thermistor to J6 and J7, respectively.
3. Installed the GUI and set the COM port to the correct one (COM3, 57600 baud rate).
4. Loaded the default firmware onto MSP432E401Y using Energia/CCS.

### Background:
- I have project experience with **TMS320 DSP** chips and have successfully developed control solutions using them.
- My current goal is to leverage BOOSTXL-TECDRV with MSP432E401Y for more efficient heating and to simplify PID tuning via software.

### Questions:
1. What additional steps are required to make BOOSTXL-TECDRV and MSP432E401Y work properly with the GUI?
2. Do I need to make any specific changes to the default firmware to use a **10kΩ NTC thermistor** instead of a TMP117 sensor?
3. Is there any known issue or special consideration when working with TEC modules using this setup?

I’ve attached the datasheets for the NTC thermistor and TEC module I’m using for reference. Any advice or guidance would be highly appreciated.

Thank you!



  • ---

    ### **Step 1: Install Energia IDE**
    1. Visit the **Energia official website**: [Energia IDE](https://energia.nu/guide/).
    2. Download the version suitable for your operating system (Windows, macOS, or Linux).
    3. Follow the installation instructions to complete the installation.

    ---

    ### **Step 2: Open the `.ino` File**
    1. Open the **Energia IDE**.
    2. Click **File > Open**, navigate to the folder where the `BOOSTXL_TECDRV_LaunchPad_Source_v1_0_0.ino` file is located.
    3. Select the file, and Energia will load it along with any dependent code modules.

    ---

    ### **Step 3: Configure Energia IDE**
    1. **Select the target hardware**:
    - Go to **Tools > Board > LaunchPad w/ MSP432 EMT (48MHz)** in the menu bar.
    2. **Select the COM port**:
    - Go to **Tools > Port** and choose the COM port corresponding to your MSP432 LaunchPad (typically assigned when the USB connection is made).

    ---

    ### **Step 4: Compile the Code**
    1. Click the checkmark button (Heavy check mark) in the top-left corner to compile the code.
    2. Wait for the compilation to complete, ensuring no errors occur. If errors appear, ensure all dependent files are in the same directory.

    ---

    ### **Step 5: Upload the Code**
    1. Click the arrow button (→) in the top-left corner to upload the code to the MSP432 LaunchPad.
    2. After the upload is complete, the LED indicator on the LaunchPad may blink, indicating the code is running.

    ---

    ### **Step 6: Verify GUI and Hardware Communication**
    1. Attach the BOOSTXL-TECDRV to the MSP432 LaunchPad using the BoosterPack connectors.
    2. Connect a 3.3V power supply to the BOOSTXL-TECDRV.
    3. Open the TI-provided GUI, select the correct COM port, and click **Initialize TPS63810** to confirm the system is functioning.

  • **Description**:
    I’m working on a temperature control project using the BOOSTXL-TECDRV module with the MSP432E401Y LaunchPad. I followed the instructions to install Energia IDE and download the provided `BOOSTXL_TECDRV_LaunchPad_Source_v1_0_0.ino` file. Here's what I’ve done so far:

    1. Installed Energia IDE (v1.8.11E23) on Windows 10.
    2. Set up the correct board: `LaunchPad w/ msp432e EMT (120MHz)`.
    3. Selected the correct COM port.
    4. Opened the `.ino` file in Energia IDE.
    5. Attempted to compile the code.

    However, during compilation, I encountered the following warnings and errors:
    1. **Warnings**:
    - `'typedef' was ignored in this declaration` (multiple instances for enums like `OPEN_LOOP`, `SENS_TYPE_I2C`).
    - `ISO C++ says these are ambiguous` for `Wire.requestFrom()`.

    2. **Errors**:
    - `'strcasecmp' was not declared in this scope` (in the `aJSON.cpp` file).
    - `'strdup' was not declared in this scope` (in the `aJSON.cpp` file).

    Here’s part of the error output:
    ‘’‘’

    Energia: 1.8.11E23 (Windows 10), Board: "LaunchPad w/ msp432e EMT (120MHz)"

    C:\Users\nerod\OneDrive\Desktop\BOOSTXL_TECDRV_LaunchPad_Source_v1_0_0\BOOSTXL_TECDRV_LaunchPad_Source_v1_0_0.ino:66:1: warning: 'typedef' was ignored in this declaration

    typedef enum {OPEN_LOOP, CLOSED_LOOP}; // Control modes

    ^~~~~~~

    C:\Users\nerod\OneDrive\Desktop\BOOSTXL_TECDRV_LaunchPad_Source_v1_0_0\BOOSTXL_TECDRV_LaunchPad_Source_v1_0_0.ino:67:1: warning: 'typedef' was ignored in this declaration

    typedef enum {SENS_TYPE_I2C, SENS_TYPE_ANL}; // Sensor types

    ^~~~~~~

    C:\Users\nerod\OneDrive\Desktop\BOOSTXL_TECDRV_LaunchPad_Source_v1_0_0\BOOSTXL_TECDRV_LaunchPad_Source_v1_0_0.ino:68:1: warning: 'typedef' was ignored in this declaration

    typedef enum {

    ^~~~~~~

    C:\Users\nerod\OneDrive\Desktop\BOOSTXL_TECDRV_LaunchPad_Source_v1_0_0\BOOSTXL_TECDRV_LaunchPad_Source_v1_0_0.ino:81:1: warning: 'typedef' was ignored in this declaration

    typedef enum {

    ^~~~~~~

    C:\Users\nerod\OneDrive\Desktop\BOOSTXL_TECDRV_LaunchPad_Source_v1_0_0\BOOSTXL_TECDRV_LaunchPad_Source_v1_0_0.ino:87:1: warning: 'typedef' was ignored in this declaration

    typedef enum {

    ^~~~~~~

    C:\Users\nerod\OneDrive\Desktop\BOOSTXL_TECDRV_LaunchPad_Source_v1_0_0\BOOSTXL_TECDRV_LaunchPad_Source_v1_0_0.ino: In function 'void loopBOOSTXL_TECDRV_LaunchPad_Source_v1_0_0()':

    C:\Users\nerod\OneDrive\Desktop\BOOSTXL_TECDRV_LaunchPad_Source_v1_0_0\BOOSTXL_TECDRV_LaunchPad_Source_v1_0_0.ino:173:42: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:

    Wire.requestFrom(TMP117_ADDRESS,2);

    ^

    In file included from C:\Users\nerod\OneDrive\Desktop\BOOSTXL_TECDRV_LaunchPad_Source_v1_0_0\BOOSTXL_TECDRV_LaunchPad_Source_v1_0_0.ino:49:0:

    C:\Users\nerod\AppData\Local\Energia15\packages\energia\hardware\msp432e\5.19.0\cores\msp432e/ti/runtime/wiring/Wire.h:96:17: note: candidate 1: uint8_t TwoWire::requestFrom(int, int)

    uint8_t requestFrom(int, int);

    ^~~~~~~~~~~

    C:\Users\nerod\AppData\Local\Energia15\packages\energia\hardware\msp432e\5.19.0\cores\msp432e/ti/runtime/wiring/Wire.h:94:17: note: candidate 2: uint8_t TwoWire::requestFrom(uint8_t, uint8_t)

    uint8_t requestFrom(uint8_t, uint8_t);

    ^~~~~~~~~~~

    C:\Users\nerod\OneDrive\Desktop\energia-1.8.10E23\libraries\aJson\aJSON.cpp: In member function 'aJsonObject* aJsonClass::getObjectItem(aJsonObject*, const char*)':

    C:\Users\nerod\OneDrive\Desktop\energia-1.8.10E23\libraries\aJson\aJSON.cpp:944:41: error: 'strcasecmp' was not declared in this scope

    while (c && strcasecmp(c->name, string))

    ^

    C:\Users\nerod\OneDrive\Desktop\energia-1.8.10E23\libraries\aJson\aJSON.cpp: In member function 'void aJsonClass::addItemToObject(aJsonObject*, const char*, aJsonObject*)':

    C:\Users\nerod\OneDrive\Desktop\energia-1.8.10E23\libraries\aJson\aJSON.cpp:996:29: error: 'strdup' was not declared in this scope

    item->name = strdup(string);

    ^

    C:\Users\nerod\OneDrive\Desktop\energia-1.8.10E23\libraries\aJson\aJSON.cpp: In member function 'aJsonObject* aJsonClass::detachItemFromObject(aJsonObject*, const char*)':

    C:\Users\nerod\OneDrive\Desktop\energia-1.8.10E23\libraries\aJson\aJSON.cpp:1038:41: error: 'strcasecmp' was not declared in this scope

    while (c && strcasecmp(c->name, string))

    ^

    C:\Users\nerod\OneDrive\Desktop\energia-1.8.10E23\libraries\aJson\aJSON.cpp: In member function 'void aJsonClass::replaceItemInObject(aJsonObject*, const char*, aJsonObject*)':

    C:\Users\nerod\OneDrive\Desktop\energia-1.8.10E23\libraries\aJson\aJSON.cpp:1077:41: error: 'strcasecmp' was not declared in this scope

    while (c && strcasecmp(c->name, string))

    ^

    C:\Users\nerod\OneDrive\Desktop\energia-1.8.10E23\libraries\aJson\aJSON.cpp:1081:36: error: 'strdup' was not declared in this scope

    newitem->name = strdup(string);

    ^

    C:\Users\nerod\OneDrive\Desktop\energia-1.8.10E23\libraries\aJson\aJSON.cpp: In member function 'aJsonObject* aJsonClass::createItem(const char*)':

    C:\Users\nerod\OneDrive\Desktop\energia-1.8.10E23\libraries\aJson\aJSON.cpp:1161:40: error: 'strdup' was not declared in this scope

    item->valuestring = strdup(string);

    ^

    Multiple libraries were found for "aJSON.h"
    Used: C:\Users\nerod\OneDrive\Desktop\energia-1.8.10E23\libraries\aJson
    exit status 1
    Error compiling for board LaunchPad w/ msp432e EMT (120MHz).

    This report would have more information with
    "Show verbose output during compilation"
    option enabled in File -> Preferences.


    ```

    **Questions**:
    1. Is there a specific fix for the `typedef` warnings, or is it safe to ignore them?
    2. How do I resolve the `strcasecmp` and `strdup` errors in Energia, given that they appear in the `aJSON` library?
    3. Should I replace `Wire.requestFrom()` with an explicit cast to resolve the ambiguity, and if so, what is the best practice?

    Any advice or guidance on resolving these issues would be greatly appreciated!

  • Hi,

        Please refer to FAQ #5 about Energia support. https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/695568/faq-faqs-for-tm4c-arm-cortex-m4f-microcontrollers. We do not have Energia knowledge for MSP432E Microcontrollers and will not support questions using Energia on the E2E forums. Please direct Energia questions to the primary Energia forums at: https://forum.43oh.com/forum/119-energia/

  • Hi,

    It seems that the forum you mentioned no longer exists. The link provided is invalid, and I was unable to locate the official forum website either. If you have any updated information or an alternative source, please feel free to share.

    Thank you!

    Best regards,
    N

  • No sure why the Engergia support forum is down. In any case, we can't support Energia on this forum. I will suggest you MSP432E SDK to develop your software. There are examples in the SDK you can reference.