Close
0%
0%

Open source sport/smart watch

Make Weloop Tommy an open source sport watch that can connect directly to all kind of sensors (heart rate monitor and so on)

Similar projects worth following
Make a Weloop Tommy an open source sport watch that can be used without a mobile phone. Want to see a heart rate when running, cycling speed and cadence when cycling or number of laps while swimming? Help to make it possible!

The idea is simple. Write a custom firmware that allows to communicate with many BLE enabled sensors and shows live values on a watch screen.

This project is divided into six phases:

  • Phase 1: find out and document watch pinout so it will be possible to communicate with screen, accelerometer and a flash memory from a custom firmware. DONE
  • Phase 2: write a custom firmware that will print sample text on a screen and expose a BLE service. Firmware will be flashed using SWD connector. DONE
  • Phase 3: make it possible to upload a custom firmware using OTA. This will save the waterproof case from destruction. DONE
  • Phase 4: update softdevice to the newest version (S110 8.0.0). Add possibility to switch to S120 2.0.0 softdevice. DONE
  • Phase 5: create a "terminal" firmware that allows to control what is displayed on a watch from an android/iOS app. DONE
  • Phase 6: create a "standalone" firmware using S120 softdevice that can connect to external sensors (HRS, CSCS etc) without a phone. IN PROGRESS

Roadmap:

  • 0.5.0
    • possibility to upload multiple watchfaces/applications
  • 0.6.0
    • support for country specific characters in user fonts

Instructions:

Some instructions can be found here: http://ossw.github.io/

Current version: 0.4.1

https://github.com/ossw/ossw-firmware-s120/releases/tag/0.4.1

Beta testers group

https://groups.google.com/group/ossw-beta

