DIY GnuVario : variomètre opensource - openhardware Arduino

J’ai pris le premier écran E-ink avec le même encombrement que j’ai trouvé mais il en existe d’autres modèles. A voir par contre en terme de consommation si on le rafraichit souvent comme on le fait sur un vario, on perd un peu l’intérêt de l’e-Ink qui ne consomme pas d’énergie quand on ne modifie pas l’affichage.

Le schéma de câblage du Teensy est ouvert mais le code du bootloader est effectivement propriétaire, c’est comme ça qu’ils évitent la prolifération de clones.

Aujourd’hui, un Teensy 3.2 est vendu entre 20 et 25 € TTC. C’est le prix d’un Arduino Nano officiel mais c’est évidemment bien plus cher qu’un clone Arduino chinois à moins de 2 € !

Bonjour à tous !

Ca y est je me suis enfin débarrassé de tout se Taff qui me prenait tout mon temps :ppte: Je vais pouvoir bien rebosser sur le vario ! :smiley:

Je vais malheureusement pas pouvoir répondre à tous les messages vu le retard que j’ai pris sur le forum. Mais de façon générale n’hésitez surtout pas à expérimenter ! Ce n’est pas “mon” projet et j’ai tout mis Open-Source justement pour que tout le monde puisse travailler dessus comme il le souhaite. Je n’ai de toute façon pas le temps de “valider” toutes vos idées ! :pouce:

N’hesitez pas à faire vos propres essais sur breadbord et vos propres expériences. Et si vous voulez que je les intègre au GitHub je les intègrerai :wink: Pour les Kits c’est effectivement beaucoup de travail de mise au point. C’est pour ça que je suis assez “conservatif” sur le design. Je ne veux surtout pas faire une erreur qui ferait que la série de Kit ne fonctionne pas … :? Je vous garanti que j’ai transpiré lors de la fabrication, parceque lors de la fabrication en série on a vite fait de faire aussi des conneries en serie ! :wink:

Donc pour les prochains kit :

Je serai déjà content de résoudre tous les problèmes présents sur les premiers :
-> Avoir une bonne réception GPS avec l’antenne à l’intérieur du boîtier
-> Le Bluetooth qui fonctionne et qui ne perturbe pas la réception du GPS
-> Une batterie plus grosse (nous étions à 500mah)
-> Une connectique série pour une communication par câble avec les tablettes.
-> Plus de marge en épaisseur pour un montage plus facile du Kit.
-> Une place pour le pond diviseur de tension.

Et voilà où j’en suit :

https://goo.gl/photos/YtaMCRNf1CeWhsQdA

-> J’ai fais en sorte qu’il n’y ai plus rien au dessus de l’antenne GPS et qu’elle soit bien en contact avec son plan de masse (les quatres pads metallique). La reception me semble très bonne ! :smiley: J’ai eut les 4 barres sans problèmes sous les orages boîtier fermé. Je pense que le rôle du plan de masse est de réflèchir les ondes reçues. C’est donc important.

-> J’ai mis le bluetooth dessous et à l’envers. Du coup il y a deux plans de masse entre l’antenne GPS et l’antenne Bluetooth. Je sais pas si c’est clair :grat: Entre les deux antennes il y a le plan de masse du module GPS et le plan de masse du module Bluetooth. Du coup cela protège les antennes des interférences directes. Et cela semble bien marcher. On pourra rajouter en plus le filtre de GtD73 au besoin. Cela devrait rentrer sans problème sur le côté.

-> J’ai réussi à rentrer une batterie Lipo 504040 de 900Mah. Presque le double de la batterie initiale. Et avec une petite modification je pense que l’on peut rentrer une 604040 de 1000-1200mah.

-> Pour la communication serie j’ai laissé une broche en haut à droite. Il faut percer et sortir un câble. Si vous voulez que je travaille sur un branchement USB il faut me trouver des information sur le type de communication qu’attendent les tablettes par USB. Parceque normalement on n’est pas sensé connecter directement la liaison série à l’USB. Il faut utiliser un protocole particulier. Et le Atemega32U4 supporte la “vrai” communication USB par exemple avec le arduino pro micro :

https://www.sparkfun.com/products/12587

