Forum: Mikrocontroller und Digitale Elektronik Arduino Custom Firmware für Fitness Armband mit NRF52


von Aaron C. (Firma: atcnetz.de) (atc1441)



Lesenswert?

Moin, dies ist ein Folgebeitrag für diesen eigentlichen Post: 
Beitrag "Suche bauteil identität"


Es geht hier nun darum um einen Diskussions oder auch Bastel Thread zu 
erstellen der sich um die I6HRC Smart Watch/ Fitness Tracker dreht,

bei dieser Fitness Uhr handelt es sich um eine Ideale Bastel Plattform 
die sehr einfach mit Arduino programmiert werden kann.

Hier ein Link zu der Uhr auf A*azon: https://amzn.to/2AVOTRY oder 
https://amzn.to/2Wao31y
Ich habe sie zum Preis von 16€ gekauft.

Hier ein Kurzes Video mit einer Arduino Firmware auf der UHR:
https://www.youtube.com/watch?v=n-oou__yMY0


Mit dem Core Port von Sandeepmistry ist eine Programmierung "in" Arduino 
möglich: https://github.com/sandeepmistry/arduino-nRF5

Hier die vorhandene Hardware:

MCU ist ein NRF52832 mit 512kB flash und 64kB Ram 
https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/nrf52832pinoutquestion.png

Bewegungssensor KX023 (Kompatibelmit dem KX022) 
https://www.willow.co.uk/components/com_virtuemart/shop_image/product/OEM%20Component%20Level%20Accelerometers/pdfs/KX023-1025%20Specifications%20Rev%2012.0.pdf

Ein SPI Font Speicher GT24L24A2Y dieser ist zu vernachlässigen da sehr 
viel speicher zur Verfügung. 
http://www.genitop.com/admin/upload/20150817133547540.pdf

Ein Vollintegrierter Herzfrequenzsensor PPS964 
http://www.richwellgroup.com/Private/Files/20181025102416127%E2%88%AEPPS964%20datasheet%20Rev02_150817.pdf

Ein 0,96" IPS SPI Display mit 16bit Farbtiefe und ST7735 Kontroller 
https://www.displayfuture.com/Display/datasheet/controller/ST7735.pdf

2 Touchfelder vor dem Display, geteilt in der Mitte nach oben und unten.

Einen 65mAh Lipo Akku inkl Laderegler.

Eine lichtempfindliche Diode.

USB Anschluss direkt am Gehäuse, hier sind die inneren Datenpins 
ungenutzt und ich habe mir den SWD Port des NRF52 darüber nach Draußen 
geführt.


Bis auf den Lichtsensor ist soweit jede Hardware von mir getestet und 
funktioniert soweit unter Arduino

Das Pin out werde ich noch hochladen, habe es bis jetzt nur auf einem 
Kritzel zettel das will keiner sehen :D

Anbei noch ein Paar Bilder.


Achso, der Stromverbrauch ist derzeit im Standby bei ca. 70uA im Betrieb 
mit 50% Hintergrundbeleuchtung bei 12,5mA

:
von John P. (brushlesspower)


Lesenswert?

Sehr schönes Projekt.
Ich arbeite auch sehr viel mit den NRF52 unter Arduino


Aaron C. schrieb:
> Mit dem Core Port von Sandeepmistry ist eine Programmierung "in" Arduino
> möglich: https://github.com/sandeepmistry/arduino-nRF5

Als Anmerkung.
Ich hatte auch mit der Lib von Sandeepmistry angefangen. Ich musste aber 
bald festellen das diese Lib noch nicht ausgereift ist. (Kann inzwischen 
anders sein)

Die Redbear Library ist zwar gut, aber veraltet.

Nutze die Adafruit NRF52 Library!
Sie baut auf der von Sandeemistry auf. Bietet BLE 5.0 und Update via OTA
insgesamt gut supported und ausgereift.

Aaron C. schrieb:
> Achso, der Stromverbrauch ist derzeit im Standby bei ca. 70uA

Das ist aber noch reichlich viel. Die NRF52 (Arduino) schaffen unter 
10µA.
Zumindest wenn man alle zusätzliche Hardware abschalten kann.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

John P. schrieb:
> Sehr schönes Projekt.
> Ich arbeite auch sehr viel mit den NRF52 unter Arduino

Cool das es da noch welche gibt die weiter sind :)
danke für den Tipp mit der Library, OTA Updates sind ja deutlich 
angenehmer, sehe mir das nach Feierabend mal an! Finde die Die 
Sandeepmistry wirklicht etwas unausgereift.

> Das ist aber noch reichlich viel. Die NRF52 (Arduino) schaffen unter
> 10µA.
> Zumindest wenn man alle zusätzliche Hardware abschalten kann.

Die 70uA sind mit Aktivem Bluetooth, Bewegungssensor und Aktiven 
Interupts.

Grüße

von äxl (Gast)


Lesenswert?

sehr geil. cool thumbsup
also doch kein OLED, mit eingefärbten Bereichen, sondern ein kleines 
16Bit Colr-TFT. sehr chic...
Auch die anderen Sensoren sind ja nun nicht zu verachten.
Andereseits reicht mir die gebotene Funktionalität vorerst aus.
Bin schon gespannt, was man sonst noch für Ideen damit umsetzen könnte.
Gut gemacht!!!

von John P. (brushlesspower)


Lesenswert?

Aaron C. schrieb:
> Die 70uA sind mit Aktivem Bluetooth, Bewegungssensor und Aktiven
> Interupts.

Ich erreiche hier mit aktiven, BLE, und aktiven Interrupts etwa 6µA auf 
meiner Hardware.

Welches Advertise Interval hast du eingestellt?
Habe bei mir 2 sek, also 2000ms. default sind etwa 100ms

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

John P. schrieb:
> Ich erreiche hier mit aktiven, BLE, und aktiven Interrupts etwa 6µA auf
> meiner Hardware.
>
> Welches Advertise Interval hast du eingestellt?
> Habe bei mir 2 sek, also 2000ms. default sind etwa 100ms

Habe den Interval auf 400ms gesetzt, kann auch im DeepSleep Daten senden 
und empfangen, weiß nicht ob das noch was an der Stromaufnahme ändert.
Denke hier macht aber die zusätzliche Hardware auch viel aus.

Bei einem NRF51 Board bin ich glaube ich auch nur auf Min 60uA gekommen, 
ohne zusätzliche Hardware

Habe gerade schon mal grob die Adarauit Library angeschaut und finde 
leider keine Möglichkeit per St-Link zu Programmieren?! geht das dort 
auch so Problemlos wie bei Sandeepmistry?.

: Bearbeitet durch User
von John P. (brushlesspower)


Lesenswert?

Aaron C. schrieb:
> Habe gerade schon mal grob die Adarauit Library angeschaut und finde
> leider keine Möglichkeit per St-Link zu Programmieren?! geht das dort
> auch so Problemlos wie bei Sandeepmistry?.

Das ist eine gute Frage.

Normalerweise flasht man das Softdevice+Adafruit Bootloader via SWD
Danach nutze ich den Bootloader via UART.

Irgendwo habe ich gelesen das man auch den J-Link zum flashen nutzen 
kann.
Irgendwo habe ich gelsen das man den ST-Link als J-Link nutzen kann.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

John P. schrieb:
> Irgendwo habe ich gelesen das man auch den J-Link zum flashen nutzen
> kann.
> Irgendwo habe ich gelesen das man den ST-Link als J-Link nutzen kann.

Ok, per J-Link Flashen funktioniert wenn man auf Hochladen mit 
Programmer geht und vorher J-Link für Bluefruit als Programmer auswählt, 
habe einen J-link, finde es damit aber doch etwas umständlicher.

Werde mal nach J-link zu St-Link schauen.

von John P. (brushlesspower)


Lesenswert?

Aaron C. schrieb:
> Ok, per J-Link Flashen funktioniert wenn man auf Hochladen mit
> Programmer geht und vorher J-Link für Bluefruit als Programmer auswählt,
> habe einen J-link, finde es damit aber doch etwas umständlicher.

Schön zu hören, dass es funktioniert.
Man kann halt nicht alles haben.

Ich selbst finde das ganze Jlink, open ocd zeug auch alles zu 
kompliziert.

Daher flashe ich das Softdevice via Drap&Drop mit dem DAP-Link (CMSIS 
DAP?)
Danach kann ich mit jedem beliebigen USB-UART Adapter flashen.

Das setzt natürlich vorraus, dass die UART Pins frei sind und man auch 
rankommt.

Eigentlich sollte sich die Application auch mit dem DAP-Link flashen 
lassen.

Die Hürde ist hier wohl eher alles in der Arduino Umgebung zum laufen zu 
bekommen.

von Alex W. (a20q90)


Lesenswert?

John P. schrieb:
> Nutze die Adafruit NRF52 Library!
> Sie baut auf der von Sandeemistry auf. Bietet BLE 5.0 und Update via OTA
> insgesamt gut supported und ausgereift.

Können wir dafür die "Arduino nRF52 Boards" als Boardverwalter nehmen?
Oder welche Boardverwalter sollte man zum Connecten verwenden?

Als Lib habe ich mir die "Adafruit BluefruitLE nRF51" installiert.

Aaron C. schrieb:
> Hier ein Kurzes Video mit einer Arduino Firmware auf der UHR:

Geile Sache! Wie hast du den Bootloader installiert? Über JLink oder 
gibts bei Arduino ein Board das man auswählen kann und über den internen 
USB zu flashen?

von Marc Horby (Gast)


Lesenswert?

Kannst Du den Sketch den du auf deiner Uhr hast mit uns bitte teilen?

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Alex W. schrieb:
> Geile Sache! Wie hast du den Bootloader installiert? Über JLink oder
> gibts bei Arduino ein Board das man auswählen kann und über den internen
> USB zu flashen?

Habe die Library von Sandeemistry installiert und mit dem St-Link die 
SoftDevice 132 installiert, diese muss man selber runterladen und in 
einen ordner reinkopieren, den pfad erfährt man wenn man einmal versucht 
SoftDevice zu flashen. Dann kann man als programmer St-Link auswählen 
und auf "NRF5 Flash SoftDevive" diesen installieren, hierbei benötigt 
man ja keinen Bootloader.


Hier der Link zum softdevice: 
https://www.nordicsemi.com/Software-and-Tools/Software/S132/Download#infotabs 
als version 2.0.1 auswählen.
Als Board nutze ich Generic NRF52

von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

Hier der Sketch aus dem Video, es ist alles undokumentiert und noch sehr 
am anfang/durcheinander war erstmal proof of conzept und testen.

Hoffe es hilft dennoch.


es wird die Library UCGLIB benötigt, die i2c und spi bins in der Datei 
variant.h vom Board Generic müssen noch angepasst werden.

: Bearbeitet durch User
von Alex W. (a20q90)


Lesenswert?

Aaron C. schrieb:
> Alex W. schrieb:
>> Geile Sache! Wie hast du den Bootloader installiert? Über JLink oder
>> gibts bei Arduino ein Board das man auswählen kann und über den internen
>> USB zu flashen?
>
> Habe die Library von Sandeemistry installiert und mit dem St-Link die
> SoftDevice 132 installiert, diese muss man selber runterladen und in
> einen ordner reinkopieren, den pfad erfährt man wenn man einmal versucht
> SoftDevice zu flashen. Dann kann man als programmer St-Link auswählen
> und auf "NRF5 Flash SoftDevive" diesen installieren, hierbei benötigt
> man ja keinen Bootloader.
>
> Hier der Link zum softdevice:
> https://www.nordicsemi.com/Software-and-Tools/Software/S132/Download#infotabs
> als version 2.0.1 auswählen.
> Als Board nutze ich Generic NRF52

Danke! Ichhätte mich jetzt dusselig gesucht :-D

Frage zum ST-Link: bei meiner Uhr ist

SWCLK
SWDIO
RS
SD
SC
INT
VDDH
MTO
RX
TX
RX1
V3.3

Reicht es vom ST-Link die SWDIO, RST, SWCLK und GND zu verwenden?

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Alex W. schrieb:
> SWCLK
> SWDIO
> RS
> SD
> SC
> INT
> VDDH
> MTO
> RX
> TX
> RX1
> V3.3
> Reicht es vom ST-Link die SWDIO, RST, SWCLK und GND zu verwenden?


Es müssen nur SWDIO, SWCLK und GND verbunden werden, reset nicht der 
reset vom NRF sondern von dem PPS964 Puls Sensor.


Es ist noch zu erwähnen das die UCGLIB nur ein Display mit 128x160 
Pixeln kennt es werden immer rechts und links 24 Pixel nicht mit 
angezeigt, hier einfach immer erst bei pixel 24 anfangen.

von Alex W. (a20q90)


Lesenswert?

Kurzer Hinweis beim Verwenden einer frischen Arduino-Umgebung (zum 
Testen von Aaron's ino-Sketch):

Zusätzlich wird benötigt:
-> https://github.com/sandeepmistry/arduino-BLEPeripheral
-> https://github.com/olikraus/ucglib

Nachtrag da erst jetzt gesehen:

Aaron C. schrieb:
> Es müssen nur SWDIO, SWCLK und GND verbunden werden, reset nicht der
> reset vom NRF sondern von dem PPS964 Puls Sensor.


Danke!

: Bearbeitet durch User
von Marc Horby (Gast)


Lesenswert?

Kann man die originale Firmware vorher auslesen? Oder irgendwo 
herunterladen?

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Marc Horby schrieb:
> Kann man die originale Firmware vorher auslesen? Oder irgendwo
> herunterladen?

Mit dem Tool NRFGo Studio lässt sich der Flash auslesen, ich hatte dies 
bei meiner uhr gemacht jedoch lies sich das Backup nicht flashen, habe 
es nicht weiter probiert.

Hier zum download: 
https://www.nordicsemi.com/Products/Low-power-short-range-wireless/nRF24-series


damit lässt sich auch der die das SoftDevice Flashen.

Achso das NRFgo Studio kann allerdings nur mit J-Link und nicht mit dem 
ST-Link umgehen.




Habe gerade das Backup von der Uhr in IDA eingelesen, das kommt damit 
sogar klar und vielleicht lässt sich dort noch etwas mehr die Funktion 
den Pulssensors auslesen, da hänge ich gerade noch bei den richtigen 
Register werten.

: Bearbeitet durch User
von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

Es geht nun weiter mit dem Fitness Tracker, ich konnte nun in 
Nächtlicher feinst arbeit den Puls Sensor vernünftig auslesen/nutzen.

Ein Grund weswegen es nun funktioniert ist, das der Verbaute Voll 
integrierte PPG Sensor ein PPS964 ist, jedoch ist dieser Chip auch 
wieder aus 2 anderen Bauteilen gemacht. Zum einen ist dort das 
Lichtsende und Photosensor Modul, zum anderen ein AFE4404 IC von TI 
welches die eigentliche Logik enthält. dieser TI Chip ist wiederum auf 
der So genannten Heart Rate 3 Click Platine zu finden und dort gibt es 
ein Beispiel für Arduino siehe hier: 
https://bitbucket.org/nsted/afe4404_heartrate_arduinoesp8266/src/ec2196df1746?at=master
Der Code hat mich sehr weitergebracht, wie im Folgenden Video ist aber 
das Größere Problem der Enable Pin am NRF52 gewesen da die NFC Pins erst 
auf GPIO umgeschaltet werden müssen.

Wie man diese einstell Möglichkeit bei der sandeepmistry NRF5 Library 
hinzufügt steht hier: 
https://github.com/sandeepmistry/arduino-nRF5/pull/208

Hier nun noch ein neues Youtube Video vom Puls Sensor: 
https://youtu.be/5Y39J_3VtSo

: Bearbeitet durch User
von Alex W. (a20q90)


Lesenswert?

Danke Dir!


ich habs geschafft mein Display beim Zusammenbau zu zerbrechen! Ist das 
erste mal dass ich ein Display kaputt bekommen habe.

Wollte die Progleitungen wie bei dir zum USB führen. Kabel waren wohl zu 
dick. Jetzt werden es CuLackDraht...

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Alex W. schrieb:
> Danke Dir!
>
>
> ich habs geschafft mein Display beim Zusammenbau zu zerbrechen! Ist das
> erste mal dass ich ein Display kaputt bekommen habe.
>
> Wollte die Progleitungen wie bei dir zum USB führen. Kabel waren wohl zu
> dick. Jetzt werden es CuLackDraht...

Habe das auch bei einer uhr geschafft. Hier gibt es ersatz.
http://rover.ebay.com/rover/1/707-53477-19255-0/1?icep_ff3=2&pub=5575152713&toolid=10001&campid=5337805879&customid=&icep_item=323299810218&ipn=psmain&icep_vectorid=229487&kwid=902099&mtid=824&kw=lg

Hatte zum glück welche da

Habe es bei mir auch mit CuLackDraht gemacht glaube 0.4mm und habe 
keinerlei probleme mit störungen oder so.

: Bearbeitet durch User
von Alex W. (a20q90)


Lesenswert?

Aaron C. schrieb:
> Habe das auch bei einer uhr geschafft.

:-)

