Pebble Vs Bangle

Posted on
of 2
/ 2
  • I've used a Pebble for years and the Bangle js is the first watch I've seen even come close well done Gordon, so had to get one for Christmas.

    I am still using my Pebble as the Bangle still not quite there, I know it still early days. Keen to see how others are faring. I assume there are many Pebble users here.

    I find the vibration is not strong enough. I use my Pebbles vibration to wake up and the Bangles one is too week. Is this something that can be changed ?

    Battery life is great, still testing, My Pebble is about 5-7 days

    The Step count seems to be very far off. Its 8am and I've done 2120 steps. I only walked 20mts to the car.

    The heart rate also seems an issue. Showed a rate on 210 this morning. I know getting out of bed is a struggle but not that much. My Pebble never have the heart monitor feature so not the end of the world but irksome. Says my current heart rate is 43bpm, maybe I should get medial help?

    Also it says I've not slept yet. I have worn it in bed for several days but I don't seem to ever sleep according to my bangle.

    Software ideas
    These are some ideas that come from Pebble apps I've used.

    Music app that pulls down the album art when playing.
    App to control Camera and video on phone with image preview on watch
    Solitaire or some other card game.
    Will we be able to link with Tasker ?

    I assume others with chime in with comments.

  • Not a pebble user (or even a bangle user yet) but have you upgraded the firmware since arrival? If you look through the forum you'll find a long thread about the step counter, which should be counting a lot more accurately now than in the original firmware. I think you'd have @HughB to thank, hopefully not misremembering that.

  • I think it updated its firmware as soon as I started using it.
    says Version 2v11

  • Thanks! right now there's no sleep detection, which I guess is why Gadgetbridge isn't saying you slept. And I'm afraid there's not much we can do about vibration strength, short of maybe vibrating in some kind of pattern that makes it more noticeable.

    I'm surprised though as looking at Pebble teardowns it looked like they used the exact same vibration motor.

    I believe all firmwares should have had HughB's new step counter in. Is it possible it counted a bunch of steps when you were asleep if you were wearing it? I know step counting during sleep has come up as a potential issue, but in day to day wearing I've found the step counting pretty good now.

    And yes, heart rate is something that needs some work. The heart rate value comes with a 'confidence' and when that is 100% the heart rate is usually pretty accurate, but depending on what you use to view the heart rate (was it the HRM widget?) it may show you a heart rate value when the Bangle's still not completely sure what it is and you get all kinds of crazy values then.

    With your app ideas - hopefully when the Bangle.js Android companion app gets done some of those things will be a lot more possible (although sending images over Bluetooth is always a bit slow).

  • The Step count seems to be very far off. >Its 8am and I've done 2120 steps. I only >walked 20mts to the car.

    Was the 2120 steeps before you drove the car?

    I would expect maybe 200 steps on waking up, but it depends if you walk after midnight.

  • Is there any update on the progress of the android companion app? I have a project which may require it.

  • Hi
    Well I updated to 2v11 yesterday.
    Woke up with 1000 steps (must run in my sleep and didn't go for a midnight stroll)
    Walked to the car drove to work its 8:50am and I've done 5601 steps 4.2 Km apparently.
    I think I walked about 0.2 km of those.

    I've turned the heart monitor off, 1 cause its not working great and 2 to save power.
    don't think you can turn the pedometer off ?

  • Is there any update on the progress of the android companion app?

    No, not yet I'm afraid - I'm still spending the vast majority of my time on support. We're looking at it being probably 1 month away at minimum.

  • @Mr_Ploppy - need to check how you are getting the step count as there are different ways this might have been done. Are you using the Pedomter widget to get the step count or something else ? If you are not using the Pedometer widget please can you try that ? I'm interested to get to the bottom of this.

  • Yep I am using the standard Pedometer widget. Will wear watch again tonight and see what values I get in the morning.

  • Took me several attempts to actually film it. Not enough hands to hold everything. But this might explain a few values. Only does it at certain angles I think.

  • I can see the steps counting up spontaneously when you are tilting the watch.

    You are in the launcher, are you moving the menus back and forth and creating a feedback buzz.
    I can't see the actual clock, does it only do this when you are in the launcher ?

    Can you connect through the IDE and type


    in the left hand side and capture the output.

    Also type:


    And send a screenshot.

    You could also try recording 1 minute of the accelerometer output using the accellog app and attaching the log. Its always possible you have a bad accelerometer, maybe.

  • So this morning Bangle had 1000 steps, Pebble had 46.
    Drove to work and Bangle on 4000 Pebble on 1200

    It will still spontaneously count steps on the clockface too, if you have it at the right angle.

    lock: {

    area: "tl",
    width: 0,
    draw: function (w) { ... },
    x: 0, y: 0 },

    bat: {

    area: "tr",
    width: 40,
    draw: function () { ... },
    x: 135, y: 0 },

    widid: {

    area: "tr",
    width: 16,
    draw: function () { ... },
    x: 119, y: 0 },

    bluetooth: {

    area: "tr",
    width: 15,
    draw: function () { ... },
    changed: function () { ... },
    x: 104, y: 0 },

    widmoon: {

    area: "tr",
    width: 24,
    draw: function () { ... },
    x: 80, y: 0 },

    wpedom: {

    area: "tl",
    width: 75,
    getWidth: function () { ... },
    redraw: function () { ... },
    draw: function () { ... },
    reload: function () { ... },
    getSteps: function (undefined) { ... },
    x: 0, y: 0 },

    messages: {

    area: "tl",
    width: 0, iconwidth: 23,
    draw: function () { ... },
    show: function (quiet) { ... },
    hide: function () { ... },
    buzz: function () { ... },
    touch: function (b,c) { ... },
    x: 75, y: 0 },

    alarm: {

    area: "tl",
    width: 0,
    draw: function () { ... },
    reload: function () { ... },
    x: 75, y: 0 }


    1 Attachment

    • download.png
  • It really looks like you've got a faulty accelerometer or something along those lines.

  • Please could you try and install the accelerometer graph app from the development app loader?­ccelgraph

    It'd be really handy if you could run it, hold the Bangle on its side as you had it in that video, and see what the graph on the screen looks like.

    There's definitely something not right with your accelerometer. It may well be it's just a software issue though and it hasn't been set up correctly.

  • Thanks for the challenge Gordon.
    This took me quite a few attempts to get it to do it and film it.­pQQ

    From the accelerometer graph movement must be in the micron range but still counts as a steps.

  • Hi, I had something similar on a different platform. In that orientation, when connected to the WebIDE try seeing what values Bangle.getAccel() produces. If you have the same problem I had, the magnitude field will not be 1g.

  • Thanks for that @Mr_Ploppy, it's great to see the graph and the step count rising. The scale looks absolutely fine - on that app the scale is -2g .. +2g, and you can see the line from one of the axes which is at 1g, so that all look ok. And there's not what I'd consider to be an abnormal amount of noise either so it's definitely not an accelerometer issue.

    @HughB do we actually have a minimum threshold for triggering steps, or is it any peak at all now?

    I guess the next step might be we could record the accelerometer data from your watch and then play it back through the algorithm here to see why it's triggering steps.

  • @HughB do we actually have a minimum threshold for triggering steps, or is it any peak at all now?

    We do. There is a mimum scaled raw value of +-14 that has to be crossed for 3 samples before we start taking the output of the filter. The output of the filter then goes through peak detection and after that the state machine.

    These values are defined in stepcount.c as:

    // In periods of 12.5Hz
    [#define](­ch/?q=%23define) T_MIN_STEP 4 // ~333ms
    [#define](­ch/?q=%23define) T_MAX_STEP 16 // ~1300ms
    [#define](­ch/?q=%23define) X_STEPS 6 // steps in a row needed
    [#define](­ch/?q=%23define) RAW_THRESHOLD 14
    [#define](­ch/?q=%23define) N_ACTIVE_SAMPLES 3

    If you observe the x.y.z values when the watch is on a static flat surface you will sometimes see scaled raw values up to approx +-8 but the average over time is zero.

    I ran various configs of RAW_THRESHOLD, N_ACTIVE_SAMPLES, X_STEPS against the test harness and in practice and what we ended up with was the best result.

    I guess the next step might be we could record the accelerometer data from your watch and then >play it back through the algorithm here to see why it's triggering steps.

    Yes - I think we need to do this.

  • If you observe the x.y.z values when the watch is on a static flat surface you will sometimes see scaled raw values up to approx +-8 but the average over time is zero.

    Hmm, 14 isn't much (I think it's 0.002g?). It's possible that @Mr_Ploppy's accelerometer just happens to have that much noise on it (sounds like it could be well within spec).

    Ok, @Mr_Ploppy please can you install the 'acceleration logger' app ( and leave it recording for maybe 10 minutes while your Bangle is in the position where it keeps recording steps? Then you can use the save icon in the app loader (it appears when the app is installed) and can download the log file and post it here.

    After that we can put it into our test harness and make some tweaks to fix the step counting for you - and I bet a bunch of others too!

  • Hi

    Here's your log file. Ran it for a minute rather than 10, long time to hold it in the sweet spot. But I did get it to log about 60+ steps in that time frame.

    If you need longer let me know.

    1 Attachment

  • This does seem to be the problem I referred to earlier. I did a quick spreadsheet to compute (magnitude-8192)/32 which the step count algorithm does initially. Most values exceed 14 the RAW_THRESHOLD ( the average is 15.56). The step count algorithm assumes that at rest the magnitude will be 1g = 8192 which it will not be in all orientations for all accelerometers unless they are calibrated.

  • ( the average is 15.56)

    I put this log.csv into the test harness and with RAW_THRESHOLD at 14 it counts 59 steps. With RAW_THRESHOLD at 15 it counts 0 steps. This is an unbalanced accelerometer. The noise is always positive and rarely negative. Both of my Bangles would come out at 0 on average when left on a flat surface. I think we have had one other person complain of something like this. The question is how much do the accelerometers vary by ?

  • It is tempting to think that its just a case of incrementing the RWA_THRESHOLD to 15 but we should understand whats gone on here in terms of the variation on accelerometers.

    Maybe we could introduce a calibration phase of some decription.
    The idea behind the gated code was to stop just raw noise being looked at.
    My observations did see that there was usually more positive noise than negative in the signal.
    Needs thinkng about.

    $ make;./main
    gcc -std=c99 main.c -I . -o main
    File, Expected, Simulated, Diff, %, (Orignal)
    HughB-walk-6605.csv, 6605, 6397, -208, 96.85 %, (3223)
    HughB-walk-2350.csv, 2350, 2243, -107, 95.45 %, (1042)
    HughB-walk-a3070-b3046.csv, 3070, 3013, -57, 98.14 %, (1909)
    HughB-walk-a10021-b10248.csv, 10021, 10253, 232, 102.32 %, (12222)
    HughB-drive-36min-0.csv, 0, 160, 160, 0.00 %, (1199)
    HughB-drive-29min-0.csv, 0, 192, 192, 0.00 %, (1153)
    HughB-drive-a3-b136.csv, 3, 124, 121, 4133.33 %, (535)
    HughB-work-66.csv, 66, 97, 31, 146.97 %, (980)
    HughB-work-66.csv, 66, 97, 31, 146.97 %, (980)
    HughB-mixed-390.csv, 390, 541, 151, 138.72 %, (1871)
    HughB-general-a260-b573.csv, 260, 578, 318, 222.31 %, (3854)
    HughB-housework-a958-b2658.csv, 958, 2663, 1705, 277.97 %, (5762)
    log.csv, 60, 59, -1, 98.33 %, (1)
    $ make;./main
    gcc -std=c99 main.c -I . -o main
    File, Expected, Simulated, Diff, %, (Orignal)
    HughB-walk-6605.csv, 6605, 6313, -292, 95.58 %, (3223)
    HughB-walk-2350.csv, 2350, 2233, -117, 95.02 %, (1042)
    HughB-walk-a3070-b3046.csv, 3070, 2979, -91, 97.04 %, (1909)
    HughB-walk-a10021-b10248.csv, 10021, 9870, -151, 98.49 %, (12222)
    HughB-drive-36min-0.csv, 0, 120, 120, 0.00 %, (1199)
    HughB-drive-29min-0.csv, 0, 153, 153, 0.00 %, (1153)
    HughB-drive-a3-b136.csv, 3, 111, 108, 3700.00 %, (535)
    HughB-work-66.csv, 66, 82, 16, 124.24 %, (980)
    HughB-work-66.csv, 66, 82, 16, 124.24 %, (980)
    HughB-mixed-390.csv, 390, 507, 117, 130.00 %, (1871)
    HughB-general-a260-b573.csv, 260, 479, 219, 184.23 %, (3854)
    HughB-housework-a958-b2658.csv, 958, 2321, 1363, 242.28 %, (5762)
    log.csv, 60, 0, -60, 0.00 %, (1)
  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview

Pebble Vs Bangle

Posted by Avatar for Mr_Ploppy @Mr_Ploppy