jueves, 9 de marzo de 2023

Migration from WF Classic to Basilisk browser (data/profile )



Moving between browsers (from WF Classic to Basilisk) [legacy firefox]


Why?/Reasons
Notes
1) The "Profile" folder [1]
2) Logins [1]
3) Backup/Restore
4) Formfill history [1]
5) Cookies
6) Cleaning extensions(WE) [TODO]
Summary
Literature



Why?/Reasons

Waterfox Classic has been abandoned and compatibility with modern pages will not improve anymore.

Basilisk has active support, its community is still creating/maintaining XUL extensions and compatibility with modern pages has been continuously improving  (even WebComponents coming)

Notes:

-Basilisk has not the Mozilla sync feature, so sync is not an option :(

-Some data can be migrated using different methods and also maybe some steps are not required for you.

-There is not a tough research but just a trial&error process and I don't know the answer for some questions.

For example, why "Formfill history"  (formhistory.sqlite) was not applied/copied after the initial copy of the profile and 1st execution of Basilisk?.

WF classic (source)

1) The "Profile" folder [1]

1.1 Full content/folder WF profile copied to Basilisk folder [2]
1.2 Open Basilisk
Result:
OK: Addons (WE xpi removed)[3],  bookmarks, DOM storage (webappsstore.sqlite)
NOK: history, cookies, form history, masterpassword
logins ( migrated only old logins, til 2017 ) , 

[1] about:support and click on "Profile Folder"
[2] (with basilisk closed)
[3] During the load of profile Basilisk has deleted WE .xpi (data is still at \browser-extension-data\)


2) Logins [1]

2.1 copy logins.json, key3.db, key4.db to Basilisk profile folder[1]
2.2 Open Basilisk
2.3 Check logins and last update date
Result: OK
[1] (with WF and Basilisk closed)

3) Backup/Restore

3.1 Install extension FEBE (exact version, febe-8.9.3.1-fx) on WF and Basilisk
3.2 Backup History, Cookies, form fill history
3.3 restoring history can take a long time and make browser unresponsive
OK: History
NOK: Formfill history, cookies  (error "Backup file is not compatible with the ver of firefox currently running..")

4) Formfill history [1]

4.1 copy formhistory.sqlite to Basilisk profile folder
4.2 Open Basilisk and verify /verify content of sqlite file  [2] [3]

Result OK
[1] (with Basilisk closed)
[2] i.e  with "SQlite Manager" XUL extensions and, SELECT * FROM moz_formhistory
[3] SQLiteStudio for desktop is even easier than the FF extension

SQLliteStudio (portable and FOSS)

5) Cookies

5.1 Install an extension for cookies (advanced_cookie_manager-5.12-fx.xpi) on WF and Basilisk
5.2 On WF "EXPORT" and select a filename
5.3 On Basilisk "IMPORT" and filter/select previous file
5.4 Check/verify cookies
Result: OK

 

6) Cleaning extensions(WE) [TODO]

Webextensions are not loaded or messing the performance. However they are still stored in the profile and using space.
 
So, how to clean is the pending step.


Summary

Now, I think I've everything working as expected and I can definitely move from an unsupported WF with 471  out of 555 points browser to a  supported Basilisk with 477 points (html5test).

Literature

Very long time ago Basilisk was my daily driver, and I moved there from Palemoon. BTW at this time  the difference of performance (even stability) between this light-weight fork and the official firefox was huge.

Initially moving to Basilisk was offering a more modern interface, containers, partial compatibility with webextensions but the roadmap of Basilisk/UXP required the removal of some of this features.

Then I decided to move from Basilisk to Waterfox, it was a seamless movement with the exception of forcing the usage of a 64bits browser and keep other browsers with 32bits version on older computers. But I have some modern firefox features a containers or sync, plus the capacity to install recent webextensions but keeping compatibility with legacy XUL extensions.

I would say that the stability and performance of Waterfox was never as good as before, but specially during last years when the memory management became a real issue. 

Then, there was no hope for Waterfox classic, it was completely abandoned and replaced by Waterfox G.