If you like this idea and want to support my work please donate HERE. Thanks!

  • 1 × Weloop tommy
  • 1 × Big amount of time ;)

  • OSSW 0.4.0 is here

    Krzysiek10/19/2015 at 21:25 9 comments

    Some time has passed since my last log but it doesn't mean that nothing was done. Today I finally managed to release 0.4.0 version. Changes are not groundbreaking but it's an important step to make this watch useful and customizable.

    Changes:

    I've spend most of the time on putting a good filesystem that will work with this very limited amount of RAM. Only 6kB of processor RAM are available for the app, that's twice the size of the screen buffer. There are still some things to do on the app size to be able to synchronize multiple files but it's now quite easy to do and should be available in few weeks. We have 512kB of flash storage and it should be enough for this.

    Second big point was making it stable. Both the BLE connection and watch firmware itself. I've tested it for few days and never had situation when watch was not connected to the phone. Also random freeze or screen shifted by 8 pixels should not happen.

    Third most important part for me was to add possibility to attach images, number fonts and enumerated images. So your watch will look like you want. For example now you can draw different images based on current day of week. That's also a good base for some weather forecast plugin.

    Also some minor things were added:

    - current day of week and day of year

    - support for 12h clock

    - external plugin text parameters may be now longer so current song name, artist etc can be displayed in multiple lines

    - plugin installation/update/reinstallation will not require OSSW app restart, it will reconnect to new/modified plugin.

    - OSSW app after next upgrade will automatically reconnect to last connected watch, so automatic update will not break connection.

    - There's notification with current progress of watchset upload (watchsets may be big now so it can take some time)

    - Update in musicplayer plugin that allows to control music volume

    Thanks to these changes next release should be much faster than this one. I've published some new watchsets to show new features, all files can be found HERE

    It would be great if I could make a web based GUI that will allow to build watchsets by drag and drop. Unfortunately for now, to be able to attach images you have to use some basic tool available HERE. Look's like it works only in Chrome for now, will try to fix that in next few days.

    How to update:

    To update firmware use nRF Toolbox, HERE you can find ossw-firmware-s120-0.4.0.zip

    You don't have to go to bootloader mode or something. Just update from nRF Toolbox:

    DFU -> SELECT FILE -> Distribution packet (ZIP) -> ossw-firmware-s120-0.4.0.zip, select device and click UPLOAD

    Sample photos:


  • Still alive

    Krzysiek06/03/2015 at 07:12 25 comments

    Just quick update what I've managed to do:

    • it's possible to choose between central (without phone) and peripheral (with phone) mode on watch start
    • I've written simple android app that sends sensor data from IpSensorMan to a watch in peripheral mode. Currently it's only HR and CSC but it's extremely easy to add any other sensor type that IpSensorMan supports. IpSensorMan supports both ANT and BLE devices (to use BLE devices you need to install beta version of this app)
    • In central mode watch can connect directly to HR sensor. Other sensors will be added but it requires a little bit more work then adding them in peripheral mode.
    • I rewrote gui so it's now more generic and allow to use controls on a screen. Still it requires a bit of work to be able to define what should be displayed on a watch from the phone screen (like cycling speed in this place and this size, heart rate there etc.)
    • Handling notifications like missed phone calls and sms is still TODO
    • I've managed to create a firmware that reverts watch to original softdevice/bootloader so it will be possible to go back to original firmware if you don't like mine ;)
    • I've embedded PAWN abstract machine so it's possible to run scripts on a watch but only from internal flash/ram, have to rewrite it to be able to read them from external flash.

    All of this is still an alpha version so I have to put some more work to make it user friendly and generic. Expect some photos/videos how this works in the next week.

  • What's next?

    Krzysiek05/13/2015 at 09:13 2 comments

    Hi, I'm back and here are the things I will focus on in the next days/weeks:

    • add font support + possibility to upload fonts for given locale
    • write android app that sends notifications to the watch
    • add a service to android app that will allow to register data sources from other android apps like current weather, data from external sensors etc.
    • embed PAWN abstract machine to allow writing custom apps for the watch, those compiled scripts will be saved on external flash so there will be additional 512kB for the apps.

  • Quick update

    Krzysiek04/20/2015 at 22:25 6 comments

    I've just recorded watch upgrade process and will publish it in a few days. It's stable, I've added visual notification to be able to verify if everything was upgraded successfully.

    HERE you can find a newest softdevice/bootloader installer. After flashing this firmware watch will restart and use the newest S120 2.0.0 softdevice. After that you can upload your custom firmware that can work as a peripheral or as a central device. I've also created a mock application to start writing firmware, source code for it can be found HERE.

    DFU (bootloader) looks like this:

    Test app:

    And without backlight:

    From now on I will focus on firmware functionality. Stay tuned!

  • Softdevice/bootloader installation internals

    Krzysiek04/15/2015 at 19:41 0 comments

    Finally I have some time to describe how to override bootloader and softdevice. It's not supported by weloop bootloader but nothing stops us from writing a custom firmware that will allow this. To make it as simple as possible and to use existing applications that support nordic DFU I've decided to merge custom installation app with a new bootloader and a softdevice and upload it as a new firmware. After firmware upload installation app is started and bootloader and softdevice are copied to the correct addresses. Unfortunately it's not so easy because it's not possible to override softdevice from the firmware. There's also problem with UICR registers because it's not possible to override them. There's only one way to change UICR - make a full memory erase. But when we do this from a firmware then watch will crash after erase because processor will be executing instructions from empty flash...

    So how I did this? I've created two apps:

    • ossw-installer - this app makes a copy of new softdevice and bootloader to an external flash, makes a full memory erase, copies new softdevice and bootloader from external flash to processor flash and sets correct values in UICR.
    • ossw-jump - this app copies ossw-installer to processor RAM and jumps to its start address.

    So haw does it work step by step? On the left there's a weloop processor flash structure before any changes. In the middle there's memory structure of ossw-combined.bin file. On the right there's a weloop processor flash structure after installation of ossw-combined.hex using nRF Master Control Panel.

    After firmware installation weloop restarts and bootloader is executed and passes execution to ossw-jump. This app copies ossw-installer to RAM.

    Then ossw-jump jumps to ossw-installer start address. This app copies new bootloader and softdevice to external flash.

    After copying bootloader and softdevice full memory flash erase is executed so weloop processor flash is empty.

    And finally new bootloader and softdevice is copied from external flash to processor flash and new bottloader address (0x3C000) is set in UICR.

    And that's it, we have a new bootloader and S120 2.0.0 softdevice and may upload a new firmware with nRF Toolbox.

  • Changing softdevice and bootloader relocation

    Krzysiek04/09/2015 at 21:59 0 comments

    Today I finally managed to upload a new bootloader/softdevice to a watch! It wasn't easy because bootloader that is originally installed on weloop does not allow to upload a new softdevice or bootloader. There's also no support in softdevice to run command on device start (using MBR) that will copy part of firmware from one place to another (it was added in 7.1.0 softdevice and is required to change bootloader or softdevice). So the biggest issues were:

    • no bootloader/sofdevice upload feature in original bootloader
    • no way to use a newer bootloader code because it requires features that are not available in S110 6.0.0 softdevice.
    • UICR cannot be updated! That's the biggest issue because there is a value 0x14000 set at 0x10001000 address so there's no way to use newer softdevice with this value there. There's also 0x38000 set at 0x10001014 and I wanted to make bootloader smaller and use 0x3C000 as a start address.

    So how I manage to do this? I will describe it tomorrow because it's time to go sleep ;) If you want to check it yourself take a look at THIS CODE. A compiled firmware that replaces bootloader/softdevice can be found HERE. But be careful with it, it can brick your watch!

    So from now on my weloop can connect directly to other devices without a mobile phone! Now's time to write an awesome firmware ;)

  • Nothing fancy

    Krzysiek04/02/2015 at 22:44 0 comments

    I've wasted few days trying to upload a sample app using S110 8.0.0 softdevice and here are the findings:

    • it doesn't work with current (2.1.1) nRF Master Control Panel app for android :(
    • it will work with Master Control Panel for windows but I have MacOSX... I didn't manage to install MacBook Pro bluetooth host controller driver in Windows within Virtualbox. It doesn't work either in wine (no bluetooth support).
    • it WORKS with nRF Toolbox for android but only if you remove Chronos eco android app!
    • Chronos eco app for android is a crap. Even if device is not paired and app is closed it breaks communication. I wasn't able to upload an app with bootloader provided with 8.0.0 softdevice when using OTHER software. After removal everything works ok. One more strange feature is that when you enter DFU mode and upgrade firmware from chronos eco android app then it will install... weloop firmware that is not compatible with chronos eco app :D

    Good news:

    • My new watch came today so I will upload a new softdevice and an app to it soon.
    • I've decided to use S120 softdevice. It has big advantage - in newest version (2.0.0) it can be used both as a central or peripheral device (all features available in S110 7.1.0) but only one at a time. This will give us a possibility to switch watch from terminal to standalone mode!

  • Almost there

    Krzysiek03/26/2015 at 21:16 0 comments

    The bed news is that it's not possible to update softdevice/bootloader with standard weloop bootloader. When you try to update the firmware/application it works but when you try to update bootloader/softdevice it just restarts.

    The good news is that we can write a custom application that will do this. Now I'm working on an app that will fetch new bootloader/softdevice using nordic UART over BLE and save it in external flash. When everything is uploaded then it will copy data from external flash to internal flash and we will have a new softdevice/bootloader. And I have to write it using nrf 5.2.0 SDK which is really annoying ;)

    There was only one problem... I didn't know what external flash is in this watch. After some research I found out that there is a standard spi command that works with almost every flash chip. It's 90h and returns chip version but that version may be shared between many variants of the same chip. Then I found a newer command: 9Fh and now I'm 100% sure what chip is there.

    Manufacturer Id: 0xEF

    Device Id: 0x4013

    So it's definitely THIS chip :)

  • Sky is the limit!

    Krzysiek03/22/2015 at 09:01 2 comments

    Today I managed to write an app for mac OSX that's able to upload a custom firmware using firmware update feature of the watch. It doesn't require to enter an OTA mode so there's a catch:

    You can upload a custom firmware to any watch that's in the bluetooth range and is not connected to any phone! No physical access needed!

    Because of that issue I decided not to publish source code. But it doesn't stop you from uploading your custom firmware in OTA mode. To enter OTA mode just connect a charging cable, press all 3 buttons on the right side of the watch and release top and bottom keeping middle button pressed few seconds more. How to upload a new firmware in that mode? Just use a nRF Master Control Panel on an android phone. No need to calculate and provide firmware checksum (.dat file), watch bootloader is old and doesn't require to do that.

    Firmware upgrade constrains

    There are two ways to modify the watch:

    • Update just the firmware
    • Update firmware, soft device and the bootloader

    The first option is quite easy. There's no way you can break anything (unless you play with internal flash from the code ;) ) because there's always a possibility to switch watch to an OTA mode and override existing/broken firmware. But it has also the biggest limitations:

    • we have to use existing softdevice which is a S110 6.0.0. This is very old and obsolete softdevice and it's not possible to write code in mbed (unless you use an old/buggy version)
    • we're limited to being a peripheral device so no way to connect to an external sensor without a phone

    To write a firmware that way you need to:

    • Set firmware base address to 0x14000 (that's the address of the first instruction in the firmware)
    • Your firmware cannot be bigger than 147456 bytes (0x24000 bytes) because than you will override a bootloader (it starts at 0x38000)
    • Use old NRF SDK 5.2.0 with S110 6.0.0 soft device

    The second option is to override not only firmware but also the bootloader and the softdevice. That way we can use other softdevices like S120 (for central device) or S130 (both central and peripheral) and write anything we want!

    I will try to upload S130 softdevice and a sample app in the following days. Stay tuned!

  • Battery level/charging

    Krzysiek03/17/2015 at 22:20 0 comments

    Weloop tommy uses bq24232 chip as a battery charger. Documentation for this chip can be found HERE.

    There are only two pins that are interesting for us, one is a charging indicator which is high when an external power supply is connected. The second one is a battery level.

    DescriptionNRF WLCSP ballNRF pin name
    Battery levelH9P0.05
    Battery charging indicatorC5P0.25

View all 15 project logs

Enjoy this project?

Share

Discussions

Sanjay Mishra wrote 09/06/2015 at 11:30 point

 I might be able to contribute accelerometer code if we have a schematic and accelerometer part number.

Do we have a schematic for the watch? Do we know the accelerometer being used?

  Are you sure? yes | no

Krzysiek wrote 09/08/2015 at 16:47 point

Accelerometer specification and pinout can be found here: https://hackaday.io/project/4510-open-source-sportsmart-watch/log/15222-accelerometer-pinout

I've managed to connect to it and configure to invoke interrupt after directional tap but it was quite useless (hard to find a good threshold) so it has many false positives or not always caught a true tap. 

Had problem with hardware I2C because it uses the same interrupt as SPI so I've used software I2C.

You can find some code here: https://github.com/ossw/ossw-firmware-s120/commit/8fb81c4506c465ada32c125a30424a0d8ba3f6f0

I've exposed two commands over BLE: 0xF0 and 0xF1 to set/get accelerometer register. I've configure it from external app with commands:

//0x2A: CTRL_REG1 System Control 1 register

[0xF0, 0x2A, 0];

//0x0E: XYZ_DATA_CFG register

[0xF0, 0x0E, 0];

//0x2B: CTRL_REG2 System Control 2 register

[0xF0, 0x2B, 0x1F];

//0x2C: CTRL_REG3 Interrupt Control register

[0xF0, 0x2C, 0x10];

//0x2D: CTRL_REG4 Interrupt Enable register (Read/Write)

[0xF0, 0x2D, 0x08];

 //0x21: PULSE_CFG Pulse Configuration register

[0xF0, 0x21, 0x55];

//0x23 – 0x25: PULSE_THSX, Y, Z Pulse Threshold for X, Y and Z registers

[0xF0, 0x23, 0x20];

[0xF0, 0x24, 0x20];

[0xF0, 0x25, 0x20];

//0x26: PULSE_TMLT Pulse Time Window 1 register

[0xF0, 0x26, 0x10];

 //0x27: PULSE_LTCY Pulse Latency Timer register

[0xF0, 0x27, 0x20];

//0x28 PULSE_WIND register (Read/Write)

[0xF0, 0x28, 0x5];

[0xF0, 0x0F, 0x10];

[0xF0, 0x2A, 0x69];

  Are you sure? yes | no

rafniedz wrote 08/24/2015 at 09:28 point

Great idea! I own ChronosECO (Weloop tommy) from a few weeks and I really enjoy! I'm curious what can be done with this HW. Up to now I really miss a simple vibrating alert feature to wake me up morning without disturbing my wife or youngest child :-)

  Are you sure? yes | no

Gorkem wrote 08/20/2015 at 15:16 point

Hello I return welopp tommy fw to chronos ECO but I not like chronos ECO. I again installing weloop Tommy fw watch is brick. After I install project open firmware and return chronos ECO but I dont linke chronos ECO I want install welopp tommy. Project Open firmware return chronos ECO method work for welopp tommy fw?.  How to chronos ECO to welopp tommy. I try xda-developers instructions but not work 

  Are you sure? yes | no

Krzysiek wrote 08/21/2015 at 07:31 point

I've never installed weloop tommy firmware on my watch so I cannot help. Try to ask on xda-developers for more help.

  Are you sure? yes | no

Gorkem wrote 08/21/2015 at 15:30 point

did you change something on chronos eco firmware for turn to ossw firmware from chronos eco firmware? ıf ı make same transaction of turn to ossw firmware from chronos eco firmware with weloop tommy filmware (its in xda-devolopers forum), can i be succesfull?

  Are you sure? yes | no

Gorkem wrote 08/21/2015 at 18:29 point

ı did what ı wrote and ı convert to wellop tommy succesfully!Thank you for everything

  Are you sure? yes | no

saintgeorge80 wrote 08/01/2015 at 17:30 point

I installed version OSSW - 0.2.0 on how to return goclever eco watch software!

Please write me instructions on how to return it!

  Are you sure? yes | no

Krzysiek wrote 08/01/2015 at 20:26 point

Check PM

  Are you sure? yes | no

ꝺeshipu wrote 07/28/2015 at 14:34 point

This looks like a really great project. I have one of those watches, but it has been just lying there, gathering dust. Hopefully I can do something useful with it with the help of your code. Thanks!

  Are you sure? yes | no

xum4r1x wrote 07/28/2015 at 14:55 point

Yeah it is fun thx to kryzsiek tho..worth every money donated.

Currently im learning json to modiy the musicplayer

  Are you sure? yes | no

xum4r1x wrote 07/28/2015 at 13:34 point

i try upload musicplayer.json..however after the connection lost the watch is not functioning and the screen is stuck at music player.

Is there any way to hard restart the watch?

  Are you sure? yes | no

Krzysiek wrote 07/28/2015 at 13:38 point

Back button should work, if it's not working than only hard reset will work: connect charging cable and press up and down button at the same time.

  Are you sure? yes | no

xum4r1x wrote 07/28/2015 at 14:08 point

great it works..

Can u explain about peripheral and central mode?

I am not familiar with HRM

  Are you sure? yes | no

Krzysiek wrote 07/28/2015 at 14:17 point

It's bluetooth mode. Only device working in central mode may connect to device working in peripheral mode.

In peripheral mode watch is exposing some services and other device (e.g. phone) may use it. In central mode watch may use services exposed by other devices. 

Heart rate sensor is always a peripheral device.


So in peripheral mode:
- phone is a central device and connects to a watch (peripheral device)
- phone may also connect to other peripheral devices like HRS
- any data that is sent to watch is collected by the phone

In central mode:

- watch is a central device and connects to peripheral devices like HRS

- watch collects and process data from connected devices

- phone is not participating in this mode

  Are you sure? yes | no

xUmaRix wrote 07/24/2015 at 17:17 point

I downloaded https://github.com/ossw/ossw-installer/releases/download/0.3/ossw-installer-combined-0.3.bin

However when i try to upload the file using https://play.google.com/store/apps/details?id=no.nordicsemi.android.nrftoolbox

I select application browse the file and choose no to init packet

I click upload  got error DFU SERVICE NOT FOUND

Weloop watch Force OTA

After couple of try the screen change to updating 0% but got error GATT INTERNAL ERROR

Managed to upload the firmware successfully after uninstall weloop app 

  Are you sure? yes | no

Krzysiek wrote 07/24/2015 at 17:37 point

If you're sure you entered OTA mode on the watch then the only reason may be that Weloop app is breaking the connection, try to remove weloop/chronos app before upload. 

The other reason may be that nordic updated nRF toolbox two days ago and they broke backward compatibility :/

  Are you sure? yes | no

uysal wrote 06/23/2015 at 00:51 point

Hi,

I didn't see your comment.

Can I install weloop tommy android app again, now???

Thanks bro.

  Are you sure? yes | no

Krzysiek wrote 06/23/2015 at 07:48 point

Yes, you can. Do it according to the instructions I've sent you few weeks ago and it should work. After that you will have chronos eco firmware. It should be possible to go from chronos eco to welloop tommy firmware (I've never done it).

  Are you sure? yes | no

