Jump to content

Smart watches.


Recommended Posts

1 hour ago, Pickelhaupt said:

I'll have a look at the code to see what needs to be done to support KS wheels, is the BT data decoded in m_euc?

yes the m_euc it the ninebot client. It is bad code. If you know javascript, then espruino is excellent for NRF, nrf has a build in BT serial implementation, so you get cli console over BT by default with espruino, mature base, very easy to work with. 

 

if you prefer arduino, then ATCwatch firmware for the pinetime/p8 is again very good, stable and tested. 

the dashboard I have is simple, I rely more on color changes to track events when needed than actually reading things on a small screen. It is like having indicators on a dashboard, I find it easier. I have temp, battery, speed and amperage all changing to bright colors when near the limmits. The NRF is good base for a stand alone smartwatch client, been using it for months now, I cannot ride without it anymore :)

https://streamable.com/psxvgn 

Edited by enaon
  • Like 1
Link to comment
Share on other sites

this is a good comparisson of the p8 tft screen, against the dk08's transflective screen. The p8 is not as good outdoos, but is visible, better than the t-watch, one can see color blocks even in direct sunlight. 

https://streamable.com/gx6ic4

The p8 is metal body and scratch proof screen, great quality, a clone of amazfit gts in looks. 

Edited by enaon
Link to comment
Share on other sites

the NRF supports both host and pheripheral mode simultaneusly. The best plan I think is for someone skilled, to change the euc world to support it direcly. I will look at it eventyally, but will take ages :)

Then it can replace the pebbles as a companion watch, and also act stand alone when needed, I believe it will be the perfect euc accessorie. 

  • Like 1
Link to comment
Share on other sites

On 9/16/2020 at 7:13 PM, Planemo said:

That's a shame, I really need a full day out of an EUC watch, or at least 10 hours. I just can't give up my Pebble until that happens. The only issue I have with the Pebble is the fairly small screen, and as I am short sighted I wear spectacles when riding so when I glance down I have to really concentrate and let my eyes adjust to the close and small screen which in reality doesn't take that long but every half a second is a long time in reality. I would just like a nice big screen with speed and batt %. All other data can wait until I pull my phone out (with EUC World) when stopped. And I don't want to wear my phone on my arm cos I'm not willing to smash it to pieces if I go down!

I got the same "feature" recently, the wise mans vision. :)

my implementation acounts for that, collored blocks and haptic feedback does it nice for me, no glasses needed to see why it is alerting me.  :)

Edited by enaon
  • Like 1
Link to comment
Share on other sites

4 hours ago, Pickelhaupt said:

I have implemented a time based brightness function where the screen gets dimmer after a certain time (still only configurable at build time though). It's also possible to double tap the screen to set the brightness to maximum. Could probably not implement a swiping gesture for the backlight as I use those to switch between screens.

That's kinda cool actually.

Link to comment
Share on other sites

1 hour ago, mike_bike_kite said:

