What is ModusToolbox?

ModusToolbox was built to make it easier and more efficient by removing development barriers and allowing the user to create real-time applications quickly. ModusToolbox™ is a set of tools and software that includes configuration tools, low-level drivers, middleware libraries, and operating system support, as well as other packages that enable you to create MCU and wireless applications. It also includes an Eclipse IDE, which is a multi-platform development environment that supports application configuration and development. ModusToolbox™ supports stand-alone device and middleware configurators that are fully integrated into the Eclipse IDE. ModusToolbox™ supports all PSoC™ 6 MCU devices. It is recommended that you use ModusToolbox™ for all application development for PSoC™ 6 MCUs. ModusToolbox™ leverages popular third-party ecosystems such as FreeRTOS and Arm® Mbed, and adds specific features for Wi-Fi, Bluetooth®, CAPSENSE™ , and security.


What is PSoC™ 6 MCU?

PSoC™ 6 MCU is an ultra-low-power PSoC™ device with a dual-CPU architecture tailored for smart homes, IoT gateways, etc. The PSoC™ 6 MCU device is a programmable embedded system-on-chip that integrates the following features on a single chip:

• Single-CPU microcontroller: Arm® Cortex®-M4 (CM4); or dual-CPU microcontroller: Arm® Cortex®-M4 (CM4) and Cortex®-M0+ (CM0+)

• Programmable analog and digital peripherals

• Up to 2 MB of flash and 1 MB of SRAM

• Fourth-generation CAPSENSE™ technology

• PSoC™ 6 MCU is suitable for a variety of power-sensitive applications such as:

− Smart home sensors and controllers

− Smart home appliances

− Gaming controllers

− Sports, smartphone, and virtual reality (VR) accessories

− Industrial sensor nodes − Industrial logic controllers

− Advanced remote controllers

− Wearables


Application level block diagram of PSoC 6 MCU

Fig 1: Application-level block diagram of PSoC 6 MCU


The PSoC™ 6S2 + AIROC™ Wi-Fi/Bluetooth Pioneer Kit (CY8CKIT-062S2-43012)

The PSoC® 62S2 Wi-Fi BT Pioneer Kit (CY8CKIT-062S2-43012) is a low-cost hardware platform that enables the design and debug of the PSoC 62 MCU and the Murata 1LV Module (CYW43012 Wi-Fi + Bluetooth Combo Chip). The kit has the following features:

• Ultra-low-power PSoC™ 62 MCU that integrates an Arm® Cortex®-M4 and Cortex-M0+ onto a single chip and provides up to 2 MB of Flash and 1 MB of SRAM

• The Murata 1LV Module hosting the ultra-pow-power Infineon AIROC™ CYW43012 802.11 b/g/n Wi-Fi + Dual-Mode Bluetooth combo chipset radio

• CapSense capacitive touch sensing enabled buttons and sliders

• PSoC 5LP MCU for program/debug

• Excelon™-Ultra 4Mbit 108-MHz QSPI nonvolatile F-RAM in an 8-SOIC package



Fig 2: PSoC 6S2 AIROC™ Wi-Fi/Bluetooth Pioneer Kit


The Hello World Program using PSoC™ 6S2 Kit

Before starting the application development purchase the kit from here and prepare yourself following the steps below:

Instead of PuTTY, you can also use other serial terminals like Tera Term (https://filehippo.com/download_tera_term/ ).


I hope you are ready with all the tools. Launch Eclipse IDE for ModusToolbox™ to get started. Please note that Eclipse IDE for ModusToolbox™ software needs access to the internet to successfully clone the starter application onto your machine.


1. Select your preferred workspace

At launch, Eclipse IDE for ModusToolbox™ presents a dialog to choose a directory for use as the workspace directory. The workspace directory is used to store workspace preferences and development artifacts. You can choose an existing empty directory by clicking the Browse button, as Figure 3 shows. Alternatively, you can type in a directory name to be used as the workspace directory along with the complete path, and Eclipse IDE will create the directory for you.

Fig 3: Choosing the workspace directory


2. Create a new ModusToolbox™ application

a) Click New Application in the Start group of the Quick Panel, as figure 4 shows.

b) Alternatively, you can choose File > New > ModusToolbox Application, as Figure 5 shows.

Fig 4: Creating a new application


Fig 5: Creating a new application from the file menu


The Eclipse IDE for ModusToolbox Application window appears as figure 6 shows.

Fig 6: Project Creator window


3. Select a target PSoC™ 6 development kit

ModusToolbox™ speeds up the development process by providing BSPs that set various workspace/project options for the specified development kit in the new application dialog.

a) In the Choose Board Support Package (BSP) dialog, choose the Kit Name. In our case it is CY8CKIT-062S2-43012. See Figure 7 for help with this step.

b) Click Next.

c) In the Starter Application dialog, select the Hello World application, as Figure 8 shows.

d) In the Name field, type in a name for the application, or you can choose to leave the default name if you prefer.

e) Click Create to create the application, as Figure 8 shows, wait for the Project Creator to automatically close once the project is successfully created. A welcome screen will appear as the figure 9 shows.

You have successfully created a new ModusToolbox™ application for a PSoC™ 6 MCU.


Fig 7: Choosing the Kit


Fig 8: Choosing sample application


Fig 9: Created hello world project


Now you can open the main.c from the project window and observe the code for our hello world application as shown in figure 10.

Fig 10: Sample hello world code


4. Build the Application

Click on the Build <<name>> Application shortcut under the Start group in the Quick Panel as shown in figure 11. It selects the Debug build configuration and compiles/links all projects that constitute the application. The Console view lists the results of the build operation, as Figure 12 shows.


Fig 11: Building hello world project


Fig 12: Build result in the console



5. Program the Device

ModusToolbox uses the OpenOCD protocol to program and debug applications on PSoC 6 MCU devices. For ModusToolbox to identify the device on the kit, the kit must be running KitProg3 and our board already has KitProg3. So no firmware update is required.

a) Connect to the board and perform the following step.

b) Select the Hello_World application project and click on the  Hello_World Program (KitProg3_MiniProg4) shortcut under the Launches group in the Quick Panel, as Figure 13 shows. The IDE will select and run the appropriate run configuration.

Fig 13: Programming the application to the device


Fig 14: Uploading console view


Fig 15: User LED8 will start blinking


6. Test Your Design

Follow the steps below to observe the output of your design. Note that the below steps use PuTTY as the UART terminal emulator to view the results. You can use any terminal of your choice to view the output.

a) Find the serial port: From your computer management console find the COM port number for the connected PSoC Kit. COM11 in my case is shown in figure 16.

Fig 16: Finding COM port number


b) Open PuTTY, select Serial, and set the COM port and baud rate as shown in figure 17. Then click on Open.

Fig 17: PuTTY Configuration


c) You will get the following output as shown in figure 18 from the PuTTY terminal. Press Enter to pause and resume the LED blinking.


Fig 18: Output from the PSoC Kit


If you get everything as expected then Well Done! You have successfully completed the Hello World project using PSoC™ 6S2 + AIROC™ Wi-Fi/Bluetooth Pioneer Kit.