uysal wrote 06/23/2015 at 08:11 point

How I install chronos eco?

I am very happy for your to help :)

  Are you sure? yes | no

raicg wrote 06/25/2015 at 08:52 point

Krzysiek, can you compile and upload for us the bootloader of chronos eco?

  Are you sure? yes | no

bogdan wrote 06/14/2015 at 12:09 point

Great work! any idea if it's possible to configure one of the 3 hardware buttons to do a specific task? I am thinking of using a button to trigger a message/action to the phone. From there (phone), using Tasker app, possibilities would be endless

  Are you sure? yes | no

Krzysiek wrote 06/14/2015 at 13:37 point

Hi, this feature will be available soon, I think two weeks is max. I hoped that I will show something this weekend but it's a lot of work to do. It's still in progress but I have an android app that allows to register external plugins (so everyone can write them and integrate with my app), I wrote two sample plugins, one that integrates with music player on android and the second one for IpSensorMan integration. The second part is possibility to define screens and relations between them and define what button do what (I distinguish short and long press to have more options). In the first version there will be no GUI to define screens, just json file that can be loaded by the app, compiled and send to the watch. I hope I will publish everything in a week or two.

  Are you sure? yes | no

bogdan wrote 06/14/2015 at 15:40 point

Can't wait to control other electronics using this watch :) ex. Weloop Tommy (button press) -> Android Phone running Tasker -> Raspberry Pi -> GPIO control -> anything (relay, Led,etc.)

  Are you sure? yes | no