I don't think there'd be much point just simply copying EUC World. Why not try and produce something different? Something simpler that's easier to read at a glance. My suggestions:

  • Why show speed to a decimal point? It just confuses things and forces you to use a smaller font. I don't care if I'm travelling at 29.4kmh or 29.7kmh.
    • Agree with removing the decimal point, it's not really useful information while riding.
  • Why show anything else other than speed and battery percent? they are the only things I'm interested in.
    • It can get quite hot where I live so I thought it might be a good idea to keep track of the temperature as well.
  • Show the battery percent as a large bar that takes up the width of the screen. It's important!
    • I'll play around with some even simpler displays with more prominent speed and battery visuals.
  • Maybe have an optional display function where you can display one other number at the top of the screen.
    • The idea is to be able to swipe between different detail levels, but I like the idea to have more information appear automatically when you stop, will try to implement this.
  • Reserve the top part of the screen for alerts ie 67C and display all alerts in red. Maybe the type of alerts could have a time associated with them for how long they should be shown.
    • The alerts can be both yellow and red, with red reserved for critical states ie. speed above tiltback, battery almost depleted and temperature close to maximum.
  • Maybe have different info on screen if the rider is moving or stationary ie show more detailed info when the rider has stopped.
  • You could have a single tap to cycle through the different screens.
    • I chose to use swipe as I think it would be easy to accidentally switch screens if implemented with taps; also I think it's better to use double tap and long press to control the horn and lights as you suggest below.
  • Have a double tap function that toots the horn if you're moving and perhaps turns on/off the lighting if you're stopped. At the moment when I want to enter a shop I need to get my phone out to turn off the lighting or press the button on my 16S about 8 times to cycle through the dumb lighting modes it now has.
    • I will try to implement this, excellent idea to use the same gesture to control horn and light.
  • Why try and do things like pedal tilt on your watch app? Try and keep everything simple!
    • Mostly because it's easy to implement and could be nice to have, probably the last thing I add.
  • You need a simple settings screen for picking the wheel, displaying mph or kmh, miles or kilometres, timezone?
    • At the moment it connects automatically when the wheel is in range but that might be an issue if there are more wheels close by so some sort of wheel selection function needs to be implemented. At the moment time zone settings doesn't do much as the time is sychronised when uploading the code to the watch however there is a function to keep track of daylight saving; It has to be manually configured before compiling though. I guess I have to implement Imperial units eventually as I heard there are still people using those :) . Might add a config option the settings screen but will probably initially settle for an option that can be set before compiling as it's not something I believe you want to change on the go, correct me if I'm wrong though.
  • Haptic feedback on alerts would be nice - I tend to cruise at just under the top speed of my 16S, it would be nice if I just got a small vibration telling me to slow down rather than the wheel shouting out that I need to slow down.
    • Haptic feedback is on the todo list, just hope I will be able to feel it when wearing wrist guards :)
  • Show the time if no wheel is connected.
    • Didn't mention it but it already does.

 

Thanks for your suggestions, excellent! I have added my comments above.

 

  • Like 1
Link to comment
Share on other sites

18 minutes ago, Pickelhaupt said:
  • Haptic feedback is on the todo list, just hope I will be able to feel it when wearing wrist guards :)

 

you won't, it needs skin contact. Bands might be good for when wearing wrist guards, they are smaller, maybe they can fit under the guard. It practice the screen and all is a gimmic I think, if you design haptic feedback nice, progresive so that it gives info on different status, one will rarely look at the readings.

the dsd6 is nice for that, a powerfull haptic motor.
I also have proximity locking, where it auto locks the wheel when I distance from it. 

 

 

Edited by enaon
Link to comment
Share on other sites

1 hour ago, Pickelhaupt said:

Show the battery percent as a large bar that takes up the width of the screen. It's important!

  • I'll play around with some even simpler displays with more prominent speed and battery visuals.

 

@mike_bike_kite

Some minimalistic dashboards:

1.

preview

2.

preview

3.

preview

  • Like 1
Link to comment
Share on other sites

4 hours ago, enaon said:

yes the m_euc it the ninebot client. It is bad code. If you know javascript, then espruino is excellent for NRF, nrf has a build in BT serial implementation, so you get cli console over BT by default with espruino, mature base, very easy to work with. 

 

if you prefer arduino, then ATCwatch firmware for the pinetime/p8 is again very good, stable and tested. 

the dashboard I have is simple, I rely more on color changes to track events when needed than actually reading things on a small screen. It is like having indicators on a dashboard, I find it easier. I have temp, battery, speed and amperage all changing to bright colors when near the limmits. The NRF is good base for a stand alone smartwatch client, been using it for months now, I cannot ride without it anymore :)

https://streamable.com/psxvgn 

I like the dashboard, the color coding makes it really easy to quickly see what is going on, I am ordering a p8 just to see if I can get your dashboard to work with the KS  :)

  • Like 1
Link to comment
Share on other sites