Wenn das so weiter geht, können wir bald die Platinen selbst bestücken!

Eventuell wäre ein ESP32 dann interessant...

Dann bucht sich die Uhr ins WLAN ein und zieht vom eigenen Server die 
Daten die man vorgibt...

Beitrag #5711819 wurde von einem Moderator gelöscht.
von Michael U. (amiga)


Lesenswert?

Hallo,

interessantes Thema, hat jemand vielleicht einen Tipp, wo man ein 
passendes Exemplar kaufen kann? Amazon sagt nur "nicht verfügbar" und 
ich kann nicht einschätzen, unter welchem Namen das richtige Modell noch 
zu finden sein könnte, halbwegs bezahlbar wäre auch gut...

Gruß aus Berlin
Michael

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Diese wäre die richtige:

https://amzn.to/2COFwnq

Ist aber einfach viel zu teuer, nicht die schwarze variante, das ist 
noch eine andere.

Mfg

von Michael U. (amiga)


Lesenswert?

Hallo,

Aaron C. schrieb:
> Ist aber einfach viel zu teuer, nicht die schwarze variante, das ist
> noch eine andere.

Danke. Naja, da ich auch nichts unter dem Preis gefunden habe, wäre das 
nur ein Problem. ;) Größeres Problem: es wäre nur Interesse und 
Spielerei und davon liegen hier noch etliche Sachen rum...
Ich behalte es aber trotzdem mal im Auge.

Gruß aus Berlin
Michael

von Michael U. (amiga)


Lesenswert?

Hallo,

so, die Neugier hat gewonnen, nun ist nur noch eine verfügbar bei 
Amazon...

Eine portable-IDE habe ich schon installiert, die Libs usw. 
zusammengesucht und die Boardgeschichte von sandeepmistry.
Zumndest compiliert der den Sketch von oben ohne zu maulen. Einen 
ST-Link v2 mußte auch noch her, der soll morgen ankommen und war ja 
wenigstens bezahlbar. ;)

Gruß aus Berlin
Michael

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Michael U. schrieb:
> Hallo,
>
> so, die Neugier hat gewonnen, nun ist nur noch eine verfügbar bei
> Amazon...
>
> Eine portable-IDE habe ich schon installiert, die Libs usw.
> zusammengesucht und die Boardgeschichte von sandeepmistry.
> Zumndest compiliert der den Sketch von oben ohne zu maulen. Einen
> ST-Link v2 mußte auch noch her, der soll morgen ankommen und war ja
> wenigstens bezahlbar. ;)
>
> Gruß aus Berlin
> Michael

War ja klar :D

Viel spass beim basteln.


Habe mir nun auch etwas mehr die Original App angesehen und kann von 
jeglicher nutzung abraten!!!
Alle paar minuten sendet die app den standort gps genau nach china und 
alles fitness daten natürlich auch.
Leider kommt hinzu das jeder der die UserId kennt alle daten die dort 
gespeichert sind abfragen und auch neu schreiben kann, ohne irgendeine 
passwort abfrage.

Eine gute sache hat die app aber sie lässt sich einfach decompilen und 
so konnte ich mit einer eigenen app die uhr schon in den update modus 
bringen, danach ist sie im NRF dfu modus und kann per Bluetooth geflasht 
werden, das ist aber noch zukunftsmusik.

von Alex W. (a20q90)


Lesenswert?

Aaron C. schrieb:
> Alle paar minuten sendet die app den standort gps genau nach china und
> alles fitness daten natürlich auch.

Guten Morgen Aaron,

wie hast du dies ermittelt? Würde gerne da tiefer einsteigen, da ich den 
Chinesenapps auch nicht traue. Eventuell könnte man den angegebenen 
Chinesenserver durch einen mit 127.0.0.1 ersetzen...

von Michael U. (amiga)


Lesenswert?

Hallo,

Aaron C. schrieb:
> Es müssen nur SWDIO, SWCLK und GND verbunden werden, reset nicht der
> reset vom NRF sondern von dem PPS964 Puls Sensor.
Das mit Reset wirst Du mir vermutlich noch erklären müssen...
Du hat ja im Video den Kram auf die freien USB-Pins gelegt, da sind doch 
aber nur 2?

> Es ist noch zu erwähnen das die UCGLIB nur ein Display mit 128x160
> Pixeln kennt es werden immer rechts und links 24 Pixel nicht mit
> angezeigt, hier einfach immer erst bei pixel 24 anfangen.
Die UCGLIB werde ich mir mal anschauen wegen der Auflösung, ganz fremd 
ist mir der ST7735 nicht.

Erstmal will ich Deinen Test-Sketch auf die Uhr bekommen aus der IDE.
Deinen Zettel mit den Pin-Belegungen fände ich auch ganz nett, vorerst 
kann ich ja erstmal mit den Angaben in der variant.h leben oder eben 
selber suchen.

Ich muß mir das alles erstmal genauer anschauen, bisher eher AVR und 
ESP, also ziemlich ARM dran oder ARM ab. ;)

Gruß aus Berlin
Michael

: Bearbeitet durch User
von John P. (brushlesspower)


Lesenswert?

Alex W. schrieb:
> John P. schrieb:
>> Nutze die Adafruit NRF52 Library!
>> Sie baut auf der von Sandeemistry auf. Bietet BLE 5.0 und Update via OTA
>> insgesamt gut supported und ausgereift.
>
> Können wir dafür die "Arduino nRF52 Boards" als Boardverwalter nehmen?
> Oder welche Boardverwalter sollte man zum Connecten verwenden?
>
> Als Lib habe ich mir die "Adafruit BluefruitLE nRF51" installiert.

Hier die entsprechende adafruit Library mit allen zusätzlichen Infos's

https://github.com/adafruit/Adafruit_nRF52_Arduino

als Board den Bluefruit Feather nRF52832 auswahlen und die Variant.h ggf 
anpassen

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Alex W. schrieb:
> Guten Morgen Aaron,
>
> wie hast du dies ermittelt? Würde gerne da tiefer einsteigen, da ich den
> Chinesenapps auch nicht traue. Eventuell könnte man den angegebenen
> Chinesenserver durch einen mit 127.0.0.1 ersetzen...

Moin Alex.
Normaler weise nutze ich die app packet capture um zu sehen was so 
gesendet wird braucht root kann aber auch ssl also https daten anzeigen, 
das funktioniert bei dieser app aber nicht.
Falls das nicht klapt wie hier nutze ich die app "APK editor Pro", 
hiermit kann man den smali source code bearbeiten, und ändere alle 
https:// einträge zu http:// damit werden dann normalerweise alle 
anfragen auch über packet capture sichtbar, darüber kann man auch alle 
anfragen zu 127.0.0.1 ändern, es gibt aber am anfang den login 
bildschirm den man umgehen müsste, also entweder selber einen server 
laufen lassen oder die app umschreiben.

Möchte nich zu sehr ins detail gehen da es in deutschland ja 
lustigerweise nicht erlaubt ist sowas zu machen.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Michael U. schrieb:
> Du hat ja im Video den Kram auf die freien USB-Pins gelegt, da sind doch
> aber nur 2?

So lieber in 2 antworten sonst wird es unübersichtlich,
Der SWD Port braucht nicht immer einen Reset pin das läuft da über das 
protokoll ab, also werden nur 2 Pins benötigt, der Test Pad mit dem 
namen Reset ist der ausgangsport für den PPS964 Pulssensor damit wird 
dieser Resetet.
Es ist der Reset pin vom NRF52 nicht einmal aktiviert und er wird als 
normaler GPIO genutzt.

Das was ich im Video mache ist es den SWD clk pin ganz kurz auf 5V zu 
ziehen, kann ich nicht empfehlen nachzumachen aber bei mir funktioniert 
es.

> Die UCGLIB werde ich mir mal anschauen wegen der Auflösung, ganz fremd
> ist mir der ST7735 nicht.

Hatte mir das auch schon angesehen, man muss leider sehr viel 
umschreiben deswegen hab ich das erstmal gelassen.
Es funktioniert ja auch so, achso Die Farben Rot und Blau sind auch noch 
vertauscht ist aber auch nichts Dramatisches.

> Deinen Zettel mit den Pin-Belegungen fände ich auch ganz nett, vorerst
> kann ich ja erstmal mit den Angaben in der variant.h leben

Ich habe in 2 oder drei posts vorher ganz still das Pinout als Bild mit 
hochgeladen :)


Durch Arduino merkt man von ARM oder nicht ARM ja garnicht so viel :D

Grüsse zurück

von Michael U. (amiga)


Lesenswert?

Hallo,

ok, Resetfrage auch erstmal soweit geklärt.

Aaron C. schrieb:
> Ich habe in 2 oder drei posts vorher ganz still das Pinout als Bild mit
> hochgeladen :)
>
> Durch Arduino merkt man von ARM oder nicht ARM ja garnicht so viel :D

glatt übersehen, dabei ist es so schon bunt, Danke.

Arduino ist bei mir ein Grund dafür, sowas einfach anzugehen, war bei 
den ESP auch so. Ich habe zwar auch ein ESP32 IDF hier installiert, 
nutze ich aber meist nur als Testumgebung, wenn ein ESP32 Beispielcode 
auds der ArduinoIDE eigene Ansichten entwickelt. Ist eben alles nur 
Zeitvertreib...

Gruß aus Berlin
Michael

von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

Hier noch ein weiteres Bild mit Infos über Andere Tracker die ich 
bestellt habe,
Es folgen noch 5 weitere die sind aber noch unterwegs.

Biss her ist leider der I6HRC also der aus dem Thread hier der einzige 
richtig gute, durch das einfach zu öffnende Gehäuse und die 2 Freien 
Pins ist er ideal zum Basteln.

von Michael U. (amiga)


Lesenswert?

Hallo,

laß mich raten: Guinness Buch - Die größte Fitness-Tracker Sammlung der 
Welt? ;)

Ich habe da zum Display noch was gefunden:
https://github.com/olikraus/Ucglib_Arduino/issues/13
Ich werde das mal einbauen und testen, aber erstmal muß ST-Link und Uhr 
hier sein und Dein Sketch drauf.......

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Bastler 4.0 (Gast)


Lesenswert?

Hi,
seh ich das richtig, dass sich die nRF51/52xxx mit den alten nrf24L01+ 
bei 250 kBit/s unterhalten können?

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Michael U. schrieb:
> Hallo,
>
> laß mich raten: Guinness Buch - Die größte Fitness-Tracker Sammlung der
> Welt? ;)
>
> Ich habe da zum Display noch was gefunden:
> https://github.com/olikraus/Ucglib_Arduino/issues/13
> Ich werde das mal einbauen und testen, aber erstmal muß ST-Link und Uhr
> hier sein und Dein Sketch drauf.......
>
> Gruß aus Berlin
> Michael

Naja die anderen uhren werd ich wohl niee weiter benutzen :D
Eher Müllsammlung ^^

Hatte das wir gesagt mit der ucglib schon probiert, funktioniert quasi 
auch, leider ist der sichtbare bereich bei dem 80×160 Display in der 
mitte vom RAM displays und nicht am rand, so wurde immer nur die hälfte 
angezeigt. Möglich wird es aber sein, soweit kommt man ja damit klar.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Bastler 4.0 schrieb:
> Hi,
> seh ich das richtig, dass sich die nRF51/52xxx mit den alten nrf24L01+
> bei 250 kBit/s unterhalten können?

Die NRF51und NRF52 haben ein proprietäres funkprotokoll welches nicht 
BLE ist.

Ob dies NRF24L01 kompatibel ist weis ich so leider nicht.

Wird hier aber auch erwähnt:
https://devzone.nordicsemi.com/f/nordic-q-a/1950/advice-for-simple-communication-from-nrf51822-to-nrf24l01

von Michael U. (amiga)


Lesenswert?

Hallo,

Bastler 4.0 schrieb:
> seh ich das richtig, dass sich die nRF51/52xxx mit den alten nrf24L01+
> bei 250 kBit/s unterhalten können?

interessanter Hinweis. Radio Eriwan und Nordic sagen im Prinzip ja.

Gruß aus Berlin
Michael

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Aaron C. schrieb:
> Die NRF51und NRF52 haben ein proprietäres funkprotokoll welches nicht
> BLE ist.

Der Hersteller (Nordic) liefert Libraries, die konformes BLE (sowohl 
Peripheral, als auch Central) implementieren.

Alternativ gibt es OpenSource:
https://www.zephyrproject.org
https://mynewt.apache.org/v0_9_0/network/ble/ble_intro/
https://github.com/TorstenRobitzki/bluetoe

nRF51/52 sind Mircrocontroller (M0/M4), die ein Radio-Peripheral haben, 
die sowohl proprietäre Protokolle, als auch BLE erlauben.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

Habe es nun auch geschafft die Library 
https://github.com/adafruit/Adafruit-ST7735-Library von Adafruit für das 
Display zum laufen zu bekommen.

Das gute an der Library es supportet das 80x160 Display.


Man benötigt zusätzlich noch die Library 
https://github.com/adafruit/Adafruit-GFX-Library


in der GFX library musste ich in der Datei: Adafruit_SPITFT.h
In Zeile 15 das #define USE_FAST_PINIO ausklammern.
Dadurch wird die Fast Pin IO option deaktiviert da sie nicht beim NRF52 
funktioniert.

: Bearbeitet durch User
von Alex W. (a20q90)


Lesenswert?

Danke Aaron,

ich warte gerade bei meinem auf Ersatz/andere Armbänder.

Ich habe aber zwischenzeitlich vergebens versucht den NRF zu connecten. 
Der ST-Link V2 sagt dass er keine Verbindung aufbauen kann. Eventuell 
kannst du mal deine Einstellungen teilen die du verwendest.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Alex W. schrieb:
> Danke Aaron,
>
> ich warte gerade bei meinem auf Ersatz/andere Armbänder.
>
> Ich habe aber zwischenzeitlich vergebens versucht den NRF zu connecten.
> Der ST-Link V2 sagt dass er keine Verbindung aufbauen kann. Eventuell
> kannst du mal deine Einstellungen teilen die du verwendest.

Mit was versuchst du zu verbinden?

Wenn unter Arduino muss man bei Programmer also ganz unten den ST Link 2 
auswählen

Das ST Link tool selber kann sich nicht mit dem NRF verbinden

von Alex W. (a20q90)


Lesenswert?

OK, das wusste ich jetzt nicht! Ich dachte mit dem Tool kann ich später 
die .bin schreiben und benötige zumindest mal ein connect.. :-)

Gerade festgestellt das eine i6HR nicht immer eine i6HR ist. Die eine 
hat ein Farbdisplay, die andere ein monochrom...

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Alex W. schrieb:
> OK, das wusste ich jetzt nicht! Ich dachte mit dem Tool kann ich später
> die .bin schreiben und benötige zumindest mal ein connect.. :-)
>
> Gerade festgestellt das eine i6HR nicht immer eine i6HR ist. Die eine
> hat ein Farbdisplay, die andere ein monochrom...

Ja wie gesagt die bin kann man nur mit dem nrfgo programm schreiben oder 
lesen.

Die i6hr hat oled monochrom undie i6hrc (color) ist farbig :)
Die i6hrc ist die neuere variante.

Hast du eine i6hr da? Frage mich ob da der rest gleich ist und nur das 
display anders?!

: Bearbeitet durch User
von Alex W. (a20q90)


Lesenswert?

Aaron C. schrieb:
> Hast du eine i6hr da?

Auf der Packung steht i3 HR. Die sah halt optisch gleich aus. Werde ich 
heute Abend mal zerlegen :-)

von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

Ok, die I3HR ist wohl von Zeroner, ist aber auch wieder der gleiche 
Hersteller IWOWN also ist die Wahrscheinlichkeit groß das es auch ein 
NRF ist.

IWOWN stellt Uhren mit folgenden Chipherstellern her:
1 - Ti, 2 - nordic/nrf, 3 - dialog, 4 - mtk

ich bin gespannt :)

Anbei nun noch mein Arduino sketch mit Adafruit Display Library, das 
Display wird damit auch viel schneller angesteuert und es können Bilder 
angezeigt werden.