raicg wrote 06/12/2015 at 20:34 point

Where I can download the latest firmware maded?

Can you compile it and upload for me, and the android app too?

  Are you sure? yes | no

raicg wrote 06/17/2015 at 00:11 point

?

  Are you sure? yes | no

Krzysiek wrote 06/17/2015 at 08:45 point

I hope I will publish android app in play store this weekend and will add here a link to compatible firmware. I still have half made changes that's why I don't want to publish new binaries. You can always build it from sources if you want.

  Are you sure? yes | no

szuszen wrote 05/20/2015 at 18:20 point

Cześć,
Chciałbym zwrócic twoją uwagę, że równie liczna grupa użykowników używa sensorów ant+. W przypadku tego standardu sprawa z wyświetlaniem danych z sensorów może być ułatwiona ponieważ istnieje już oprogramowanie, które może działać jako midleweare tj. IpSensorMan: 

https://play.google.com/store/apps/details?id=com.iforpowell.android.ipantman.

Autor tego programu stworzył zresztą oprogramowanie na Sony Smarwatch, które wyświetla tętno lub wysokośc:

http://www.iforpowell.com/cms/index.php?page=ipsmarthr

http://www.iforpowell.com/cms/index.php?page=ipsmartaltimeter

Pozdrawiam

Michał

  Are you sure? yes | no