Comments:

  • 1 (left) is the easiest to read. I know it isn't very exciting but once you reach the age of 50 or if you wear glasses then all the small detail is lost to the rider. There's no point wasting space saying what wheel the rider is riding as they probably know this. The battery percent is also shown below. I would change the font to something more stylish though.
  • 1 (right) I know it's a temperature alert but I can't tell what the display is showing - is it 32 degrees? 32 kmh? battery 32%
  • 2 (left) is the prettiest display with a fair compromise on readability. The little marks in the ring probably indicate something but I've no idea what. 
  • 2 (right) I prefer the look of this display but I have no idea what it's telling me! There's just too much info and no pointers on how to read it.
  • 3 (left) is the least pretty to me and also harder to read.
  • 3 (right) I just don't like the look of this display and, in a tiny display I suspect it's unreadable.

Could you try a slight change to 2 (left) where it just has a circular ring to show battery life but without the little bars? Then, if there's an alert change the background colour from black to amber/red if any alert applies. The main display could then just show 2 numbers ie the speed 24 and whatever the warning is ie the temp 50C. This second number is shown would need something to indicate what it is ie C for temp, A for Amps, % for battery. It might not work but it would be worth looking at.

Link to comment
Share on other sites

On 9/16/2020 at 5:56 PM, Pickelhaupt said:

 It should be possible to use the accelerometer to turn the screen on, there are some example programs that implement that feature available; might be a bit tricky to calibrate the function for EUC riding though.

using the acc to turn on the screen will work fine,  riding the euc makes no difference. I have a suggestion through. When an alert comes in, light up the screen and display the alert in a block of color for a few seconds, regardless if the watch is raised or not.

You dont need the bosch library for waking the screen, you could just read the registers.

init it like so:

i2c.writeTo(0x18,0x40,0x17);
i2c.writeTo(0x18,0x7c,0x03);
and poll the first 7 registers, x,y,z is at 2,4,6. 


ps. I have a thread on the p8 if you want to have a look. 

 

Edited by enaon
  • Like 1
Link to comment
Share on other sites

2 hours ago, enaon said:

using the acc to turn on the screen will work fine,  riding the euc makes no difference. I have a suggestion through. When an alert comes in, light up the screen and display the alert in a block of color for a few seconds, regardless if the watch is raised or not.

You dont need the bosch library for waking the screen, you could just read the registers.

init it like so:

i2c.writeTo(0x18,0x40,0x17);
i2c.writeTo(0x18,0x7c,0x03);
and poll the first 7 registers, x,y,z is at 2,4,6. 


ps. I have a thread on the p8 if you want to have a look.

Thanks, I have already implemented the acc wakeup feature, seems to be working fine, BMA support is implemented in the t-watch library. Good idea waking the screen when there is an alert, I'll do that.

I'll have a look at your p8 thread as well.

  • Like 2
Link to comment
Share on other sites

14 hours ago, mike_bike_kite said:

Comments:

  • 1 (left) is the easiest to read. I know it isn't very exciting but once you reach the age of 50 or if you wear glasses then all the small detail is lost to the rider. There's no point wasting space saying what wheel the rider is riding as they probably know this. The battery percent is also shown below. I would change the font to something more stylish though.
  • 1 (right) I know it's a temperature alert but I can't tell what the display is showing - is it 32 degrees? 32 kmh? battery 32%
  • 2 (left) is the prettiest display with a fair compromise on readability. The little marks in the ring probably indicate something but I've no idea what. 
  • 2 (right) I prefer the look of this display but I have no idea what it's telling me! There's just too much info and no pointers on how to read it.
  • 3 (left) is the least pretty to me and also harder to read.
  • 3 (right) I just don't like the look of this display and, in a tiny display I suspect it's unreadable.

