I am really puzzled by how these GPS/GPRS, solar-powered bicycle locks seem to be running on very little power. They are fitted with a tiny solar panel.

As you may know, these locks are popular these days with publicly shared bicycles like OFO, Mobike etc. As I understand, in principle they (continuously or very often) report their position to a server via GPRS connection. They may also need to poll the server frequently for commands (e.g. unlock the bike). In my knowledge all of this requires a lot of power. They are operated with an app, and as I understand for instance if you want to unlock from the app, data will be transmitted from the app to server, and from the server to the lock.

I am trying to DIY one myself in order to learn IoT.

I am basing my lock around the GPS/GPRS module SIM808 and base on my calculations (below) it require quite a huge rechargeable battery, and a huge solar panel to charge it. These commercial locks could be using other modules, but I would presume their power consumption should be more or less comparable since they use the same technology.


Let’s just put GPS aside since I see that GPRS alone is already enough puzzle for me.

I decided that to save power, my SIM808 will not maintain continuous communication with the server but rather to make a connection to the server (via TCP/HTTP to a PHP script) every 5 seconds to send data (GPS location for instance) and to receive data (e.g. command to unlock the bike).

Even with that interval, the module would need to make almost 20,000 data transfer sessions a day. Assuming that each session needs 1 second, then the total transmission time is about 5.55 hours a day. According to what I depicted from the datasheet of the SIM808, the module consumes around 0.48A during transmission (datasheet even says in some transmission bursts the current can be as high as 2A, but let’s just stick to 0.48A).

That requires a 2.7 Ah rechargeable battery to power the module for 24 hours. Of course, to account for winter days or when there is bad weather, I decide to triple the capacity of the battery to 9Ah (which I decide to use 12V 3S Li-ion since I have some around) so that the module can last about 3 days even without sun light.

Now for the solar panel to charge this 9Ah battery, according to the calculator here, I will need a 225W 12V solar panel, and with its size I think it should be mounted on a roof!

Could anyone please tell me where I may have gone wrong?

Thank you!

EDIT: My calculations are wrong. The average power consumption should be < 1 Watt and a 10W solar panel is more than enough.

With clever power saving techniques, a 2W panel would be sufficient. enter image description here

  • 3
    \$\begingroup\$ What made you pick an update period of 5 seconds? That seems orders of magnitude more than really necessary for this application - 5 minutes to a few times an hour would be more appropriate imo. \$\endgroup\$
    – brhans
    Commented Aug 10, 2017 at 13:31
  • \$\begingroup\$ Each session one second? Do you need a few kb of data to tell if a bike is stolen or not? \$\endgroup\$ Commented Aug 10, 2017 at 13:40
  • \$\begingroup\$ a motion sensor to send data only if it moves - would reduce the power necessary massively... \$\endgroup\$
    – Solar Mike
    Commented Aug 10, 2017 at 13:41
  • \$\begingroup\$ @brhans: I just think the more frequent the more up-to-date GPS position will be \$\endgroup\$
    – Dave
    Commented Aug 10, 2017 at 13:59
  • \$\begingroup\$ @user3528438: I have not measured the time actually, just picked a safe value. Will be just a couple hundred bytes max per session \$\endgroup\$
    – Dave
    Commented Aug 10, 2017 at 14:00

3 Answers 3


There are a couple of things you can do to cut down on the transmission rate.

  1. Only transmit when you have moved more than a certain distance... eg, 50ft or so.

  2. Cut down on the transmission size.. 1 second seems like a long time for an I am here packet. 40mS seems more in the ball park.

  3. Use adaptive transmission based on available power. i.e reduce transit rate when dark and have not moved in a while.

From a sanity check, something also seems off with your math.

If it's 12V and max current is when it transmits at about 0.5A, that's only 6W if you are transmitting 24-7. At one second every five, that's just over a watt. From that alone, a 225W solar panel would be serious overkill even if you do want to charge a battery so it works for a few days in a garage.


Very low power IoT is all about reducing useless work and transmitted data.

GPRS transmission rate is usually 2kB/s with no connexion time. For a tracker, you can deal with 64-128 Bytes packets. That's 20-40 times less online time per session than what you estimated.

Position may be updated only when the bike moves (it's common to start the chip with an accelerometer). Update rate can be very low 'cause you're not using it for navigation purposes. The GPS will only need some time at cold start to find some satellites, then it will be easy to follow them every 30 seconds or so.

Depending on what you want to poll the server for, it can also be done when moving the bike. For example, a user who wants a bike to unlock will probably take it into his hands, and make it move a bit.


Some of the door locks that i tackled with their API (unloc) don't have a way of opening the lock remotely. So the only explanation i have (used them for one week when i traveled). The App is search for the locks trough Bluetooth, so my guess that the remote server is sending a OTP to the phone, and phone is sending it via Bl , and the device is the one that verifies the passcode? But again, while looking for low power way of gprs communication, there isn't a a good idea other than increasing the battery size.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.