Krzysiek wrote 05/21/2015 at 09:36 point

Cześć, apka wygląda spoko i wpasowuje się w koncepcję. Do tego w najnowszej beta wersji jest wsparcie dla BLE więc znacznie uprości to integrację z sensorami, dzięki za info. Postaram się z nią zintegrować w najbliższym czasie.

  Are you sure? yes | no

uysal wrote 05/18/2015 at 13:28 point

I failed.I installed "ossw-combined-0.2.bin".Then I want to install "ossw-firmware-s120-master.zip".But I can't install.I have this error:

http://i.hizliresim.com/ZDZ1Oa.jpg

  Are you sure? yes | no

Krzysiek wrote 05/18/2015 at 13:44 point

How did you get/build this ossw-firmware-s120-master.zip? Try this one: https://www.dropbox.com/s/ymgqhitxuilps6p/ossw-firmware-s120.zip?dl=0
That's the latest snapshot I have on my watch.

  Are you sure? yes | no

uysal wrote 05/18/2015 at 14:39 point

thanks. it's ok right now.But I haven't menu for watch. so, Can I use chronos eco or weloop tommy app again?

  Are you sure? yes | no

Krzysiek wrote 05/18/2015 at 14:53 point

It's possible but not supported, that's why in the only place where you can download installer there is a upper case info:

"WARN: AFTER INSTALLING THIS SOFTDEVICE/BOOTLOADER YOU WON'T BE ABLE TO USE ORIGINAL FIRMWARE SO INSTALL IT ONLY IF YOU'RE A DEVELOPER!"

To go back you would have to modify ossw-installer so that it will install original softdevice and bootloader. I can not do/publish this because original firmware is a proprietary of weloop/go clever and they will be very angry if I will do this :)


And you do not see a menu because it's not a modification of their firmware, it's written from scratch and it's still not implemented ;)



  Are you sure? yes | no

uysal wrote 05/18/2015 at 15:06 point

I knew.And I have already bricked my watch and I try install this firmware.I waiting you for best firmware with menu :)

  Are you sure? yes | no

uysal wrote 05/31/2015 at 10:57 point

any news ???

I wait to new app like chronos eco, weloop tommy...

because I can't install weloop tommy or chronos eco :(((

  Are you sure? yes | no

Krzysiek wrote 06/01/2015 at 08:27 point

If you want this really fast then you can help to write it :) Here's a source code for app that's able to connect to the latest version of the firmware and sends heart rate from IpSensorMan app. You can add there anything you want there ;)

https://github.com/ossw/ossw-android


I've written firmware that can revert to original softdevice/bootloader but to work it will require a rewrite of the bootloader because currently it's using dual bank version written by nordic and it will only allow to upload a 62kB firmware and we have to upload 124kB so bootloader has to write data to external flash instead of the internal one.

  Are you sure? yes | no