Could you try a slight change to 2 (left) where it just has a circular ring to show battery life but without the little bars? Then, if there's an alert change the background colour from black to amber/red if any alert applies. The main display could then just show 2 numbers ie the speed 24 and whatever the warning is ie the temp 50C. This second number is shown would need something to indicate what it is ie C for temp, A for Amps, % for battery. It might not work but it would be worth looking at.

I should have posted an explanation of what all the GUI parts represented. I think I have a design that I'm happy enough with to start coding. Posting the latest mockup with a description of the functions.

It still contains the bars but I could make a version without them later if you want. I think the bars could be useful especially for the battery gauge as it indicates the lowest voltage experienced during the ride.

preview

 

I hope this explains what the different parts of the interface is supposed to indicate. I got rid of all the units since they consume real estate and after using the dash for a little while they are kind of redundant.

preview

This is an example of the simple dash displaying a critical temperature alert, fan notification and the speed gauge notifying that the speed is above the level 3. No gauges change function though, the bottom bar always displays the battery level. I'll have a think about the changing background colour you proposed.

preview

 

 

Edited by Pickelhaupt
  • Like 1
Link to comment
Share on other sites

1 hour ago, Pickelhaupt said:

 I think I have a design that I'm happy enough with to start coding.

You are doing very nice work. 

If I had lvgl in I might have gone the same way,  but since I didn't and gave it some thought as if to move to arduino to get it,  I will put out the reasons I chose not to, interface wise, from a perspective of one that does not see well up close with no glasses on. 

I mostly rely on haptic, I need the sceeen to tell what the alert is. For that, I found it is easier to allways know what the alert is by looking at where it is,  like a lamp on a old style dashboard, if it lights up at the top left, it is the temperature warning for example. 
This helps alot when displaying just the alerts, before raising the watch. It will be all black and just a rectangle or two will be on, color coded with the value inside, thus info is excanged imediatetly, and the interface is not interapted if the watch is raised, as the rest of the info just fills the blank space. If all alerts were to apear in the same place like on a different alert screen, I will need more time to read them, and if I raise the watch I will have to put them elsewhere so that they are still visible.

round speed design is nice for round screens, but ignores valuable realestate on square screens. 
when on the euc mode, all screen info maybe better to be about the euc, like a real dashboard, watch battery level and bt connection take valuable space. 

The second most importand reading is the amperage, it is the equivalent to revs, I thinks it needs a good space on main screen. 

you may want to use all or just the bottom corners as color coded indicators.

400-221-max.png.2278a4efc8921cf882d5805df96a6c43.png

 

Edited by enaon
Link to comment
Share on other sites

1 hour ago, enaon said:

You are doing very nice work. 

If I had lvgl in I might have gone the same way,  but since I didn't and gave it some thought as if to move to arduino to get it,  I will put out the reasons I chose not to, interface wise, from a perspective of one that does not see well up close with no glasses on. 

I mostly rely on haptic, I need the sceeen to tell what the alert is. For that, I found it is easier to allways know what the alert is by looking at where it is,  like a lamp on a old style dashboard, if it lights up at the top left, it is the temperature warning for example. 
This helps alot when displaying just the alerts, before raising the watch. It will be all black and just a rectangle or two will be on, color coded with the value inside, thus info is excanged imediatetly, and the interface is not interapted if the watch is raised, as the rest of the info just fills the blank space. If all alerts were to apear in the same place like on a different alert screen, I will need more time to read them, and if I raise the watch I will have to put them elsewhere so that they are still visible.

round speed design is nice for round screens, but ignores valuable realestate on square screens. 
when on the euc mode, all screen info maybe better to be about the euc, like a real dashboard, watch battery level and bt connection take valuable space. 

The second most importand reading is the amperage, it is the equivalent to revs, I thinks it needs a good space on main screen. 

you may want to use all or just the bottom corners as color coded indicators.

400-221-max.png.2278a4efc8921cf882d5805df96a6c43.png

 

 

I would most likely use the full dashboard version when riding as it has both current and temperature

preview

This is how it would look in different alert situations; all alerts always display in the same place.