Basilisk (target)


martes, 25 de octubre de 2022

(My) Best espruino apps (for bangle.js 1)


Clocks

Vertical watch face. 

Light weight, reliable, shows additional info, can  open launcher with a button or touch
[recommended]
 

Stardate Clock

 Nice, light weight, simple (digital/analog). Touch is not used.
[recommended]

Clock & Calendar

light weight and a great potential. 
Bad points(as v0.06):
launcher can't be accessed from bjs1 touch
the calendar view can't be open with  Bangle.js1 buttons or  Touch.
bottom widget area is not respected
 

Casio advanced

Powerful but too heavy weight for a bangle.js1 :(

Pastel clock 

Heavy weight, a simple watch face with configurable fonts and  able show additional info. Touch is not used.

Launchers

xx


miércoles, 5 de enero de 2022

Commands and developing for Espruino

 

 IDE commands

reset();  //most common command when you find problems

after any freeze

require("Storage").eraseAll();

Removes all files, including apps that can't be removed from apps loader 

E.setTimeZone(2);

peek16(0x300c).toString(16);   //TO see the espruino SDK

//0x8C or 0x91 is SDK12

//0x81 or 0x88 is SDK11


Memory usage per app

print(require("Storage").list().map(f=>require("Storage").read(f).length.toString().padStart(7)+" - "+f).sort());

It'll list all files sorted by size and you can see what's taking up the space


Status

process.env; 

process.memory();

require("Storage").getStats();

(total, free,...storage bytes)

E.getBattery() ;

print(require("Storage").list().map(f=>require("Storage").read(f).length.toString().padStart(7)+" - "+f).sort());


 Device name (useful for Gadgetbridge)

bangle.js , puck.js , espruino, espruino-dev 

NRF.setAdvertising({},{name:"espruino"});

 

Testing notifications

 GB({t:"notify", id:5, src:"gadget",title:"Test",body:"message for testing notifications "});

 


Basics of developing

 Logging:

console.log("Debug mode enabled");

Creating the icon

Compatibility and Dynamic code

Bangle.js1 =240x240

Bangle.js2= 176x176

var v_model=process.env.BOARD;
//EMSCRIPTEN,EMSCRIPTEN2
if (v_model=='BANGLEJS'||v_model=='EMSCRIPTEN') {

Multidevice developing (BJS1, BJS2, P8, C16....

Default background color/theme 
   BJS1 black bg
   BJS2 white bg
Display size
   BJS1 1.3 inch 240x240 
   BJS2 1.3 inch 176x176
Colors
   BJS1  16 bit LCD
   BJS2  3-bit color LCD
Button/touch screen
   BJS1  3 buttons+2 areas (simulated 3=1+2)
   BJS2  1 button+full touch screen


Code for bangle App Loader (store)

convert tab to spaces
trim trailing space

Spend time reading and understanding following help:
 

martes, 1 de junio de 2021

OTA Flashing for Hackable smartwatches

Watches suporting OnTheAir flashing:
P8, C16 (and other Dafit watches)
DK08
...



Software to be flashed (Opensource) :
 
atcwatch
eucwatch
p8expruino
...
...
 
Software for flashing:
daflasher
nRFConnect
 
 
Process diagram :

 

Detailed procedures:


sábado, 9 de enero de 2021

outdoor/sport apps, smatwatches and openSource

A quick revision of opensource outdoor options 

(as 202304, more info and pictures are coming soon)

Index:

bangle.js smartwatch
bangle.js2 smartwatch
Bluetooth Heart Rate Monitor (bangle.js2)
Bluetooth Heart Rate Monitor (Lite)(bthrmlite)
BLE GATT HRM Service (bangle.js, 2)
GPS recorder (bangle.js, 2)
Bangle run (bangle.js, 2)
Route viewer (bangle.js)
Fitotrack (android)
Opentracks (android)
OSMand (android)
Runnerup (android)
AAT(android)
Strava(android/web - commercial)
Wikiloc (android/web - commercial)
OruxMaps (android/web - commercial)

 

 

bangle.js (smartwatch)

Unfortunately there are not many smartwatches focused in opensource apps, and less having GPS functions.

So if you want to use opensource in your watch during your activities you have to assume some limitations and wait or help for community improvements.

  • Heat rate function, is really unreliable, and it seems a problem of the sensor hardware, so even if software can reject weird measures there is not much hope.
  • GPS, seems reliable enough, and battery last long with it tracking
  • Apps, there are couple of good apps that are receiving support, see below. 
  • Support, besides other you can be part of the community and the solution.

 

bangle.js2 (smartwatch)

  • GPS and a Heat rate sensor more acqurate than bangle.js1 one.

Bluetooth Heart Rate Monitor (bangle.js2)

 App id: bthrm

Overrides the usage of the internal HR sensor with an external Bluetooth  

Settings: 

1) Mode=Default - Replaces internal HRM with BT HRM and falls back to internal HRM if no valid measurements received. 

2) Search for sensor

3) Open app?