-> Pour le pond diviseur je n’ai pas encore trouvé la place. Les résistances “classiques” c’est assez gros finalement :shock: Pas évident de trouver où les caler. Surtout que ça serait bien de mettre un condo aussi.

Voilà ! A suivre. Mais pour l’accès direct à la carte SD depuis l’USB ça va être délicas… Surtout s’il faut finir avant la fin de l’été. Mais à étudier quand même. Autrement j’ai craqué et je me suis acheté ça d’occasion :

http://www.proxxon.com/en/micromot/20165.php

J’espère que ça me facilitera la fabrication des Kits :wink:

A+

j’adore déjà ce nouveau vario :ppte:

Prunkdump : c’est encore énorme ce que tu as fait la ! Je n’en reviens pas que tu ai réussi mettre le GPS sous l’écran ET utiliser une batterie de 900 mAh… C’est assez dingue comme optimisation de la place.
Bravo !

@Jeremy Lecouvert:

la teensy LC (lowcost) est nettement moins chére (+/-10 €) et déja bien perf :
https://www.pjrc.com/teensy/teensyLC.html

Mais oui, le bootloader est propriétaire.

Si on peut porter le code dessus, c’est plutôt une bonne idée. Je vais commencer par ton idée d’écran E-Ink. Je vais essayer de rendre ce petit écran 1,52’’ compatible avec notre GnuVario. De ton coté, si tu as le temps tu peux essayer de porter le code sur la teensy LC. Pour la suite cela donnerait un vrai bol d’air. Si tu démarre, je suis certain que l’on sera plusieurs à te donner un coup de main

Ca me branche bien mais pour cela il faudrait déjà que je commande un kit à PrunkDump pour que je puisse tester en même temps que je développe !

Oui c’est pas faux, sinon tu as la liste de l’ensemble des composants sur le forum, il te manquera le PCB mais c’est inutile si tu utilise une teensy. Après si ça marche Prunkdump nous en fera un super :dent:

L’EEPROM de la teensy LC est limitée à 128 bytes ; voir https://www.pjrc.com/teensy/td_libs_EEPROM.html
Ca n’est pas limitant pour le gnuVario ? On ne dépasse pas déja cette limite ?

Concernant le bootloader propriétaire ; ca ne posera pas de problème pour les mises à jour de firm ? Je suppose qu’on ne pourra plus les faire via la sdcard.
Je suppose également qu’il faudra le faire via la micro usb. Mais on aura besoin d’une autre micro usb (ou autre chose) pour charger l’accu.
Je me trompe ?

bonne remarque, je n’avais pas checké, la memoire flash est en effet presque doublée, mais l’eeprom semble bien basse, je ne sais pas si ça passerait.

Pas vraiment un probléme du fait le de présence de l’USB, on peut trés facilement faire les MAJs (voire flasher sans même passer par l’ide d’ailleurs)
Et pour la charge, on peut utiliser le même port USB, no soucy. (juste avec un module de charge sans usb, à brancher sur la carte directement)

mais pour le court terme, je suis d’accord avec baptiste que l’atmega32U4 présente une bonne alternative (manquerai que éventuellement le mass storage, mais ça ne semble pas totalement impossible)

Si on mets de coté le prix, J’aime bien aussi l’adadruit feather bluefruit, qui à déja été cité.
https://learn.adafruit.com/adafruit-feather-32u4-bluefruit-le/overview

  • vrai USB natif (pour mise à jour, liaison série/USB, charge etc)
  • inclus le module de charge
  • inclus le module BT, en low energie.
  • à priori 100% compatible avec le code actuel. (sauf re-adressage des voies pour le BT)

Une seule carte remplace 3 cartes de la version actuelle, niveau HW c’est assez optimisé.

Je pense que je vais essayer d’en faire une version avec ça, un buzzer kpeg 006 (sans le circuit d’amplification), un GPS PA6H, un carte µsd et l’IMU.
Ca devrait laisser pas mal de place pour une grosse batterie…

Ouai teensy c’est mal ! :diable: c’est pas open source ! Après on peut très bien mettre le bootloader arduino dessus ou notre bootloader perso ( carte SD ). Mais dans ce cas autant acheter chez SparkFun. Ils sont à l’origine du “pro mini” et ils le fournissent avec plein de micro-contrôleurs :

Avec le Atmega328
https://www.sparkfun.com/products/11114

Avec le Atmega32u4 ( support de l’usb )
https://www.sparkfun.com/products/12587

Avec le cortex M0 ( 32 bits )
https://www.sparkfun.com/products/13664

Tout ça compatible arduino. Et oui malheureusement le problème pour les deux dernier c’est qu’on ne peux pas utiliser l’USB pour la charge de la battery. Ou du moins je n’ai pas encore trouvé de solution.

Pour la mémoire flash ça ne posera pas de problème. On a besoin que de très peu.

Edit : Ptikiki si tu peux m’expliquer comment brancher un module de charge en parallèle je suis preneur.

Dans la série des processeurs alternatif, il y a le nrf52 … c’est un cortex M4 avec du bluetooth intégré.
On en trouve des module avec antenne intégrée, histoire de pas avoir a se taper la RF …

Par contre, c’est pas de l’arduino, mais ca permet plus de choses et l’environnement de dev n’est pas une ruine.

On trouve aussi celui la

http://rabidprototypes.com/product/neutrino/

et avec carte SD, et ampli audio

http://rabidprototypes.com/product/firecricket/

On parlait de la teensy, et du coup je pensais à ce module :
https://www.tindie.com/products/onehorse/lipo-battery-charger-add-on-for-teensy-31/

Et chez adafruit à celui-ci:
https://www.adafruit.com/product/2124

Mais sur ces boards, Vusb est séparable de Vin via un shunt à couper (teensy), ou une diode shottky sur la carte (trinket) ce qui n’est pas le cas des boards sparkfun.

Mais j’imagine qu’en bricolant un peu (ajout d’une diode?) On doit pouvoir le faire sur une micro. Je vais regarder.

Moi ça marche très bien, mais j’utilise pas votre dernier code. Je reste avec un code que j’ai modifié pour ne plus faire le GPS et juste le BT.
Pour que ça marche bien il faut que ça tourne à haute fréquence le BT, sinon effectivement, ça fait n’importe quoi.

J’ai rajouté ça dans le loop :


#ifdef HAVE_BLUETOOTH
  if(millis() - lastSendBluetooth > delaySendBluetooth){
    //$LK8EX1,pressure(Pa),altitude(m),vario(cm/s),temperature(°C),battery(volt or %+1000),*checksum
    sprintf(paquetBluetooth,"LK8EX1,%lu,%i,%i,%i,%i",(unsigned long)(ms5611_getPressure()*100),(int)kalmanvert.getPosition(),(int)(kalmanvert.getVelocity()*100),(int)ms5611_getTemperature(),(int)ms5611_getTemperature());
    
    //$LXWP0,loger_stored (Y/N), IAS (kph), baroaltitude (m), vario (m/s),,,,,,heading of plane,windcourse (deg),windspeed (kph)*CS
    //char *signVario = (kalmanvert.getVelocity() < 0) ? "-" : "";
    //sprintf(paquetBluetooth,"LXWP0,Y,0,%i.%02i,%s%i.%02i,,,,,,0,0,0",(int)kalmanvert.getPosition(),abs((int)(kalmanvert.getPosition()*100)-((int)kalmanvert.getPosition()*100)),signVario,abs((int)kalmanvert.getVelocity()),abs((int)(kalmanvert.getVelocity()*100)-((int)kalmanvert.getVelocity()*100)));
    
    //PRS XXXXX\n
    //Serial.print(F("PRS "));
    //Serial.println((unsigned long)(ms5611_getPressure()*100), HEX);
    
    //$BFV,pressure(Pa),vario(cm/s), temp(deg C), battery(%),pitotDiffPressure(pa)*checksum\r\n
    //sprintf(paquetBluetooth,"BFV,%lu,%i,%i,%i,0",(unsigned long)(ms5611_getPressure()*100),(int)(kalmanvert.getVelocity()*100),(int)ms5611_getTemperature(),(int)ms5611_getTemperature());

    //$XCTRC,2015,1,5,16,34,33,36,46.947508,7.453117,540.32,12.35,270.4,2.78,,,,964.93,98*67
    //$XCTRC,year,month,day,hour,minute,second,centisecond,latitude,longitude,altitude,speedoverground,course,climbrate,res,res,res,rawpressure,batteryindication*checksum
    //sprintf(paquetBluetooth,"XCTRC,,,,,,,,,,%i,,,%i,,,,%i,%i",(int)kalmanvert.getPosition(),(int)kalmanvert.getVelocity(),(int)ms5611_getPressure(),(int)ms5611_getTemperature());

    Serial.print(F("$"));
    Serial.print(paquetBluetooth);
    Serial.print(F("*"));
    for(int i=0;i<strlen(paquetBluetooth);i++){
      CheckSum ^= paquetBluetooth[i];
    }
    if (CheckSum<0x10) {Serial.print("0");} 
    Serial.println(CheckSum, HEX);
    lastSendBluetooth = millis();
    CheckSum = 0;
  }
