Aller au contenu

Dashboard custom ESP32

Featured Replies

Posté(e)

Salut les riders 😎

J'utilisais une montre P22 Aliexpress avec le firmware EUCWatch pour avoir les infos de vitesse et de batterie sur mon gant, et aussi déclencher un bip sur la roue en guise de klaxon (qui est obligatoire d'après ce que j'ai compris, mais surtout bien utile quand on arrive derrière un groupe de piétons qui prend toute la place).

Après plus de deux ans de bons et loyaux services elle a fini par rendre l'âme. Je pensais que c'était juste l'accu LiPo qui était mort mais non.

Au lieu d'en acheter une autre j'ai décidé d'en bricoler une avec un petit écran OLED et un ESP32.

J'ai déjà un proto fonctionnel. Pas de fioritures, pas d'écran tactile pénible à utiliser avec les gants. Juste le % de batterie restant, la température de la carte, la vitesse, la distance parcourue. En bonus un indicateur de phare, le statut "ONLINE" et "OFFLINE" et le taux de charge de l'accu qui sera embarqué dans la version finale.

Deux boutons, un pour le bip et un pour le phare.

Ca marche super bien, ça se connecte plus vite que la montre et a plus de portée. La télémétrie fonctionne (oui j'ai fait un tour de roue dans le quartier avec mon circuit dans la main).

Il me reste à compacter tout ça avec un ESP C3 mini et à imprimer des pièces pour intégrer le tout le mieux possible sur mon gant.

S'il y en a que ça intéresse je pourrai partager le code et la BOM. Ca ne fonctionne que sur Begode (et peut être même que sur Begode A2), mais c'est intégrable sur d'autres roues.

20260201_192744.jpg

Modifié par Cool_Hands

Posté(e)
  • Auteur

Update:
Reçu les ESP32-C3 Mini, fini de porter le code (juste du pinout et une petite subtilité sur la sortie du deep sleep).
Ca fonctionne, il n'y a plus qu'à attendre le convertisseur 4.2V->3.3V et la partie électronique sera bouclée.
Je vais commencer à modéliser le boitier, sachant qu'en général il me faut bien trois au quatre versions avant d'avoir un truc pas trop moche 😁

Modifié par Cool_Hands

Posté(e)
  • Auteur

Ca avance doucement...

Pas facile de garder l'ensemble compact, de penser à l'impression, à l'assemblage et à l'étanchéité aux projections.

Tout est censé s'emboiter pour éviter au maximum les vis, dans l'idéal j'aimerais juste 4 vis M2.5 pour fixer le capot supérieur, avec un petit joint en TPU.

Capture d'écran 2026-02-10 010719.png

Modifié par Cool_Hands

Posté(e)

Salut,
Je suis ton projet avec intérêt.
Je n'ai pas de A2 mais 2 Falcon (mon fils et moi), j'ai tout sur ma montre mais pour mon fils ça pourrait être top )
Donc je vais passer commande d'un ou deux ESP32-C3 Mini ) le reste j'ai certainement.

Edit : je veux bien la réf de ton convertisseur et lipo )
Edit 2 : j'ai trouvé dans ton printscreen fusion360 ;)

Modifié par Aerowheelex

Posté(e)
  • Auteur

Ahhhh ça fait plaisir 😁

En principe les trames BLE sont identiques sur toutes les roues Begode, mais du coup tu pourras tester et me dire!

Le convertisseur: https://fr.aliexpress.com/item/1005008602719818.html

Pas encore reçu donc pas testé. A priori il fait buck&boost, donc prend n'importe quelle tension en entrée dans la plage 1.8V-5V, et sort du 3.3V

Pour la batterie j'ai pris ce que j'avais en stock, donc un accu 18350 de clope électronique, par exemple https://www.lepetitvapoteur.com/fr/accus/8325-accu-mxjo-18350-700mah.html

Mais on peut adapter le boitier pour le remplacer par deux piles AAA, ou n'importe quoi d'autre. Je ne mettrais pas de Li Po personnellement, c'est un peu fragile comme batterie, j'aurais peur que ça perce suite à une chute et que ça prenne feu.