: Bearbeitet durch User
von Michael U. (amiga)


Lesenswert?

Hallo,

so, die Uhr ist vorhin eingetroffen, hängt zum Akku laden dran.
Ich habe noch nicht probiert, aber bevor ich eine Flex hole: wie geht 
die am Besten auf?

Gruß aus Berlin
Michael

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Michael U. schrieb:
> Hallo,
>
> so, die Uhr ist vorhin eingetroffen, hängt zum Akku laden dran.
> Ich habe noch nicht probiert, aber bevor ich eine Flex hole: wie geht
> die am Besten auf?
>
> Gruß aus Berlin
> Michael

:D

Wenn ein Fingernagel lang genug ist mit einem davon oben oder unten 
zwischen glexiglas und gehäuse an der Front drunter gehen und ganz 
langsam abziehen, es ist so ein klebriger Filz dadrunter als Kleber der 
löst sich langsam ab ruhig mit Geduld

von Michael U. (amiga)


Lesenswert?

Hallo,

Danke, Fingernagel war lang genug.
"Bin ich schon drin oder was? Das war ja einfach..."

Gruß aus Berlin
Michael

von 900ss (900ss)


Lesenswert?

Aaron C. schrieb:
> Wenn ein Fingernagel lang genug ist mit einem davon oben oder unten
> zwischen glexiglas und gehäuse

 Ein Plektrum aus Kunststoff für Gitarren eignet sich in der Regel gut 
dafür. Gibt's in unterschiedlichen Stärken.

von Michael U. (amiga)


Lesenswert?

Hallo,

@Aaron C.: was hast Du mir da angetan auf meine alten Tage? so'ne 
Fummelei... ;-)

ok. Uhr lebte nach den Lötereien erstmal noch.
Problem: ArduinoIDE sagt mir;
1
Info : STLINK v2 JTAG v17 API v2 SWIM v4 VID 0x0483 PID 0x3748
2
Info : using stlink api v2
3
Info : Target voltage: 3.222178
4
Info : nrf52.cpu: hardware has 6 breakpoints, 4 watchpoints
5
nrf52.cpu: target state: halted
6
target halted due to debug-request, current mode: Thread 
7
xPSR: 0x01000000 pc: 0x000008e4 msp: 0x20000400
8
** Programming Started **
9
auto erase enabled
10
Info : nRF51822-QFN48(build code: B00) 512kB Flash
11
Warn : using fast async flash loader. This is currently supported
12
Warn : only with ST-Link and CMSIS-DAP. If you have issues, add
13
Warn : "set WORKAREASIZE 0" before sourcing nrf51.cfg to disable it
14
nrf52.cpu: target state: halted
15
target halted due to breakpoint, current mode: Thread 
16
xPSR: 0x61000000 pc: 0x2000001e msp: 0x20000400
17
wrote 36864 bytes from file C:\Users\Roehre\AppData\Local\Temp\arduino_build_564195/Uhr_Adafruit.ino.hex in 1.684803s (21.367 KiB/s)
18
** Programming Finished **
19
** Verify Started **
20
nrf52.cpu: target state: halted
21
target halted due to breakpoint, current mode: Thread 
22
xPSR: 0x61000000 pc: 0x2000002e msp: 0x20000400
23
verified 36760 bytes in 0.436801s (82.185 KiB/s)
24
** Verified OK **
25
** Resetting Target **
26
shutdown command invoked

Sieht für mich zumindest nicht ganz falsch aus (keine Ahnung...).
Problem: Display bleibt dunkel und zeigt nichts an. Sowohl mit dem alten 
Sketch als auch dem neuen. Beim Adafruit-Sketch habe ich noch das 
Problem, daß tft.enterSleep(); und tft.exitSleep(); nicht bekannt sind?
Ich habe das im Moment kurzerhand erstmal auskommentiert.

Irgendeine Idee?

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Sieht schon sehr gut aus, es muss vorher noch das softdevice geflasht 
werden, ist weiter oben beschrieben wie das geht, danach kann man das 
programm erneut flashen und es läuft.

Hier der Beitrag erneut:
Habe die Library von Sandeemistry installiert und mit dem St-Link die 
SoftDevice 132 installiert, diese muss man selber runterladen und in 
einen ordner reinkopieren, den pfad erfährt man wenn man einmal versucht 
SoftDevice zu flashen. Dann kann man als programmer St-Link auswählen 
und auf "NRF5 Flash SoftDevive" diesen installieren, hierbei benötigt 
man ja keinen Bootloader.
Hier der Link zum softdevice: 
https://www.nordicsemi.com/Software-and-Tools/Software/S132/Download#infotabs 
als version 2.0.1 auswählen.
Als Board nutze ich Generic NRF52


Stimmt die enterSleep und exitSleep habe ich selber noch hinzugefügt 
beschreibe ich später noch genauer wenn ich am pc bin. Kann erstmal 
ausgeklammert werden.

: Bearbeitet durch User
von John P. (brushlesspower)


Lesenswert?

Vielleicht als zusätzliche Info für alle die noch nie mit den NRF's 
gearbeitet haben.

Das Softdevice ist vorkompilierter code und kümmert sich unter anderem 
um den ganzen Bluetooth Stack und vereinfach einige funktionen.

Jede Api (Sandeemistry, Redbear, oder Adafruit) ist für eine bestimmte 
Softdevice Version kompatibel

Sandeemistry = Softdevice 2.0.1
Readbear = Softdevice 2.0.1
Adafruit = Softdevice 6.1.1 (BLE 5.0 fähig)

: Bearbeitet durch User
von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Mal eine ganz andere Frage sollte man in der hier besprochenen app eine 
deutlich größere Sicherheitslücke finden was sollte man da am besten 
tun? Möchte da ungern weiter ins Detail gehen

von Michael U. (amiga)


Lesenswert?

Hallo,

@John P. (brushlesspower): danke für die Erklärung. So kann ich das 
vorerst wenigstens zuordnen.

@ Aaron C. (Firma: atcnetz.de) (atc1441):
So, es lebt. Das mit dem SoftDevice ist mir gestern Abend 
durchgerutscht, ich hatte alles schon bereit liegen, bin aber nicht auf 
die Idee gekommen, mal auf nRF5 Flash SoftDevice zu klicken usw. In 
seinen Ordner verfrachtet, geflasht und... Denkste. Naja fast: backlight 
ging an und mein Handy fand beim BT-Scan das SmartArdu. Display blieb 
schwarz...
Grade nochmal Deine Posts abgegrast und die variant.h an ihren Platz 
befördert und nun sehe ich auch was.
Kann ich mich nachher mal etwas weiter durch den Kram wühlen und 
Bildungslücken auffüllen.

Gruß aus Berlin
Michael

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Hallo Michael schön dass es nun funktioniert wenn das alles etwas 
sortierter ist und man mal eine beständigere Bezugsquelle für die Uhr 
findet wäre es ja durchaus sinnvoll eine Schritt-für-Schritt-Anleitung 
zu erstellen wenn es aber nirgendwo diese Uhren mehr gibt weiß ich nicht 
ob sich das lohnt.

von 900ss (900ss)


Lesenswert?

Aaron C. schrieb:
> wenn es aber nirgendwo diese Uhren mehr

Ist scheinbar schon ein "älteres" Modell.
Ich habe meine bei Ali für 22€ inkl. Versand bestellt. Irgendwie hat's 
doch gejuckt ;)

: Bearbeitet durch User
von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

Moin nochmal, musste nun das Pinout minimal ändern, GPIO 0.16 ist der CS 
Pin vom KX023 Accel sensor.

Wird benötigt um ihn im SPI Modus zu nutzen, anbei das Geänderte Pinout. 
EDIT CS ist natürlich Output.


Es fehlt nun nur noch der Helligkeits Sensor, dieser wird normalerweise 
über einen analog Pin gelesen es zeigt aber kein analog Eingang eine 
Änderung bei veränderten Lichtverhältnissen, könnte nur sein das man der 
Diode vorher noch Spannung geben muss durch einen anderen Pin, habe aber 
nichts gefunden.

: Bearbeitet durch User
von fritsche (Gast)


Lesenswert?

Interessanter Artikel.
Bin auch mit BLE als Steuerungsmodul am experimentieren allerdings mit 
der Dialog-Familie DA145xx/146xx.
Habe noch 2 Fitness-Tracker mit nRF 52382 bei Bangood gefunden.
1. bakeey Z6.  2. 3C HR. Kosten unter 20$.

Grüße an Autor
fritsche

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

fritsche schrieb:
> Interessanter Artikel.
> Bin auch mit BLE als Steuerungsmodul am experimentieren allerdings mit
> der Dialog-Familie DA145xx/146xx.
> Habe noch 2 Fitness-Tracker mit nRF 52382 bei Bangood gefunden.
> 1. bakeey Z6.  2. 3C HR. Kosten unter 20$.
>
> Grüße an Autor
> fritsche

Cool, hast du da möglichkeiten gefunden die Dialog  chips 
umzuprogrammieren?
Soll ja auch einige uhren geben die auch dialog chips beinhalten.

Bestelle mir mal die beiden uhren, danke.

Grösste problem ist immer die zerstörungsfreie öffnung, das lässt sich 
ja nur ausprobieren :)

von Robertliait (Gast)


Lesenswert?

Modern stairs and fences made of glass and wood

von Friedhelm E. (fritsche)


Lesenswert?

Die Tracker können sich natürlich in den Sensoren unterscheiden aber die 
CPU ist identisch aber für einen Technikfreak eine Herausforderung.

Zur DA1458x und 1468x Serie bin ich seit ca. 1 Jahr am 
experimentieren/recherchieren, besonders was die ARM M0 Programmierung 
in Verbindung mit den BLE-Fähigkeiten betrifft. Habe mit dem einfachen 
CUBOT V1
angefangen und über J-Link die Programmierung analysiert, aber keine 
Modifikation vorgenommen, lediglich zum Verständnis. Der DA1468x ist 
eine eierlegende Wollmilchsau. BLE im ROM, grosser Flash, 50Ohm 
Ausgangsimpedanz bei 0dBm, USB Connectivity und Lipo-Charger onboard und 
das bei ca 4-5mA Gesamtstrom im Betrieb.
Die Programmierumgebung von Dialog in Verbindung mit Segger und Keil ist 
ausgesprochen professionell.
In aktuellen Tracker wird der DA14585 in Verbindung mit 
unterschiedkichen Sensoren und Displays gerne eingebaut,teilweise auch 
schon der DA14681.

Die Änderung des Trackerprogramms am nRF52382 für individuelle Lösungen 
finde ich interessant, könnte aber noch detailreicher sein, da keine 
Konkurrenz oder Copyrightsituation dem entgegen steht
Z.B. Schnittstellenprogrammierung und ihre Spezialitäten,
die BLE-Programmierung und die verschiedenen Einstellungen 
-Advertising-etc.
Vielleicht wird der ein oder andere Interesse an dem Thema finden.
Weiter so.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Hier nun noch ein Update,

https://youtu.be/aEAqb7rIzeM

Pulssensor und Bewegungssensor funktionieren nun in einem Sketch

Der Accl Sensor wird nun über spi angesteuert, und der Pulssensor über 
SoftI2C, eigentlich könnte man den Accl auch über I2C nutzen, hatte es 
anders versucht um Alles in Hardware I2C und SPI anzusteuern aber es ist 
nur möglich entweder I2C oder SPI1 zu nutzen.


Wie im Video erwähnt löst blöderweise der Interrupt trotz Deaktivierung 
aus, das hat aber denke ich was mit der Arduino IDE zu tun, da gibt es 
irgendwo einen BUG.
Hier wird ein ähnliches verhalten beschrieben aber auch ohne Lösung: 
https://devzone.nordicsemi.com/f/nordic-q-a/9157/wakeup-immediately-from-sd_app_evt_wait-with-external-lfclk


@Friedhelm Mit der NRF5x Variante sind wir da ja bis jetzt noch deutlich 
besser dran.

von Michael U. (amiga)


Lesenswert?

Hallo,

Aaron C. schrieb:
> Pulssensor und Bewegungssensor funktionieren nun in einem Sketch

schön das zu hören. Sei doch großzügig und hänge den Sketch hier an. ;)
Ich komme im Moment nicht richtig dazu, weiterzumachen.
Meine Pläne gehen auch weniger dahin, die Originalfunktionalität 
nachzubilden, trotzdem ist es gut, wenn das geht und ich schaue da schon 
gern ab.
Ich werde mich erstmal mit BLE auseinadersetzen, die Richtung:
ein ESP32 als Bridge mit BLE zur Uhr und WLAN zum MQTT-Broker in meinem 
Netz. Nur einen Textstring mit einem MQTT-Topic bei Bedarf von Uhr zu 
ESP bzw. ESP zur Uhr schicken. Als Fernbedienung und/oder als Anzeige 
ohnehin vorhandener Daten von FHEM. Natürlich darf sie gern auch 
weiterhin Pulsrate usw. anzeigen, wenn ich das möchte, ist mir aber 
erstmal weniger wichtig.

PS: kannst Du tft.enterSleep/exitSleep vielleicht auch noch hier 
reinwefen?
Ich hoffe mal, ich bin nicht zu ausverschämt...

Gruß aus Berlin
Michael

von RF-softie (Gast)


Lesenswert?

Aaron C. schrieb:
> SoftI2C

Warum?:

>The GPIOs used for each two-wire interface line can be chosen from any
>GPIO on the device and are independently configurable.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

Michael U. schrieb:
> schön das zu hören. Sei doch großzügig und hänge den Sketch hier an. ;)

Na klar, ist jetzt als rar Datei da mehrere Files.

> PS: kannst Du tft.enterSleep/exitSleep vielleicht auch noch hier
> reinwefen?
> Ich hoffe mal, ich bin nicht zu ausverschämt...

Hier eine kurze Beschreibung der enter- Exit sleep Funktion.

Damit wird der Display Kontroller schlafen gelegt da eine erneute 
Initialisierung zu lange dauert und die Uhr dann ca. 2 sekunden zum 
aufwachen braucht.

Hier die Installation davon, im Library Ordner 
Adafruit_ST7735_and_ST7789_Library in der datei: Adafruit_ST7735.cpp

funktion:

void Adafruit_ST7735::enterSleep(void) {
    startWrite();
    writeCommand( ST7735_SLPIN );
    endWrite();
}

void Adafruit_ST7735::exitSleep(void) {
    startWrite();
    writeCommand( ST7735_SLPOUT );
    endWrite();
}

hinzufügen.

und in der datei Adafruit_ST7735.h

    void    enterSleep(void);
    void    exitSleep(void);

die beiden Zeilen in ca. Zeile 64 Hinzufügen um die Funktion bekannt zu 
machen.

zusätzlich noch bei dem #define block die beiden Register Addressen 
definieren, ca. Zeile 33


#define ST7735_SLPIN     0x10
#define ST7735_SLPOUT     0x11



@RF-softie

Das Problem ist hierbei die Arduino-Nrf52 Library, jede Hardware Braucht 
einen Interrupt und das I2c Nutzt den SPI1 Interrupt für sich, wenn man 
Gleichzeitig versucht den SPI1 Port zu nutzen geht da was schief das sie 
beide darauf zugreifen wollen.
ist hier auch etwas beschrieben: 
https://github.com/sandeepmistry/arduino-nRF5/issues/189

Man müsste in der NRF52 Core was ändern damit es funktioniert.

grüße

: Bearbeitet durch User
von Michael U. (amiga)


Lesenswert?

Hallo,

Aaron C. schrieb:
> Na klar, ist jetzt als rar Datei da mehrere Files.

Danke für die mundgerechte Erklärung. :-) In diesem Fall hätten es sogar 
die Funktionen alleine getan, den Rest hätte ich soagr hinbekommen.

ich habe noch nicht weiter reingeschaut, habe auch jetzt erstmal keine 
Zeit, aber:
1
D:\Arduino-1.8.8-nRF\portable\packages\sandeepmistry\hardware\nRF5\0.6.0\variants\Generic/variant.h:82:34: warning: large integer implicitly truncated to unsigned type [-Woverflow]
2
3
 #define PIN_SPI_MISO         (-1u) // P0.22
4
5
                                  ^
6
7
D:\Arduino-1.8.8-nRF\portable\packages\sandeepmistry\hardware\nRF5\0.6.0\variants\Generic/variant.h:88:29: note: in expansion of macro 'PIN_SPI_MISO'
8
9
 static const uint8_t MISO = PIN_SPI_MISO ;
10
11
                             ^

Gruß aus Berlin
Michael

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

kein Problem.



Die Fehlermeldung entsteht durch die Angabe des - 1 Pins der PIN wird 
für die spi  Schnittstelle nicht gebraucht man könnte dort auch z.b. 9 
eintragen. Da an diesem pin scheinbar nichts angeschlossen ist oder in 
Arduino die Log Einstellung auf keine oder Standard ändern bin gerade 
unterwegs ist so aus dem Kopf


Achso vielleicht könnte man auch das unsigniert int in ein int Ändern 
dann dürfte er normalerweise nicht mehr meckern, also dass u einfach 
löschen

: Bearbeitet durch User
von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

Die pin im variant als Int zu definieren hat leider nicht viel geholfen, 
Fehlermeldung bleibt.



Habe heute auch 3 Weitere Uhren erhalten und 2 davon sind garnicht mal 
so schlecht.

Nr 1 Amaz*n 15,99 Prime, https://amzn.to/2S2prFc

IPS Color Display

Hat auch einen NRF52 und ungenutzte usb data pins, Pinout konnte ich 
innerhalb 2 stunden sehr weit raus meßen und rumprobieren, siehe bild.
Einizges Problem, uhr lässt sich ohne Zerstörung öffnen man muss nur 
noch rausfinden wie sie sich vernünftig wieder schließen lässt, mit 
Sekunden Kleber will ich da nicht bei weil die dämpfe meist Rückstände 
auf der innen Seite des Plastik beim Display hinterlassen.

Insgesamt ein nettes teil und verfügbar.

IWHOP

Nr 2 E*ay 10,99 aus China 
http://rover.ebay.com/rover/1/707-53477-19255-0/1?icep_ff3=2&pub=5575152713&toolid=10001&campid=5337805879&customid=&icep_item=253401420779&ipn=psmain&icep_vectorid=229487&kwid=902099&mtid=824&kw=lg

Oled 0,66"
Hat einen NRF51 aber keine ungenutzten data pin, lässt sich dafür leicht 
öffnen und schließen.
Habe mich damit nicht weiter Pinout mäßig beschäftigt da mich das OLED 
nicht wirklich Reizt.

Ist witziger weise der gleiche Hersteller IWHOP

: Bearbeitet durch User
von Michael U. (amiga)


Lesenswert?

Hallo,

Aaron C. schrieb:
> Nr 1 Amaz*n 15,99 Prime, https://amzn.to/2S2prFc

ok, habe ich eben morgen auch noch ein zweites Modell... ;-)

Gruß aus Berlin
Michael

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Michael U. schrieb:
> ok, habe ich eben morgen auch noch ein zweites Modell... ;-)

Sehr gut :D

Habe gerade scheinbar den Transistor für die Hintergrundbeleuchtung 
durchgejagt. weiß leider nicht genau ob versehentlich ein Kurzschluss 
verursacht wurde oder ob die Beleuchtung nicht dauernd auf volldampf 
sein darf.

Also vielleicht lieber mit analogWrite auf 70% gehen.


Achso, und ich musste mittels J-Link und NRFgo ein Recovery durchführen 
um überhaupt auf den NRF52 zuzugreifen.
Ich denke das der Chip Gelockt ist und dadurch wird er entsperrt. Habe 
etwas gesucht ob dies auch mit dem St-Link funktioniert aber noch nichts 
eindeutiges gefunden.


Leider findet man nicht viel zu dem Beschleunigungssensor, könnte ein 
KX126 sein.EDIT Leider kein KX126 er spricht auf die adresse 0x27 per 
i2c an finde aber nicht wirklich einen chip im netz der die adresse hat. 
Suche noch etwas weiter.

Auf dem Chip steht 310 07F

: Bearbeitet durch User
von Michael U. (amiga)


Lesenswert?

Hallo,

Aaron C. schrieb:
> Nr 1 Amaz*n 15,99 Prime, https://amzn.to/2S2prFc
>
> IPS Color Display

hmmm, Verwirrung: Uhr ist gerade angekommen und lädt jetzt erstmal,
das "Handbuch" sagt OLED 0,96"
Muß ich im Moment nicht verstehen...

Gruß aus Berlin
Michael

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Michael U. schrieb:
> Hallo,
>
> Aaron C. schrieb:
>> Nr 1 Amaz*n 15,99 Prime, https://amzn.to/2S2prFc
>>
>> IPS Color Display
>
> hmmm, Verwirrung: Uhr ist gerade angekommen und lädt jetzt erstmal,
> das "Handbuch" sagt OLED 0,96"
> Muß ich im Moment nicht verstehen...
>
> Gruß aus Berlin
> Michael

Meist steht da ja quatsch im handbuch wegen schlechter übersetzung und 
buzz wörtern.

Display müsste ja nun schon an sein wenn es so ein hochkannt display ist 
wie bei der anderen uhr ist es ein ips display.
Mir ist kein Oled in der bauform bekannt.

Zum öffnen mit einem fön das gehäuse erwährmen und m8t etwas sehr dünnem 
so wie ein cuttermesser ganz leicht und vorsichtig die seiten anheben 
bis eine ecke hochkommt, dann kann man mit dem fingernagel weitermachen.



Habe gestern abend noch erfolgreich den Bewegungssensor ansteuern können 
:)

Ist ein MSA300 und ein datasheet gibt es nur bei lcsc zum download, 
durch die andere uhr ging es aber sogar recht einfach mit dem ansteuern

von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

Nachschub ist da, heute abend gibt es weitere infos.

von Toto mit Harry (Gast)


Lesenswert?

Als Läufer und Hobby Programmierer finde ich das Thema interessant.

Ich habe bei Aliexpress 20$ Uhren mit NRF52 inklusive GPS gefunden.. bei 
Amazon ab 50€ inklu GPS.

Frage ist jetzt, Werbe Trick oder nicht.. Für mich machts erst richtig 
mit GPS Spaß.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Toto mit Harry schrieb:
> Als Läufer und Hobby Programmierer finde ich das Thema interessant.
>
> Ich habe bei Aliexpress 20$ Uhren mit NRF52 inklusive GPS gefunden.. bei
> Amazon ab 50€ inklu GPS.
>
> Frage ist jetzt, Werbe Trick oder nicht.. Für mich machts erst richtig
> mit GPS Spaß.

Es gibt aufjedenfall auch welche mit GPS, wäre da aber wirklich 
vosichtig, viele machen die angabe gps running oder so und nutzen dann 
aber nur die App bzw. das handy dafür.

von Toto mit Harry (Gast)


Lesenswert?

Einfach mal bestellt:
https://www.aliexpress.com/item/Greentiger-W7-smart-bracelet-GPS-heart-rate-smart-wristband-fitness-tracker-Music-Control-Sport-Smart-band/32922427015.html

Wo bekomtm man jetzt eine Standard günstig her, sind die 15,99€ bei 
Amazon minimum?

Aaron C. schrieb:
> Nachschub ist da, heute abend gibt es weitere infos.

Gibts die so in Masse günstiger?

von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

Toto mit Harry schrieb:
> Einfach mal bestellt:
> 
https://www.aliexpress.com/item/Greentiger-W7-smart-bracelet-GPS-heart-rate-smart-wristband-fitness-tracker-Music-Control-Sport-Smart-band/32922427015.html
>
> Wo bekomtm man jetzt eine Standard günstig her, sind die 15,99€ bei
> Amazon minimum?
>
> Aaron C. schrieb:
>> Nachschub ist da, heute abend gibt es weitere infos.
>
> Gibts die so in Masse günstiger?

Die Uhr aus dem Original Beitrag gibt es leider derzeit nur für 34€ zu 
kaufen.

Die 2. Also die https://amzn.to/2S2prFc ist mit 15,99€ die beste 
preislich gesehen aber nicht ganz so gut zu verschließen wie die für 34€

Die von den neusten Fotos Liegen Teils bei 5€ und Teils bei 10€ Pro 
stück, bestelle lieber gleich mehr, falls da was gutes dabei ist will 
ich nicht nochmal warten bis die aus China hier sind.


Die 2 Versionen Rechts auf dem Bild sind bei Aamz*n mit Prime Bestellt 
und liegen bei 10€ das Stück,

Leider lassen die sich nicht gut öffnen wären aber wirklich ideal da 
Hardware stimmt, das Gehäuse wird jeweils zerstört.
Also wer nur Billige Hardware sucht ist da gut aufgehoben.

Hier der Ama*on Link: https://amzn.to/2BdallJ  Hatte einmal die 2018 und 
einmal die Blue Version bestellt ist bei beiden das gleiche drin nur 
etwas anders angeordnet.


NRF52832
0.96" IPS Display
Flash Speicher und Font Speicher auf dem PCB

KX023 Bewegungssensor.



Die anderen Uhren Haben Jeweils einen Telink TLSR8266 mit 512Kb Flash
Sie werden über eine SWS Schnittstelle Programmiert leider findet man 
keinen Programmier Adapter und keine Richtigen Infos.
Wäre für 5€ Perfekt und lassen sich super easy öffnen und schließen.

Hier der E*ay Link: 
http://rover.ebay.com/rover/1/707-53477-19255-0/1?icep_ff3=2&pub=5575152713&toolid=10001&campid=5337805630&customid=&icep_item=153332792159&ipn=psmain&icep_vectorid=229487&kwid=902099&mtid=824&kw=lg

: Bearbeitet durch User
Beitrag #5723040 wurde vom Autor gelöscht.
von Toto mit Harry (Gast)


Lesenswert?

Hm okay, also ich kann stm32 programmieren und habe auch etliche
Programmer da, SWD hab ich auch..

ich würde erstmal nur versuchen die Bilder der Uhr auszutauschen.

von Toto mit Harry (Gast)


Lesenswert?

Habe das jetzt auch mal soweit wie im Video gemacht, Bootloader flashen 
ging schonmal ausversehen. jetzt habe ich anstatt ein blaues Ladezeichen 
ein weisses..

Das Ino selbst kan nicht geflasht werden. Rein erfahrungsgemäss würde 
ich sagen der reset fehlt :/

Aber im Video werden ja auch nur dei 2 SWD benutzt?

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Toto mit Harry schrieb:
> Habe das jetzt auch mal soweit wie im Video gemacht, Bootloader flashen
> ging schonmal ausversehen. jetzt habe ich anstatt ein blaues Ladezeichen
> ein weisses..
>
> Das Ino selbst kan nicht geflasht werden. Rein erfahrungsgemäss würde
> ich sagen der reset fehlt :/
>
> Aber im Video werden ja auch nur dei 2 SWD benutzt?

Wäre jetzt jedenfalls die frage welche Uhr du genau hast, der code der 
hier hochgeladen ist, ist für die I6HRC uhr und funktioniert ohne 
weitere Änderungen nicht an anderen Uhren.


Der SWD Port braucht kein Reset das wird Software seitig gemacht.

Wie bist du nun vorgegangen ? hast du die 
https://github.com/sandeepmistry/arduino-nRF5 arduino library 
installiert?

hast du einen J-Link zur hand ? damit könnte man schonmal mit dem NRFGo 
Programm schauen was die uhr sagt.

von Toto mit Harry (Gast)


Lesenswert?

Aaron C. schrieb:
> Wäre jetzt jedenfalls die frage welche Uhr du genau hast, der code der
> hier hochgeladen ist, ist für die I6HRC uhr und funktioniert ohne
> weitere Änderungen nicht an anderen Uhren.
Ich habe die 15,99€ genommen.. gehäuse leider gedamaged.. bestelle ich 
nochmal. :D

> Der SWD Port braucht kein Reset das wird Software seitig gemacht.
Achso ja.

> Wie bist du nun vorgegangen ? hast du die
> https://github.com/sandeepmistry/arduino-nRF5 arduino library
> installiert?
Ja genau.

> hast du einen J-Link zur hand ? damit könnte man schonmal mit dem NRFGo
> Programm schauen was die uhr sagt.
nei nur den stlink vom f4Discovery.. lässt sich leide rnicht zum jlink 
umflashen.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Aaron C. schrieb:
> Achso, und ich musste mittels J-Link und NRFgo ein Recovery durchführen
> um überhaupt auf den NRF52 zuzugreifen.
> Ich denke das der Chip Gelockt ist und dadurch wird er entsperrt. Habe
> etwas gesucht ob dies auch mit dem St-Link funktioniert aber noch nichts
> eindeutiges gefunden.


Hatte in dem Beitrag noch das "Problem" der 15,99€ Uhr benannt,
schaue sonst jetzt noch mal ob auch ohne J-Link ein Recovery geht.

Melde mich gleich

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?


von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?


von Toto mit Harry (Gast)


Lesenswert?

habe ich alles schon probiert, leider nicht.. Bluepill hab ich denke ich 
noch da.

Mach dann mal wann anders weiter. Danke für die Tips :)

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Alles klar, soweit nen schönen abend,

habe nun doch noch etwas weiter mit der 9,99€ Ama*on Uhr Probiert,

https://amzn.to/2SbxqzF

also bei der Version Blue V10 ist es möglich das obere glas ab zu nehmen 
und direkt am nrf52 Chip an den swd Port zu gehen, ist zwar super fummel 
kram aber es funktioniert, danach kann die front wieder draufgeklebt 
werden.
Das Sketch müsste dann natürlich endgültig sein, oder es geht mit OTA 
weiter.


Hier gibt es noch eine anleitung wie der chip zurückgesetzt werden kann 
mit dem St_link

: Bearbeitet durch User
von Michael U. (amiga)


Lesenswert?

Hallo,

wollte mich nur kurz mal melden: bei der ersten (teueren) Uhr habe ich 
jetzt erfolgreich das Display gebrochen, mit der ist also erstmal Ruhe 
im Karton...
Displays hatte ich in China ohnehin schon bestellt, mal schauen, was ich 
da mache, wenn die irgendwann ankommen.

Uhr 2 (15,99€) steht zumindest zum "Abschuß" bereit, wie ich gelesen 
habe, kann ich mein onBoard-ST-Link vom STM32Nucleo-Board zum J-Link 
umflaschen, das Zeug habe ich mir mal zusammengesucht. Mal schauen, wann 
ich dazu komme.
Die 9,99€ Uhr ist auch schon da, die gefällt mir im Moment noch im 
Originaglzustand ganz gut (ohne die APP), die darf noch etwas so 
bleiben. 2 der ebay-Uhren sind auch noch bestellt...

Reicht mir dann auch. ;-)

Gruß aus Berlin
Michael

von Toto mit Harry (Gast)


Lesenswert?

Michael U. schrieb:
> Uhr 2 (15,99€) steht zumindest zum "Abschuß" bereit, wie ich gelesen
> habe,

Bei der Uhr habe ich zwar erstmal falsch angesetzt und damit das Gehäuse 
zerstört.. aber das geht auch anders.

Im Prinzip kann man vielleicht mit Wärme nur das displayglas abziehen, 
alles hochklappen, 2 drähte unter dem IPS auf den USB anlöten und 
unsichtbar wieder verschliessen. Das wäre dann perfekt gemoddet.

Das mit dem Jlink hat bei meinem STM32F4 Discovery nicht geklappt, ich 
versuche das nochmal mit dem Bluepill.

Beitrag #5725358 wurde von einem Moderator gelöscht.
von Toto mit Harry (Gast)


Lesenswert?

Man kann auch übrigens einen Bluepill mit J-Link Firmware flashen.

Nennt sich dann "J-Link OB", ist ein Projekt von Segger für Stm32.

Allerdings meldete Arduino dabei das kein J-Link gefunden wurde obwohl 
der richtig im Gerätemanager angezeigt wurde.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Hier hat RogerClark auch etwas dazu geschrieben, werde das aufjedenfall 
mal testen, mit dem Großen J-Link zu hantieren ist auf dauer doch 
nervig.

https://www.stm32duino.com/viewtopic.php?t=2140

https://github.com/GCY/JLINK-ARM-OB

jedenfalls nen guter Fund, danke dafür

Dort steht ja das man PA4 und PA7 mit 100Ohm Kurzschließen soll, 
vielleicht fehlte das ja bei dir noch.? oder hattest du eine ganz andere 
Firmware gefunden ?

grüße

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Habe gerade mal einen bluepill Board damit programmiert und es wird von 
dem nrf go studio einwandfrei erkannt es sollte direkt noch ein Firmware 
Update gemacht werden.

Hast du in Arduino denn den jlink Unter Programmiergerät ausgewählt der 
wird da normalerweise nicht angezeigt habe es aber auch nie hinbekommen 
mit dem anderen richtigen jailing unter Arduino zu programmieren glaube 
da war mal was

Das Freischalten müsste eh in dem nrf go studio gemacht werden

: Bearbeitet durch User
von Toto mit Harry (Gast)


Lesenswert?

