We were using HC-05 in our product to communicate over BT. Now as part of enhancement, we want to use CYBLE-012011-00 (CE Certified) module instead of HC-05.
With respect to this, I have some questions....
1. Cypress supports CYSPP mode which is similar to SPP mode used in HC-05 (reference : http://www.cypress.com/documentation/software-and-drivers/ez-serial-ez-ble-module-firmware-platform)
2. Just read EZ-Serial BLE Firmware Platform User Guide (at http://www.cypress.com/file/285326/download)
3. Downloaded CYBLE-01201X-X0 EZ-Serial Firmware Image (.hex)_0.zip from the link http://www.cypress.com/documentation/software-and-drivers/ez-serial-ez-ble-module-firmware-platform
4. I assume this will suit to CYBLE-012011-00 (CE Certified) module right?
5. Once I flash this .hex file, (I have the development kit for CYBLE-01201xx). How do I test if it works as expected?
6. I read about configuration - but not very clear in the user guide. Just for my reference can you let me know how to configure the name and baud rate? (rest I can figure out later).
7. Does CYBLE-012011-00 module has any non-volatile memory so that the name and baud-rate is retained between the power cycles?
8. Is there any typical connection I need to do for making CYBLE-012011-00 to act as HC-05? I mean - which pin out of 31 pins, I should pullup/ pulldown to enter into configuration mode? Also Pin 21 and 22 (SCB0 RX and SCB0 TX) are to be used for serial port RX, TX right? Is there any thing I need to do with other pin (except making the Gnd to 0, VDDR and VDD to 3.3V, connecting Reset appropriate etc.)? Also is there any way I can use other GPIO's with AT (or configuration) mode?
With best regards,
Solved! Go to Solution.
The CYBLE-01201X-X0 firmare image does work on the CYBLE-012011-00 module, yes. Configuration of the device name and baud rate can be done using the "SDN,N=..." and "STU,B=..." commands. Sections 3.1.2 and 3.1.3 in the User Guide provide specific examples of both of these commands, as well as important considerations surrounding modified baud rates and how to properly change this setting so that it is stored in flash and used automatically upon boot/reset. And yes, both of these values as well as all other configuration settings may optionally be stored in flash so they don't have to be re-set every time the module boots.
However, before you get too far into this, note that the HC-05 module is a classic Blueooth (v2.0) device which implements the official SPP profile, as you noted. In contrast, all CYBLE modules are Bluetooth Low Energy only (v4.1 or v4.2), and the CYSPP implementation is a Cypress-specific implementation of serial-like data stream on top of the GATT protocol that all BLE devices use. It is not possible to drop in a BLE module with CYSPP (or any other similar proprietary SPP-like feature) and use it seamlessly with a remote host device that is expecting a classic SPP connection. The low-level data transfer over the air is very different.
The EZ-Serial platform on CYBLE modules does provide a good solution to serial data streaming over BLE, but you would have to make sure that the device on the other end is BLE-capable and configured to use the GATT-based CYSPP profile correctly (see Section 3.2.1 in the EZ-Serial User Guide for a basic reference). BLE communication for custom profiles like CYSPP is almost always done at the application level rather than inside whatever OS you are using, so this would require writing (or modifying) an application on your intended remote peer device.
In other words, you cannot use a CYSPP-capable BLE module to go through a typical pairing process and automatically get access to a new COMx serial port on Windows. That only works with classic Bluetooth devices and official SPP.
4. It would seem to be valid to make that assumption since the Firmware Image is listed with wildcard x's
5. To test that it works, you could try sending it serial commands that only work on the Image you want to test versus the previous/default image. I'm not sure what the exact differences are, but basically: Determine a command that is valid for your new image, but invalid for your old image. Then send it to the module. If it gives a successful reply, then the image flash worked.
6. Page 109 of the EZ-Serial BLE Firmware Platform User Guide has the command to set the Device Name. Page 95 has the command/settings to set the Baud Rate.
7. From Page 13 of the EZ-Serial BLE Firmware Platform User Guide:
"SET commands affect configuration settings that control many types of behavior, but do not typically trigger immediate changes to the operational state like ACTION commands do. Every argument in a SET command may be stored in non-volatile (flash) memory so that it persists across powercycles. Modified settings are stored in RAM only by default, and you must use the /SCFG command to write them to flash. In text mode, you can also invoke a SET command with a ‘$’ after the text code (e.g. “SDN$,N=...”) to cause that change to be written to both RAM and flash immediately. A small number of SET commands also manage protected settings, which are those that can affect core chipset operation and communication. For these settings, you cannot write changed values directly to flash without first performing a separate write to RAM only. This prevents accidental changes that are difficult to undo. Section 2.5.3 (Protected Configuration Settings) has more detail on this behavior"
8. I haven't worked with either module, so I don't know the details of your question. I would assume that the modules list their hardware configuration requirements/settings, and getting them to mimic each other would involve some datasheet reading 🙂
Hi Pratt, Jeff,
Thanks a lot for your suggestions. Yes, CYSPP on PROC may not be drop in replacement (of HC05).
Basically I am using 012011 PROC eval board with Pioneer kit. As I have only .hex file (downloaded from http://www.cypress.com/documentation/software-and-drivers/ez-serial-ez-ble-module-firmware-platform for PROC), is there any way I can flash and check the behaviour? (For other PROC experimens, I had the source code, I have to just open the project file (.cyprj) in PSoc creator and compile and down load the code.
In the same way, is there any utility to just download the .hex file to 012011 eval board? Or is there any way I can do this .hex code dumping with PSOC Creator itself?
With best regards,
I received some samples of CYBLE-012011-00 module and programmed with EZ-Serial_V1_0_2_CYBLE-01201X-X0.hex - using Psoc programmer. When I power on the CYBLE-012011-00 module, I can see it as "EZ-Serial xxxxxxxx" in CySmart app.
Somehow, it did not work if I replace with my HC-05. So I was trying to figure out, if the data is sent/ received or not. For this, is there any BLE Hyperterminal apps for Android? I tried "BLE Serial Port Hyper terminal" (found in google play store) and it does not detect the device (but I can see the device in CySmart app). I tried "Hyperterminal RS232", "Bluetooth terminal HC05" (found in play store when I serached for bluetooth hyperterminal).
Do you have any suggestion for me on how to test this - just I want to see if I can receive some character on android device and vice versa simulating serial port.
With best regards,
One more observation : I was searching for other bluetooth serial apps, and found BlueSerial Beta (from Plasty Gove) and it shows the devide and when I connect - I get a message "Could not connect to device. Is it a serial device? Also check if the UUID is correct in the settings".
With best regards, Phani.
The BlueSerial app will only work with the official SPP service on classic (or dual-mode) devices. It will not be able to communicate with a CYBLE module running EZ-Serial firmware.
You will need to use a BLE-capable app on Android in order to test EZ-Serial behavior. We do not currently have a mobile app at this time which directly integrates with the CYSPP service, but you can use the Android CySmart app or other generic BLE testing apps (e.g. nRF Connect). To test with CySmart, perform the following steps:
Now you can send data in both directions over the BLE connection. To send data to the Android device from the phone, simply type in the serial terminal. At typical human typing speed, if you type "hello" you will see 5 individual characters delivered one at a time. Since the CySmart app only shows the most recent value received, make sure you pay attention to each byte as it arrives to verify that you are seeing what you expect.
To send data back to the module from the Android device, tap the "Write" button and then enter the data to send in hex format. You can send "Hello" by entering the value 0x48 0x65 0x6C 0x6C 0x6F. Tap the "OK" button to transmit the value when ready, and then you should see that string appear in the serial terminal.
The pairing step is not necessary, though it should work with default EZ-Serial configuration settings. Tapping only on the device name should connect. If it does not, the connection between the two devices may not be very robust.
Can you clarify which phone and version of Android you are using to test here? And, do you have any other devices (tablets or smartphones) which are BLE-capable to perform a comparison test?