Krzysiek wrote 06/03/2015 at 07:19 point

Tomorrow you will be able to go back to original firmware, just have to test it a little bit more.

  Are you sure? yes | no

opalinus wrote 06/09/2015 at 23:10 point

I tried flashing my watch, but the only firmware which was at least tried (went to 99% then failed with CRC error) to being written on the watch was "ossw-firmware-s120.zip" as linked in your comment above mine.

None of the other combined releases (aka ossw-bootloader-s120-0.3.zip or ossw-installer-combined-0.3.bin) worked for me with nRF Toolbox. I am using Lollipop on Moto G2. I would love to getting started with the PAWN interpreter, and be your guinea pig :)

Also my watch is constantly restarted (backlight going on-off-on) in like 30sec-1min in Updating Mode.

  Are you sure? yes | no

Krzysiek wrote 06/10/2015 at 07:23 point

If you don't want to brick your watch then don't try install those files randomly ;) There are 3 files:

ossw-installer-combined-0.3.bin - this one installs new bootloader and softdevice, it the first file to install, without it none of the other files will work. You have to choose "Application" and "Init packet: No" when uploading this file.

ossw-firmware-s120.zip - this one is a firmware, it's best to built it by your own because the attached version is quite old and still this firmware is useful only for someone who can change few parts a build it from source. You have to choose "Distribution packet (ZIP)" when uploading this file.

ossw-bootloader-s120-0.3.zip - it's a bootloader update pack for those who installed ossw-installer-combined-0.2.bin (old version)

So if you're really sure you want to install this then you need only the first and the second file. But if you want to test PAWN scripts then you will have to modify this firmware a little bit because I've just test it by embedding compiled scripts into the firmware so there's no way to upload it yet (but it will be very easy). 

The original bootloader restarts every one minute, don't know why, ask weloop guys why they did it that way ;)

  Are you sure? yes | no

opalinus wrote 06/10/2015 at 15:00 point

Thanks for the quick post. I installed the first two files successfully and my watch is now running your firmware. yay :)

But I havn't got to fully understand your firmware and therefore havn't tried to actually build the more recent version on my own with µvision.

  Are you sure? yes | no