Ich hatte die gleiche Quelle, allerdings auch keine Zeit um weiter 
nachzuschauen.

Gelesen hatte ich das mit der Brücke auch. Werde mich wohl gegen 
Wochenende mit dem nrfgo richtig ransetzen. Der Jlink war im 
Gerätemanager korrekt installiert, vielleicht hat der OB eine veränderte 
Device ID.

Das BlackmagicProbe ging auch soweit, konnte nur den Chip nicht finden.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

So, habs nun einmal komplett getestet. mit der Hex datei von 
https://github.com/GCY/JLINK-ARM-OB kann man ein BLuePill board zum 
Jlink Bo flashen und mit NrfGo den NRF52 Erfolgreich Unlocken/Recovern.


Flashen über Arduino lässt sich der NRF52 jedoch nicht mit dem J-Link 
das Liegt aber an der NRF Arduino Library das dort etwas nicht stimmt.


Grüße

von Toto mit Harry (Gast)


Lesenswert?

Aaron C. schrieb:
> So, habs nun einmal komplett getestet.

Super, danke. Gibt es eigentlich schon nachgecodete Arduino Firmwares 
die an die Originalen kommen?

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Leider noch nichts direkt in die richtung, das grundgerüst dafür ist 
aber gegeben das ja alles an hardware funktioniert.

Habe die tage noch etwas mit dem Display gespielt und die 
Bildwiederholrate probiert, hier ein kurzes video wie der stand ist.

Es ist kein Scanning effect zu erkennen und das Fuß bild braucht ca. 
32ms bis es aktualisiert ist, das gesamte Display braucht um 76ms.

Es sieht in echt deutlich schöner aus, kann man leider nicht so gut 
filmen.
https://youtu.be/Vh0BEcJgxoM

: Bearbeitet durch User
von John P. (brushlesspower)


Lesenswert?

Aaron C. schrieb:
> Flashen über Arduino lässt sich der NRF52 jedoch nicht mit dem J-Link
> das Liegt aber an der NRF Arduino Library das dort etwas nicht stimmt.

Arduino generiert im Hintergrund ein Hexfile (der Pfad ist im 
kopilierfenster zu finden)

ungefähr so...
C:\Users\"Benutzer"\AppData\Local\Temp\arduino_build_XXXXXX\

Das müsste sich dann eigentlich über NRFGo flashen lassen.

: Bearbeitet durch User
von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Das konnte ich nun auch erfolgreich testen!

Der die das NRFgo Programm meckert zwar das ein Emulator nicht verbunden 
sei es wird die HEX Datei aber erfolgreich geschrieben und läuft danach 
auch an.
Wenn man ein Verify macht läuft dieses auch erfolgreich ab.

von Toto mit Harry (Gast)


Lesenswert?

Arduino mit J-Link funktioniert jetzt:

aus dem wiki ;)

Driver Setup for Segger J-Link

    Download Zadig
    Plugin Segger J-Link or DK board
    Start Zadig
    Select Options -> List All Devices
    Plug and unplug your device to find what changes, and select the 
Interface 2 from the device dropdown
    Click Replace Driver

NOTE: To roll back to the original driver go to: Device Manager -> Right 
click on device -> Check box for "Delete the driver software for this 
device" and click Uninstall

von Toto mit Harry (Gast)


Lesenswert?

Aaron C. schrieb:
> Das konnte ich nun auch erfolgreich testen!

Wenn ich jetzt Dein Beispiel Ino auf das 15€ Band laden möchte, muss ich 
da noch irgendwas beachten? Ic habe es mal hochgeladen und de 
rbildschirm bleibt schwarz.

Wie sieht das aus bei den 10€ teilen.. muss man da die pins noch 
herausfinden oder gibt es da schon vorgefertigte configs?

von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

Toto mit Harry schrieb:
> Aaron C. schrieb:
>> Das konnte ich nun auch erfolgreich testen!
>
> Wenn ich jetzt Dein Beispiel Ino auf das 15€ Band laden möchte, muss ich
> da noch irgendwas beachten? Ic habe es mal hochgeladen und de
> rbildschirm bleibt schwarz.
>
> Wie sieht das aus bei den 10€ teilen.. muss man da die pins noch
> herausfinden oder gibt es da schon vorgefertigte configs?

von dem 15€ teil hatte ich noch gar kein code hochgeladen, hier einer 
anbei.
zu beachten ist das dort die variant auch mit geändert werden muss und 
die Adafruit Library st7735 st7789.
Das Pinout ist weiter oben hochgeladen

werde mich wohl weniger mit den 15€ teilen beschäftigen da die 10€ 
Bänder erstmal interessanter sind.
Habe das nun bei mir so gemacht das ich eigene boards für die 
verschiedenen bänder erstellt habe und dann werde ich in den Variant.h 
Files das pinout genau definieren dann sollte der code immer recht 
variable für die verschiedenen bänder sein.

Bei den 10€ Dingern habe ich gestern Abend das pinout rausgefummelt und 
auch einen test code erstellt

: Bearbeitet durch User
von Toto mit Harry (Gast)


Lesenswert?

Aaron C. schrieb:
> von dem 15€ teil hatte ich noch gar kein code hochgeladen, hier einer
> anbei.
> zu beachten ist

das Pinout habe ich gefunden.. danke für deine mühe, da ist noch 
irgendwo der Wurm drin, backlight habe ich selbst in den code gebracht, 
zeigt nur nichts an..

Ich würde ja soweit klarkommen wenn ich das richtige Pinout hätte. 
Übrigens gibt es noch einen "Arduino nrf52 Core" der die RTC 
initialisiert.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

Aahh sorry hier die richtige Variant.h
sind ja nun doch ein paar mehr verschiedene :D


war der letzte satz eine frage?

wenn ja kann das wohl die Adafruit NRF52 core und eine die heist glaube 
ich RedBear, das offiziele Arduino board Primo hat das aufjedenfall 
integriert, hatte aber nicht geschafft dies mit einem Custom Board zum 
laufen zu bekommen. https://github.com/arduino-org/arduino-core-nrf52



werde mich damit auch als nächstes beschäftigen da eine uhr nur mit 
aktivierten RTC in deepsleep funktionieren würde.

: Bearbeitet durch User
von Toto mit Harry (Gast)


Lesenswert?

Die SPI Pins hatte ich mir natürlich schon angepasst..

leider passiert da nichts. Muss ich mich wohl von Anfang an selbst 
durchfuchsen :)

Also mein Ziel ist für das erste eine funktionierende lowpower Uhr mit 
hintergrund und transparenten Colored Bmp Fonts.

habe im Prinzip schon alles zusammen, muss jetzt nur den Start 
hinbekommen.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Mhh schade, wenn die Hintergrundbeleuchtung schonmal an geht liegt es ja 
scheinbar an der display ansteuerung?!

mehr als das hochgeladene habe ich aber leider auch nicht.

von Toto mit Harry (Gast)


Lesenswert?

Aaron C. schrieb:
> mehr als das hochgeladene habe ich aber leider auch nicht.

hattest du aber schon am laufen mit dem Pinout vom Zettel?

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

ja, habe ja auch das bild mit hochgeladen, am späten abend hatte ich 
dann auch den Accel am laufen und das ist auch das Hochgeladene sketch

vielleicht sonst das ganze mit der UCGLIB probieren vielleicht liegt es 
ja ander Adafruit library.

von Toto mit Harry (Gast)


Lesenswert?

Hm.. jetzt hab ich ausversehen das softdevice mit Lock geschrieben und 
der Chip ist mausetod.

Vielleicht eine Idee?

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Toto mit Harry schrieb:
> Hm.. jetzt hab ich ausversehen das softdevice mit Lock geschrieben und
> der Chip ist mausetod.
>
> Vielleicht eine Idee?

mhh könnte mir nur die lösung mit nrfgo und dort auf recovery gehen 
vostellen.

dann ja mit dem j-link

von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

Habe mich wie "versprochen" heute noch weiter mit dem Timer und RTC 
beschäftigt, konnte erfolgreich einen RTC timer auf 1 Sekunde setzen und 
er zählt auch schön im deep sleep weiter,
leider geht der chip dann aber nie richtig in den deep sleep und zieht 
weiterhin 7mA.
Anbei der code dafür.


Nach dem ich nun stundenlang rumprobiert habe merkte ich nun das der 
millis() counter eh auch im Deepsleep weiterläuft....
ich meine gelesen zu haben das der auch über den Low Frequenz Quarz 
läuft also auch recht genau sein müsste.


Nochmal nachgeschaut:


uint32_t millis( void )
{
  uint64_t ticks = (uint64_t)((uint64_t)overflows << (uint64_t)24) | 
(uint64_t)(NRF_RTC1->COUNTER);

  return (ticks * 1000) / 32768;
}

uint32_t micros( void )
{
  uint64_t ticks = (uint64_t)((uint64_t)overflows << (uint64_t)24) | 
(uint64_t)(NRF_RTC1->COUNTER);

  return (ticks * 1000000) / 32768;
}


die millis() kommen vom LowFreq Quarz und laufen über den RTC1 Timer

: Bearbeitet durch User
von Toto mit Harry (Gast)


Lesenswert?

Ja Danke, ich mache erstmal die Grafik..

Mit der neuen Uhr funktioniert jetzt auch das Display via Adafruit, nur 
irgendwie invertiert oder RGB/BGR Fehler.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

Toto mit Harry schrieb:
> Ja Danke, ich mache erstmal die Grafik..
>
> Mit der neuen Uhr funktioniert jetzt auch das Display via Adafruit, nur
> irgendwie invertiert oder RGB/BGR Fehler.


Ja es gibt da verschiedene versionen vom display.

In der library kann man in der datei 
https://github.com/adafruit/Adafruit-ST7735-Library/blob/master/Adafruit_ST7735.cpp

Bei set rotation alle ST77XX_MADCTL_RGB in ST7735_MADCTL_BGR

Ändern, müssten 4 stück sein.

Falls am rand eine komische linie sein sollte muss man noch die 
_colstart und _rowstart werte ändern. Bin gerade aber unter wegs. Der 
eine 4 pixel und der andere 2 pixel



Erste uhr versuche laufen auch erfolgreich.

Per bluetooth wird vom handy beim neustart ein unixtimestamp gesendet 
und mit der normalen Time library verarbeitet.

: Bearbeitet durch User
von Toto mit Harry (Gast)


Angehängte Dateien:

Lesenswert?

Ich werde mich da mal Step by Step befassen.

auf den beiden Bildern zu sehen stimmt da noch was nicht..

Das RGB hatte ich schon gleich versucht, das ganze Display war 
invertiert.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Sieht ja schon gut aus,

ja danach kann man noch nach dem Display Init
  tft.invertDisplay(true);

hinzufügen um dann die richtigen Farben zu haben.

und es sieht auch nach der linie am rand aus, dazu hier die änderung:

in datei Adafruit_ST7735.cpp

habe ich bei zeile 241 folgendes hinzugefügt:

 // #define pcbspi
   #ifdef pcbspi
    _colstart = 26;
    _rowstart = 1;
#else
    _colstart = 24;
    _rowstart = 0;
#endif

dafür halt die vorherige col und rowstart rausgenommen.


da bei den verschiedenen Uhren mal ein rand ist und mal nicht kann man 
es durch das define leichter verändern, das rausklammern oder halt 
nicht.


Schwer das so zu schreiben hoffe du verstehst es trotzdem.

: Bearbeitet durch User
von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

Habe nun auch mal ansatzweise ein Menü gebastelt obere taste blättert 
durchs Menü und die untere macht eine Aktion.

Dazu noch eine Android App die die Unixzeit automatisch ins Gatt 
schreibt, so muss man nicht hin und her kopieren.

von Toto mit Harry (Gast)


Lesenswert?

Jo nicht schlecht..

Aus dem README, komisch dasman dasüberliest ;)
Low Frequency Clock Source (LFCLKSRC)

If the selected board has an external 32 kHz crystal connected, it will 
be used as the source for the low frequency clock. Otherwise the 
internal 32 kHz RC oscillator will be used. The low frequency clock is 
used by the delay(ms) and millis() Arduino API's.

The Generic nRF51 and nRF52 board options have an additional menu item 
under Tools -> Low Frequency Clock that allows you to select the low 
frequency clock source. However, Nordic does not recommend the 
Synthesized clock, which also has a significant power impact.

von Toto mit Harry (Gast)


Lesenswert?

Ich habe mich mal an dei Adafruit ST7735 Library rangesetzt..

Ich habe mir eigene Funktionen für das Schreiben von RGB24 Bitmaps aus 
dem Flash geschrieben.Mit den vorhandenen Funktionen RGB565/uin16_t 
Pixel gab es bei mir Farb Verfälschungen/Vertauschungen dadieBytes 
zigmal geflippt und getauscht wurden. (Ich habe ein eigenes Java Tool 
für andere Displays zur Array/Bitmapkonvertierung )

Hiermal das aktuelle Beispiel, das einzige Delay im Loop ist 
dasSchreiben via SPI.. theoretisch sollten 25FPS klappen.

Die Farben kommen der Realität erst so ab Sekunde 10 nahe.
https://www.youtube.com/watch?v=gbP1K4Dh-H8

von Toto mit Harry (Gast)


Lesenswert?

Das ganze hier nochmal mit Hintergrundbild und Transparenz..

Sieht in Echt weit besser aus.. so wie das Beispiel Bild der "0" oben..

https://www.youtube.com/watch?v=DRtssCMCqlw

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Cool das sieht doch echt gut aus,

hast du da schon den Sketch für uns?

das Font ist schick!

von Toto mit Harry (Gast)


Angehängte Dateien:

Lesenswert?

Ja, leider muss man die ST7735Library wegen 24bit init und neuen 
Funktionen  mittauschen.

wenn ich die Bilder endlich in RGB565 ala Adafruit konvertieren kann, 
geht das auch Original.

von Toto mit Harry (Gast)


Angehängte Dateien:

Lesenswert?

Sollte jetzt auch mit der Standard Library laufen..

Anbei noch das Konverter Tool..

Einfach die Bilder durchnummeriert (P0.bmp, P1.bmp) in den gleichen 
Ordner kopieren und das Tool starten. Danach nur noch den Array aus 
test.h in den Sketch kopieren.

von Toto mit Harry (Gast)


Angehängte Dateien:

Lesenswert?

Da war noch eine Zeile im Sketch falsch.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

Toto mit Harry schrieb:
> Da war noch eine Zeile im Sketch falsch.

Sehr schön, hat sofort funktioniert, sieht echt gut aus.


Habe gestern noch was in ne andere Richtung gebastelt.

aus einem alten Supermarkt E-Ink Display eine Quasi BLE uhr.

Das Innenleben von einem Fitness Tracker, bis auf Display, in das 
Gehäuse gesetzt und das Steuert mit fast der Gleichen Uhr Firmware das 
E-Ink Display.

Beitrag #5731735 wurde vom Autor gelöscht.
von Toto mit Harry (Gast)


Lesenswert?

Das sieht schon gut aus, haste mal den aktuellen Sketch von etwas vorher
bei dem soweit funktionierende Peripherie dabei ist?

Irgendwie gibts bei meinem sketch noch einen Anzeigefehler bei Vollbild
Bildern.. der war zwischendurch auch mal weg. (jede zweite Zeile
irgendwie verrutscht)

Ich benutze im moment noch kein Softdevice, das muss ich extra flashen?

von Toto mit Harry (Gast)


Lesenswert?

Bei den Trackern ist ja auch ein Flash mit drauf, dort könnte man 
Grafiken etc oder Daten speichern.

Spätestens vielleicht einige Offline Logs als Ringbuffer wenn man den 
Pulssensor aktiviert bekommt.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Habe so nicht weiter mit dem 15€ teil weitergemacht, könnte also nur das 
von dem I6HRC oder den 10€ Teilen teilen da ich da derzeit mehr mit 
mache.

Dann müsste man im Sketch noch die Pins ändern.

der Flash hat jedenfalls potenzial da intern ja leider nur der RAM 
vorhanden ist.

Hab nun auch endlich geschafft den RTC2 Timer vernünftig zu starten und 
der NRF52 wacht nun jede Minute einmal von alleine auf und macht sein 
ding und schläft wieder ein, das war mir gerade wichtig für die E-Ink 
Geschichte.

Dazu musste ich aber direkt in der Library die Wiring und die Delay 
files Bearbeiten.

Beitrag #5733652 wurde vom Autor gelöscht.
von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

Hier einmal der Aktuellste Code mit dem "Menü",

dazu noch ein kurzes video: https://youtu.be/0H17iZJA-oQ

von Toto mit Harry (Gast)


