BikePin is a small device hidden in the construction of a bicycle which its owner can message and the device will send the bike’s location

Similar projects worth following
The main idea to the project is to have a hidden GPS tracker, that you can contact anytime and from anywhere accessible to signal. It will use NB-IoT as the type of connectivity between the owner and the bike as a new and upcoming technology that will most likely change the IoT world. The device is to be small in size, but with enough battery capacity to last a year and to keep the bike safe at all time.

Have you ever got your bike stolen? Do you always monitor your bike when you leave it behind just to go to a store or go get a coffee? You have tried some GPS trackers but they were no good? 

I present to you a solution to your problems!

The device can be hidden inside of a custom bike light, under the seat or be as a part of a steering handle. As the project advances and goes into a more serious production, an agreement can and will be made with more popular brands of manufacturers so that the device is hidden in the frame or anywhere in the construction, but also with the ability of the receiver to be exposed in a subtle way.

Communication will be based on Narrowband IoT (NB-IoT) which is a Low Power Wide Area Network radio technology standard. 

NB - IoT10-15kmSensor reading, tracking, fleet managementSubscription, sim card
Bluetooth20mClose proximity readings, smart homesHigh comm. rate
GSM35kmLong range capabilityHigh power demand

The obvious choice for this particular type of device is the NB-IoT and this disadvantages can be resolved by making a contract with a telecom operator and thus providing the customer with a subscription based on the economics plan.

Since this technology doesn't drain the battery, life of the device is prolonged by a large margin compared to not using the GSM standard. The battery life can last up to a year without charging as the device is mostly in sleep mode because of the non constant usage.

It is running on ATmega328 microprocessor, including the GPS module that finds the device location and a RTC (Real Time Clock) that puts the device in the correct state.

The device is currently at a second version which is currently being developed. The first prototype was functional and presented at a local hackathon at Split, Croatia where it won 3rd place.

I believe that is just the start and this idea has a long way to go, so if you have the same opinion please follow and like this project!

GitHub repository

fzz - 4.77 kB - 05/29/2019 at 14:02


  • 1 × Arduino Mini Pro ATmega328
  • 1 × SIM7000 NB-IoT module
  • 1 × GN-801 GPS module
  • 1 × 1000mAh Li-Ion battery
  • 1 × Wemos D1 mini Board used for prototype v2

  • Components composition in Fritzing

    Marin Vukosav05/29/2019 at 14:01 0 comments

    The way the components are organised is that the Arduino mini Pro is the brains of the operation, the battery is the heart that keeps everything running and other modules keep it functioning the way they are suppose to. 

    A boost voltage regulator is also used because the SIM800L needs 5V 

  • Code progress

    Marin Vukosav05/19/2019 at 20:47 0 comments

    Added new script to the existing repository: New source code

    Serial.print("Now, entering SMS content: ");
      char str1[16];
      char str2[16];
      dtostrf(, 10, 6, str1);
      dtostrf(gps.location.lng(), 10, 6, str2);
      char str3[4]= ",";
      char str [160] = "";
      strcat(str, str1);
      strcat(str, str3);
      strcat(str, str2);

    This is the content that is sent and also displayed on the other side.

    bool RTCinit(uint8_t interruptPin, function_ptr alarmISR);
    time_t RTCsetNewTime(time_t dataTime);
    void RTCsleepNow();
    void RTCprint(time_t t);
    time_t RTCsetNextAlarm(uint16_t sleepPeriod);

    Declaration of RTC functions that are crucial for maintaining the work flow of the device and keeping it up and running only when needed 

    That is where the key word come in hand and in this case it is set to "GPS"

    char x[15]="GPS";
    if (sms.available()) {
        Serial.println("Message received from:");
        sms.remoteNumber(senderNumber, 20);}

  • Login functionality and data representation in web app

    Marin Vukosav05/18/2019 at 07:06 1 comment

    Adding update and more functions to the existing BikePin web app on which all data representation and history will be based. 

    Client, by sending the key word message to the device, will be given the location and also that same location will be stored in his account on the app.

  • Prototype v2

    Marin Vukosav05/15/2019 at 11:22 0 comments

    For a local incubator business incubator competition, a modified version of the BikePin device was created which included a 18650 battery, Wemos D1 mini, GN-801 GPS module and a SIM800L GSM module.
    Device's functionality is based on MQTT protocol to which a key word is sent and only then a device responds to the sender with its exact location.
    GitHub repository