#endif //HAVE_BLUETOOTH

J’ai laissé tout mes essais en commentaire et c’est au final le protocol LK8EX1 que j’avais trouvé le mieux, plus réactif.
J’ai malheureusement pas eu le temps de poursuivre mes essais de manière poussée :confused:
Moi ça marche au top comme ça avec XCTrack et je tiens 2h d’autonomie ce qui me conviens. Si je dépasse je rallume le bipbip que je garde en secours.
L’écran du gnuvario me sert à pas grand chose, je regarde juste la valeur du vario affiché un peu plus gros sur ma tablette. L’alti est bien cohérente entre XCTrack et le gnuvario.

Quand au débat BT vs USB :stuck_out_tongue: Moi, je préfère le BT car je trouve toujours que les connexions micro USB sont fragiles. A force ça fini par prendre du jeu et la connexion n’est pas au top ou risque de sauter. D’autan plus avec les long connecteurs qui vont appuyer dans le cokpit. Où alors faudrait trouver des mini connecteur, idéalement coudés. Voici mon avis :wink: ROTFL

A+ :trinq:

j’ai fais un petit comparatif des Microcontrôleurs qui ont été cité

et je crois que nous avons la perle rare

Adafruit Feather nRF52 Bluefruit LE - nRF52832

https://learn.adafruit.com/bluefruit-nrf52-feather-learning-guide

512k de memoire Flash, 64k de Ram - Cortex M4F 64Mhz ~25€ avec Bluetooth et Usb avec chargeur

développé par adafruit il semble compatible arduino

taille 51 x 23mm contre 33x18 pour le Pro Mini mais plus de chargeur usb, il y a un petit connecteur pour la batterie (fini les fils qui se dessoudent) et plus de carte BT elle est intégrée

Le bootloader est flashable

Plus cerise sur le gâteau

P0.31 / A7: This pin is hard wired to a voltage-divider on the LIPO battery input, allow you to safely measure the LIPO battery level on your device. If possible, you should avoid using this pin directly.

Mesure de la tension de la batterie en direct sans pond diviseur - il est intégré

On pourrait partir sur ce Microcontrôleur pour la prochaine version

avec un écran E-Ink

Et un petit ampli audio si cela améliore le son

Vous en pensez quoi ?

Salut,

j’aimerais splitter le fil pour que le développement de prunkdump (en mode “presque produit fini”) soit dans la section “developpements-hardware-software”.

Pourriez-vous m’indiquer à partir d’où je dois couper, afin que le split ait du sens pour vous?

De plus, comment nommer le nouveau fil? Le développement a-t-il un nom?

(j’aimerais avoir la réponse à ces questions sans avoir à lire tout le fil! pas le temps…)

Hello, laurent, le MP que je t’avait fait doit toujours être ok :

Et du coup, pas possible de créer une section dédiée alors ?
Au pire mettre dans “Insturments de vol” au minima je pense.

Sinon nom du sujet : “DIY GnuVario”, les autres une idée ?

le nom du sujet pourquoi pas

“DIY GnuVario” - Vario open source

Est-il possible d’avoir le 1er post modifiable pour mettre la description du sujet à jours au fur et à mesure ?

Salut,

désolé, j’aurais pu en effet fouiller dans mes MP :oops:

On a décidé de créer une section “développements”, mais pas une section exprès pour celui-ci… ce sera done un fil dédié dans la section dev.

Je splitte, mais c’est pénible de prendre les “exceptions” en compte… donc je fais un split bourrin à partir du #345.

Impossible de rendre le titre modifiable… mais si vous voulez le changer, y’a qu’à demander à un modo.