HM-10 battery uses too much energy on ibeacon mode - bluetooth-lowenergy

I m using hm-10 to deploy ibeacon with CR2450 battery.
But in several configurations, CR2450 battery drains too fast.
I need AT+MODE2
And AT+ADTY0 commands for ota and battery level.
In AT+ADTY3 mode device cannot send battery level in advertising data.
Is it possible to work battery level data in AT+ADTY3 mode or AT+ADTY3 mode with low power consumption?
Thanks

There used to be a firmware bug in the HM-10 that causes AT+BATC1 to draw excessive current when in sleep mode with AT+SLEEP or AT+PWRM0. It would not show at first, however usually after 3 hours, the bug arises and the devices starts to draw more current.
advertising # 1284 ms with AT+BATC0 = 1.6 uA with radio peaks.
advertising # 1284 ms with AT+BATC1 = 600 uA with radio peaks when the bug occurs.
I have not found a solution except turning off battery level reporting... It might be that the bug is solved in later firmware, I have not tested that.
Kind regards

Related

Kontakt beacon has garbage response time at 6 metres

I'm reading so much propaganda about BLE beacons (Kontakt.io, in my case) being accurate to the centimetre, readable at 70 metres etc etc, but my experience has been nothing like that.
I have 3 beacons. If they're in the next room over (door open, around 6 or 7 metres), it'll detect maybe one or two, after around 20 seconds. Even then I often need to restart my app over and over to detect it.
Move them to the same room, and they're pretty much okay. Everything's default, scanMode is 'LOW_LATENCY', scanPeriod is 'RANGING', I'm not sure what else I can do.
Do these results sound way off, or are they just not that good?
A few tips about Bluetooth beacons in general, not specifically Kontakt beacons:
When you need to restart your app to detect beacons, that clearly means it is something on the phone, not the beacons themselves that are the issue. That issue may be the app, the SDK, the Bluetooth stack on the phone, or the phone's bluetooth hardware. Try an off the shelf detector app like BeaconLocate for iOS or Android and also test with a different phone.
The range of a beacon is dependent on its output transmitter power, typically measured at 1 meter. This output power is adjustable on many hardware beacons and is often set lower than the maximum to save battery on battery-powered models. For best detection results, set the output power to the maximum that configuration allows. An output power at one meter should be at least -59 dBm for best results. Less negative numbers mean more power. Because some phone models have poor sensitivity and measure RSSI inaccurately, you may want to measure with different models. In general iOS models are more predictable receivers.
The range of a beacon between rooms varies greatly depending on materials in walls, furnishings, and local geometry. A beacon with an output power of -59 dBm at one meter can be reliably detected by a phone with a sensitive receiver at 40 meters away, but only with clear line of sight conditions (typically outdoors). Intermittently, I have seen such beacons be detected outdoors at over 100 meters away. Intermittently means that 99% of packets are lost, a small percentage are successfully received.
Always be skeptical of marketing claims from companies trying to sell you something. The above points should tell you what is achievable from an independent engineering perspective.

Arduino Temperature Display

i have a little 2,4" tft touch display, and i want to display Information like Temperature of the CPU and the GPU, and the usage of the CPU cores. i tried getting the temperature with wmic and the MSAcip_ThermalZoneTemperature. but my system does not support that. Could someone tell me a way to get the Temperature and the other information without buying any extra hardware? My Mainboard: Asus M5A78L/USB3 (https://www.asus.com/Motherboards/M5A78LUSB3/)
Thanks, and have a great day!
Without extra hardware, the best way I can think of is to write a program for your computer that is able to pick up temperature statistics from your mainboard, then have that speak to your Arduino via Serial over USB.
The other option I can think of would involve finding out where the temperature probes on your mainboard live and physically tapping into those and reverse engineering how they work. However, this stands a very high chance of voiding warranties and ruining your board.

SIM808 GSM+GPS module sleep and power usage?

