Strictly necessary cookies are on by default and cannot be turned off. Functional, Performance and Tracking/targeting/sharing cookies can be turned on below based on your preferences (this banner will remain available for you to accept cookies). You may change your cookie settings by deleting cookies from your browser. Then this banner will appear again. You can learn more details about cookies HERE.
Strictly necessary (always on)
Functional, Performance and Tracking/targeting/sharing (default off)
With the ModusToolbox AnyCloud collection of software libraries, you can rapidly develop Wi-Fi and Bluetooth applications on PSoC 6 MCU devices. This...
With the ModusToolbox AnyCloud collection of software libraries, you can rapidly develop Wi-Fi and Bluetooth applications on PSoC 6 MCU devices. This document describes all the libraries and versions included with AnyCloud 1.3.
New HTTP(S) Client Library and Over-the-Air (OTA) Updates
AnyCloud 1.3 adds the 202011.00 version of Amazon’s AWS IoT Device SDK for Embedded C with u...
New HTTP(S) Client Library and Over-the-Air (OTA) Updates
AnyCloud 1.3 adds the 202011.00 version of Amazon’s AWS IoT Device SDK for Embedded C with updated implementations of the HTTP Client and MQTT protocols. The AnyCloud OTA library has also been re-worked to support the new HTTP client as well as and MQTT-based image downloads.
New MQTT Library with Quality-of-Service 2 (QoS 2)
The AWS IoT Device SDK for Embedded C includes an update to the MQTT protocol, adding QoS2 support, which guarantees that a message is delivered once and once only.
Enhanced Wi-Fi / Bluetooth Coexistence (Smart CoEx)
Coexistence refers to the ability of Infineon combo devices to reliably and efficiently share the wireless bandwidth, enabling simultaneous Wi-Fi and Bluetooth Low Energy connections through a single antenna. Smart CoEx extends that feature with an API to control the combo device behavior at run-time, giving the developer unrivalled control over application performance.
Wi-Fi and Bluetooth LE Manufacturing and Certification Tests
This is a set of applications, provided in source form, that enable manufacturing and certification tests to get your product to market quickly.
Sigma DUT - example program that enables Wi-Fi certification.
Coex tester - diagnostics command set for test.console, featuring iPerf and Bluetooth commands to control and optimize coex settings in a combo device.
WiFi_mfg_test – example program that enables Wi-Fi manufacturing tests via the WL Windows executable
Welcome to the new Cypress Developer Community! There are many exciting changes that have been made, including how to customize your profile. You’ll ...
Welcome to the new Cypress Developer Community! There are many exciting changes that have been made, including how to customize your profile. You’ll have more success with networking and collaboration with a personalized profile account. In this tip, you will learn how to customize your profile picture, add details, upload photos, and more.
How to create a new account:
To create a new account, start on the developer homepage.
Step 1: Click on the “Sign In” button on the upper right corner of the page.
Step 2: Click “New User? Register here.” on the right side of the pop-up menu.
Step 3: Enter in the information for all of the fields, accept the community’s Terms of Service, and then press “Register” at the bottom of the pop-up.
Step 4: Once you’ve successfully made your account, you will be able to see your default profile avatar in the upper right corner of the page.
How to sign in to an existing account:
To sign in to your account, start on the developer homepage.
Step 1: Click on the “Sign In” button on the upper right corner of the page.
Step 2: When the pop-up menu appears, enter in your username and password into the fields. If you would like to stay signed in, click on the box to the right of “Keep me signed in.” If you forget your username or password, please follow the link above the “Sign In” button.
Step 3: Click on the “Sign In” button, and you will be successfully logged in to the site. Check that your avatar icon is showing in the upper right corner of the page.
How to change your profile’s avatar:
Step 1: Click on your avatar in the upper right-hand corner of the page, and a drop-down menu will appear.
Step 2: Then, click on “My Settings” in the drop-down menu.
Step 3: In your settings, click on the tab that says “Avatars.” This will take you to a selection menu where you can choose different colors, styles, and themes of avatars to use. Select a new avatar by clicking on the image.
How to change your username:
Step 1: Navigate to your account settings (follow Steps 1-2 under “Changing your profile avatars”). Automatically, it will select your “Personal” and “Username” tabs. Otherwise, click on these tabs.
Step 2: Enter in your new username and click “Change Username” to save.
How to add your personal information:
Step 1: Navigate to your account settings (follow Steps 1-2 under “Changing your profile avatars”). Automatically, it will select your “Personal” tab. Click over to “Personal Information” on the second row, and you will see fields to enter in your information.
Step 2: Fill in your name, a signature, your job title, location, or biography to share with other members in the community.
Step 3: Press “Save” when finished to save your information.
How to adjust your privacy settings:
If you’ve entered in personal information about yourself, maybe you want to adjust your account’s privacy settings.
Step 1: To see what your privacy settings are, navigate to your account settings (follow Steps 1-2 under “Changing your profile avatars”). Click on the second tab, “Preferences,” and then on the “Privacy” tab on the second row.
Step 2: Select who you would like to be able to see your profile’s private information (created in “Changing your personal information”), your email address, and your online status.
Step 3: Once your selections are made, click on “Save” to save all of your choices.
I have now showed you how to create your own account, log in to an account, change your avatar, enter personal information, and adjust your account’s privacy settings. Hope you all enjoy the community!
The CYW954907AEVAL1F EVK enables customers to evaluate and develop single-chip Wi-Fi applications using CYW54907 devices. The CYW954907AEVAL1F EVK use...
The CYW954907AEVAL1F EVK enables customers to evaluate and develop single-chip Wi-Fi applications using CYW54907 devices. The CYW954907AEVAL1F EVK uses WICED Studio IDE to develop and debug your CYW54907 projects. In this code example, I have interfaced Infineon's precision pressure sensor DPS310 to the 54907 evaluation board and measured the temperature and pressure values of the surroundings via I2C. The required pins of the sensor are --> VDD(Supply Voltage 3.3V for analog blocks), VDDIO (Digital Supply Voltage 3.3V for digital blocks and I/O interface), GND, SDI and SCK. The application is implemented in WICED STUDIO IDE. The provided code example for DPS310 can be used for various IOT applications such as indoor navigation, health and sports, outdoor navigation, weather station etc.
Let's get started with the sensor's introduction!
The Infineon's DPS310 is a miniaturized Digital Barometric Air Pressure Sensor with a high accuracy and a low current consumption, capable of measuring both pressure and temperature. The pressure sensor element is based on a capacitive sensing principle which guarantees high precision during temperature changes. The small package makes the DPS310 ideal for mobile applications and wearable devices.
The internal signal processor converts the output from the pressure and temperature sensor elements to 24 bit results. Each unit is individually calibrated, the calibration coefficients calculated during this process are stored in the calibration registers. The coefficients are used in the application to convert the measurement results to high accuracy pressure and temperature values. The result FIFO can store up to 32 measurement results, allowing for a reduced host processor polling rate. Sensor measurements and calibration coefficients are available through the serial I2C or SPI interface. The measurement status is indicated by status bits or interrupts on the SDO pin.
For more features information and typical applications, refer to the DPS310 datasheet attached.
Temperature and Pressure Measurement
Calculation of Compensated Values
1. Read the pressure calibration coefficients (c00, c10, c20, c30, c01, c11, and c21) from the Calibration Coefficient register. Note: The coefficients read from the coefficient register are 2's complement numbers.
2. Choose scaling factors kT (for temperature) and kP (for pressure) based on the chosen precision rate. The scaling factors are listed in datasheet.
3. Read the pressure and temperature result from the registers or FIFO. Note: The measurements read from the result registers (or FIFO) are 24 bit 2´s complement numbers. Depending on the chosen measurement rates, the temperature may not have been measured since the last pressure measurement.
4. Calculate scaled measurement results.
5. Calculate compensated measurement results.
There could be a problem with temperature measurement of the DPS310. If your DPS310 indicates a temperature around 60 °C although you expect around room temperature, e.g. 20 °C, you have to update some registers with the specified values as given in the "DPS310_correct_temp_error" function in my code example and this will then provide the correct temperature value. As per Infineon, this can occur because of a fuse bit issue in some of the sensor's silicon. The function allows us to work around the issue.
USB Power Delivery (USB PD) along with Type-C specification aims at providing Universal Charger functionality where multiple different devices requiri...
USB Power Delivery (USB PD) along with Type-C specification aims at providing Universal Charger functionality where multiple different devices requiring different voltages and currents can be charged using a single USB PD charger. Even though universality is a key feature of USB PD Chargers, some charger designs requires recognition of a particular sink connected to it.
Any USB PD capable device is recognized through the combination of its VID and PID. VID refers to Vendor ID, which is allotted by USB-IF. PID refers to Product ID which is fixed by vendor for a particular product. This VID and PID information can be obtained from the sink by sending “Discover Identity VDM” message. Sink in response to this VDM message sends Acknowledgement which includes VID and PID of the sink device.
Following is the code snippet to send Discover Identity VDM message after the completion of PD negotiation between source and sink. The PD port is disabled if VID and PID of sink doesn’t match the expected values (expected sink device).
CYPD3171-24LQXQ_CLA project from CCGx Power SDK is used to test the code functionality.
bool send_discover_id(uint8_t port)
/* Format the command parameters.
Single DO with standard Discover_ID command to SOP controller.
Timeout is set to 100 ms.
cmd_buf.cmd_sop = SOP;
cmd_buf.cmd_do.val = 0xFF008001;
cmd_buf.no_of_cmd_do = 1;
cmd_buf.timeout = 100u;
/* Initiate the command. Keep trying until accepted. */
while ((stat = dpm_pd_command(port, DPM_CMD_SEND_VDM,
&cmd_buf, pd_command_cb)) != CCG_STAT_SUCCESS)
/* Can implement a timeout/abort here. */
/* Command has been queued. We cannot block for callback here. */
App event APP_EVT_PD_CONTRACT_NEGOTIATION_COMPLETE is triggered in app_event_handler function once the PD negotiation is complete. Discover Identity message is sent after negotiation complete event through a timer callback.
Attached to this post is the project which recognizes Ez-PD BCR as valid sink and turns the provider FET off when sinks other than BCR are connected. All changes to project are made in app.c file.
This blog introduces a vendor specific mesh model used for self configuration of Bluetooth mesh nodes. It is demonstrated with the help of two mesh de...
This blog introduces a vendor specific mesh model used for self configuration of Bluetooth mesh nodes. It is demonstrated with the help of two mesh demo code examples - Dimmer_self_config and Embedded_provisioner.
Generally, we provision and configure mesh devices with the help of an external configuration client (Eg. Provisioners such as mobile apps, MeshClient, etc.). But in some scenarios where the mesh network does not allow (or need not allow) access for cell phones or any external devices, we can use the self-configuration vendor specific model for fast configuration. For example, a dimmer switch can be sold with one or several light bulbs. User should be able to power up the devices and start using them.
Here, Dimmer_self_config is a simple dimmer application with self-configure feature. It works in concert with Embedded_provisioner app - a dimmable light application which also serves as an embedded provisioner and/or self-configured device. In this blog, we will be looking at the implementation of Self-Configure feature of Dimmer_self_config in detail. If you are not familiar with simple dimmer and light_dimmable apps, please see the Mesh AppNote -AN227069.
In this use case, the Embedded_provisioner app is expected to create a mesh network, scan for un-provisioned devices and provision Dimmer_self_config app without the help of any external provisioner devices. After provisioning, the Embedded Provisioner sends the Application Key and a vendor specific commandto start the self-configuration of Dimmer_self_config app based on the hardcoded rules. The rules for self-configuration is hardcoded in the shared embedded_provisioner.h. After the successful configuration of Dimmer_self_config, LED on the Embedded_provisioner can be controlled using the push button on the Dimmer_self_config app. (Note: Enable both EMBEDDED_PROVISION and SELF_CONFIG flags in Embedded_provisioner app for this use case).
Below figure summarizes the overall mesh network structure.
Now, let us see some key steps required to implement the self-configure feature.
Step1: The rules for self-configuration is hardcoded in the shared embedded_provisioner.h. This header file mainly provides the definition of vendor specific model, configuration parameters/rules, required structures , etc.
The Cypress vendor specific Self-Config model is defined as follow.
The configuration parameters/rules (eg. Group address used for publication/subscription) are also defined in embedded_provisioner.h
Step2: Define configuration data of necessary models.
Along with necessary models for simple dimmer app, we define three additional models as well forDimmer_self_config to aid self-configuration feature.
WICED_BT_MESH_MODEL_CONFIG_CLIENT – The model is used to represent an element that can control and monitor the configuration of a node.
WICED_BT_MESH_MODEL_DEFAULT_TRANSITION_TIME_CLIENT – The model may operate on states defined by the Generic Default Transition Time Server model
MESH_VENDOR_SELF_CONFIG_MODEL - Vendor Specific (VS) mesh model for used for Self-Configuration of the device.
Step3: Model Initializations.
Apart from the level client initialization, which is used for dimmer app functionality, we initialize the configuration client and default transition time client models as well with appropriate message callback handler passed as parameter to receive and process messages for respective the models.
mesh_default_transition_time_client_message_handler is implemented in mesh_default_transition_time_client.c.
Step4: Implementation of Vendor Server message handler to process vendor specific mesh messages.
As indicated earlier, the Embedded_provisioner needs to instruct the Dimmer_self_config app to start the self-configuration - based on the hardcoded rules - by sending appropriate vendor specific command. So, the Dimmer_self_config should have a vendor server message handler to process these vendor messages/commands and take appropriate actions.
mesh_vendor_server_message_handler() checks the model_id, opcode, subcode, etc. and ask the local device to do the self-configuration by calling self_configure() function.
Step5: Self-Configuration logic implementation.
self_configure(uint16_t node_addr) function implements the basic logic for self-configuration of the device by binding Application Key to all models, configure models for subscriptions, publications and setting default transition time.
The main sub functions called inside self_configure() for the configurations are: -
Note: The Self Config logic can be combined with the normal configuration. For example, after performing hardcoded actions, the Provisioner can still use standard Config Relay Set method to turn the relay feature on or off.
Hello Community Members, We are preparing to migrate the Cypress Developer Community to a new platform and have begun sharing updates to help you prep...
Hello Community Members,
We are preparing to migrate the Cypress Developer Community to a new platform and have begun sharing updates to help you prepare. There are a few things you can do before the migration to help make sure you preserve information and content which is important to you.
The community platforms are very different and although we are working to maintain as much consistency as possible some content will not automatically transfer over.
Images associated with your profile and avatar
Area and/or content subscriptions
Old mission/gamification badges (we are switching to new ones)
Content in Draft form
Please take a few minutes to log in, review your profile and content to see if there is anything you need to save. If you have any questions pleas post them in the Community Information area and @mention Sara Leslie for a faster response.