4) see values on widget (widhrm,...

Not compatible with "Heart Rate Monitor(hrm)"

Bluetooth Heart Rate Monitor (Lite)(bthrmlite)

 Old version, and lightweight without configuration and the recommended for Bangle.js1

BLE GATT HRM Service (bootgatthrm)

 A GATT HRM Service to advertise the measured HRM over BLE. Compatible with Opentracks and Fitotrack.  Detected but not working with Runnerup and AAT

 

GPS recorder (bangle.js, 2)

Opinion: It is a very reliable app+widget that can work in background, so you can use other functions during the activity, and when completed the track can be exported in a standard format to other apps.

The look and feel is very old school, just text without icons, and the menus can be managed only through buttons. 

Tips:

Using OpenStreetMap from web apploader you can upload a map/tiles and this map can be displayed in the background of the track.

As getting a valid GPS signal takes quite long, and you require it to start tracking, from web apploader use the app "Assisted GPS Update (AGPS)" to download satellite info for a day (8kB) or a week (46kB).




Missing functions: 

  • Follow a track. I mean functions to import a track, display the track in screen and track a new one over it (in a different color)
  • Use of touch screen, i.e change of screen by sliding movement  
  • A Graphical dashboard, showing summary and enabling pause in friendly and quickly way.

Import/export:

internal file format:

timestamp,latitude,longitude,altitude    (but more attributes can be added to be logged , such as  HR, HR(bluetooth) ,HR int or steps.

Export format: (from apps loader page): .KML , .GPX 

Tip: exporting from Android's Chrome, then the downloaded track file can be open with some apps.

 


RUN (bangle.js)  RUN+

Opinion: the user interface is based in a single screen managed only by buttons, and it can track your activity including lot of precision and heart rate

But the worst (hopefully it will be corrected soon)is that the apps is not available as widget so can't work on background and the tracking has too much precision (and not necessary) so the output file grows too much.

As curiosity this app is not written in basic Javascript but TypeScript that after "compiled" generates a obfuscated Javascript, for developers maybe it is not important but for other can be an additional step.

Missing functions: 

  • Run in background 
  • A parameter to define the time between tracking points
  • Display a track or statistics
  • Use of touch screen, i.e change of screen by sliding movement 

Import/export:

internal file format:

timestamp,latitude,longitude,altitude,duration,distance,heartrate,steps
1602954919045,38.418089,-0.x09480,36.88,0,0.65,104,1

 Export format (from apps loader page): .KML , .GPX 

 

Route viewer (bangle.js)

Opinion: it allows to display map  and/or a track in the screen and your current GPS position over it. Also it shows distance an a direction arrow.

 Is not a standard Javascript app, but a realtime generated app+map track. From the apps loader web you load a .KML and the result is uploaded as bangle.js app

Missing functions:

  • zoom function is missing 
  • a single a app able to open different tracks/maps
  • Direct access to track files in memory from banglerun or GPSrecorder

Import/export: import .KML



Fitotrack (android, FOSS)

Opinion: A good app for sports and well supported, has voice notifications to inform about pace, etc...

Supports external heart rate sensor(fails with decathlon BLE and not paired devices?) and can display sections/intervals, elevation/speed graphs

Missing functions: 
  • Text notifications that other apps can process and send to smartbands/watches 

Import/export:

Export:  GPX


 


Opentracks (android, FOSS) 

"+OSM Dashboard por Opentracks"

Opinion: a  good tracking app with a easy an intuitive and complete dashboard.

To be able display the activity in a map it requires to install "OSM Dashboard por Opentracks" (another small opensource app) and from opentracks "show on map" and select "OpenTracks Dashboard API", and button "Always".

Advanced functions, as voice notifications, Interoperability with BLE devices: Heart rate (chest strap or watch), cadence, power, speed, and wheel size

It shows intervals, elevation/speed graphs and has voice

The Dashboard with the default layout shows many information fields, and can be customized.

Missing/Concerns:

-Permission: "Location always", is not being used, so it can stop tracking with saving mode or lossing the foreground

Import/export:

Export:  GPX, KML,KMZ, KMZ(inc photos)
@fdroid


OSMand (android, FOSS)

Opinion: though focused in navigation, it has tracking function and many options and features, such as following a previous track.

Require more learning and adaptation than other tracking apps, but the potential is incredible.  

Import/export: .GPX

@fdroid

 

Runnerup (android, FOSS)

 

Functions: Workouts and intervals, audio notifications, Laps, Map(using version from Play), sensors (ANT+, BLE), upload activity to some social networks

There are versions that can run in old in Android4(usually lighter and smaller)

Missing functions: 

  • Display the map during the exercise tracking.
  • Text notifications that other apps can process and send to smartbands/watches 

  Import/export: 

Export to: database, .GPX .TCX

Import: only from database

@fdroid


AAT (android)

An activity tracker, with a good UI but that can require more time to get used, for example the dashboard is called "Cockpit"

Activity: preconfiguration (autopause, recording filter, backlight,..)

cockpitA: fullscreen stats (HR in a smaller font size),map, graph

cockpitB: splited screen stats/map,  stats are in a smaller font size)

Advanced functions, through touch on topleft/bottom (cockpitB screen) or bottom(cockpitA map screen)

Support/Functions:  online Maps(several ones)/offline maps, BLE sensors,...

Import/export: .GPX

@fdroid

Missing functions: 

  • HR limits and warning notifications



Strava(android/web - commercial)

It is not opensource but if you want share your activities with friends probably they use it.

Fortunately you can use other apps during the activity and just upload to share with others.

Import/export:

Import/Export: .TCX, .FIT or .GPX

Import from  http://www.strava.com/upload/select



Wikiloc (android/web - commercial)

An app/web especially useful to find and share tracks for different sports (like mountain paths), sometimes well described, classified and with pictures

The app can be used to track or follow a previously downloaded track, supports offline maps and has basic statistics for the activity.

Negative points, besides being commercial it has some dependencies on Google services, that is specially bad for devices without Play services (such as BlackBerry10  android runtime)

Import/export: app exports to .GPX


OruxMaps (android/web - commercial)

Powerful GPS app with plenty of functions, requires time to learn and get the best of it. Supports loading a track and tracking/following over it.

Import/export:  import .KML and .GPX

Export to   .GPX, .KML, .KMZ, .FIT, TCX, .CSV

Upload to: Strava and other services ...

miércoles, 30 de septiembre de 2020

Smartwatch research (Opensource, P8, BLE, bangle.js, Pinetime, espruino, .

(entry in contruction, check other Smartwatch entries)

 

Tools and software

From a mobile Phone

   With LightBlue(Android):  
     or nRFConnect

 


From  Windows computer
   or BluetoothLE Explorer or Bluetooth LE Lab(Windows):
   or nRFConnect


Configure
  Windows10. Other Devices (privacy)



Checking Model (i.e P8a)


   or BluetoothLE Explorer or Bluetooth LE Lab(Windows):

Identify  Device Information:
Hardware Revision (UTF8-String) : A130PW2.0
Software Revision (UTF8-String) :MOY-TFK5-1.7.7

Heart Rate Measurement (it readable, so activate from watch)
(HEX) : A130PW2.0
 67
16


Avoid BLE issues



Error reading the file

when using NrfToolbox you can select the app to pick the file (a file manager)

ES explorer has 2 modes, so if one fails the other can work.

"DFU File ...not found"

turn off other bluetooth devices (specially if they were pair before)

use a different phone that you have never pair

companion apps like d6notification or gadgetbridge can try to connect even if they seem closed

Error GATT ERROR  a

       keep trying,
       disable/enable phone's Bluetooth
       kill daflasher app
       uninstall BLE apps (d6notification)
       turn off phone or
       try "nRF Connect" app as an alternative to Daflasher, as it also can flash a DFU



jueves, 17 de septiembre de 2020

bangle.js 1 -opensource smartwatch


BJS1 Specs:  
  • Nordic 64MHz nRF52832 ARM Cortex-M4 processor with Bluetooth LE
  • 64kB RAM 512kB on-chip flash, 4MB external flash
  • 1.3 inch 240x240 16 bit LCD display with 2 zone touch (1+2=3rd zone)

Launcher0.04 Toucher
Settings 0.21
 
Apps:
 Gadgetbridge
 Vertical face clock (digital watchface)
 Flappy bird (game to test on screen left and right button areas)

Configuration:

Setting:locale
// Spain 1 winter time  2 summer time BLE

Setting:BLE
BLE=on
programmable=on

Setting;Select Clock (i.e Vertical watch face)

Connection 

It supports only a simultaneous connection, so you have to disconnect others.
If Gadgetbridge, IDE or Apps web BLE  can't find the BLE connection
Setting, turn off, press button1 to turn on
 


Web BLE Admin apps

https://banglejs.com/apps/  (chrome browser and enable flags)
 Connect, Pair,
 
"My Apps" tab, apps installed already in your bangle.js
 
https://www.espruino.com/ide/#


Gadgetbridge

Gadgetbridge: 0.47.0 (android)

Android, Settings, Sounds and notifications,Notification access: Gadgetbridge (enabled)

Android, Settings, Sounds and notifications,App notifications: whatsapp (allowed),....

Very limited features: just notifications, and find your watch


Upgrade firmware

 
It can be done from the phone with NrfToolBox, NrdfConnect, or Daflasher
1. enter watch in dev mode
2. connect app to the watch
3. flash DFU  (ZIP)
 
http://www.espruino.com/Bangle.js#firmware-updates
https://www.espruino.com/Download

 

Installing basic apps

https://banglejs.com/apps/
About, click on "Install default apps"
 
or install manually

Bootloader
Settings
 
My favorite apps:
Touch/toucher Launcher. Really recommended (horizontal sliding based in touchscreen, an entry per screen and options) 
Note: To replace a previously installed launcher, it is required to uninstall/remove previous Launcher.
 
(DANE Touch Launcher  is the same launcher with borders)

App manager
File manager
Vertical clock (above v00.6) (support and display other widgets, touchscreen)
Fullscreen Notifications
Gadgetbridge  (widget)
Alarms

Flappy Bird 
Clock-Tris 
GPS recorder (records a GPS track even with app running in background, can display previous recorded tracks)
 
My favourites Widgets: (always in top, if widget bar is loaded)
As widget bar space is limited, so select well widgets and its width

Bluetooth Widget (single spaces)
Digital clock widget (multiple spaces)
Battery Level Widget   (multiple spaces)
Simple Heart Rate widget (check hr when screen is on) (single spaces)

 
 
 



Default apps but I've replaced
Launcher (Default) (vertical menu with several entries per screen and movement by keys)
default apps
Default notifications (too small characters)

You can install in one step all default apps, from About: "Install default apps" see screenshot showing the 9 apps.




https://espruino.github.io/BangleApps  (includes development versions)


Widget Configuration
Setting, App Widget Settings
toucher(Touch Launcher): set resolution high (will display app version), remove animation

jueves, 3 de septiembre de 2020

flashing espruino+ninebot/eucWatch to a P8 smartwatch

Flashing espruino+eucWatch (formerly ninebot-one)

[updated]

P8 with ninebot/enaon+espruino

Intro: 
Espruino: is javascript engine ported to nrf52 and P8 (fanoush)
Ninebot-one (nb): is a watch software that besides time, has some additional functions, especially the one that originally gave name to the software, a "page" that displays info from a unicycle mobility device.
eucWatch: latest version and new name for the Ninebot-one software
ATCwatch: another software for P8 based in Arduino (see other articles of this blog)




Steps:

1) Flash bootloader
1.1) if you have Dafit/stock ROM
or 
1.2B) if you have ATCwatch installed on the P8  
2) Daflasher step
3) Espruino step (PC and Chrome)
Configuring/coding nb espruino:
Using nb/ninebot UI
  