View all 4 project logs

Enjoy this project?



Alex wrote 12/07/2020 at 14:53 point

Hi! Could you pls. let me know why did you use additional GPS tracker instead of Location services LCS for Nb-Iot devices? What is the positioning approach did you use. What is the positioning accuracy? What is the max velocity for object positioning?

  Are you sure? yes | no

Marin Vukosav wrote 12/07/2020 at 15:18 point

Hi, GN-801 was used insted of LCS for Nb-Iot because then (last year) Nb-Iot was not available in Croatia. It was in the early phases of development by HT (Hrvatski telekom). It's deafult is GPS+GLONASS mode with HorizontalPosition:<2.5m average, SBAS < 2.0m average Velocity: 0.1 m/s

  Are you sure? yes | no

Alex wrote 12/07/2020 at 16:46 point

Marin, are you planning to use Nbiot positioning in your project? I see that Hrvatski telekom provides Nbiot M2M plans for their customers. 

  Are you sure? yes | no

Marin Vukosav wrote 12/07/2020 at 17:14 point

yeah, the goal is to switch completely to NbIot, but this project is on hold at the moment until I find more time :D

  Are you sure? yes | no

0100010 wrote 05/23/2019 at 23:56 point

Look into a Moteino as your controller.  Don't need the lora module or extra flash, but the bare board is very low consumption.  Built a Moteino / SIM7000 GPS tracker last year myself, with LTE Cat M1 backhaul, on a hologram dev sim, uploads location to a instance with a googlemaps API.

  Are you sure? yes | no

PaulG wrote 05/20/2019 at 19:54 point

+1 on the 3.3v pro mini, check lowpower.h too.  I am working on something similar.  Suggest you have a means of telling it YOU are riding, so do not use any battery, also wire up a shake detector so it is only starts working once the bike has started moving.  This is where I am up to, getting it all to work with lowpower lib AND gps over serial AND interrupts is proving quite a nightmare for me though ... Good luck!

  Are you sure? yes | no

Tillo wrote 05/14/2019 at 11:18 point

Hi, there are ideas for something similar but with LoRaWAN around here in Switzerland. Since there is some law which makes it relatively easy to run your own small scale bike sharing, and there's a relatively huge The Things Network community. If things work as intended, we're using the new microchip LoRa SIP. 

Maybe it could be interesting to share some experiences in the future, like print placement, antenna placements and stuff.

  Are you sure? yes | no

Marin Vukosav wrote 05/15/2019 at 10:57 point

Hi Tillo,
for sure, send me a message if you want to know more about this project. 
We were also thinking about using LoRa and it's still floating as a possibility :)

  Are you sure? yes | no

Daren Schwenke wrote 05/11/2019 at 18:21 point

18650's fit inside bike handlebars nicely, would give you about 2600mAh capacity, and are cheap and properly packaged to take some abuse.  Also, you can eliminate the constant drain of the onboard regulator if you use the 3.3v version of the Mini.  It can also run at 5v with no ill effects, so the swing of your battery voltage from 4.2v for fully charged to 3.0v for fully discharged is fine then.  You'll still need to stay within the construct of your support components here to eliminate that drain, which I have not looked at, so make sure they also support that voltage range.

  Are you sure? yes | no

Marin Vukosav wrote 05/11/2019 at 22:51 point

Thank you for your suggestion. We will look into it :)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates