There are ~30 Knowledge Base Articles (KBAs) in the Sensors section of the forum covering multiple sensors products. Sometimes, it's difficult to search for the information that you're interested in, especially when you don't know if that exists or not.
To simplify this task we have created a Sensors Knowledge Base Article List which has all the KBAs divided into sub-topics. This list only contains KBAs which are meaningful today, so you won't find anything related to legacy products. This is to avoid confusing our customers into reading material which is no longer applicable.
We use Si1152 for gesture detection and found that LED2 has no output. LED3 is floating on my schematic diagram. Is it caused by this? Or other reasons?
As shown in the figure, it is my schematic diagram and initialization code.
My application is: detect day versus night, indoors, in a room with south facing windows. I am exploring the Si1133 to measure UVA. I can put the detector within 10 feet of the windows, high and facing down so the detector gets reflected UV, and never gets direct sunlight, and gets only reflected artificial lights from typical room lighting of about 400 lux white, fluorescent light. My understanding is the window glass will transmit about 50% of UVA, that the sky will scatter significant UVA, that night sky has no UVA, and that artificial lights produce negligible UVA.
Might that work? Do you have any suggestions re diffuser, physical filters, parameters of the Si1133, and which set of diodes to use? My plan is to read only the UV diode.
I want to estimate sun time by detecting sundown and sunset, despite noise from artificial lights. I don't need accuracy. I plan to take samples over many days. I understand that the weather and season will have an effect.
I am developing a ambient light sensor board with Si1133-AA00-GMR. The main controller is STM32F405. The status is as following:
1. All the direct accessed registers and indirected accessed parameters could be correctly write and read.
2. A function is designed to read all the parameters send to Si1133 and all values are matched with the original values.
3. The sensor is set to be working in autonomous mode and channel 1&2 is enabled.
4. The problem is that the interrupt pin of Si1133 is always at high level and no rising or falling edge is triggered after the measurement is start.
5. The interrupt pin is only found at low level for less than 100ns when software reset command is executed.
6. The interrupt status register is checked many times. The interrupt pin did't change at all whatever the status register is.
7. Two succeessive read command of the interrup status register is executed. It's found that the register value is not reset automatically as description in datasheet, after the first read command.
The initial code of the sensor as following:
Is there some problem about the interrupt setting issue?
Thanks a lot.
Update on Jan 20, 2020:
The sensor was configured to be working in forced mode. The sampling and data read back rate is decided by timer on controller board, while the value of IRQ_STATUS is ignored. The sensor is good working.
Hi! everyone i am building a project that involves measuring pressure on the road when a car stands over it. Now for testing i would be needing the same heavy duty sensor but some low level sensor which can provide the same functionality for say, hot wheels cars. I did some googling and came across the BMP sensor, which as far as my understanding tells me is just useless for measuring atmospheric pressure. I saw somewhere that maybe a pneumatic sensor would work best but i do not know which one would work with the arduino. So again, any sensor that the experienced people here can guide me regarding this?
We are trying to read the light intensity using Si1133, when we are in most dark region, we were able to see that the intensity is much higher such as around 1,67,77,200 instead of being zero.
Would like to know the reason for this behavior and is this is common behavior of Si1133.
We had some issues with noise when directly reading the visible light output of the Si1132 on our board without changing the integration time. When we look at the dev kit, we don't see this noise in the demo software unless we use the command line tools to view the data.
I'm thinking the demo software uses a different integration time - does anyone know the register settings used for the dev kit with the demo software?
Can you explain the notation in the datasheet in the "operation" column of the ADCMUX row of the table for the ADCCONFIGx parameter? The notation uses for example "D + 10" for the UV "optical function." But the term "D" has no antecedent anywhere in the datasheet, as far as I know.
I assume "D" refers to a separate diode for UV.
Does the "+10" mean that the mcu on the chip adds ten to some raw result?
Also, what is the interpretation of a negative result? That the dark current is less than the light current (where you are measuring the diode in two ways, dark current and light current, and taking the difference) ?
Related to my other post about detecting daylight using UV indoors.
What impedance will the LED pins have when the circuit is shut down?
More exactly, if Si115x is controlled from a managed power area (which could be killed) while the IR-LED is fueled straightforwardly from the battery.omeglebazoocam
What occurs with the LED contribution on the Si115x if the force supply to the circuit is closed off when the IR-LED actually is controlled from the battery.
Is there a danger for current spillage through the LED that chat avenue ultimately could deplete the battery, if so how huge would that spillage be?
Or then again is the plan of the current sink controller done so a high impedance is ensured?
In the present circumstance is it prescribed to have the draw-up resistors associated with the managed power space which Si115x is controlled from or is there any motivation to have the resistors associated straightforwardly to the battery together vid the LED?
I'm testing the ADC overflow conditions in the si1133 and I'm getting a weird behavior when changing the Channel setup right after an overflow condition. Here's the setup:
Configured three channels (0, 1 and 2) with the sensors LARGE_IR, LARGE_WHITE and UV respectively, sw_gain=N (let's say initially 1), hw_gain=0, decimation normal, 24-bit output.
Issue a FORCE command, wait until the command finishes, then read the 24-bit values back.
Repeat the last step in a loop.
Here's what happens:
If all sensor values are below the limit, all is fine. I eventually get the CMMND_CTR value incremented and can send another FORCE command. Read values make sense and change accordingly when shining a light at the sensor.
If one of the sensor hits the overflow limit (0x7fffff), the RESPONSE0 will have the CMD_ERR bit set and CMMND_CTR will be 0x2 (Saturation of the ADC or overflow accumulation) which is expected. All the other channels read back reasonable values even if one of the sensors is saturated.
To reset this CMD_ERR condition I then send RESET_CMD_CTR which executes normally. If I don't change anything else the next FORCE command continues reading without problems (showing overflow for the channels that are overflowed until I remove the light pointing at the sensor). So far, all is good.
However, if after this overflow condition I send RESET_CMD_CTR, wait for the cmd to finish, and then reconfigure all channels to use sw_gain=0 instead of 1 then the sensor misbehaves:
The read values are off by one: the LARGE_WHITE sensor value would be in HOSTOUT3-5 normally, but after changing the config to sw_gain=0 and issuing a new FORCE command I see that the value that would make sense for LARGE_WHITE (about half of the previous) is now in HOSTOUT6-8; while the first two 24-bit channels are both 0x7fffff.
Moreover, if I continue repeating this process of changing the sw_gain, FORCE, RESET_CMD_CTR, the values keep shifting and after a few times the FORCE command fails with error 0x13 in RESPONSE0 ("Output buffer overflow"). My understanding is that a FORCE command should never fail with "Output buffer overflow" since there are only 6 channels max of 3 bytes output each (18 bytes) but 26 bytes of output. This is most obvious if after an overflow with sw_gain==1 you then change to sw_gain=2, then =3, then =4, since larger sw_gain will continue showing the overflow condition.
My suspicion without knowing how is the controller of this chip implemented, is that this is a bug in the chip in the error handling case: when there's an ADC overflow or SW_GAIN accumulation overflow the internal pointer to the output buffer (HOSTOUTx) is not reset when a PARAM_SET (0x82, 0x83 ....) command is send before the next FORCE; but it is reset when the next command is directly FORCE. To be clear:
FORCE, RESET_CMD_CTR, FORCE, RESET_CMD_CTR, .... works fine
FORCE, RESET_CMD_CTR, PARAM_SET ..., FORCE --> doesn't work, with 6 channels configured it fails with 0x13 on the second call.
HW_ID is 0x03
REV_ID is 0x10
Are you aware of this issue? Is there a workaround? I didn't find any errata on the topic. The only way I have found to work is to issue a RESET_SW but that requires to wait additional 25ms for the device to exit the "Initialization Mode" again and reconfigure everything. Arguably one should be able to change the sw_gain to a lower value when an accumulation error is detected.
We are using a Si1133 chip on a board with a STM32L4 MCU. We have ported the code available at https://siliconlabs.github.io/Gecko_SDK_Doc/efm32pg12/html/si1133_8c_source.html, and we are able to measure the lux and UVI (still not tested for accuracy). We want to be able to configure the Si1133 to generate an interrupt if there is a sudden light level change (increase), is it possible this kind of application using this chip? My doubt is because if we enable the IRQ we will be interrupted on each light measurement end, we are not able to configure it to interrupt the CPU only when the threshold level is exceeded, or am I missing some alternative configuration? To be able to detect autonomously a sudden high light level it should be running in autonomous mode, so it will interrupt the MCU at the end of each measurement cycle, right?
I have an SI1147-M01-EB evaluation kit. I have downloaded the SI114x Programmers Toolkit, but I cannot get a connection to the hardware. The quick-start guide refers to Windows 7 only, so is it impossible to make this kit work on a Windows 10 machine?
In Device Manager, the device appears as an HID (Human Interface Device) rather than under Ports or USB - is this the problem?
If I launch SI1140 Control Panel, under devices I can see COM1 or TS004A572A. Pressing Connect with either device selected results in an error - unable to set baud rate for COM1 and unable to initialize SI114x. Function: InitSI114x for TS004A572A.
Also, when I launch the Firmware Updater, what should I choose from the evaluation board drop-down? Module?
To whom it may concern, the datasheet does not include any information concerning the RoHS Compliancy for the Si7021-A20-GM1R so it can't be used as proof of RoHS Compliancy. We are using this part in one of our products and need a RoHS Certificate or some form of documentation stating RoHS Compliancy for our document control. I need this as soon as possible. It is holding up the release of a product. Thank you, Roger
I am trying to simulate the field of view of the si115x sensor when I use a lens in front of it. However, I don't know at what depth the IR photodiodes are buried in the clear DFN package. I didn't find this data anywhere.
I am currently trying to use the Si1153 as a proximity sensor on Arduino. I used the library at https://github.com/PureEngineering/PUREmodules/tree/master/Arduino/Si1153. The whole configuration works very well, except about measurement timings. On the one hand, MEASRATE_H and MEASRATE_L have no influence at all on the measurement period. On the other hand, the MEASCOUNT_x register gives me only half the period I expected. I attached the library .cpp and .h. Here is my code :
#include "Si1153.h"
#define pinInterrupt 2
Si1153 si1153;
void setup() {
delay(100);
Wire.begin();
Serial.begin(115200);
Serial.println("Demarrage");
pinMode(pinInterrupt, INPUT_PULLUP);
//Ne pas utiliser param_set at IRQ_enable est directement accessible en I2C
si1153.write_byte(Si1153::DEVICE_ADDRESS, Si1153::IRQ_ENABLE, 0B00111111); //Active les interruptions des 6 canaux
//These three values are used by MEASCONFIGx per channel to decide on the period per channel
si1153.param_set(Si1153::MEASCOUNT_0, 16);
si1153.param_set(Si1153::MEASCOUNT_1, 1);
si1153.param_set(Si1153::MEASCOUNT_2, 1);
si1153.param_set(Si1153::MEASRATE_H, 0);//Periode de mesure de base
si1153.param_set(Si1153::MEASRATE_L, 5);
si1153.param_set(Si1153::BURST, 0B00000000);//Burst ON
si1153.param_set(Si1153::CHAN_LIST, 0B00000010); //Configure CHAN_LIST (Each bit represents a channel). This code enables channel 1.
//Je n'utilise pas la fonction config_channel de la bibliotheque car elle ne fonctionne pas chez moi
si1153.param_set(Si1153::ADCCONFIG_1, 0B01100010);
si1153.param_set(Si1153::ADCSENS_1, 0B00000000);
si1153.param_set(Si1153::ADCPOST_1, 0B00000000);
si1153.param_set(Si1153::MEASCONFIG_1, 0B01000111);
si1153.param_set(Si1153::LED1_A, 0x3F); //Regle le courant de toutes les LEDs
si1153.param_set(Si1153::LED1_B, 0x3F);
si1153.param_set(Si1153::LED2_A, 0x3F);
si1153.param_set(Si1153::LED2_B, 0x3F);
si1153.param_set(Si1153::LED3_A, 0x3F);
si1153.param_set(Si1153::LED3_B, 0x3F);
Serial.print(si1153.param_query(0x1A));
Serial.print(" ");
Serial.println(si1153.param_query(0x1B));
si1153.send_command(Si1153::START); //Start the system
}
uint8_t data[2];
void loop() { //Limiter au strict nécessaire le traffic I2C pour réduire le bruit de la mesure
while(digitalRead(pinInterrupt) == 1) {}
si1153.read_byte(Si1153::DEVICE_ADDRESS, Si1153::IRQ_STATUS); //Necessaire pour acquiter l'interruption
data[0] = si1153.read_byte(Si1153::DEVICE_ADDRESS, Si1153::HOSTOUT0);
data[1] = si1153.read_byte(Si1153::DEVICE_ADDRESS, Si1153::HOSTOUT1);
Serial.println(si1153.bytes_to_int(data, sizeof(data)));
}
If my understanding is correct, in this example I should get a measurement period of 800 us * 16 * 5 = 64ms. However, I only get aroud 6.8 ms on my oscilloscope.
I have been struggling with this issue for 2 days and can't find a way out. A little help would be really appreciated.
I am wondering why the raw value for proximity channel changes when the light is turned off/on (or day-night switch)? Namely, when the light is turned on, the value increases immediately, while after turning off light the value decreases exponentially. The relative change in reading could be more than 50% (with parameters integration time is 48,8 us, Photodiode IR large, Signal Range Low). Any idea why this happens and how this should be resolved? On figure Prox stands for Proximimty (black line), and ALS stands for ambient light signal (blue line).
Forum
Sensors Knowledge Base Article List
There are ~30 Knowledge Base Articles (KBAs) in the Sensors section of the forum covering multiple sensors products. Sometimes, it's difficult to search for the information that you're interested in, especially when you don't know if that exists or not.
To simplify this task we have created a Sensors Knowledge Base Article List which has all the KBAs divided into sub-topics. This list only contains KBAs which are meaningful today, so you won't find anything related to legacy products. This is to avoid confusing our customers into reading material which is no longer applicable.
Additionally please check out our Sensors training page -> https://www.silabs.com/support/training/sensors
Si1152 cannot drive LED2
Hi Silabs,
We use Si1152 for gesture detection and found that LED2 has no output. LED3 is floating on my schematic diagram. Is it caused by this? Or other reasons?
As shown in the figure, it is my schematic diagram and initialization code.
Si1133 How to detect daylight indoors in south facing room while ignoring artificial lights, using UV.
My application is: detect day versus night, indoors, in a room with south facing windows. I am exploring the Si1133 to measure UVA. I can put the detector within 10 feet of the windows, high and facing down so the detector gets reflected UV, and never gets direct sunlight, and gets only reflected artificial lights from typical room lighting of about 400 lux white, fluorescent light. My understanding is the window glass will transmit about 50% of UVA, that the sky will scatter significant UVA, that night sky has no UVA, and that artificial lights produce negligible UVA.
Might that work? Do you have any suggestions re diffuser, physical filters, parameters of the Si1133, and which set of diodes to use? My plan is to read only the UV diode.
I want to estimate sun time by detecting sundown and sunset, despite noise from artificial lights. I don't need accuracy. I plan to take samples over many days. I understand that the weather and season will have an effect.
Why is the interrupt pin of Si1133 not working?
Hi,
I am developing a ambient light sensor board with Si1133-AA00-GMR. The main controller is STM32F405. The status is as following:
1. All the direct accessed registers and indirected accessed parameters could be correctly write and read.
2. A function is designed to read all the parameters send to Si1133 and all values are matched with the original values.
3. The sensor is set to be working in autonomous mode and channel 1&2 is enabled.
4. The problem is that the interrupt pin of Si1133 is always at high level and no rising or falling edge is triggered after the measurement is start.
5. The interrupt pin is only found at low level for less than 100ns when software reset command is executed.
6. The interrupt status register is checked many times. The interrupt pin did't change at all whatever the status register is.
7. Two succeessive read command of the interrup status register is executed. It's found that the register value is not reset automatically as description in datasheet, after the first read command.
The initial code of the sensor as following:
Is there some problem about the interrupt setting issue?
Thanks a lot.
Update on Jan 20, 2020:
The sensor was configured to be working in forced mode. The sampling and data read back rate is decided by timer on controller board, while the value of IRQ_STATUS is ignored. The sensor is good working.
Which sensor to use?
Hi! everyone i am building a project that involves measuring pressure on the road when a car stands over it. Now for testing i would be needing the same heavy duty sensor but some low level sensor which can provide the same functionality for say, hot wheels cars. I did some googling and came across the BMP sensor, which as far as my understanding tells me is just useless for measuring atmospheric pressure. I saw somewhere that maybe a pneumatic sensor would work best but i do not know which one would work with the arduino. So again, any sensor that the experienced people here can guide me regarding this?
thanks
https://jiofilocalhtml.co.in/
https://19216881.link/
https://router-network.uno/
P.S: you will have to dumb it down a bit for me as I do not know many technicalities
Higher data values on dark light
Hi team,
We are trying to read the light intensity using Si1133, when we are in most dark region, we were able to see that the intensity is much higher such as around 1,67,77,200 instead of being zero.
Would like to know the reason for this behavior and is this is common behavior of Si1133.
EOL details and Equivalent part to replace SI1133-AA00-GM
Hello,
I am Ananth(Hardware design Engineer) from Vortex Engineering pvt ltd Chennai.We have used the Si1133-AA00-GM sensor for an application.
I need the current EOL detail of Si1133-AA00-GM.
If it gets EOL, Kindly suggest me another part without changing the parameters and characteristics of SI1133.
please do the support as soon as possible.
Noise on the Si1132 ?.
Hello,
We had some issues with noise when directly reading the visible light output of the Si1132 on our board without changing the integration time. When we look at the dev kit, we don't see this noise in the demo software unless we use the command line tools to view the data.
I'm thinking the demo software uses a different integration time - does anyone know the register settings used for the dev kit with the demo software?
https://creditcardsupportx.com
https://creditcardsupportx.com/target-red-credit-card
https://creditcardsupportx.com/baby-r-us-credit-card
thanks
jackyjoy
si1133 diode selection parameter
Can you explain the notation in the datasheet in the "operation" column of the ADCMUX row of the table for the ADCCONFIGx parameter? The notation uses for example "D + 10" for the UV "optical function." But the term "D" has no antecedent anywhere in the datasheet, as far as I know.
I assume "D" refers to a separate diode for UV.
Does the "+10" mean that the mcu on the chip adds ten to some raw result?
Also, what is the interpretation of a negative result? That the dark current is less than the light current (where you are measuring the diode in two ways, dark current and light current, and taking the difference) ?
Related to my other post about detecting daylight using UV indoors.
Si115x seen at power down?
What impedance will the LED pins have when the circuit is shut down?
More exactly, if Si115x is controlled from a managed power area (which could be killed) while the IR-LED is fueled straightforwardly from the battery.omegle bazoocam
What occurs with the LED contribution on the Si115x if the force supply to the circuit is closed off when the IR-LED actually is controlled from the battery.
Is there a danger for current spillage through the LED that chat avenue ultimately could deplete the battery, if so how huge would that spillage be?
Or then again is the plan of the current sink controller done so a high impedance is ensured?
In the present circumstance is it prescribed to have the draw-up resistors associated with the managed power space which Si115x is controlled from or is there any motivation to have the resistors associated straightforwardly to the battery together vid the LED?
SI1133 recovery after ADC overflow
I'm testing the ADC overflow conditions in the si1133 and I'm getting a weird behavior when changing the Channel setup right after an overflow condition. Here's the setup:
Here's what happens:
My suspicion without knowing how is the controller of this chip implemented, is that this is a bug in the chip in the error handling case: when there's an ADC overflow or SW_GAIN accumulation overflow the internal pointer to the output buffer (HOSTOUTx) is not reset when a PARAM_SET (0x82, 0x83 ....) command is send before the next FORCE; but it is reset when the next command is directly FORCE. To be clear:
HW_ID is 0x03
REV_ID is 0x10
Are you aware of this issue? Is there a workaround? I didn't find any errata on the topic. The only way I have found to work is to issue a RESET_SW but that requires to wait additional 25ms for the device to exit the "Initialization Mode" again and reconfigure everything. Arguably one should be able to change the sw_gain to a lower value when an accumulation error is detected.
Si1133 - how to configure an interrupt on a sudden light change
Hi,
We are using a Si1133 chip on a board with a STM32L4 MCU. We have ported the code available at https://siliconlabs.github.io/Gecko_SDK_Doc/efm32pg12/html/si1133_8c_source.html, and we are able to measure the lux and UVI (still not tested for accuracy). We want to be able to configure the Si1133 to generate an interrupt if there is a sudden light level change (increase), is it possible this kind of application using this chip? My doubt is because if we enable the IRQ we will be interrupted on each light measurement end, we are not able to configure it to interrupt the CPU only when the threshold level is exceeded, or am I missing some alternative configuration? To be able to detect autonomously a sudden high light level it should be running in autonomous mode, so it will interrupt the MCU at the end of each measurement cycle, right?
Thanks in advance
Best regards
Fernando
In the case of the PG12 STK, place a jumper to connect pins 11 and 12 together on the EXP header?
Hi,
In the case of the PG12 STK,why place a jumper to connect pins 11 and 12 together on the EXP header? Hardware decision or software decision?
I am looking forward to your reply!!
SI1147-M01-EB with Windows 10
Hi,
I have an SI1147-M01-EB evaluation kit. I have downloaded the SI114x Programmers Toolkit, but I cannot get a connection to the hardware. The quick-start guide refers to Windows 7 only, so is it impossible to make this kit work on a Windows 10 machine?
In Device Manager, the device appears as an HID (Human Interface Device) rather than under Ports or USB - is this the problem?
If I launch SI1140 Control Panel, under devices I can see COM1 or TS004A572A. Pressing Connect with either device selected results in an error - unable to set baud rate for COM1 and unable to initialize SI114x. Function: InitSI114x for TS004A572A.
Also, when I launch the Firmware Updater, what should I choose from the evaluation board drop-down? Module?
Can someone help please?
Thanks
Need RoHS Certificate or Some Form of RoHS Compliancy Document for Si7021-A20-GM1R
SI7210
Hi
Where I can find sample code for the sensor?
Thanks
Depth of the photodiodes in SI115x
Hi everyone,
I am trying to simulate the field of view of the si115x sensor when I use a lens in front of it. However, I don't know at what depth the IR photodiodes are buried in the clear DFN package. I didn't find this data anywhere.
A little help would be really appreciated.
Cheers
Valentin
Si115x configuration issue - MEASRATE parameter ineffective
Hello everyone,
I am currently trying to use the Si1153 as a proximity sensor on Arduino. I used the library at https://github.com/PureEngineering/PUREmodules/tree/master/Arduino/Si1153. The whole configuration works very well, except about measurement timings. On the one hand, MEASRATE_H and MEASRATE_L have no influence at all on the measurement period. On the other hand, the MEASCOUNT_x register gives me only half the period I expected. I attached the library .cpp and .h. Here is my code :
If my understanding is correct, in this example I should get a measurement period of 800 us * 16 * 5 = 64ms. However, I only get aroud 6.8 ms on my oscilloscope.
I have been struggling with this issue for 2 days and can't find a way out. A little help would be really appreciated.
Best regards,
Valentin
si7055
Hi
Please advice if si7053 c file similar to si7055 , I need c file for the si7055 but I found just si7053 , is it similar ?
Thanks
SI115x
I am wondering why the raw value for proximity channel changes when the light is turned off/on (or day-night switch)? Namely, when the light is turned on, the value increases immediately, while after turning off light the value decreases exponentially. The relative change in reading could be more than 50% (with parameters integration time is 48,8 us, Photodiode IR large, Signal Range Low). Any idea why this happens and how this should be resolved? On figure Prox stands for Proximimty (black line), and ALS stands for ambient light signal (blue line).