Il faut aussi deux résistances 10kOhm pour le pont diviseur pour l'indicateur de charge de l'accu.

Tu devrais prendre au moins deux ESP32 mini, un sur lequel tu souderas les pin headers pour les tests sur breadboard, un que tu souderas directement sur le montage final.

Attention aussi, sur les miens j'ai du faire une manip pour les connecter en USB la première fois: appui sur RESET+ BOOT, relâchement RESET, relâchement BOOT.

Enfin, je fais le design du boitier dans le but d'intégrer le système plus ou moins élégamment dans un gant Gyroriderz mais là encore on peut adapter le design.

Je pourrai t'envoyer le code source et le fichier step du boitier.

Posté(e)
  • Auteur
il y a 46 minutes, Aerowheelex a dit :

Edit 2 : j'ai trouvé dans ton printscreen fusion360 ;)

Attention le convertisseur buck dans Fusion n'est pas le bon modèle, il n'y était pas dans GrabCAD, j'en ai prix un avec une taille similaire. Merci au passage à tous ceux qui modélisent tous les composants électroniques et les partagent, ça fait gagner beaucoup de temps.

Posté(e)

Super merci, c'est commandé )
Ca évitera à mon fils d'avoir un smartphone et une montre connectée mais de savoir où il en est niveau bat/autonomie. Bref c'est génial, j'adore ce genre projet. Je regarderai pour la batterie, j'ai plusieurs petites lipo mais aucune 18350.
Encore merci

Edit : j'ai commandé les mêmes que ceux de ton lien

Modifié par Aerowheelex

Posté(e)

Il y a un truc qui m'étonne énormément, je le diffuse mais ce n'est surtout pas pour troller.
Il existe une montre qui est destinée à être programmée, c'est la Bangle.js
Il existe sur cette planète des dieux du Java script et autres langages abscons
Il existe des programmeurs qui arrivent à connaître les trames ble de différentes roues
Mais personne pour pondre le code et la procédure qui va bien pour nos roues...
Bangle.js-1.JPG

Ne le prend pas mal, @Cool_Hands , ce que tu fais est superbe et mérite un immense respect,
mais... n'est-ce pas un peu un principe Shadock ? Pourquoi faire simple etc...

Posté(e)
il y a 10 minutes, Techos78 a dit :

Il y a un truc qui m'étonne énormément, je le diffuse mais ce n'est surtout pas pour troller.
Il existe une montre qui est destinée à être programmée, c'est la Bangle.js
Il existe sur cette planète des dieux du Java script et autres langages abscons
Il existe des programmeurs qui arrivent à connaître les trames ble de différentes roues
Mais personne pour pondre le code et la procédure qui va bien pour nos roues...
Bangle.js-1.JPG

Ne le prend pas mal, @Cool_Hands , ce que tu fais est superbe et mérite un immense respect,
mais... n'est-ce pas un peu un principe Shadock ? Pourquoi faire simple etc...

Genre ça :

60a60f18-6866-45fa-b7c4-60e831d6da6e.jpg

Posté(e)

Parfois c'est le voyage qui est important, pas la destination 😁. Il existe en effet plusieurs montres, y compris à pas cher, sur lesquelles on peut du développement pour permettre le même type d'affichage des données de roue. Pour autant c'est toujours sympa et gratifiant de se lancer dans ce genre de projet.

Posté(e)
  • Auteur

C'est pas la peine de prendre toutes ces précautions avec moi hein, je suis ici pour échanger, si je commençais à m'offusquer a chaque fois que quelqu'un me challenge un peu, pose des questions ou propose des alternatives je passerais à côté du sujet 🤣

@Techos78 Je ne connaissais pas la Bangle, c'est très intéressant. Après ça vaut 100€ environ, de mon côté je pense être entre 5 et 10€ en consommables, sans compter le temps bien sur (mais quand on aime on ne compte pas). Et c'est un de mes objectifs justement, avoir une solution simple et pas chère que je n'aurai pas peu d'amener en ride et que je pourrai réparer pour quelques euros.