Lesenswert?

wie hast du eigentlich den Flash beim 15€ Tracker ausgeklingelt, gibt es 
dafür ein Datasheet? die meisten 25er haben noch einen Hold Pin, der ist 
garnicht in der Pinliste aufzufinden.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Toto mit Harry schrieb:
> wie hast du eigentlich den Flash beim 15€ Tracker ausgeklingelt, gibt es
> dafür ein Datasheet? die meisten 25er haben noch einen Hold Pin, der ist
> garnicht in der Pinliste aufzufinden.

Ja das ist in mühseliger mess und pcb studierung entstanden.

Der hold pin ist dauerhaft auf 3.3V also High, bzw glaube der ist mit 
auf dem Power Ausgang für den Flash das weiß ich gerade nicht mehr 
genau.

Aber den müsste man eigentlich ignorieren können, habe mich damit auch 
noch nicht weiter beschäftigt werde das aber wohl mit als nächstes tun.


Mfg

von Toto mit Harry (Gast)


Lesenswert?

Okay, ich komme im moment mit umgeschriebenen und angepassten Librarys 
für die 25er Serie nicht weiter, mache da erstmal Pause.

von Toto mit Harry (Gast)


Lesenswert?

Da tut sich doch was.. man darf sich nur nich auf die Libraries 
verlassen ;)

von Toto mit Harry (Gast)


Lesenswert?

Also bei der Cotify habe ich den SPI Chip soweit angesprochen bekommen.. 
scheint der Standard Befehlssatz der 25er Serie zu sein.

JEDECID:
ChipVendor:0x5E
Chip Type: 0x40
Chip Size: 0x14



Egal was ich mache, der Chip nimmt keinen Write/Erase Befehl an. (Byte 
für Byte Manuell probiert, auch über Libs)

Die vorhandenen Bytes auszulesen klappt.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

Toto mit Harry schrieb:
> Also bei der Cotify habe ich den SPI Chip soweit angesprochen bekommen..
> scheint der Standard Befehlssatz der 25er Serie zu sein.
>
> JEDECID:
> ChipVendor:0x5E
> Chip Type: 0x40
> Chip Size: 0x14
>
>
>
> Egal was ich mache, der Chip nimmt keinen Write/Erase Befehl an. (Byte
> für Byte Manuell probiert, auch über Libs)
>
> Die vorhandenen Bytes auszulesen klappt.

Ich meine es gibt noch einen Write Protect pin, dieser wird auch 
geschaltet?, habe das aber leider immer noch nicht weiter verfolgt. wenn 
das auslesen soweit schon funktioniert ist das ja aber super. ich habe 
das pinout von hier: 
https://cdn.sparkfun.com/assets/learn_tutorials/6/9/4/M25P16.pdf

Anbei noch die Variant file dür die 10€ Uhr mit V10inBlau

von Mischa N. (mischaka)


Lesenswert?

Hallo,

ich beschäftige mich mit Thema ESP32 Bluetooth und Fitness Armband. Ich 
wollte eine Brücke mit dem ESP32 zwischen Internet (MQTT 
Hausautomatisierung)und fitness tracker bauen. Um z.B. kleine 
nachrichten zu empfangen ohne Smartphone. Aber Anmeldeprozess mit Mi 
Band 2 war zu kompliziert. ESP32 selbst als Smartuhr  ist ungeiegenet 
wegen 120mA Stromverbrauch.
Bis jetzt habe ich nur iBeacon Präsenz Schalter gebaut.
http://esp32-server.de/ibeacon-itag-praesenz-schalter/

von Michael U. (amiga)


Lesenswert?

Hallo,

Mischa N. schrieb:
> Bis jetzt habe ich nur iBeacon Präsenz Schalter gebaut.
> http://esp32-server.de/ibeacon-itag-praesenz-schalter/

im Moment erstmal Danke für Deinen Code, das bringt mich auf ein paar 
Ideen.
Die Geschichte ESP32 als Bridge zu MQTT steht ja auch auf meinen Plänen, 
im Moment komme ich nicht so richtig dazu, eine der anderen Uhren zu 
präparieren, nachdem ich der ersten und teuersten... ;) ihr Display 
zerknackt habe...

Gruß aua Berlin
Michael

von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

Mischa N. schrieb:
> Bis jetzt habe ich nur iBeacon Präsenz Schalter gebaut.
> http://esp32-server.de/ibeacon-itag-praesenz-schalter/

Die Beacon Idee finde ich super, könnte mir gut vorstellen an alle 
möglichen Sachen einen Beacon zu kleben und man erhält Push nachrichten 
wenn sie das haus verlassen.



Habe heute auch eine Fitness Tracker mit integriertem GPS erhalten, 
leider ist dass Gehäuse super verklebt.

Gibt es auf Ama*on für 58€ https://amzn.to/2IfKfo1

oder bei E*ay für 23€ aus Hamburg vom china zwischenlager: 
http://rover.ebay.com/rover/1/707-53477-19255-0/1?icep_ff3=2&pub=5575152713&toolid=10001&campid=5337805630&customid=&icep_item=253828099784&ipn=psmain&icep_vectorid=229487&kwid=902099&mtid=824&kw=lg
Wurde per DHL geliefert.


Kann mir vorstellen das es mit Erwärmung des Gehäuses besser aufgeht, 
war aber zu ungeduldig :D

: Bearbeitet durch User
von 900ss (900ss)


Lesenswert?

Interessantes Teil. Hast du mal die App getestet? Ist die brauchbar? Und 
muss man sich in einer Cloud anmelden,  also China - Server o.ä.?

von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

900ss D. schrieb:
> Interessantes Teil. Hast du mal die App getestet? Ist die brauchbar? Und
> muss man sich in einer Cloud anmelden,  also China - Server o.ä.?

Habe die app selber noch nicht runtergeladen oder weiter getestet. Sie 
heist "hi move" kann man ja auch ohne tracker mal laden.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Ist ja witzig. Die app ist scheinbar aus dem Playstore gelöscht.

von 900ss (900ss)


Lesenswert?

Ich suche auch gerade und kratze mir den Kopf ;)

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

900ss D. schrieb:
> Ich suche auch gerade und kratze mir den Kopf ;)

Über google findet man einen download, leider weis man dort ja nie was 
da noch mit reingemoddet wurde.

Komisch das die app bis 18.1.2019 noch aktualisiert wurde.

von 900ss (900ss)


Lesenswert?

Deshalb lass ich es auch :)

Mal sehen ob ich Bock hab, mir das Teil zu kaufen. Mit dem GPS find ich 
sie nochmal spannender. Aber da wird es noch aufwendiger, das GPS 
anzusprechen. Wenn es ein bekannter Chip ist, dann wohl nicht.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

900ss D. schrieb:
> Deshalb lass ich es auch :)
>
> Mal sehen ob ich Bock hab, mir das Teil zu kaufen. Mit dem GPS find ich
> sie nochmal spannender. Aber da wird es noch aufwendiger, das GPS
> anzusprechen. Wenn es ein bekannter Chip ist, dann wohl nicht.

Ist ein ublox G7020 also wird das standart nmea sein :) da gibt es ja 
jede menge Arduino beispiele.

Du willst es doch auch :D

: Bearbeitet durch User
von 900ss (900ss)


Lesenswert?

Oder das Binary Protokoll. NMEA wäre wirklich einfach.
Ja klar will ich, aber ob ich Zeit habe ;)

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Aaron C. schrieb:
> 900ss D. schrieb:
>> Ich suche auch gerade und kratze mir den Kopf ;)
>
> Über google findet man einen download, leider weis man dort ja nie was
> da noch mit reingemoddet wurde.
>
> Komisch das die app bis 18.1.2019 noch aktualisiert wurde.

Hier: http://download.keeprapid.com/apps/smartband/himove/index.html 
gibt es die app vom hersteller, da sollte also nichts böseres als eh 
drin sein.

Gerade etwas nachgeschaut, die App kann man ohne registrierung nutzen 
aber es werden trotzdem diverse daten zum api.keeprapid.com server 
gesendet.

Darunter ist vorallem auch die genaue gps position, wird scheinbar für 
die wetterdaten benötigt.

: Bearbeitet durch User
von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

So habe mich heute Abend mal an den Flash Speicher gemacht und kann ihn 
erfolgreich auslesen und schreiben, leider geht das wirklich soweit ich 
gefunden habe nicht mit einer Library also habe ich von Hand Funktionen 
geschrieben die das auslesen und schreiben machen. Hier ein Datenblatt 
was am besten zu dem vorhanden 25f08 flash passt: 
https://cdn.datasheetspdf.com/pdf-down/P/N/2/PN25F08-PARAGON.pdf
dort werden die lese und Schreibvorgänge sehr gut beschrieben.

Habe mir zum besseren rumprobieren einen Flash speicher ausgelötet und 
direkt verdrahtet... zum glück sind das nur 8 Pins :D

Anbei ein Beispiel Sketch in diesem Fall für die V10 Blue Version.
Das Sketch Löscht zuerst den gesamten Flash Speicher, schreibt dann von 
Adresse 256 bis 512 werte von 0 -256 und gibt danach nach und nach den 
ersten teil des speichers aus und zeigt ihn auf dem Display an.

Zudem kann man den Flash und auch den Font Chip mittels SPI Kommando in 
den Deep Sleep bringen, habe das nun mit in meine andere Firmware mit 
eingebaut und komme jetzt auf einen Stromverbrauch von ca. 38uA im sleep 
Mode der Uhr, vorher waren es ca. 68uA.
Ich bin zufrieden

Nachdem Kennenlernen des Flash Speichers habe ich nochmal in das 
Datasheet des Font Speichers geschaut, die haben eigentlich die gleichen 
Kommandos und werden gleich angesteuert.
Der Font Flash Chip hat auch noch 64kByte Frei beschreibbaren speicher, 
da der Font Chip auch auf der I6HRC uhr vorhanden ist kann man das sehr 
gut nutzen.

: Bearbeitet durch User
von Toto mit Harry (Gast)


Lesenswert?

Ich habe es bei meiner 15€ nicht anders gemacht.. nichtmal der einfache 
Chip Erase geht durch. Ich habe schon länger mit jedenfalls den Winbonds 
zu tun.. die benutze ich bei STM32 als Bilderspeicher. Daher wart der 
Protect Pin klar, ich habe es sogar direkt gemessen.

Bei mir sind mitlerweile 2 TFTs kaputt.. das openframe/rumgemesse tut 
denen wohl nicht so gut. Muss ich mal schauen, der rest funktioniert.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Toto mit Harry schrieb:
> Ich habe es bei meiner 15€ nicht anders gemacht.. nichtmal der einfache
> Chip Erase geht durch. Ich habe schon länger mit jedenfalls den Winbonds
> zu tun.. die benutze ich bei STM32 als Bilderspeicher. Daher wart der
> Protect Pin klar, ich habe es sogar direkt gemessen.


Nerkwürdig das es bei dir nicht funktioniert hat, geht es mit dem sketch 
von mir?

Habe es mittlerweile bei 3 uhren erfolgreich getestet.

von Toto mit Harry (Gast)


Lesenswert?

Habe den Sketch mal ausprobiert.. aber der 2ten Bank/Sektor sind noch 
Daten da.. das gleiche wie bei "meinem zu Fuß".

Einen Chip Erase zu Senden ist ja nicht so schwer und sehr 
übersichtlich.

Habe auch mit dem Multimeter das High am Protect Pin überprüft, sowie 
die Protect Bits überprüft.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Toto mit Harry schrieb:
> Habe den Sketch mal ausprobiert.. aber der 2ten Bank/Sektor sind noch
> Daten da.. das gleiche wie bei "meinem zu Fuß".
>
> Einen Chip Erase zu Senden ist ja nicht so schwer und sehr
> übersichtlich.
>
> Habe auch mit dem Multimeter das High am Protect Pin überprüft, sowie
> die Protect Bits überprüft.

Versuche mal am besten die Beiden Status Register auszulesen, es kann 
sein das bei Software eine Schreibsperre gesetzt ist.

dazu 0x05 für das erste und 0x35 für das zweite senden und den byte der 
zurückkommt am besten auf dem Display ausgeben, sollten beide nach einem 
neustart 0x00 sein wenn kein write protect gesetzt ist.

von Toto mit Harry (Gast)


Lesenswert?

Toto mit Harry schrieb:
> sowie die Protect Bits überprüft.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Ahhh sorry überlesen...

von Christoph M. (mchris)


Lesenswert?


von Toto mit Harry (Gast)


Lesenswert?

Jo Nice, das Projekt an sich ist ja schon älter.. aber was die ganzen 
Uhren angeht machste Dir ja echt viel Mühe ;)

Ich habe mir mal diese bestellt.. hoffentlich geht das Glas gut ab.
https://de.aliexpress.com/item/Blutdruck-Smart-Armband-Sport-Band-Herzfrequenz-Stoppuhr-Fitness-Tracker-Wasserdichte-Uhr-Smart-Uhr-f-r-M/32857269667.html

von napsi (Gast)


Lesenswert?

Hallo,
ich habe die Möglichkeit mir die GATT Services, Characteristics und 
Descriptors anzeigen zu lassen, kann aber damit nichts anfangen.
Wie finde ich heraus, welchen String ich an welche Stelle (UUID) 
schreiben muss, um z.B. die Uhrzeit an den Tracker zu schicken? Oder wo 
ich z.B. die Messwerte auslesen kann? Mir fehlt da ein Bausteinchen.
Danke,
Robert

von John P. (brushlesspower)


Lesenswert?

napsi schrieb:
> Hallo,
> ich habe die Möglichkeit mir die GATT Services, Characteristics und
> Descriptors anzeigen zu lassen, kann aber damit nichts anfangen.
> Wie finde ich heraus, welchen String ich an welche Stelle (UUID)
> schreiben muss, um z.B. die Uhrzeit an den Tracker zu schicken? Oder wo
> ich z.B. die Messwerte auslesen kann? Mir fehlt da ein Bausteinchen.

Ich verstehe dein Problem nicht?

Mit der NRF Connect App kannst du sehen welche services  und welche 
Charakteristiken dein Peripheral hat.

Es gibt mehrere Services (teilweise vordefiniert; z.B, Device 
Infomations Service)
Jeder Service kann mehrere Charakteristiken haben. Also für den Device 
Info Service:
Hersteller charakteristik
Modell Charakteristik
Seriennummer charakteristik
usw...


Jeder Service und jede Charakteristike hat eine Eindeutige UUID

Auf App Seite muss du wissen auf welcher Charakteristik welche Daten 
gelesen/geschrieben werden

Auf Mikrocontroller seite sendest oder ließt du auf der bestimmten 
chrakteristik.


App und Firmware müssen natürlich zueinander passen.
Deswegen gibt es ja vordefinierte Services.

Diese kannst du direkt in der Firmware einbinden und nutzen

: Bearbeitet durch User
von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Ich vermute das er in diesem fall speziell die hochgeladene tracker 
firmware meint.

Dort muss in dieser Charakteristik  2A15 , der unixtime stamp als long 
oder int32 geschrieben werden.

Der unixzeit muss noch die zeitzone in sekunden addiert werden, oder 
halt abgezogen jenachdem wo mann ist.

Wenn gewollt kann ich später die app hier hochladen mit der ich meine 
tracker und das eink display einstelle, dort wird bei start eine ble 
suche gestartet und man kann das gerät auswählen. Danach drückt man 
einfach den button zeit einstellen. Ist zwar nicht viel funktion drin 
aber dafür reicht es.

Mfg

von napsi (Gast)


Lesenswert?

Danke für Eure Nachrichten! Zuerst nochmal vielen Dank, Aaron, dass Du 
Deinen Hack mit anderen teilst. Ich habe mir zum spielen einen Tracker 
geholt und wollte nun, wo er noch nicht kaputtgebaut ist, testen, wie 
die Bluetoothfunktionen aussehen und funktionieren. Mit Bluetooth LE 
habe ich noch nicht viel zu tun gehabt, nur mit den älteren Versionen 
und dem Serial Port Profile, aber das ist ja ein anderer Schuh. Ich habe 
Windowsprogramm, welches mit einem Bluegiga-USB-Dongle Verbindung zu 
einem BTLE-Gerät herstellen kann und die Services / Characteristics, ... 
anzeigen kann. Ebenso könnte ich Daten darüber senden.
Mit dem Programm konnte ich eine Verbindung mit dem Tracker herstellen. 
Jetzt wäre mein nächster Schritt, einfach mal die Uhr in dem Ding zu 
stellen, oder andere Funktionen zu testen. (Heart Rate auslesen o.ä.). 
Doch dazu bräuchte man eine Art Dokumentation des Trackers oder den 
Quellcode der Hersteller-APP, und beides ist nicht verfügbar, richtig?
Der Tipp mit der NRF connect App war auch super, habe ich getestet und 
sehe dort auch die GATT-Parameter des Trackers.