I'm using a SIM808 GSM+GPS module on a LoNet breakout board: http://www.seeedstudio.com/wiki/LoNet_-_GSM/GPRS/GPS_Breakout with an Adafruit Trinket Pro 3V, and everything works.
I've taken care to build in power save modes in my application. I can enable the SIM808 slow clock, so it can sleep with DTR=1, which I call "light sleep" mode. Also there is a "deep sleep" mode, where I set AT+CFUN=0 to further decrease functionality of the SIM808, and power usage. (During deep sleep the RF circuits are off, so no SMS reception..)
I've measured power consumption by measuring the voltage across a 1 ohm resistor in series with the battery.
During normal GSM operation 19-20 mA is used; with slow clock enabled also 19-20 mA, in deep sleep 18-19 mA.
Switching on GPS makes the board use 43-44 mA. I see no difference while acquiring the GPS fix, or when a fix is reached. The wiki page (above) says that continuous tracking takes 24 mA, but apparently that is on top of the 20 mA when just the GSM is used. Indeed 20+24 is 44 mA, the value I measure.
I'm quite disappointed that the sleep conditions don't seem to save any power!
Should I do things like remove the green power LED? The design drawing shows a 470 ohm R in series, so that could save ca 8 mA?
The board does have a battery charging circuit; could that be responsible for the 20 mA base current? When I power down the SIM808 only ca 0.02 mA is used, so I wonder if there is an external circuit responsible for the 20 mA base current. The SIM808 Hardware Docs spec a power consumption of around 1 mA only! - I wish!
I had the same problem like you but on another board.
As you can see at the top of the board below the right one of the two SMA connectors it says: "Active GPS Antenna". And thats the solution to the problem.
When I disconnected the GPS antenna the current dropped to ~670µA without LEDs and when slowclock (AT+CSCLK=1) was enabled, AT+CFUN=0 and DTR pin was high (eg. 3.3V).
So if you want to really make your SIM808 module low power you have to switch the active GPS antenna off with a PMOS.
This image shows the active GPS antenna circuit of my SIM808 Module.
EDIT:
Damn I don't know how to delete or edit a comment... And I can't post more than 2 links, please go to the next links by yourself:
This wiki page (wiki.seeedstudio.com/wiki/LoNet_-_GSM/GPRS/GPS_Breakout) of the LoNet states that: "GPS Antenna: this is an uFL GPS antenna connector. You can connect either passive or active GPS antenna to it. Active GPS antenna runs at 2.8V voltage."
And the schematic (wiki.seeedstudio.com/images/3/37/LoNet_808_Schematic.pdf) shows in the top right corner, that the GPS connector is prepared for an active antenna (the inductor in series with the current limiting resistor).
So if you don't have an active antenna you maybe can just cut the trace between the inductor and the GPS connector.
I don't know what will happen when you are using a passive antenna, you have to try it yourself.
Good luck!

Power problems stacked Arduino shields

I have a weird problem. I am currently building a BB-8. Therefore, I am using an Arduino Uno. On top, I have stacked an Adafruit Motor Shield v2.3 and, again, on top of this, I have stacked the Sparkfun USB Host Shield. The Arduino is powered by a 9V-Block battery, the motors are powered separately by two 18650 Li-Ion batteries. To control the two Pololu motors, which have a stall current of 1.6 amps each, I use a Xbox 360 wireless controller, where the receiver is connected to the USB Host Shield.
Now to my problem. Every seems to work fine, until i cover everything with a styrofoam hemisphere. Yes, you've read right. If that happens, the controller signals is lost and does not connect again, unless I restart the Arduino. I have uploaded a small video on youtube, where you can see the problem.
I guess, this is a power problem, since this issue does not occur, when I connect the Xbox receiver to my Mac. Has anyone an idea, how to solve this problem?
I already tried another power source. And the USB host shield should give enough power, since the specs are saying, that 500 mA is no problem, and hit is exactly the USB 2.0 spec. The combination of the shield shouldn't be a problem, too. I carefully chose this shields, because the motor shield is just using the pins A4 and A5, the USB host shield is using some of the digital pins, so I think there is no interference.
Thank you for your help.
EDIT
I have tested it a bit more now and i think i can reduce the probable reasons. First, i tried some other power supplies, from AA batteries on the VIN pin to external power adaptors. Next, i tried other xbox receivers and controllers. I also tried a playstation 3 controller with a Bluetooth dongle. Nothing solved the problem. I also covered the Arduino with other things than styrofoam, like a garbage can, cardboard and some metal box. This worked, so the problem was only with styrofoam. Now i haven't covered the Arduino, but i slowly got closer. About 20 cm from the Arduino, it stopped working. My clue: static electricity. Do you think this can be a problem? And if yes, how can i solve this?
Try use single battery + separate voltage regulators for every load. Otherwise if one of the batteries discharges while other are ok, it can take all power of the system, something like short-circuit. Also you can receive a trouble if do error in ground connections.
Select good battery, which can provide enough power. If cant find a battery which can supply enough current think about using low current batteries in series to achieve extra voltage. Then reduce voltage using dc-dc step down converter.
For example if you have a battery of 24V which provides 1A (power p1 = 24*1). It can provide 5A if reduce the voltage to 5V using dc-dc. (power p2 = 5*5). Because p1*h=p2, where [h=0.8 - efficiency].
So, I solved the problem. As is mentioned in my question, the problem was static electricity. I primed the styrofoam sphere with some special primer to make the styrofoam a little more stable and so on. That's it. Luckily I didn't touch the Arduino with the sphere. I think it would have damaged the Arduino.

Simulate entering iBeacon region by fluctuating power?

I'm new to iBeacon, and would like to simulate entering and exiting an iBeacon region, to see how notifications work on entering/exiting a region when an app monitoring for iBeacons is in the background.
The iBeacon I'd like to try this with would be a virtual iBeacon, running on a mac or an ios device.
Can this be done by fluctuating the power or is there a better way to do it? And are there any good examples of doing this anywhere?
The easiest way to do this is by simply turning the iBeacon on and off. I do this every day using our MacBeacon and Locate for iBeacon test tools which have on-screen on/off switches.
In theory, you could do what you suggest by turning the radio power way down, too. But iOS, OSX and Linux do not let you adjust the radio power. Turning off the transmission completely is an easier and simpler alternative.

Resources