Par contre je ne comprends pas le passage "Il existe des programmeurs qui arrivent à connaître les trames ble de différentes roues
Mais personne pour pondre le code et la procédure qui va bien pour nos roues..."

Ben si justement, j'ai retrouvé toutes les trames dans un projet Android sur GitHub:

https://github.com/Wheellog/Wheellog.Android/blob/master/app/src/main/java/com/cooper/wheellog/utils/

Il y a un fichier source pour chaque marque de roue qui contient les infos de lecture des trames. Avec de la patience et ChatGPT j'ai pu extraire les fonctions en java et les coller dans le code C/C++ de l'ESP. Du coup c'est faisable pour les autres roues, c'est juste que je les ai pas pour tester.

C'est moins difficile que ça ne parait, en pratique mon code a été fait à 80% par l'IA, il faut juste garder un peu de maitrise pour la recadrer un peu quand elle fait n'importe quoi (par exemple elle m'a fait le code pour envoyer "beep" toute seule mais il a fallu que je lui mette le nez dans son caca pour la commande du phare, elle essayait des trucs au hasard alors qu'elle avait le bon code quelques prompts plus haut).

Après ChatGPT c'est pas le meilleur cheval, au boulot les devs utilisent Claude qui a l'air beaucoup plus performant mais je peux pas m'en servir pour mes projets perso 😛

@Fucklesboomers Je reconnais bien la photo, j'avais ça avant, ça faisait le taf. Je faisais tourner EUCWatch sur une P22 à 20 balles. Le plus gros problème est l'écran tactile qui est pénible à utiliser avec les gants. Pour allumer le phare il faut faire un swipe et presser sur une petite zone. Pas adapté pour moi.

@Blkfri Exactement, comme a dit un grand philosophe français, "ce qui compte c'est pas l'arrivée c'est la quête". Et ce projet combine plein de trucs que j'aime, le dev, l'électronique et l'impression 3D 😀

Bon allez je retourne intégrer mes boutons poussoirs dans Fusion.

Modifié par Cool_Hands

Posté(e)
Le 09/02/2026 à 11:07, Cool_Hands a dit :

Update:
Reçu les ESP32-C3 Mini, fini de porter le code (juste du pinout et une petite subtilité sur la sortie du deep sleep).
Ca fonctionne, il n'y a plus qu'à attendre le convertisseur 4.2V->3.3V et la partie électronique sera bouclée.
Je vais commencer à modéliser le boitier, sachant qu'en général il me faut bien trois au quatre versions avant d'avoir un truc pas trop moche 😁

Hello trois ou quatre itération je trouve ça plutôt bien après il faut savoir s'arrêter car la perfection à un prix le temps :) Merci ça intéresse aussi si justement je trouve ce fameux temps :) . Merci

Posté(e)
  • Auteur

Ca avance, je vais bientôt pouvoir imprimer un premier proto (celui qui ne se monte pas 🙄). Il reste la liaison entre la boite à boutons et le boitier principal, je veux que ce soit un peu incliné pour épouser à peu près la forme du gant. Mais les contraintes d'impression m'obligent à faire deux pièces assemblées.

Aussi un trou pour le port USB de l'ESP, histoire de pouvoir le flasher sans le sortir. Et le bouchon en TPU qui va avec.

Un peu de câble management aussi, sinon ça va être un gros plat de nouilles à ne pas pouvoir refermer le couvercle 😁

Capture d'écran 2026-02-11 001822.png

Capture d'écran 2026-02-11 001753.png

Posté(e)
Il y a 15 heures, Cool_Hands a dit :

... j'ai retrouvé toutes les trames dans un projet Android sur GitHub:
https://github.com/Wheellog/Wheellog.Android/blob/master/app/src/main/java/com/cooper/wheellog/utils/

Merci @Cool_Hands , effectivement, les trames ble de nos bouzines sont "disponibles"...
Il suffit donc d'aller jardiner dans le 12ième sous-répertoire d'un projet annexe rangé dans le "célèbre" github.com.
J'admets volontiers que j'étais trop con pour y arriver tout seul. J'ai honte...
Et je remercie sincèrement tous les softeux qui ont organisé tout ça... sans trop le dire sur les fofos.

