PSoC™ 4 Forum Discussions
I am working on trying to get a mesh network up and going to control some simple led strips rather the led lights in the smart mesh demo that was given for CES 2016.
Video of the smart mesh demo
https://www.youtube.com/watch?v=g6O9MW3pKRM
I started with using the demo projects from the cypress git hub for the smart mesh networks. Both the flooding and directed flooding, seem to have about a three second turn around from when I can press the button for a color change to when the next color change can happens. I have tried to reduce this turn around by adjusting not only the watchdog timer that is being used as the counter,and also the central state span. When I reduce these down though, the number of packets drops increases greatly and I can never get to what seems like what is working for the mesh network in the video above.
Currently I only have two nodes in the mesh network, so I don't think that it could be an issue with the number of nodes.
I am wondering if someone can give me some advice on how to speed up the network to be able to have the response time like in the demo video?
Github Links:
Directed Mesh : https://github.com/cypresssemiconductorco/PSoC-4-BLE/tree/master/100_Projects_in_100_Days/Project052_BLE_Mesh_Directed
Thanks,
Alex
Show LessDear community,
we are working on a product which would greatly benefit from Bluetooth Mesh Networks. Multiple devices would all be connected to one phone. The devices should be able to repeatedly blink a light at exactly the same time.
With the new Bluetooth 5 spec adopted yesterday, and Cypress having a Mesh Network solution already for Bluetooth 4.2 compatible chips, I hope I can find an answer to this interesting question:
Using mesh networks, do you think a very accurate synchronization of all the devices in the network is conceivable?
Would it be possible to compensate for all the individual delays that occur between the devices?
Back in June of this year I bought a Cylakit e-02 and installed all the software required to flash the beacon. At that time I was trying to get the kit to work as an eddystone beacon. I was provided a file called Simple_Eddystone_0.zip, which worked perfectly. Last week I bought 15 more beacons and was going to flash them with new URLs but the PSoC creator software is no longer working. I tried uninstalling. I tried re-installing. I tried everything I can think of. I am getting an error regarding the BLE component, but I do not know what to do about it or why it is appearing. Here is some info about the error:
sdb.M0033: The instance 'BLE', of component BLE_v3_30, contains an error. Unable to load symbol 'C:\Program Files (x86)\Cypress\PSoC Creator\4.0\PSoC Creator\psoc\content\cycomponentlibraryupdates\CyComponentLibraryUpdates.cylib\BLE_v3_30\BLE_v3_30.cysym' for component 'BLE_v3_30'. Parameter is not valid.
Parameters: The most common kind of error in a component instance is that its configuration is incorrect, invalid, or unsupported. For example, the component may require a clock frequency that is not available given the current system clock configuration. Dependencies: If the component cannot be found try looking at the project's dependencies. Make sure that the "Component" depenedencies are correct.
I downloaded the software from the web page for the Cylakit.e-02. I tried the .iso file as well as the complete software dowload. They are all giving the same error.
Any help would be greatly appreciated.
PS I just reloaded all the software and the first error I see is this:
Symbol file for instance "BLE" of component "BLE_v3_30" not found. Can't edit current instance. Check your search path.
The files seems to be exactly where the program is looking for it.
Show LessI watched the video on adding a battery service and I completed the exercise and code.
Now I've added a custom service and want to write data to it.
If the battery service is accessed like this: locHandleValuePair.attrHandle = cyBle_bass[0].batteryLevelHandle;
I see the syntax for accessing my custom service is cyBle_custom. But that variable does not contain the handle for the service i added. Why?
Is there an example simple custom BLE with code I can look at?
Show LessHello,
Currently, i am facing a related to MCU deep sleep mode.
PSoC creator is not detecting MCU after I have flashed a deep sleep mode code to it.
I am facing this issue after every time I flash deep sleep mode code & try to load another code to MCU using MiniProg3 Programmer.
After this, i used to uninstall MiniProg3 driver & install it again & after that de-attach USB and attach it.
After this cycle every time MCU gets detected.
Is after every time I use deep sleep mode, I need to follow this cycle?
I think there may be something wrong with deep sleep mode & MiniProg3.
Let me know how to solve this issue?
Show LessPSoC creator 4.1, cyc8ki-042-BLE pioneer board, 222014 plugged in. USB connected to PC. teraterm running connected to the provided com port.
Create new project for the above.
in main, add printf("hello world\n");
build, debug, run. program hangs up (printf never returns). no output on teraterm.
Whiskey Tango Foxtrot?
Show LessHi all,
I am having some problems with using the ADC and outputting the result over I2C using CY8CKIT-042-BLE and would very much appreciate your help please!
I am trying to send 12-bit ADC output over I2C and have set up a 6-resistor potential divider to help me understand the different generated output compared to the actual voltage levels.
I am using:
Vref = VDDA/2
Unsigned differential mode
Vneg is externally set to VDDA/2
When I use the alternative resolution in the ADC and set this to 8-bit I get the output that I would expect as Vpos is changed from 0 to VDDA (3.3V), that is 0x00-0xFF.
However, when I change it back to 12-bit I get the following output:
3.3V 0x00FF
2.75V 0x006C
2.2V 0x00C0
1.65V 0x0016
1.1V 0x0069
0.55V 0x00C3
0V 0x0011
To me, it looks like the most significant 4-bits are missing.
In my code I am using the bit-shifting code to access the two bytes:
i2cbuf[1] = (adcVal >> 😎 & 0xFF; // First byte
i2cbuf[2] = adcVal & 0xFF; // Second byte
As a test, if I only bit-shift 4 bits then I output a copy of bits 4-7 which makes sense.
I am most likely making a simple mistake so I would be very grateful if someone could suggest reasons for this error and/or things for me to clarify/check to get to the bottom of this.
Many thanks,
Rich
Show LessThe GPIO list for supported modules lists CYBLE-212019-00. Can I assume the pin-outs for all the other supported modules are exactly the same? Specifically, I am interested in CYBLE-222014-01.
Show Less
I'm trying to use the emulated eprom (version 1.10) in PSoC 4 to save some data. My flash is almost full, I have about 4k bytes left.
This code came from PSoC 5, where the eeprom exists, and I may wish to take it back again, so some things are left in place.
The problem is the write call happens, and does not complain. However, the data is never written to the flash variable "settings." It always retains its old value. If I don't initialize it, it remains a value of "0" after the write. Data sheet recommends initializing.
Has anyone gotten this to work for the PSoC 4? It works well in EEPROM for PSoC 5.
wade
Code:
typedef struct eeprom_data_struct {
union {
float f;
uint8 b[sizeof(float)];
} offset;
union {
float f;
uint8 b[sizeof(float)];
} slope;
} EEPROM_DATA;
EEPROM_DATA ramSettings;
const static EEPROM_DATA settings = {{1.094},{3.072}};
//-----------------------------------------------------------
//-----------------------------------------------------------
void read_eeprom() {
EEPROM_Start();
offset = settings.offset.f;
slope = settings.slope.f;
ramSettings = settings; // copy into ram
EEPROM_Stop();// power down the EEPROM
}
//-----------------------------------------------------------
//-----------------------------------------------------------
void saveSettings() {
EEPROM_Start();
ramSettings.slope.f = slope;
ramSettings.offset.f= offset;
EEPROM_Write((const uint8*)&ramSettings,(const uint8*)&settings,sizeof(ramSettings)); // write first 16 bytes in one fell swoop
EEPROM_Stop(); // power down the EEPROM
}