J F wrote 04/23/2015 at 06:17 point

Could you give me a hint how will the "terminal" firmware

work?

example:

1) I would want to write peddometer like it is in original firmware

2) I would want cyclometer, which would every half second send current speed and distance from start.

I guess there will be two parts, Android app and phone app. 

So Android app will use some API for sending data to watch?

In what language will be possible to write terminal app and how will we access sensors?

Will those tasks be possible? Thank you :)

  Are you sure? yes | no

Krzysiek wrote 04/23/2015 at 07:32 point

That's exactly what I want to do, expose some service on the watch and connect to it from an android service that expose some API that is available from other android apps. Easy version is that phone will send commands what to draw on a watch screen, the harder one is to allow to write extensions to the watch that will receive commands and decide what to draw but I think it's too much work for one person.

  Are you sure? yes | no

J F wrote 04/23/2015 at 11:53 point

Well i could be able to help you if you could find some time to guide me how the firmware works. 

But not now, i still have a lot of school. So maybe in june.

  Are you sure? yes | no

yustinus.albert wrote 04/21/2015 at 07:36 point

Krysiek, Can you give us the complete tutorial how to install your bootloader + Firmware if you already done? and hope you can have switch on/off for vibration notification 

  Are you sure? yes | no

Krzysiek wrote 04/21/2015 at 07:43 point

Hi, this firmware is still just a POC (proof of concept) so after installing it you cannot do much if you're not a developer. And it will be hard to go back to original weloop/chronos firmware because it's not compatible with S120 softdevice. So at current stage it's only for developers who want to write their firmware or to help with mine ;)

  Are you sure? yes | no

Lucio Antoniolo wrote 04/16/2015 at 16:17 point

Very good work! Keep going.

  Are you sure? yes | no

Jaakko Kukkohovi wrote 04/12/2015 at 19:46 point

Awesome project, I might have to order one for myself to toy with. Any chance to get some pictures inside the casing? Do you think it would be possible to dismantle the watch, swap in a custom PCB and reassemble without lots of damage? I'll send some dollars your way for the nice work!

  Are you sure? yes | no

Krzysiek wrote 04/13/2015 at 07:15 point

Hi, thanks for donation! I didn't manage to disassemble the watch without much damage to the casing. The front glass is glued to the case (so the watch is waterproof) and it's hard to detach it. I've tried with a hot air (around 200 C deg.) without a success so I had to break the case. Inside the case there's everything you can see here:  
board is around half of the screen size and other half is a battery. All parts are fixed to the removable plastic frame so inside the casing there's only cuboid space matching the screen size.

  Are you sure? yes | no

Jimmy Heawenson wrote 04/11/2015 at 20:35 point

This was something I was looking for and stumbled upon here on hackaday! Thanks for all your work, I'm about to order my own "tommy" and will gladly help in any way I can! (will also donate)
Keep it up!

  Are you sure? yes | no

Krzysiek wrote 04/13/2015 at 07:23 point

Hi, I should create a base firmware in the next few days and everyone will be welcome to add any features their need. There should be also an android and iOS app to communicate with the watch so there's a lot of work to do ;)

  Are you sure? yes | no

billchristiansen50 wrote 04/03/2015 at 21:10 point

Good luck with the project, I've made a small contribution.

Got my Weloop Tommy a few weeks ago. I see on xda thread that some are using the chronos Eco firmware so I tried flashing this but after loading it gave me a white screen with backlight permanently on so I had to go back into OTA mode and flash back Weloop firmware.

  Are you sure? yes | no

Krzysiek wrote 04/03/2015 at 22:01 point

Hi, thanks for support! I had the same issue, chronos eco app flashed broken weloop firmware, screen was white and failed to connect to chronos app. BLE device name was Weloop_XXXX :)

  Are you sure? yes | no

jorgemartinez439 wrote 03/22/2015 at 17:25 point

You made my day man! After playing a while with original goclever soft I was desperately looking for a way to write my own. Your work here (pinouts especially) are hard to overestimate.

  Are you sure? yes | no

♫ Reece ♫ wrote 03/11/2015 at 19:07 point

Really interesting work dude, keep it up! 

  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