From a browser download following apps from github
  • DaFitBootloader23Hacked.bin (A custom Bootloader using the preInstalled SoftDevice5.0.1)

If you start from p8 default status/Dafit stock then you have to install before the first 2 files.

 1) Flash bootloader

1.1) if you have Dafit/stock ROM 

 You must install before:
    DaFitBootloader23Hacked.bin
    FitbootloaderDFU2 zip 
(common steps with flashing ATCwatch)
 
On Daflasher
Select: P8 
(wait until button "Select File" is enabled)
Select File : DaFitBootloader23Hacked.bin
P8 screen [green screen, progress bar and end in 3 color squares]

Select: ATCdfu
Click button "Do DFU Update"
Selectfile: FitbootloaderDFU2 zip [check Use Nordic Bootloader]

(it can take a long time, fail several times during the process and recontinue from last %. But at the end it should complete flashing the file, speed is slow i.e 2,20kB/s)

  P8 screen    [red square and ATCnetz.de]

 

1.2) if you have ATCwatch installed on the P8

From p8 menu, Click "Bootloader"
  P8 screen    [red square and ATCnetz.de]

 

2) Daflasher step

At BLE devices list

Select: ATCdfu

Click button "Do DFU Update"
   [Checked box: Nordic bootloader]
   [Unchecked box: Toggle Bluetooth]