Posté(e)
  • Auteur

Si ça peut te consoler j'étais à deux doigts d'abandonner, ChatGPT me disait que ce n'était pas possible, que le format des trames était protégé et que seules les apps officielles pouvaient les décoder. J'ai trouvé le Github par hasard dans un message de remerciement sur un autre projet: https://github.com/Pickelhaupt/EUC-Dash-ESP32.
Projet dont je voulais partir à l'origine, mais:

  • l'interface est très (trop) complète,

  • c'est uniquement compatible KingSong,

  • je n'ai pas trouvé la liste des composants, ni le schéma de câblage

  • je ne veux pas installer PlatformIO.

Bref, il y a énormément de matière mais c'est un peu la jungle 😅

Modifié par Cool_Hands

Posté(e)

Oui, il ne faut bien sûr pas s'attendre à voir ces trames bien diffusées/documentées, les constructeurs tiennent à leur "confidentiel industrie", mais c'est un peu ridicule. Il a donc fallu le superbe travail de crackers acharnés qui ont réussi à sniffer et décoder l'essentiel des informations.
Chapeau à eux.
Donc, en manipulant ces données, on devient des "bandits", mais je n'imagine pas un seul instant que les constructeurs s'en insurgent, tant que l'on en fait pas un commerce. Ceci dit, en terme de copie et rétro-engineering, les asiatiques ont des opinions assez souples...

Posté(e)
On 2/10/2026 at 5:21 PM, Techos78 said:

There's something that really amazes me, and I'm sharing it, but it's definitely not to troll.
There's a watch designed to be programmed: the Bangle.js.
There are gods of JavaScript and other obscure languages on this planet.
There are programmers who can decipher the blue frames of different wheels.
But nobody can write the code and the correct procedure for our wheels...
Bangle.js-1.JPG

Don't take it the wrong way,@Cool_HandsWhat you're doing is superb and deserves immense respect,
but... isn't that a bit of a Shadok principle? Why make things simple, etc...

Ce message est traduit du grec, désolé s'il y a des erreurs :)

La Bangle est géniale pour les monocycles (électriques) en journée, car elle a un écran MIP, toujours allumé et qui reflète la lumière du soleil.

Je l'utilise tous les jours depuis 2 ans, elle est très bien. Dernièrement, j'ai aussi pris l'Active 2 pour faire des tests. Hier, j'ai terminé une application que j'ai développée pour retrouver mes chats, s'ils sont cachés dans une boîte quelque part, comme ça je n'ai pas à les chercher :)

En gros, l'Active 2 a une sensibilité radio nettement inférieure, on le voit dans l'exemple ci-dessous : un nombre plus grand est meilleur, la Bangle entend beaucoup mieux mon chat ΜαΒα.

Dans la pratique cependant, les deux montres sont très bien. Pour la Bangle, j'ai une version prête depuis des années, je n'en ai tout simplement pas parlé. Pour l'Active, @Blkfri s'en occupe et je vais aussi porter eucwatch, donc je pense que quel que soit ton choix, ce sera très bien.

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

Modifié par enaon

Posté(e)

6 hours ago, Cool_Hands said:
  • Je ne veux pas installer PlatformIO.

Juste pour info, eucwatch tourne sous Espruino, et je n'ai rien utilisé de spécial qui soit disponible sur la Bangle comme fonctionnalités supplémentaires non disponibles sur l'Espruino classique. L'ESP32-C3 peut aussi faire tourner Espruino, tu peux faire la transition très facilement si tu veux.


Aussi, il est très probable que ton P22 ne soit pas cassé, mais qu'avec les nombreuses écritures en mémoire, quelque chose se soit corrompu au niveau logiciel et qu'il soit maintenant en mode DFU. Si tu as Daflasher depuis le Play Store, fais un scan ; si tu le vois comme DFUTARG, envoie à nouveau le firmware Espruino et ça fonctionnera.

Modifié par enaon

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.

Account

Navigation

Rechercher

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.