I think it's a good idea to just light up the alert area when waking the screen upon receiving an alert condition.

At the moment only the right lower corner is unused, Do you think it would be better to change the colour of the entire corner instead of displaying an alert/notification icon?

preview

I did play around with different non round designs as well but found the round one easier to both make compact while readable and easier to implement. The alternative would be something similar to your dashboard with colour-coded blocks.

Link to comment
Share on other sites

9 minutes ago, Pickelhaupt said:

 

all alerts always display in the same place.

I think it's a good idea to just light up the alert area when waking the screen upon receiving an alert condition.

At the moment only the right lower corner is unused, Do you think it would be better to change the colour of the entire corner instead of displaying an alert/notification icon?

I think so, I think it will be easier to see and maybe nicer, if it were an oled screen then it would make no difference, but on the tft blacks are not that nice, when filled with color it may look nicer. In any case it looks nice, I wish you happy coding. :)

Give a notice when your p8 arrives, as there are different versions of the touch and acc controller, to check what you have before hacking it. 

 

Edited by enaon
  • Like 1
Link to comment
Share on other sites

 

2 hours ago, Pickelhaupt said:

preview

I like the simple dashboard but would never look at the full dashboard as I'd never be able to read it while riding. I'd also say the info bar at the top is pointless and harms the simplicity of what you're trying to show. Not sure why I need to be told battery % twice on the same screen. I know I'm getting on a bit but I'm fairly sure I can remember what wheel I'm riding. The time might be useful but in that tiny font I could never read it.

Link to comment
Share on other sites

4 minutes ago, mike_bike_kite said:

 

Not sure why I need to be told battery % twice on the same screen.

it is not the same reading, the top one is the watch's battery. But I agree, less is better sometimes. 

Edited by enaon
Link to comment
Share on other sites

32 minutes ago, mike_bike_kite said:

 

I like the simple dashboard but would never look at the full dashboard as I'd never be able to read it while riding. I'd also say the info bar at the top is pointless and harms the simplicity of what you're trying to show. Not sure why I need to be told battery % twice on the same screen. I know I'm getting on a bit but I'm fairly sure I can remember what wheel I'm riding. The time might be useful but in that tiny font I could never read it.

No worries, I just like to be able to see the current time and the watch battery, I'll add an option to remove the bar.

Link to comment
Share on other sites

5 minutes ago, Pickelhaupt said:

to see the current time and the watch battery

They are importand yes, but bare with the wise, the blind that is :D

you could maybe use your the flip handler so as to when on euc face, if you flip again it will toggle to clock face for a few secs and back. 

Flips in general may be very usesull for doing actions like turning on the lights or soundng the horn without touching the watch, I havnt given them proper implementation yet, but I plan on playing with them.  

Edited by enaon
Link to comment
Share on other sites

1 hour ago, mike_bike_kite said:

 

I like the simple dashboard but would never look at the full dashboard as I'd never be able to read it while riding. I'd also say the info bar at the top is pointless and harms the simplicity of what you're trying to show. Not sure why I need to be told battery % twice on the same screen. I know I'm getting on a bit but I'm fairly sure I can remember what wheel I'm riding. The time might be useful but in that tiny font I could never read it.

I agree that the bar is kind of ugly and looks out of place, I'll try to find another way of displaying time and watch battery on the full dashboard.

Link to comment
Share on other sites

1 hour ago, enaon said:

I think so, I think it will be easier to see and maybe nicer, if it were an oled screen then it would make no difference, but on the tft blacks are not that nice, when filled with color it may look nicer. In any case it looks nice, I wish you happy coding. :)

Give a notice when your p8 arrives, as there are different versions of the touch and acc controller, to check what you have before hacking it. 

 

I will play around a bit with colored corners, the shape is a bit odd though :) so let's see what I can do, might resort to bitmaps :)

Will tell you when I get it. Btw, do you know if any of rhe nrf watches with larger/round/oled displays are hackable as well?

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...