Check out the new IoT Sensor Development Kit !
The SmartBond™ IoT Sensor Development Kit makes developing motion and environmental sensing applications easy. Merging cutting-edge Bluetooth® Smart hardware, sensors and sensor fusion software, it enables the world’s lowest power 12 Degrees-of-Freedom (DoF) wireless sensor module. Highly integrated, it cuts system size and cost and includes all essential hardware and software to speed creation of advanced IoT devices.
This complete development platform developed by Dialog on the basis of Bosch Sensortec sensors, combines Bluetooth wireless communications and an ARM Cortex-M0 processor with an accelerometer, gyroscope, magnetometer and environmental sensors. All this on a board measuring just 16 x 15 mm.
It also includes SmartFusion™, Dialog’s unique smart sensor fusion software library for data acquisition, sensor calibration and fusion. Ideal for resource-constrained systems, it minimizes memory, processing requirements and power consumption
Dear Dialog Semiconductor,
I have reached to the point that i think your DA14583 is not suitabe for development. You in many topics ask people why you use it and suggest your other processors like DA14531, DA14585, DA14586 to use. I think that DA14583 and SDK5.0.4 is not reasonable for development as your documentation and support is limited.
Any way i wish you help me to change my mind specially that i have asked here before and didn't get the solution.
So, My problem is now that i have a custom board with DA14583. I am using the I2C for RTC, OLED, LED driver. Also, iam using GPIO to control Relay. My code is existed in arch_main.c in while(1).
I have some problems that in any processor is so easy to figure out:
1- how i can turn ON/OFF BLE using a button?
2- how i can to get the connected ble device name ?
3- how i can use the peripherals I2C, ADC and GPIO in normal way in while(1) ?
4- Why when i make software reset for the DA14583 using sw_reset() function that i get from SDK in secondary_bootloader example, The BLE stops advertising and some times cause freezing?
5- why some times when using ADC with BLE the DA14583 freezes?
Please i need a real answers not ask is there any reasons for using DA14583.
i am really going to change it later but at time being i have to use it, So Please help me in these problems.
Thanks in advance
使用da14585根据下面PDF方法测试:
SDK:6.0.14.114
第一步:进入扩展睡眠
设置static const sleep_state_t app_default_sleep_mode = ARCH_EXT_SLEEP_ON;
第二步:广播间隔
static const struct advertise_configuration user_adv_conf = {
.addr_src = APP_CFG_ADDR_SRC(USER_CFG_ADDRESS_MODE),
/// Minimum interval for advertising
.intv_min = MS_TO_BLESLOTS(6000), // 687.5ms
/// Maximum interval for advertising
.intv_max = MS_TO_BLESLOTS(6000), // 687.5ms
debug下载:手机app出现蓝牙广播名称
测试电流:331ua
慢慢取下子板:
测试电流:321ua
为什么功耗和说明不符合。
具体请看PDF,谢谢解答!
Hi,
We are seeing a problem when trying to read the ADC on the DA14583
We are applying 2100mv to the input, however, this is not working as expected.
The setup is as follows:
Attenuator is enabled (GPC_ADC_ATTN3X)
Single ended is enabled (GPC_ADC_SE)
We read a value of 323 ADC Counts
So in theory, the following calculation should work, however, the value is 1000mV low:
mV = ((1200.0 / 1023.0) * 323) * 3.0 = 1136mV
Please advise,
Thanks,
Nigel
Hello Dialog,
I have DA14583 and i need to get the name of the connected device.
i didn't find any info about BLE, so any help please.
thanks in advance
Hi,
I bought SmartBond DA14583 IoT Sensor Dongle and am testing it.
I ran into the problem around changing the acceleration range, and found the following topic.
Then I followed the instruction in the above link, and change the source code.
However, I cannot figure out how to apply it to the device.
Does anyone tell me the way to apply change of the source code to the device, or location of some documents?
Hi All,
I am developing a device using DA14583 and which is powered up with 2xAAA cells.
I had gone through a battery driver available in the SDK example, an example is for coin cell and AAA cells.
My question is do I just need to include this battery driver file in my application and read the values? Or Do I need to connect ADC pins for the same?
Thanks and Regards
Rohit R
Hi All,
I am working on the DA14583 sleep configuration.
For my custom code development, I have used a ble_app_peripheral SDK example and made required changes as per my requirement. Without sleep configuration and continuous advertising, my functionalities are prooven.
I have configured the device in extended sleep mode and wakeup using sensor pin signal low interrupt. For this, I have followed the ble_app_sleepmode SDK example for sleep configuration.
During advertising, I sent devices in extended sleep mode. (i.e., in function user_app_adv_start()) and wake up using sensor pin low detection and start advertising again.
Details below,
1) advertising interval is 2sec.
2)#define APP_PARAM_UPDATE_REQUEST_TO (50)
/* Advertising data update timer */
#define APP_ADV_DATA_UPDATE_TO (50)
Requirement,
- I have to connect to device and assign some settings.
- I want to send controlling packets to another device (almost I have 50 packets that I need to send to another device). I am using an update manufacturer function to do so.
Before sleep mode incorporation in the code, I used continuous advertising of the device and there I am able to send all my packets with making slow advertising intervals.
But now as I have incorporated sleep and wake up call back using interrupt the logic changes. With the above details config, I tried to send data but only 1 packet is being sent to another device and that sticks for the advertising period. I am unable to other packets to the device so please help me how I can achieve this sending 50 packets when the device wakes up from sleep.
Please help me as early as possible.
Thanks and Regards
Rohit R
Hello all,
I am using Dialog's DA14583 IOT Sensor Kit.
I tried to use the app "nRF connect" connecting with the semiconductor (the sensor equipment) by bluetooth.
How can I receive the data from the sensor into the mobile phone (IOS system)? All the values of characteristics are shown with N/A. I wish to receive the data updated constantly.
I need to get the data from the sensor for further software debuggings. Besides, I also want to know the specific character function of each UUID.
Is there any solution to solve it, or any other app to use for receiving data? I mainly need to use the acceleration data provided by the sensor.
Please help me for that. Thank you.
Hello All,
I am using Dialog's DA14583 based Dev Kit with a I2C based capacitive proximity sensor with touch key.
My main application is to sense the proximity change (i.e., Touch detected) and based on this share few data bytes by updating advertising packet, this advertising packet is collected by the other device.
This sensor has below mentioned properties
- It has an extra Data interrupt pin apart from basic I2C communication pins on sensor side which ideally remains HIGH.
- The sensor pulls the Data interrupt pin LOW whenever the data is ready and is about to send it over the respective I2C pin to the MCU.
I have connected this Data interrupt pin of sensor to my MCU GPIO pin which is configured to give an interrupt whenever this pin goes LOW.
I have programmed the sensor in such a way that whenever there a proxomity change (i.e., Touch detected) the sensor will pull the Data interrupt pin LOW and then MCU can initiate the Read operation. Also i have programmed the sensor in low power mode so that it consumes less power.
In my application Data interrupt pin on human movement detection will interrupt the MCU and based on read sensor values i will update data in advertising packets.
This Logic works properly in Active Mode, However my device would be battery operated i want to implement Extended Sleep Mode in this device.
For Sleep Mode i have refered "ble_app_sleep_mode" and "proxy_reporter" example code's and made respective changes in code
- In user_config.h file
app_default_sleep_mode = ARCH_EXT_SLEEP_ON
- For Wakeup
arch_disable_sleep(); if (GetBits16(SYS_STAT_REG, PER_IS_DOWN)) { periph_init(); } if (arch_ble_ext_wakeup_get()) { arch_set_sleep_mode(app_default_sleep_mode); arch_ble_force_wakeup(); arch_ble_ext_wakeup_off(); app_easy_wakeup(); }
- For activating Sleep
arch_set_sleep_mode(ARCH_EXT_SLEEP_ON);
For Longer battery life i have changed application as follows,
- First i do the respective sensor configuration and MCU configurations and after that i send the MCU in sleep mode.
- Using the Data interrupt pin i wake the device and then check the sensor data and perform respective operation of updating advertising packet.
- After that i send the device in sleep mode again wait for next interrupt.
Now when i incorparate sleep mode i am not able to get proper response from device, whole logic fails, where i am not able to get proper interuupts or proper data
As a result i also tried few below mentioned changes in the wakeup logic
arch_disable_sleep(); if (GetBits16(SYS_STAT_REG, PER_IS_DOWN)) { periph_init(); } if (arch_ble_ext_wakeup_get()) { arch_set_sleep_mode(app_default_sleep_mode); arch_ble_force_wakeup(); arch_ble_ext_wakeup_off(); app_easy_wakeup(); } i2c_init();
My question is that whether sleep aftects I2C data communication, If yes how can i fix it ?
And is there any minimum specific sleep time for MCU, That is if i get succesive 4 to 5 interrupts every 30 secs will sleep mode work properly.
Please help me with this at the earliest
Thanks and Regards