Sorry nochmal, dass ich so Anfänger-Fragen stelle, aber beginne wie 
gesagt erst mit BTLE. Gibt es eine empfehlenswerte Doku  Intro  
Tutorial / HowTo über BTLE und den Einstieg?

Danke!

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

napsi schrieb:
> Danke für Eure Nachrichten! Zuerst nochmal vielen Dank, Aaron, dass Du
> Deinen Hack mit anderen teilst. Ich habe mir zum spielen einen Tracker
> geholt und wollte nun, wo er noch nicht kaputtgebaut ist, testen, wie
> die Bluetoothfunktionen aussehen und funktionieren. Mit Bluetooth LE
> habe ich noch nicht viel zu tun gehabt, nur mit den älteren Versionen
> und dem Serial Port Profile, aber das ist ja ein anderer Schuh. Ich habe
> Windowsprogramm, welches mit einem Bluegiga-USB-Dongle Verbindung zu
> einem BTLE-Gerät herstellen kann und die Services / Characteristics, ...
> anzeigen kann. Ebenso könnte ich Daten darüber senden.
> Mit dem Programm konnte ich eine Verbindung mit dem Tracker herstellen.
> Jetzt wäre mein nächster Schritt, einfach mal die Uhr in dem Ding zu
> stellen, oder andere Funktionen zu testen. (Heart Rate auslesen o.ä.).
> Doch dazu bräuchte man eine Art Dokumentation des Trackers oder den
> Quellcode der Hersteller-APP, und beides ist nicht verfügbar, richtig?
> Der Tipp mit der NRF connect App war auch super, habe ich getestet und
> sehe dort auch die GATT-Parameter des Trackers.
>
> Sorry nochmal, dass ich so Anfänger-Fragen stelle, aber beginne wie
> gesagt erst mit BTLE. Gibt es eine empfehlenswerte Doku / Intro /
> Tutorial / HowTo über BTLE und den Einstieg?
>
> Danke!


Moin. Bitte sehr :)
Bevor ich nun weitere fragen beantworte frage ich erst nochmal nach. Du 
hast derzeit noch die originale firmware installiert ?

Wenn ja ist das ein ganz anderer schuh, hier gehts ja eigentlich nur um 
eine Custom firmware.

Habe mir natürlich auch die Original App und firmware angesehen das 
protokoll etwas entschlüsselt.

Hätte zudem ein link zu dem source code der IWOWNFIT entwickler App 
möchte den aber eher ungern einfach so posten da in deren website 
diverse sicherheits lücken sind, keine ahnung wieso ist alles super 
offensichtlich aber naja ^^

Mit dem source code kann man sich eine eigene app mit android studio 
erstellen und dort auch das protokoll gut mitlesen und ändern.

Jeder hersteller macht bei seinem fitness tracker natürlich ein eigenes 
protokoll also selbst das kann man nicht unbedingt verallgemeinern.

Ich warte nun aber erstmal deine antwort ab.

von napsi (Gast)


Lesenswert?

Ja genau, ich habe noch die originale Firmware auf dem Tracker und 
wollte die Gelegenheit nutzen, um mir BTLE anzusehen.

Okay, Du beschäftigst Dich mit einer Custom firmware, mit der die 
Sensoren ausgelesen werden können und das Display angesteuert wird. Hast 
Du auch vor, die komplette BTLE-Funktionalität einzubauen, also wird mit 
Deiner Arduino-Firmware dann auch ein GATT-Server bereitgestellt und 
genutzt zur Verbindung zwischen einer APP und dem Tracker? Musst Du 
dafür den gesamten BTLE-Stack implementieren?

> Habe mir natürlich auch die Original App und firmware angesehen das protokoll 
etwas entschlüsselt.
Da stellt sich mir die Frage, wie Du zum Code der Originalfirmware 
gekommen bist - kann man den von der Uhr herunterladen? Eher nicht, 
oder?

> Hätte zudem ein link zu dem source code der IWOWNFIT entwickler App möchte den 
aber eher ungern einfach so posten da in deren website diverse sicherheits lücken 
sind, keine ahnung wieso ist alles super offensichtlich aber naja ^^
Könntest Du ihn mir mailen? (jim.panse ät gmx punkt li )

> Mit dem source code kann man sich eine eigene app mit android studio
erstellen und dort auch das protokoll gut mitlesen und ändern.

Genau in diese Richtung habe ich gedacht...

> Jeder hersteller macht bei seinem fitness tracker natürlich ein eigenes 
protokoll also selbst das kann man nicht unbedingt verallgemeinern.
Schade, also wird es nicht irgendwann eine open source app geben, die 
mit allen Trackern funktioniert, von den Nutzern immer weiter erweitert 
wird und nicht unkontrolliert irgendwelche Daten an den Hersteller 
schickt ...

Viele Grüße

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

napsi schrieb:
> Okay, Du beschäftigst Dich mit einer Custom firmware, mit der die
> Sensoren ausgelesen werden können und das Display angesteuert wird. Hast
> Du auch vor, die komplette BTLE-Funktionalität einzubauen, also wird mit
> Deiner Arduino-Firmware dann auch ein GATT-Server bereitgestellt und
> genutzt zur Verbindung zwischen einer APP und dem Tracker? Musst Du
> dafür den gesamten BTLE-Stack implementieren?

Dies ist bereits in der Arduino firmware vorhanden, ist sehr einfach zu 
implementieren durch diese 
https://github.com/sandeepmistry/arduino-BLEPeripheral library, dort 
sich auch ein paar beispiele dabei die einem helfen BLE zu verstehen.

> Da stellt sich mir die Frage, wie Du zum Code der Originalfirmware
> gekommen bist - kann man den von der Uhr herunterladen? Eher nicht,
> oder?

Den code der Firmware kann man im falle von der I6HRC tatsächlich 
einfach von der Uhr runterladen da keine auslese-sperre gesetzt ist, ist 
natürlich nicht der Sourcecode sondern Assembler dafür kann man aber IDA 
benutzen um es etwas leserlicher zu machen, kann IDA empfehlen ist aber 
dann eine ganz andere Geschichte und ein eigenes Projekt für sich :D
Viel mehr meine ich damit aber die App dort kann man den Sourcecode 
wirklich fast genau wieder aus der App Decompilern. 
http://www.javadecompilers.com/apk

Wenn man in der Original App das Android:Debuggable auf True setzt kann 
man Via Logcat sehr viel mitlesen was die App im Hintergrund macht, auch 
jegliches gesendete BLE Kommando und jedes empfangene.

> Könntest Du ihn mir mailen? (jim.panse ät gmx punkt li )
> Genau in diese Richtung habe ich gedacht...
Sonst hier der Link, wird schon nicht so schlimm sein und ist ja eh 
öffentlich im internet zu finden: http://api6.iwown. * 
com/devcenter/home.html sternchen wegnehmen.


> und nicht unkontrolliert irgendwelche Daten an den Hersteller

Das werden wir bestimmt nie erleben :D


Hoffe ich konnte dir helfen und es liest sich nicht allzu merkwürdig, so 
viel nach dem aufstehen zu schreiben ist tödlich...

Grüße

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Habe mich heute noch an ein Video über die Installation der SWD Ports 
gesetzt:

https://youtu.be/0Fu-VSuKHEg

hoffe das hilft jemmandem, ist etwas lang geworden aber sehr genau 
beschrieben.(Auf English)

von 900ss (900ss)


Lesenswert?

Hmmm.... Danke, ich hab die Kontakte heute so fertig gemacht. Hatte 
irgendwann ein Foto von der Rückseite der Platine gesehen und dass dort 
die Kontaktierung möglich ist.
Also mal vorsichtig alles auseinander gepopelt. Ob es jetzt 
funktioniert, weiß ich nicht. Das Wetter ist zu gut ;) Test kommt heute 
Abend.

von Konstantin W. (konstantin_w)


Lesenswert?

Hallo,

dank des ausführlichen Videos hat das Einlöten der SWD-Verbindung in die 
i6HRC super geklappt. Flashen des Softdevice per J-Link funktioniert 
auch.

Aber mit der Adafruit nrf52 Library bekomme ich keine Firmware 
kompiliert.

Hat jemand eine funktionierende Konfiguration aus variant.h und 
board-definition?

Bin für jeden Tipp dankbar!

von Aaron C. (Firma: atcnetz.de) (atc1441)


Angehängte Dateien:

Lesenswert?

Konstantin W. schrieb:
> Aber mit der Adafruit nrf52 Library bekomme ich keine Firmware
> kompiliert.

Moin,
Welche Fehlermeldung wird in der Arduino IDE angezeigt? dann könnte man 
besser sehen woran es liegt. Es müsste sich jedes sketch auch mit dem 
generic nrf52 board kompilieren lassen.
Dort ist dann noch wichtig das Softdevice S132 auszuwählen und es muss 
noch der Mod installiert werden das die NFC pins als GPIO genutzt werden 
können.
Ist weiter oben im Thread beschrieben.

> Hat jemand eine funktionierende Konfiguration aus variant.h und
> board-definition?

Anbei die Varants files und auch der inhalt der noch bei Boards 
hinzugefügt werden muss. Damit hat man dann ein ganz eigenes Board für 
die I6HRC

hoffe es hilft.

Grüße

: Bearbeitet durch User
von John P. (brushlesspower)


Lesenswert?

Die Firmware von Aaron ist doch mit/für die Library von Sandeepmistry, 
oder?

Damit wäre die Adafruit NRF52 Library nicht 100% kompatibel.



Welche Fehler bekommst du denn angezeigt?

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

John P. schrieb:
> Die Firmware von Aaron ist doch mit/für die Library von Sandeepmistry,
> oder?
>
> Damit wäre die Adafruit NRF52 Library nicht 100% kompatibel.
>
>
>
> Welche Fehler bekommst du denn angezeigt?

Richtig. Habe das Adafruit überlesen. Damit hat es bei mir auch noch 
garnicht funktioniert.

Alle meine sketches bauen auf dieser library auf:
https://github.com/sandeepmistry/arduino-nRF5

von 900ss (900ss)


Lesenswert?

Aaron C. schrieb:
> Alle meine sketches bauen auf dieser library auf:

Wobei hier
Beitrag "Re: Arduino Custom Firmware für Fitness Armband mit NRF52"

steht, dass die Adafruit die bessere Wahl zu sein scheint.

Ich bin da leider stecken geblieben und kann da nichts zu sagen. Hab 
meine Uhr umgebaut, dass ich sie über den USB-Anschluß flashen kann und 
dann kam was anderes ;)

von Michael U. (amiga)


Lesenswert?

Hallo,

nachdem ich bei der ersten erfolgreich das Display zerlegt hatte und 
über einen Austausch wegen des "Touch" noch nicht ernsthaft nachgedacht 
habe und auch andere Sachen Vorrang hatten...

Hier liegen ja noch;
Aaron C. schrieb:
> Nr 1 Amaz*n 15,99 Prime, https://amzn.to/2S2prFc

Aaron C. schrieb:
> habe nun doch noch etwas weiter mit der 9,99€ Ama*on Uhr Probiert,
>
> https://amzn.to/2SbxqzF

Aaron C. schrieb:
> oder bei E*ay für 23€ aus Hamburg vom china zwischenlager:
> 
http://rover.ebay.com/rover/1/707-53477-19255-0/1?icep_ff3=2&pub=5575152713&toolid=10001&campid=5337805630&customid=&icep_item=253828099784&ipn=psmain&icep_vectorid=229487&kwid=902099&mtid=824&kw=lg

in der Gegend rum. Welche davon kann man relativ problemlos öffnen und 
kommt an an die Programmierpins gut ran? Ich habe da etwas den Überblick 
verloren.

Die China-5€ Uhr lasse ich mal wegen des CPU-Exoten erstmal außer acht.
Vielleicht hast Du ja da nochmal einen Hinweis oder Verweis auf eins 
Deiner Videos? Dann würde ich mit programmieren durchaus gern 
mitspielen.

Gruß aus Berlin
Michael

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Michael U. schrieb:
> Hier liegen ja noch;
> Aaron C. schrieb:
>> Nr 1 Amaz*n 15,99 Prime, https://amzn.to/2S2prFc
>
> Aaron C. schrieb:
>> habe nun doch noch etwas weiter mit der 9,99€ Ama*on Uhr Probiert,
>>
>> https://amzn.to/2SbxqzF
>


Die beiden sind relativ einfach zu öffnen und zu schließen insgesamt 
kann ich aber dennoch am meisten die i6hrc empfehlen das Touch lässt 
sich dort auch recht leicht lösen und du könntest ein Display der 
anderen Uhren dort einbauen.

 bei den beiden Uhren müsstest du das Gehäuse etwas erhitzen und kannst 
es dann mit einem Cuttermesser oder ähnlichem auseinander drücken.


@900ss
 Bei der adafruit library bin ich leider nie weiter gekommen es hält 
mich immer noch davon ab dass das Flashen nicht so einfach wie bei der 
anderen geht.  ich konnte zwar kompilieren den Code auf die Uhr zu 
bekommen ist dort aber umständlicher wenn man von vorne rein damit 
arbeiten würde denke ich schon dass man da reinkommt bin mit dem anderen 
aber glücklich.

: Bearbeitet durch User
von Konstantin W. (konstantin_w)


Lesenswert?

@Aaron C.:
Danke für die Dateien. Ich bin testweise auf die Library von 
sandeepmistry umgestiegen. Nach einer frischen Installation über den 
Boardmanager und dem Einfügen deiner Änderungen klappt es nun.
Die Firmware kompiliert und mit Softdevice 2.0.1 läuft sie auch.

Damit bin ich jetzt erstmal zufrieden und kann mich dem restlichen Code 
widmen.

Es wäre natürlich trotzdem schön, das ganze mit der Adafruit-Library zum 
laufen zu kriegen um Softdevice 6.1.1 nutzen zu können.

@John P.:
Läuft das bei dir mit der i6HRC? Kannst du Dateien zur Verfügung 
stellen?

Die Fehlermeldungen, die bei mir kamen, bezogen sich auf fehlende 
#defines in der variant.h.

von John P. (brushlesspower)


Lesenswert?

Konstantin W. schrieb:
> @John P.:
> Läuft das bei dir mit der i6HRC? Kannst du Dateien zur Verfügung
> stellen?
>
> Die Fehlermeldungen, die bei mir kamen, bezogen sich auf fehlende
> #defines in der variant.h.

Nein, habe selber keine Tracking/Health Geräte hier.
Ich arbeite jeden Tag beruflich mit dem NRF52 und finde natürlich auch 
diesen Thread sehr spannend.

Durch meine Tätigkeiten habe ich 3 Verschiedene NRF52 Arduino Librarys 
getestet:

Die von sandeepmistry, Redbear und Adafruit.

Aktuell arbeite ich nur noch mit der von Adafruit. Einzig und allein 
weil sie moderner ist und mehr Features bietet.

- BLE 5.0 support
- Update via BLE
- Sehr gute Dokumentation
- mit dem NRF52840 kompatibel

Leider ist das flashen umständlicher. Erst das Softdevice mit JLink 
flashen danach nur noch mit einem USB-UART Kabel den bootloader 
nutzen...Arduino mäßig.
Außerdem ist die Library etwas verschwenderisch wasd den Strom angeht.
Man kommt beim NRF52 auf 5µA runter (BLE Advertising)
Mit der Adafruit library schafft man nur 200µA (ohne im Source Code 
rumzupfuschen)
Da ich aber sowieso ständig den Source Code ändere stört mich das 
weniger.


Die Firmware von Aaron baut auf die sandeepmistry Library auf. Die 
Adafruit Library baut auch auf die sandeepmistry library auf.

Trotzdem muss sicherlich einiges angepasst werden.

Und die fehlenden defines werden nur der Anfang sein.

: Bearbeitet durch User
von 900ss (900ss)


Lesenswert?

@Aaron C.

Du hattest hier
Beitrag "Re: Arduino Custom Firmware für Fitness Armband mit NRF52"

freundlicherweise ein Pinout zur Verfügung gestellt. Vielen Dank für die 
Mühe. Das muss wirklich aufwendig sein, dass rauszufummeln. :)

Hast inzwischen rausfinden können ob Pin 7 (GPIO 0.05) spi MISO vom Font 
Chip ist?