Select DFU file:  espruino_2v0x.xx_p8_SDK11_SD20.zip  

3) Espruino step (PC and Chrome)

(only tested on Windows) 

    Bluetooth has to be on
   "Connection Icon", "Web Bluetooth", P8 xxxx
   on left side terminal type:
             "require("Storage").eraseAll()"
 
  •  how to Flash /Upload "init" file   

Having  right side windows clear (empty of code)

Drag an drop "init" file to left side (

Click on Send to espruino arrow down icon, choose Upload destination, "Storage" , choose name ".bootrst"

 Click on ".bootrst"

 

  •   (optional) Edit "handler" file before upload 
Depending on P8 model, touch and accelerator controller can change
 
for example for a P8a/TFK5 set
      const touchtype="716" and acctype="BMA421"
 whereas a P8b can be a touchtype="716" or "816S" and acctype="SC7A20"
  • Upload files
[enter in DEV mode]
  type on the left side:     reset() ,   [press enter while holding the button on the p8]
 
>reset()

=undefined
Welcome!
*** DevMode ***
Short press the side button

to restart in WorkingMode

  •    Click on Storage/HD icon (Access files in device's storage),   "Upload a file":  handler, main, settings, calc,...
  (handler, main, settings, minimum files required for basic/testing)
  (euc file is not required, only for ninebot unicycle owners).


  • Verify/execute

Click on Storage/HD icon (Access files in device's storage), verify existence of files and .bootrst

short tap on the button, and it will boot to working mode

 On left side terminal, execute command "reset()" or "E.reboot()"  (last one reset the hardware and loose the time)

DEV mode: (required for future files upload)

Do a reset() while holding the p8 button

from Settings-info- long press in restart button

 

Configuring/coding nb espruino:

During file upload, time is set on espruino. However, depending on timezone  value for an attribute, the displayed time can be wrong.
 
file: init/.bootrst  (Now .bootcde)
E.setTimeZone(2);
// 3=default
// Spain 1 winter time  2 summer time 
 
file:handler
const touchtype="716"; //716 for P8a/TFK | 816|816s for P8b
 
(for models and hardware check a previous post)  
 
Upgrading espruino
Daflasher
Chose: p8
Click "Start bootloader"
p8 screen [redsquare]
DFU 
 
Upgrading n-b (ninebot) version or many files

Erase and start from scratch
 
require("Storage").eraseAll()
connect
 
require("Storage").compact()  [???]
init to .bootrst




 
 

Using nb/ninebot UI

reset() .The normal reset, command or from p8 screen, "INF" (settings-info) menu, long hold on reboot
E.reboot() , command or from p8  holding the button for~15 secs, it will kick the watchdog 
 
TOR=Torch
AL=Alarms (for timer, hold press and will set current time+10min)
CALC= Calculator
BRI=Bright
ACC=Accelerator/step counter
HID=control over bluetooth keyb/media
CLI=enable nordic serial (required by espruino IDE webIDE)
ATC=enable to sync with d6Notification android app (time, receive commands...)


Set time. 
from web IDE: upload an empty code to RAM
from d6: re/enable notification
BLE command: AT+DT=202008251300 (2020-Aug25th13:00)


type of events:
button,
long press button,
long press touch screen
Slide left/right/left touch screen
Slide up/down/up touch screen


viernes, 24 de julio de 2020

P8 usage + Phone companion/sync apps (dafit,d6...)

P8 smartwatch and companion apps 

(draft/post undercontruction)

D6 Notification (for atchwatch)

 

Install D6 notification
d6 notification

Select Device
   Add device  +
Allow location

Select Apps
    Clock
    Calendar
    Whatsapp
    Phone
    Messages



Dafit app

 Da fit(for default/stock ROM)

Da fit 2.0.0 (From MoFit (CRREPA) , Privative)
    Tracking map based in Google Maps

firewall and connections
    Permissions: Mandatory : Phone and Location
dafit storage
    TCP connections:
       (can be stopped by firewall,
                                       gmaps : mad01s24-in
                                       weather:media-router-fp-prod1    
                                       firm upgrade:
        )


dafit database
     Fitness Data:
         - It lacks of a export function, so you need backup.
         - Data can be backup with Titanium backup or oandbackup.
         - Data is associated to the phone/user and not to an specific watch, so you can add a new device, keeping the previous data.
         




watchfaces
   Main and editable watchface accepts 240x240 png files  

   Downloaded watchfaces
         are stored as .bin files
root://data/data/com.crrepa.band.dafit/files/crrepa/band/wf

         each has a preview image (png or bmp)
root://data/data/com.crrepa.band.dafit/files/crrepa/band/wf/preview

Main/custom photo watchface:
image:
root://data/data/com.crrepa.band.dafit/files/crrepa/band/customize/P8a/0.png


databases
root://data/data/com.crrepa.band.dafit/databases/crrepa-db

table: SUPPORT_WATCH_FACE
Field: WATCH_FACE_ID (i.e 181)
Field: WATCH_FACE_URL  (i.e .....71e35.bin) analogic
Field: PREVIEW_URL  (i.e .....55808.png)

Field: WATCH_FACE_ID (i.e 28)
Field: WATCH_FACE_URL  (i.e .....0215e.bin) digital
Field: PREVIEW_URL  (i.e .....cdaec.png)

Configuration
root://data/data/com.crrepa.band.dafit/shared_prefs/config.xml
  band_ui_style=1 (customizable image + customizable digital info)
  band_ui_style=4 (last downloaded WF)
  set_watch_face_layout =false (image + digital customizable)


Gadgetbridge (opensource, available at F-droid)

    not compatible yet :(