DIY GnuVario : variomètre opensource - openhardware Arduino

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.

J’ai ajouté l’Arduino Nano dans ton fichier pour montrer d’où on partait… Puis je me suis souvenu que PrunkDump avait utilisé un Arduino Pro Mini contrairement à Sinseman :mrgreen:

Ah aussi, j’avais trouvé un nom original pour mon vario perso (que je n’ai jamais développé finalement) et du coup je le partage ici vu que je ne mènerai certainement jamais ce projet à jour.

Si il plait on pourrait imaginer donner un nom plus romantique que “GnuVario” :smiley:

Attention, roulement de tambour… Le Stradivario !

J’imaginais un logo avec un violon et des notes qui montent dans le ciel en tournant comme dans un thermique

toi tu fréquente trop un certain forum avec une portée de notes qui font décoller un parapente
(oeuvre d’une gentille graphiste d’à l’époque :bisous: Lylou si tu lis ce message)

Mon coté rabat joie : on risque d’avoir des problèmes de compatibilité avec le bluetooth LE.

C’est le cas, pour XCSoar sous android. Voir https://forum.xcsoar.org/viewtopic.php?f=3&t=2318
Je ne sais pas pour d’autres applis android …

Suite au “split” du fil de discussion : j’ai été très surpris, j’ai eu du mal à m’y retrouver.

Le split a été fait quasiment sans préavis, et les personnes abonnées à l’ancienne discussion ne se sont pas retrouvées abonnées à la nouvelle.
Bref, pas eu le temps d’etre au courant de cette opération, ca fait drole après.

Bon, c’est réglé maintenant pour moi.

Mais je rencontre un effet de bord : je m’étais monté une page de liens vers des messages de cette discussion qui m’intéressaient particulièrement ; ils ne fonctionnent plus maintenant.

exemple : le schéma du montage de prunkdump que jpg63 avait fait le 21 mai ; c’était dispo à
http://www.parapentiste.info/forum/bons-plans/variometre-maison-a-base-darduino-t33538.0.html;msg598321#msg598321

La nouvelle URL est maintenant :
http://www.parapentiste.info/forum/developpements-hardware-software/diy-gnuvario-kit-altivarioaccelerogpsbluetoothsd-arduino-t48334.0.html;msg598321#msg598321

Donc, si comme moi vous avez référencé des pages, vous devez modifier ces liens comme précédemment…

Tu peux m’en dire un peu plus sur le bluetooth LE, c’est un Bluetooth particulier ? Si on risque de rencontrer des problème alors ce microcontrôleur n’est pas le meilleur candidat

Pareil pour moi! C’était une bonne idée le split, (on aurait d’ailleurs dû le faire avant)
Par contre pour ma liste de liens perso, c’est la misére… Bon, y’a pire dans la vie :trinq:

Désolé.
Effectivement c’est l’inconvénient d’un split tardif… :frowning:

Vous vous en remettrez…? ou bien je regroupe à nouveau les fils? :stuck_out_tongue:

Je crois qu’on va s’y faire, c’est juste le temps du changement

par contre on pourrait avoir comme titre “GnuVario : variomètre opensource - openhardware” SVP

Ca va changer les liens :stuck_out_tongue:

Non. Dans les liens , ce qui compte c’est le n° de topic et le n° de message.