Und hast du deine SW für die Uhr noch weiter ausgebaut? Z.B. 
Schrittzähler? Wäre nett wenn du das hier posten könntest.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

900ss D. schrieb:
> @Aaron C.
>
> Du hattest hier
> Beitrag "Re: Arduino Custom Firmware für Fitness Armband mit NRF52"
>
> freundlicherweise ein Pinout zur Verfügung gestellt. Vielen Dank für die
> Mühe. Das muss wirklich aufwendig sein, dass rauszufummeln. :)

Dauert halt echt etwas länger aber ab dem zweiten Tracker hatte ich ein 
System, als erstes teste ich jeden Pin und toggle ihn 500ms an 500ms 
aus, dadurch findet man meist schon Hintergrundbeleuchtung und 
Vibrationsmotor.
Danach das Display um werte anzuzeigen, dann alle möglichen Eingänge (ob 
analog oder digital) auf dem Display anzeigen und mal Ladegerät 
anschließen, Batterie Spannung ändern, Touchfeld drücken usw.
Die i2c Leitungen durch einen i2c Scanner den ich alle restlichen pins 
nach und nach nach Geräten suchen lasse.


> Hast inzwischen rausfinden können ob Pin 7 (GPIO 0.05) spi MISO vom Font
> Chip ist?

Es müsste zu 90% der MISO pin sein, man kann die Leiterbahn deutlich auf 
der Platine erkennen. Getestet ist dies aber nicht.

Und wie oben auch mal erwähnt hat der Chip sogar 64Kb Flash speicher, 
man kann ihn auch sinnvoll nutzen, ist im ersten Beitrag ja noch falsch 
angegeben.

> Und hast du deine SW für die Uhr noch weiter ausgebaut? Z.B.
> Schrittzähler? Wäre nett wenn du das hier posten könntest.

Habe mich in letzter zeit etwas mit anderen Sachen beschäftigt, wurde 
aber nun schon mehrfach für Projekte angefragt also das wird noch was 
kommen :)

Schrittzähler ist leider nicht einfach, der KX023 kann das nicht On 
Board, man muss also die Bewegungsdaten analysieren und sehen ob ein 
schritt erfolgt ist, andere Accel Sensoren sind da einfacher dort kann 
man einfach die anzahl der schritte auslesen.

: Bearbeitet durch User
von 900ss (900ss)


Lesenswert?

Aaron C. schrieb:
> Es müsste zu 90% der MISO pin sein

Ok, werde ich dann merken. Muss auch erstmal soweit sein. Ich versuch 
egerade mir etwas mit PlatformIO zu basteln da ich die Arduino Umgebung 
nicht mag. Und mit PlatformIO hab ich noch nie gearbeitet ;)

Aaron C. schrieb:
> Schrittzähler ist leider nicht einfach

Hab ich auch schon gesehen und mal etwas gegraben, wie man soetwas denn 
macht. Dabei hab ich folgende interessanten "Artikel" gefunden. Die 
haben das "zu Fuß" entwickelt und scheinen recht erfolgreich gewesen zu 
sein.

https://github.com/danielmurray/adaptiv

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

900ss D. schrieb:
> Aaron C. schrieb:
>> Es müsste zu 90% der MISO pin sein
>
> Ok, werde ich dann merken. Muss auch erstmal soweit sein. Ich versuch
> egerade mir etwas mit PlatformIO zu basteln da ich die Arduino Umgebung
> nicht mag. Und mit PlatformIO hab ich noch nie gearbeitet ;)

PlatformIO habe ich bissher auch nicht verwendet, ich mag es da etwas 
einfacher, Arduino IDE kann man mal eben auf nem neuen Rechner 
installieren und es läuft, wenn es auch ein paar sachen gibt die stören.

> Hab ich auch schon gesehen und mal etwas gegraben, wie man soetwas denn
> macht. Dabei hab ich folgende interessanten "Artikel" gefunden. Die
> haben das "zu Fuß" entwickelt und scheinen recht erfolgreich gewesen zu
> sein.
>
> https://github.com/danielmurray/adaptiv

Das sieht sehr gut aus. Da kann man sicherlich was abschauen.

von Входные двери (Gast)


Lesenswert?

Da derzeit die Fitness Tracker die es auf dem Markt gibt mit 10-20 einen 
super Bastel Preisbereich erreicht haben, habe ich jede menge 
unterschiedliche Modelle bestellt um den Besten Bastel Kandidat 
ausfindig zu machen.

von 900ss (900ss)


Lesenswert?

@Aaron:

Ich bekomme beim kompilieren von deinen Sourcen diesen Fehler

tft.writePixel((byte & 0x80) ? color : bg);

I6HRC_Menu.cpp:331:35: error: no matching function for call to 
'Adafruit_ST7735::writePixel(int)'

Welche Library hast du für das TFT verwendet?
Kannst du sie bitte hier zur Verfügung stellen oder einen Link posten?

Danke dir.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Moin.

Ich nutze soweit die Adafruit_st7735 library die gibt es hier auf 
github:
https://github.com/adafruit/Adafruit-ST7735-Library


Zusätzlich habe ich dort aber noch änderungen eingebaut, diese sind in 
diesem beitrag und einigen drüber und drunter beschrieben: 
Beitrag "Re: Arduino Custom Firmware für Fitness Armband mit NRF52"

Wünsche nen schönen abend.

von Richard (Gast)


Angehängte Dateien:

Lesenswert?

@Aaron:
Erst einmal vielen vielen dank für die Arbeit die du auf dich genommen 
hast. Das machte mir das Leben so viel leichter :)


900ss D. schrieb:
> Aaron C. schrieb:
>> Es müsste zu 90% der MISO pin sein

Ich kann bestätigen das der GPIO 0.05 der MISO Pin vom GT24L24A2Y 
FontChip ist. Zur zeit kann ich hin zwar nur auslesen, der rest kommt 
aber noch.


Aaron C. schrieb:
> Bis auf den Lichtsensor ist soweit jede Hardware von mir getestet und
> funktioniert soweit unter Arduino

Spannend ist immer noch der Lichtsensor. Gibt es dort Neuigkeiten? Es 
bleiben ja nur noch:
P0.29 AIN5
P0.31 AIN7
Ich hatte leider keinen Erfolg den Sensor zu finden (oder ich halte da 
was falsch).

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Richard schrieb:
> Ich kann bestätigen das der GPIO 0.05 der MISO Pin vom GT24L24A2Y
> FontChip ist. Zur zeit kann ich hin zwar nur auslesen, der rest kommt
> aber noch.

Sehr gut dann ist das jedenfalls bestätigt, bei der 15€ Uhr konnte ich 
den flash speicher ja bereits erfolgreich lesen und schreiben, ist ja 
sehr gut im Datenblatt beschrieben. Man muss beim font speicher ja nur 
auf die richtige Adresse achten dann sollte das 1 zu 1 gehen, 
Beitrag "Re: Arduino Custom Firmware für Fitness Armband mit NRF52"


> Spannend ist immer noch der Lichtsensor. Gibt es dort Neuigkeiten? Es
> bleiben ja nur noch:
> P0.29 AIN5
> P0.31 AIN7
> Ich hatte leider keinen Erfolg den Sensor zu finden (oder ich halte da
> was falsch).

Ja habe da auch schon jede menge durchprobiert, alles von andere pins 
high oder low oder pulsen etc.  leider ohne erfolg soweit.
e scheint als wäre auf dem pcb auch eine Möglichkeit einen anderen 
Sensor zu installieren, vielleicht ist die Diode ja gar nicht echt ein 
Sensor und es ist fake?! naja also soweit ich noch gelesen habe muss man 
die LED unter Spannung setzen und kann dann mit einem spannungsteiler 
die Lichtstärke als analoges Signal messen. die Hardware dafür ist ja da 
also müsste es schon funktionieren.

von 900ss (900ss)


Lesenswert?

Aaron C. schrieb:
> Moin.
>
> Ich nutze soweit die Adafruit_st7735 library die gibt es hier auf
> github:
> https://github.com/adafruit/Adafruit-ST7735-Library
>
>
> Zusätzlich habe ich dort aber noch änderungen eingebaut, diese sind in
> diesem beitrag und einigen drüber und drunter beschrieben:
> Beitrag "Re: Arduino Custom Firmware für Fitness Armband mit NRF52"
>
> Wünsche nen schönen abend.

Danke dir. Ich habe jetzt die neuesten Versionen von
Adafruit-ST7735
Adafruit-GFX
und deine Änderungen mit dem enterSleep exitSleep eingefügt.

und ich bekomme diese Meldungen immer noch.
1
W:\Arduino\I6HRC_Menu\I6HRC_Menu.ino: In function 'void mdrawBitmap(int16_t, int16_t, const uint8_t*, int16_t, int16_t, uint16_t, uint16_t)':
2
3
I6HRC_Menu:287:48: error: no matching function for call to 'Adafruit_ST7735::writePixel(uint16_t&)'
4
5
       tft.writePixel((byte & 0x80) ? color : bg);

Es gibt auch nirgends eine passende Funktion in den Sourcen der Libs. 
Die habe alle mehr Parameter.
Welche Versionen benutzt du denn?
Oder kannst du Libs hier mal anhängen. Das ist schräg. Ich verwende 
gerade die Arduino IDE. Wenn es damit klappt, steige ich wieder um auf 
PlatformIO.
Aber erstmal sollte das funktionieren, was du auch hast.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

900ss D. schrieb:
> Aber erstmal sollte das funktionieren, was du auch hast.

So, nach nun vielem hin und her habe ich das Problem gefunden, ich hatte 
bei mir die GFX library in Version 1.3.6 installiert da gibt es die 
Funktion noch.

in der Aktuellen Version kann man sie aber hinzufügen:

in der Datei Adafruit_SPITFT.h in ca. Zeile 197 eine neue Zeile einfügen

void      inline writePixel(uint16_t color) { SPI_WRITE16(color); }


Da die andere vorhandene Funktion zu langsam ist empfehle ich diesen weg 
zu gehen.


Achso und nur das dies bekannt ist, es gibt irgendwo noch einen fehler 
in meinem sketch, immer mal wieder, so alle 20 stunden hängt sich die 
cpu auf und der watchdog timer schlägt zu.
Danach ist die uhrzeit nicht mehr gestellt. wenn man nun eh eine 
ständige verbindung zum handy hat ist dies ja lösbar, ohne jedoch etwas 
nervig.

Warum das so ist konnte ich noch nicht ausfindig machen da es so selten 
aufrtitt.
Manchmal kann man einen absturz aber auch hervorrufen wenn man extrem 
oft den pulssensor ein und auschaltet.

: Bearbeitet durch User
von Aaron C. (Firma: atcnetz.de) (atc1441)



Lesenswert?

So, nun ist es raus.

Der Lichtsensor ist der Pin P0.31 und die Sensor Led wird über Pin P0.29 
Aktiviert.

Der Grund weswegen ich es nicht rausgefunden hatte ist ein defekt von 
dem 1.Tracker den ich zum programmieren genommen hatte. Bei einem 
weiteren funktioniert dies nun einwandfrei.


Sensor Aktiv ist HIGH

Also Pin P0.29 High setzen und dann den Analogwert von P0.31 einlesen.

Je heller die Umgebung umso Höher der wert.

: Bearbeitet durch User
von 900ss (900ss)


Lesenswert?

Aaron C. schrieb:
> So, nach nun vielem hin und her habe ich das Problem gefunden,

Danke schön. Jetzt funktioniert es bei mir auch, mit der 
Arduino-Umgebung gebaut und sandeepmistry und deinen Sourcen.

Das kann ich als Basis nehmen bzw. ich möchte es ja auf Platformio 
bringen. Mal schauen.

Nur mein Telefon wollte sich per Bluetooth noch nicht verbinden. Ein 
ATCwatch wurde angezeigt. Funktioniert das verbinden oder nicht?

Edit: Irgendwie cool :) Danke für das hacken der Uhr.

: Bearbeitet durch User
von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

900ss D. schrieb:
> Aaron C. schrieb:
>> So, nach nun vielem hin und her habe ich das Problem gefunden,
>
> Danke schön. Jetzt funktioniert es bei mir auch, mit der
> Arduino-Umgebung gebaut und sandeepmistry und deinen Sourcen.
>
> Das kann ich als Basis nehmen bzw. ich möchte es ja auf Platformio
> bringen. Mal schauen.
>
> Nur mein Telefon wollte sich per Bluetooth noch nicht verbinden. Ein
> ATCwatch wurde angezeigt. Funktioniert das verbinden oder nicht?

Verbinden sollte einwandfrei funktionieren. Jedoch nicht einfach unter 
bluetooth sondern mit der app nrf connect da hier ja bluetooth 4.0

https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp

Grüsse

: Bearbeitet durch User
von 900ss (900ss)


Lesenswert?

Aaron C. schrieb:
> mit der app nrf connect da hier ja bluetooth 4.0

vordiestirnklatsch...  Danke. Geht :)

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Da es einen Fintess Tracker gibt den man ohne zu öffnen mit BLE kabellos 
flashen kann habe ich mich in letzter zeit etwas mehr damit befasst.

Es ist ein D6 von der firma Desay, um das flashen sehr einfach zu machen 
habe ich eine Andoid app geschrieben mit der man einfach die gewünschten 
firmware files flashen kann.

https://play.google.com/store/apps/details?id=com.atcnetz.ble.readwrite

hier ist auch ein github rep wo etwas mehr über den tracker steht, 
jedoch nutzt der herr Fanousch Espruino und nicht arduino. Der Tracker 
lässt sich aber auch super über Arduino Programmieren, auch mit der 
Adafruit Library.

https://github.com/fanoush/ds-d6

zudem kostet dieser Tracker nur derzeit 7,20€ und hat dennoch einen 
NRF52832 chip 
https://www.gearbest.com/smart-watches/pp_1232618.html?wid=1433363

leider aber nur ein oled mit 32x128pixeln.

: Bearbeitet durch User
Beitrag #5853298 wurde von einem Moderator gelöscht.
von Thommy ManN (Gast)


Lesenswert?

Hallo Aaron.

Aaron C. schrieb:
> Es ist ein D6 von der firma Desay, um das flashen sehr einfach zu machen
> habe ich eine Andoid app geschrieben mit der man einfach die gewünschten
> firmware files flashen kann.
>
> https://play.google.com/store/apps/details?id=com.atcnetz.ble.readwrite


Habe die aktuelle Version der APP installiert.

Bei der Auswahl der Zip-Datei zum flashen kommt nur die Fehlermeldung:
(ADNROID 6)

<DATEINAME>.zip.zip

Error DFU FILE NOT FOUND !

scheint ein Problem mit der Dateinamen-Endung zu sein, da das ".zip" 
noch zusätzlich angehängt wird, obwohl im Dateiname schon vorhanden.

Kannst Du mir bitte weiterhelfen!

Vielen Dank.

Thommy.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Thommy ManN schrieb:
> Bei der Auswahl der Zip-Datei zum flashen kommt nur die Fehlermeldung:
> (ADNROID 6)
>
> <DATEINAME>.zip.zip
>
> Error DFU FILE NOT FOUND !

Moin, schaue mir das gerade einmal an, ich werde nun eine prüfung 
hinzufügen, wenn bereits zip enthält dann wird das nicht extra angefügt.

Leider wird es manchmal benötigt weil sonst die DFU Library nicht die 
datei erkennt.



EDIT, habe gerade ein update veröffentlicht, dies sollte in ca. einer 
stunde online sein.

: Bearbeitet durch User
von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Das Update ist jetzt online,

bitte versuche ob es nun für dich funktioniert.

Grüße Aaron

von Thommy ManN (Gast)


Lesenswert?

Hallo Aaron,


> Das Update ist jetzt online,
>
> bitte versuche ob es nun für dich funktioniert.


funktioniert leider immer noch nicht.

Vielleicht mach ich ja was falsch !?

Habe:

- auf die neue APP-Version aktualisiert und gestartet
- D6- Flasher konnte erfolgreich verbinden ..
- hab die Datei zum flashen gewählt.
..
Es wird jetzt auch der richtige Dateiname angezeigt (hier DS-D6.zip)
aber leider immer noch :
1
Selected file: D6-D6.zip
2
FileSize: unknownKb
3
4
Started DFU
5
6
Error DFU FILE NOT FOUND


Gruß

Thommy M.

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Schade das es noch nicht funktioniert.

ist es diese datei?: 
https://github.com/fanoush/ds-d6/blob/master/fwdump/D6-DS.zip

Normalerweise müsste er ja auch die größe anzeigen.


wie öffnest du die datei, also wie sieht der open dialog aus?

hast du mal eine andere Datei probiert?

Grüße

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.