Jamais imprimé en ABS encore. Ça a l’air un peu plus compliqué, jamais trop creusé en fait.
Je sais qu’il existe aussi des produits pour lisser le PLA. De l’ether de je sais plus quoi. Mais je pense qu’il vaut mieux régler l’imprimante le mieux possible, les produits c’est pour la finition. Et puis sans, ça fait un côté home made que j’aime bien.
Si ça t’interesse, il y a l’hypercube, ou la ngen, qui sont des projets diy aux résultats bluffant de qualité pour un coût très raisonnable. J’envisage d’y passer. Et je suis tombé sur un groupe FB où ils se sont spécialisés dans les figurines c’est magnifique (avec ponçage apret et peinture par contre…)
https://www.facebook.com/groups/382105552351530/?ref=share
https://www.thingiverse.com/thing:3018572
DIY GnuVario : variomètre opensource - openhardware Arduino
Bon j’ai ajouté encore quelques fonctionnalité :
-> J’ai ajouté la possibilité d’utiliser le BMP280 au lieu du ms5611.
-> J’ai ajouté une gestion d’erreur sur I2C. Normalement maintenant en cas de mauvais contact les mesures seront rejettées plutôt que de donner des valeurs abhérentes.
-> J’ai rendu le code de best-fit-calibration compatible avec toutes les versions de Python.
-> J’ai intégré une gestion de la précision en cas de déviation importante de l’acceleromètre. Sinon le calibrage ne fonctionnait pas sur certaines configurations.
-> J’ai ajouté la possibilté de choisir l’adresse du MPU dans VarioSettings.h.
A+
Possesseur du modèle v2, je viens de faire quelques vols avec une version logicielle de 2017 …
J’ai mis la dernière version de jpg63 et revolé ensuite, ce qui me permet de comparer un peu.
Je decouvre en partie droite d’écran ce qui semble etre un vario intégré. C’est à mon avis plutôt utile puisque moins sensible aux courtes variations. Je me demande l’utilité d’avoir conservé le vario non intégré en partie gauche de l’écran ?
Peut-on choisir la durée d’intégration ?
Pour la partie sonore, je n’ai pas noté de changement à priori, il est toujours plus reactif que mon autre vario
.
En haut à gauche de l’ecran apparaissent des triangles qui deviennent un carré quand l’enregistrement du vol à commencé je suppose ?
Je ne retrouve pas de trace sur la carte SD puisque celle-ci n’est plus formatée. Elle l’etait pourtant lors de la mise à jour du firmware. Même constat sur 2 jours differents.
J’ai formaté la carte avec le soft indiqué dans la doc ( étonnement long ), on verra au prochain ou prochain essai en voiture. Toute suggestion est la bienvenue.
J’ai vu que la version s’affiche au démarrage, c’est une bonne idée. Qu’elles sont les autres infos affichées ?
Je suppose que l’enregistrement de la trace s’arrête tout seul ?
Je veux bien mettre en forme un manuel utilisateur qui pourrait rassembler toutes les infos passées sur ce forum mais qui demandent un suivi sur plusieurs années maintenant…
Salut Francois ! 
Tu as raison ce n’est peut-être pas la peine d’afficher le vario standard et le vario intégré en même temps :grat: . De toute façon on va bientôt travailler avec Jpg63 sur un écran personnalisable à souhait :D. On pourra afficher ce que l’on veut à l’endroit que l’on veut. Je dois juste finir d’abord quelques débuggages et améliorer la compoatibilité du code.
Pour la durée d’intégration elle se règle dans “VarioSettings.h”
Pour les triangles et le carré c’est ça. L’un signale le Fix GPS et l’autre la détection du début du vol.
Pour la carte SD tu as fait la bonne précédure. Cela devrait marcher maintenant. Tiens nous au courant.
Pour l’enregistrement de la trace il ne s’arrête pas tout seul car c’est difficile de détecter la fin du vol. Il position neutre par rapport au sol n’est pas suffisante. Du coup il faut éteindre le vario après l’atterissage.
Pour le manuel il vaudrait mieux il me semble compléter le site avec les informations qui sont manquantes. L’objectif et de rassembler toutes les informations au même endroit.
Amuses toi bien et tiens nous au courant.
A+
Salut Baptiste,
Bonne idée de rendre l’affichage personnalisable, on se rapproche de plus en plus d’un projet pro !
Est-il d’ailleurs envisagé d’indiquer le cap suivi ?
Pour le temps d’intégration du vario, lequel des 2 paramètres est concerné (quelle est la différence entre les 2) ?
#define VARIOMETER_CLIMB_RATE_INTEGRATION_TIME 2000
#define VARIOMETER_GLIDE_RATIO_INTEGRATION_TIME 15000
Toujours pas d’écriture sur la carte SD, même si celle ci reste parfois lisible une fois insérée dans le PC. Le formatage en FAT 16 avec Etcher n’a manifestement rien résolu.
La lecture sur la carte SD se fait bien puisque pas de soucis pour la mise à jour du firmware.
J’ai relancé le script “SetVarioParameters.ino” des fois que, on verra au prochain essai.
Merci pour les infos.
A+
Pour l’instant on est pas assez de développeurs pour avoir besoin d’une roadmap. Mais à l’avenir pourquoi pas. Pour l’instant je corrige des bugs et j’implemente les fonctionnalités qu’on nous demande depuis longtemps.
Pour l’integration « Climb rate » signifie « taux de chute » et « glide ratio » signifie « finesse ». Ainsi le premier règle le temps d’integration du taux de chute et le second le temps d’intégration de la finesse.
Pour l’écriture de la carte SD tu as bien testé en vol ? Parceque l’enregistrement ne démarre que lorsque le début du vol est détecté. Autrement utilise « calibration_recorder » pour tester.
L’ecriture de la trace sûre la carte SD ne se fait toujours pas. Essai fait en voiture uniquement vu la météo actuelle. Si les triangles devenus carré clignote, cela indique une écriture non ?
Je vais tenter calibration_recorder, on verra bien.
En tout cas la lecture de la carte se fait bien puisque j’arrive à mettre à jour le FW.
Ah lala si ça marche pas ça voudrait dire qu’il y a encore un type de carte SD qui n’est pas géré pas la bibliotheque LighFat16 … 
Juste pour confirmer François, tu as bien téléchargé le code de JPG63 après le 14 avril ?
Le fichier est quand même créé sur la carte ?
Il faudrais que tu nous dire si calibration_recorder fonctionne ?
Si il y a un problème je vais avoir besoin de toi pour lancer un programme de debuggage 
Edit : Dans la version de Jpg63 il y a un bip long si la carte SD n’est pas détectée. Tu as ce bip long ?
Le fichier IGC est bien créé après avoir installé calibration_recorder :dent: .
Du coup ça serait intéressant que j’exploite les valeurs. J’ai installé Python, mais je bloque pour la suite.
L’absence de carte SD est bien signalée par un beep.
J’avais bien chargé le code JPG63 le 20 avril.
Aucun fichier crée par variometer !
Salut ! Et merci pour les retours 
Quel problème as tu avec Python ? Tu n’arrive pas à installer numPy ? Tu n’arrive pas à lancer calibrate.py ? Si tu as trop de problèmes tu peux m’envoyer ton fichier “RECORD” et je te renverrai les paramètres.
Pour la carte SD c’est un vrai mystère cette histoire … :grat: I doit peut être y avoir un conflit avec de vielles librairies.
Est ce que tu peux ?
-> Vider complètement ton répertoire “Arduino” (garde juste le VarioSettings.h quelque part si besoin)
-> Télécharge la dernière version du code “Master”
-> Compiles et uploade, change juste les paramètres pour le kit V2 dans VarioSettings.h (les pins de l’écran)
-> Met la carte SD et attend le Fix GPS
Regarde si ça marche et ensuite du refais ce test avec la version de Jpg63 en vidant bien tout le répertoire Arduino à chaque fois. Dis moi si sur sa version il y a toujours le bip au démarrage.
Encore merci ! Il faut qu’on trouve cette erreur…
Salut,
C’est moi qui te remercie !
Essai du code master, en vidant complètement le dossier Arduino -> j’obtiens un fichier 19042700.IGC mais d’une taille de 0 octet, j’ai laissé moins d’une minute.
Je vais refaire un essai plus long tout à l’heure.
Y a-t-il une manipulation particulière à faire concernant les librairies du projet ?
En fait je dois déclarer #include <TwoWireScheduler.h> en début de fichier pour ne pas avoir de warning à la compilation alors que la déclaration est faite en ligne 29 …
Pour python, j’y suis finalement arrivé, j’ai récupéré les valeurs
.
Désolé pour mon niveau léger en programmation :oops: .
Pas de soucis Francois ! C’est ça l’intérêt de l’Arduino ! C’est d’apprendre à son rythme.
Je te fais quand même une explication sur les bibliothèques. Si dans l’IDE tu vas dans “File->Préférences” tu va trouver un chemin vers un dossier “Arduino” particulier. Ce dossier est ton répertoire de travail et c’est dans le sous-dossier “libraries” de ce dossier que l’IDE vas chercher des libraires. Du coup il y trois erreurs que les gens font souvent :
-
Ils ne vident pas le dossier Arduino avant d’installer un nouveau code. Du coup si il y a des anciennes bibliothèques qui trainent l’IDE peut hésiter entre plusieurs versions.
-
Ils installent le code dans un répertoire qui n’est pas le répertoire de travail “Arduino” ( définie dans les préférences de l’IDE ).
-
Ils installent le code dans le bon dossier mais mettent le dossier “arduino-variometer-master” dedans au lieu de mettre le contenu du dossier.
Du coup il faut bien que tu vérifies ces trois points. J’espère que je suis clair 
Effectivement il faut dépasser les 512 octet écrit pour que le fichier commence à être remplis. Attends un peu plus 
Là je ne comprends pas. Peux tu me donner le message que tu as ? Si ce n’est qu’un warning et pas une erreur mieux vaut laisser le code tel qu’il est.
C’est bien le dossier “arduino” qui est paramétré dans “file / preferences”.
Par contre il y a aussi des librairies installée par défaut par l’IDE à l’emplacement de arduino.exe. N’y a-t-il pas un risque d’avoir des doublons en version différente ?
Autre essai en laissant plusieurs minutes en fonctionnement: toujours création du fichier 19042700.IGC avec 0 octets.
J’ai bien vérifié les 3 points sur lesquels je n’avais pas fait d’erreur.
Voici une partie des warnings obtenus. Si je mets le #include <TwoWireScheduler.h> en premier, j’arrive à compiler sans erreur. Le plus surprenant, si je le remets à sa position initiale dans la liste de include, je n’ai plus de warning :grrr2: .
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW\IntTW.cpp: In member function 'void IntTW::start(uint8_t*, uint8_t, uint8_t, void (*)())':
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW\IntTW.cpp:95:33: warning: invalid conversion from 'volatile uint8_t* {aka volatile unsigned char*}' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
if( haveBus && canContinue(cmd) ) {
^
In file included from C:\Users\Toshiba\Documents\Arduino\libraries\IntTW\IntTW.cpp:21:0:
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW/IntTW.h:142:8: note: initializing argument 1 of 'bool IntTW::canContinue(uint8_t*)'
bool canContinue(uint8_t* nextCmdPtr);
^
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW\IntTW.cpp: In member function 'void IntTW::twiVect()':
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW\IntTW.cpp:331:61: warning: invalid conversion from 'volatile uint8_t* {aka volatile unsigned char*}' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
if( ((count & INTTW_COUNT_MASK) == 0) && canContinue(cmd) ) {
^
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW\IntTW.cpp:186:6: note: initializing argument 1 of 'bool IntTW::canContinue(uint8_t*)'
bool IntTW::canContinue(uint8_t* nextCmdPtr) {
^
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW\IntTW.cpp:390:15: warning: invalid conversion from 'volatile uint8_t* {aka volatile unsigned char*}' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
nextCmdPtr = cmd;
^
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW\IntTW.cpp:392:21: warning: invalid conversion from 'volatile uint8_t* {aka volatile unsigned char*}' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
nextCmdPtr = cmd + 1;
^
In file included from C:\Users\Toshiba\Documents\Arduino\libraries\IntTW\IntTW.cpp:21:0:
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW\IntTW.cpp: In member function 'bool IntTW::writeBytes(uint8_t, uint8_t, uint8_t, uint8_t*)':
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW/IntTW.h:74:50: warning: narrowing conversion of '(((int)address) << 1)' from 'int' to 'uint8_t {aka unsigned char}' inside { } [-Wnarrowing]
#define INTTW_ACTION(address, rw) (address << 1) | rw
^
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW\IntTW.cpp:424:30: note: in expansion of macro 'INTTW_ACTION'
uint8_t buildCommand[] = { INTTW_ACTION(address, INTTW_WRITE),
^
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW/IntTW.h:74:50: warning: narrowing conversion of '(((int)address) << 1)' from 'int' to 'uint8_t {aka unsigned char}' inside { } [-Wnarrowing]
#define INTTW_ACTION(address, rw) (address << 1) | rw
^
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW\IntTW.cpp:427:9: note: in expansion of macro 'INTTW_ACTION'
INTTW_ACTION(address, INTTW_WRITE),
^
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW/IntTW.h:84:40: warning: narrowing conversion of '(int)(count | 128u)' from 'int' to 'uint8_t {aka unsigned char}' inside { } [-Wnarrowing]
#define INTTW_DEST(count, dest) count | dest
^
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW\IntTW.cpp:428:9: note: in expansion of macro 'INTTW_DEST'
INTTW_DEST(count, INTTW_AT_POINTER) };
^
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW\IntTW.cpp: In member function 'bool IntTW::readBytes(uint8_t, uint8_t, uint8_t, uint8_t*)':
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW/IntTW.h:74:50: warning: narrowing conversion of '(((int)address) << 1)' from 'int' to 'uint8_t {aka unsigned char}' inside { } [-Wnarrowing]
#define INTTW_ACTION(address, rw) (address << 1) | rw
^
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW\IntTW.cpp:446:30: note: in expansion of macro 'INTTW_ACTION'
uint8_t buildCommand[] = { INTTW_ACTION(address, INTTW_WRITE),
^
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW/IntTW.h:74:50: warning: narrowing conversion of '((((int)address) << 1) | 1)' from 'int' to 'uint8_t {aka unsigned char}' inside { } [-Wnarrowing]
#define INTTW_ACTION(address, rw) (address << 1) | rw
^
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW\IntTW.cpp:449:9: note: in expansion of macro 'INTTW_ACTION'
INTTW_ACTION(address, INTTW_READ),
^
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW/IntTW.h:84:40: warning: narrowing conversion of '(int)(count | 128u)' from 'int' to 'uint8_t {aka unsigned char}' inside { } [-Wnarrowing]
#define INTTW_DEST(count, dest) count | dest
^
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW\IntTW.cpp:450:9: note: in expansion of macro 'INTTW_DEST'
INTTW_DEST(count, INTTW_AT_POINTER) };
^
C:\Users\Toshiba\Documents\Arduino\libraries\ms5611\ms5611.cpp:145:54: warning: cannot declare member function 'static double Ms5611::computeAltitude(double)' to have static linkage [-fpermissive]
static double Ms5611::computeAltitude(double pressure) {
^
C:\Users\Toshiba\Documents\Arduino\libraries\LightInvensense\LightInvensense.cpp: In function 'int fastMPUWriteMem(uint16_t, uint16_t, const uint8_t*)':
C:\Users\Toshiba\Documents\Arduino\libraries\LightInvensense\LightInvensense.cpp:546:62: warning: invalid conversion from 'const uint8_t* {aka const unsigned char*}' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
intTW.writeBytes(INV_HW_ADDR, INV_REG_MEM_R_W, length, data);
^
In file included from C:\Users\Toshiba\Documents\Arduino\libraries\LightInvensense\LightInvensense.cpp:31:0:
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW/IntTW.h:135:8: note: initializing argument 4 of 'bool IntTW::writeBytes(uint8_t, uint8_t, uint8_t, uint8_t*)'
bool writeBytes(uint8_t address, uint8_t cmd, uint8_t count, uint8_t* buff);
^
C:\Users\Toshiba\Documents\Arduino\libraries\TwoWireScheduler\TwoWireScheduler.cpp:164:46: warning: cannot declare member function 'static void TWScheduler::ms5611Interrupt()' to have static linkage [-fpermissive]
static void TWScheduler::ms5611Interrupt(void) {
^
C:\Users\Toshiba\Documents\Arduino\libraries\TwoWireScheduler\TwoWireScheduler.cpp: In static member function 'static void TWScheduler::ms5611Interrupt()':
C:\Users\Toshiba\Documents\Arduino\libraries\TwoWireScheduler\TwoWireScheduler.cpp:169:35: warning: invalid conversion from 'volatile uint8_t* {aka volatile unsigned char*}' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
intTW.setRxBuffer(ms5611Output);
^
In file included from C:\Users\Toshiba\Documents\Arduino\libraries\TwoWireScheduler\TwoWireScheduler.cpp:25:0:
C:\Users\Toshiba\Documents\Arduino\libraries\IntTW/IntTW.h:125:8: note: initializing argument 1 of 'void IntTW::setRxBuffer(uint8_t*)'
void setRxBuffer(uint8_t* buff);
^
C:\Users\Toshiba\Documents\Arduino\libraries\TwoWireScheduler\TwoWireScheduler.cpp:170:88: warning: invalid conversion from 'const uint8_t* {aka const unsigned char*}' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
intTW.start(ms5611Step1, sizeof(ms5611Step1), INTTW_USE_PROGMEM, ms5611TempCallback);
^
In file included from C:\Users\Toshiba\Documents\Arduino\libraries\TwoWireScheduler\TwoWireScheduler.cpp:25:0:
Salut !
Pas de risque de doublons avec les bibliothèques Arduino natives car l’IDE utilise en priorité celles dans le dossier Arduino.
Mais ton problème de carte SD est vraiement bizarre :shock: :
-> Le fichier est créé donc la lecture et l’écriture marche
-> “calibration_recorder” fonctionne donc la carte ne se met pas en veille entre les écritures (ce qui arrive sur certaines cartes)
Pour l’instant je n’arrive pas à comprendre la différence entre ce qu’il peut se passer dans “calibration_recorder” et dans “variometer” :grat: . Et encore moins comment le code de jpg63 peut bipper alors que la première écriture fonctoinne :?
Tu compiles bien pour “pro-mini 3.3V 8Mz” ?
Tu aurais une autre carte pour tester si ça vient de là ?
Tu as bien la vitesse qui s’affiche et les barres du GPS en haut à droite ?
Je vais te préparer un programme de deboggage. On continuera peut-être à chercher par mail pour pas trop encombrer le thread. Je vais regarder si j’ai toujours ton mail.
A+
Hello Baptiste,
Très étrange en effet cette différence de comportement.
J’ai fait un nouvel essai avec une autre carte SD sans succès, je n’ai cette fois même pas un fichier de créé. Encore un nouveau comportement …
Je compile avec la version 1.8.2 de l’IDE, avec “pro-mini, ATmega328, 3.3V, 8MHz”.
J’ai bien la vitesse qui s’affiche ainsi que le bargraphe de la réception GPS et le décompte de la durée du vol qui s’incrémente.
Du coup maintenant j’ai plutôt un doute sur le Hardware.
J’ai retrouvé ton mail ! Je te contacte directement 
Bonjour à tous,
Je lis vos discussions sur le GnuVario depuis quelques temps avec intérêt, je trouve ça génial. J’ai commandé le matos pour m’en faire un. Mais je me demandais si l’un de vous avez essayé ou si vous savez si il est possible de remplacer l’arduino pro mini par une carte style Wemos Lolin 32 à base de puce expressif ESP32? Elle fonctionne en 3.3V, contient le chargeur lipo, le Bluetooth. On doit pouvoir stopper le wifi.
J’avoue que mes bricolages Arduino ne sont pas aussi “complexe” que ce projet pour un type comme moi plus hardware que software. Alors je préfère demander avant de me lancer dans des heures de recherches pour savoir si c’est faisable et si l’on peut adapter le code et utiliser toutes les librairies Arduino pour ce type de carte.
En tout cas bravo à Prunkdump, JPG63 et les autres contributeurs/testeurs de ce projet.
A+ :ppte:
Je t’ai reconnu Jpg63 pas la peine de changer ton pseudo 
Blague à part
c’est justement ce que jpg63 me pousse à faire depuis quelques temps !!! Passer à l’ESP32
il a d’ailleurs largement avancé le travail. Mais l’adaptation Du code n’est si simple.
C’est surtout parce qu’actuellement le code n’est pas assez modulaire. Mais je suis en train d’y travailler. Mais il faudra quand même du temps avant d’avoir quelque chose de pleinement fonctionnel.
Après d’experiences les cartes tout intégrées sont pas toujours idéales car les composant sont de mauvaises qualité. Même sur un pro-mini je suis obligé de changer tous les régulateurs lorsque je fournis les kits pour avoir une autonomie correcte. Ça change tout on passe de 4h d’autonomie à plus de 10h.
Mais on peut tout à fait utiliser une petite carte ESP32 aussi.
Le principal avantage du passage à l’esp32:
-> possibilité de configurer le vario par WiFi
-> Bluetooth ble compatible avec tous les types de tablettes et de portable
-> gestion de la carte SD sans passer par un formatage en Fat16
Actuellement j’ai beaucoup de boulot mais je m’y met dès que possible.
Par contre la version pro-mini semble bien debuggé maintenant et propose les fonctionnalités essentielles d’un vario.
A+
Hello,
Effectivement j’ai vu passé un message ou Jpg63 parlait de l’ESP32 :lol: . J’ai failli lui envoyer un message perso pour ne pas polluer le post…
Je vais faire la version pro mini et si il faut du monde pour tester la version ESP32, je serai la ! 
Hello,
Voilà, je suis rentré de vacances, j’ai bien toute les pièces et voilà nouveau problème, le vario s’est bien complètement chargé mais lorsque que je le mets en route j’ai le buzzer qui fait un son en continu. Celui change de temps en temps de tonalité mais on l’entend tout le temps quand même. De plus je n’ai pas d’image sur l’écran ni aucune autre indication. Quelqu’un sait ce qui se passe ?
Pour aider un peu voici une vidéo de ma mise en route :
Merci d’avance
Dylan.