Wednesday, 6 April 2016

BlueFlyVario_TTL_GPSv11 released

In November 2015 I released the v11 version of the Bluetooth model. Today I am pleased to announce the release of the BlueFlyVario_TTL_GPS_v11 model. I have actually been shipping this model for a few weeks now to fulfill v10 orders, but only just got around to posting the details. Out of almost 4000 BlueFly's of various types and versions, we now have over 1500 TTL_GPS model BlueFlyVario's around the world, most of which are probably installed on Kobo eReaders running xcsoar to make pretty fully featured flight instruments.

I was not really sure that a new version of the TTL_GPS was needed. However, in the end a few factors which drove the decision included:
  • Keeping consistency in firmware and features moving forward by having a common processor type as the Bluetooth model.
  • Allowing intrepid hardware hackers the ability to add an airspeed indicator
  • Some design layout changes to help with my new production system. 
What is in the bag?

With the v11 model you get a very similar set of parts as the v10 model:
  • The main module. The PCB size is 50mm x 17 mm which is the same as the v10 and the v9. The speaker, GPS, button and header locations are in the same spot as the v10. 
  • A small piece of neoprene. This is really important. It must be placed over the pressure sensor if the sensor is exposed to any light (even light through a translucent case). The neoprene allows the air pressure through, but stops the light. Light makes the pressure sensor go crazy. It is really important to place it on the pressure sensor with the black foam side down - do not stick it to the pressure sensor - you will block the hole and it will not work! It is shown in the image below in the correct spot. 
  • Some blue PVC heat shrink cut to size. It is fine to install the module without a case if you use the heatshink.
    • Poke a small hole through one side of the heatshrink just big enough for the button.
    • Put the neoprene on the pressure sensor, and the heatshrink evenly over the module.
    • Use a heat gun, or a hairdryer on hot setting to carefully shrink the plastic around the module.
[Edit: The header and dupont connector are no longer included in the package. They have been replaced by a small piece of 4 core flat telephone cable. See this update for more information]
  • A 4x1P right angled header. Some people solder the wires directly to the module, others use the header so it is easy to remove for testing. If you use the header I suggest you trim the through-hole pins to the thickness of the PCB so they are flush with the bottom of the board. See the range of other Kobo install related blog posts so see different examples of how you might use the header. 
  • A 4x1P DuPont connector with 20 cm wires. This will fit in the header, and the wires connect to the serial port of the Kobo. You should trim the wires to be as short as possible so you minimize stray voltages.


Hardware changes

There have been a few hardware changes from the v10. Refer to the circuit diagram, pcb layout and image below. Also refer to the Bluetooth model release blog post for more information:
  • I have changed to the microprocessor to the PIC24F32KA302 and am now using the QFN package instead of SSOP. Even though it is smaller it is actually easier to solder without jumping leads, and most importantly, I have a bunch of extra IO lines to add new features. 
  • The TC1015 regulator has been upgraded to the TC2185 (3.0V for the TTL_GPS). This provides a higher max current to allow for the add-ons and has slightly better power supply noise performance. 
  • Some of the IO lines are exposed in a new way (see the image below of the bottom of the PCB): 
    • The I2C lines V+, SCL, SDA and Gnd can be used by hardware hackers for connecting the MS4525DO pressure sensor. 
    • RB10 and RB11 can used for extra buttons and LED. 
  • The solder jumpers are on the bottom of the board. In the image below SJ1 is shown closed. The jumpers have the following functions:
    • SJ1 is used to bypass the button function for turning on the module as soon as power is supplied to Vin. 
    • SJ2 is used to keep the VBACKUP power tied to Vin. I found VBACKUP was normally more pain than it was worth so I removed the extra pin. 
  • There is now a 10k pull-up resistor on the BlueFly-Tx line (which will be connected to the Kobo Rx line). This keeps the voltage high rather than floating, which in turns allows the newer Kobo Touch 2.0 and the Kobo Glo HD to proceed through the boot sequence without hanging up. 
  • I added a couple of holes to the bottom of the board to make soldering an external speaker easier, although it is still pretty tricky unless you are good at soldering.  



Firmware Changes

New features of the v11 firmware include:
  • Boot up shorts for entering the bootloader and resetting all of the hardware settings:
    • Previously to enter bootloader mode you shorted programming pads 2 and 5. Now you short SDA to ground (see the picture above). 
    • Previously to reset all the default hardware settings you shorted programming pads 2 and 4. Now you short SCL to ground. 
  • An updated ds30bootloader. This was required for the new microprocessor and to support the new boot up short mechanisms. 
  • A new hardware setting for supporting the airspeed sensor. 
Adding an airspeed sensor

An airspeed sensor shield is available separately for the Blutooth module. If you are a confident hardware hacker, and can read and understand the circuit diagrams, and want to experiment, then the connections are the same as described in the blog post about the shields.

Installation

The image below shows a simple installation on the Kobo Glo HD (without the really important neoprene and heatshrink). I hope to find some time soon to provide a more comprehensive post about the simple installation on the Glo HD. In the meantime some tips for all installs:

  • Use the neoprene, but do not use the sticky side which would block the holes in the pressure sensor.
  • Read an earlier blog post about using xci files. That is currently the easiest way to send commands to the vario (you also need to read the hardware settings manual on the support page of the website). 
  • If you get 'Waiting for GPS fix' and after 20 minutes of the vario being on, outside, and with the antenna having a clear view of the sky, the do the following debugging:

    • Check in the Devices Monitor for incoming data from the vario. 
    • Record a NMEA log and look for $GPGSV messages to assess what is going on with the satellites. 
    • Check your wires to ensure the solder quality is good, and that the wires are not routed next to other components on the Kobo circuit board which might pick up stray power. I like to keep the wire length less than 5cm. 
    • Send the command $PMTK104*37<CR><LF> to the BlueFly module a couple of times by connecting to it with a USB-Serial converter and the BlueFlyVario desktop application (<CR> and <LF> are replaced by the BlueFlyVario desktop application by the \r and \n characters respectively). This command is passed from U2, through the processor, and out from U1 to the GPS. This asks the GPS to do a full cold start and get rid of any stored Time, Position, Almanacs and Ephemeris data which might be corrupting a fix.
    • If that fails, send me an email with some images of your installation, and a NMEA log. 

41 comments:

  1. Nice fine-tuning Al.

    Just a question on the 10k pull-up. I have a similar boot-hang problem with an HC-12 wireless module on a GloHD. Just wondering if you could please explain the problem a little, or provide a link?

    ReplyDelete
    Replies
    1. Essentially, we think the need for a pull up is associated with what the com port is actually for, which is to offer a console for debugging. If you connect the Kobo to a standard USB to Serial converter you can see a series of u-boot console messages during boot up. We think that the u-boot sequence is looking for incoming data on the serial port (console commands). If the Rx on the Kobo Glo HD (and I think the Touch 2.0) is low at a critical stage during boot up, then the boot sequence hangs, perhaps thinking there is some command to react to. There might be a software solution, but it is much easier just to keep the Rx line high with a pull up until you actually want to send data.

      Delete
    2. Thanks Al, that all makes sense. I guess you are also holding off sending data to Kobo for a small time period during bootup?

      Delete
    3. I did not program a specific delay into the BlueFly startup code. Once the microcontroller starts it is holding the Rx line of the Kobo high.

      Delete
    4. This comment has been removed by the author.

      Delete
    5. Hi, I'm having the same booting problem, with my V10 on a kobo glo HD.
      So if I understand this correct (no hardware expert at all..) I should solder a resistor between the Tx connection on the BF and the wire coming from Rx on the kobo...?
      If this is correct, what spec's should this resistor have apart from 10k.Ohm?

      Delete
    6. Frederic, That is not quite correct. The connection between the BlueFly and the Kobo should be as normal:
      1. V(BlueFly)<->V(Kobo)
      2. Tx(BlueFly)<->Rx(Kobo)
      3. Rx(BlueFly)<->Rx(Kobo)
      4. Gnd(BlueFly)<->Gnd(Kobo)

      Then you need a 10k resistor between line 1 and 2 That 'pulls up' the voltage on line 2 to the V value, keeping it stable during boot. You could either connect V(BlueFly) to Tx(BlueFly), or V(Kobo) to Rx (Kobo); they are essentially the same. Any 10k resistor should work; such as any one of the 1/4 W or so search results on ebay for "10k resistor".

      Delete
    7. thanks a lot,
      Works perfect now, so maybe I can start thinking about ditching the connector I now use in between kobo en BFV. There are still some data or connection loss I think has to do with that.

      Delete
  2. As ever, great work. Thanks for the update Al.

    ReplyDelete
  3. Hi,
    I've a question about the VBACKUP.
    If I close the soldier jumper J2 and connect the Bluefly to a Kobo serial port it will not provide power if the Kobo is shut down.

    So is the idea to connect Vin and GND directly to Kobo's battery pack and take only TX and RX Form the serial port?

    ReplyDelete
    Replies
    1. I suggest to most people that they do not use vbackup with the Kobo unless you have a good understanding of the datasheet of the PA6H and exactly what it means. If you did use it on the Kobo then the way you described might be appropriate.

      Delete
  4. Hi Al.
    I have BFV_TTL_GPSv10 and Kobo Glo HD. How can I add that 10k pull-up to connect the BFV and the Kobo?

    ReplyDelete
    Replies
    1. Connect a 10k resistor between Vin and the BFV-Tx/Kobo-Rx line.

      Delete
  5. hello alistair,
    Is it possible to connect this on port usb of a tablet android ?
    I suppose to do use a ftdi usb/serial adaptor ? and what model of adaptor can i use ?
    Thanks
    Sylvain - France

    ReplyDelete
    Replies
    1. oupss !! the answer is here : http://blueflyvario.blogspot.fr/2016/04/blueflyvariottlgps-over-usb-on-android.html
      Thanks alister

      Delete
  6. Which of the serial ports in the Glo HD should it be connected to? I can see one labelled J9 and one labelled J4 at the top right of the Glo HD's circuitboard.

    ReplyDelete
    Replies
    1. I used the one labeled J4 at the top right. I am not sure the others work.

      Delete
    2. Thanks, it's working! Although I couldn't seem to get the top corner of the back cover to clip back on despite filing out some of the fins in that area. Is there anything wrong with this wire routing? http://i.imgur.com/OU4ABDe.jpg Actually maybe I've managed to drill through one of the clips...

      Delete
  7. Hi. Can we install this on Kobo Touch? Would it work? Thanks.

    ReplyDelete
    Replies
    1. Yes, I understand it works with most Kobo Touch models, although I have not installed it on a touch myself. I have reports of xcsoar working with the Touch 2.0, and for the first Kobo Touch it works if the model number is N905B or N905C I think, but not N905. Please check on the xcsoar forums for compatibility with various models of the Kobo.

      Delete
  8. Hello. I have a BlueFlyVario_TTL_GPS v11 on a kobo mini.When I´m flying, it turns off when it takes a few minutes working. I thought it might be due to auto power off. How I can disable it. Thanks

    ReplyDelete
    Replies
    1. There is and auto power off after 10 minutes if you have not moved more than 2m vertically. Both parameters are adjustable using the hardware settings. See the manual on the support page of the website.

      Delete

    2. Good evening , I 'm Brazilian , I'm using google tradudor , I consulted the manual and it said it was to install BlueFlyVario_10.M06.zip , most do not know the series of my device

      Delete
    3. You have the latest released firmware on your vario. There is no need to update it.

      Delete
  9. I have a problem with the kobo glo . When I turn it on the page with the information box at the screen changes from black to white background at regular intervals . Trick that does not happen on the page with only the map . I need help

    ReplyDelete
    Replies
    1. Please download and install the latest version of xcsoar. Version 6.8.5 fixed some issues with the Kobo Glo.

      Delete
  10. hello Alistair,
    Is it possible to connect this blueflyvario TTL with a tablet Kindle Fire ?
    XCsoar and Xctrack are avalabled for this tablet then i would like connect with usb port (but mavcell doesn't exist for kindle fire ?)
    Thanks
    Sylvain - France

    ReplyDelete
    Replies
    1. I am not sure. If the Kindle Fire has an internal UART that is exposed to the operating system and xcsoar can use it then it might be possible. Alternately, there might be some way of using the USB port. Check out the mobileread forums.

      Delete
    2. i cannot see internal uart, despite ...

      Delete
  11. I'm a problem on tablet android, mavcell respond me "cannot open port" when i clik on "open com"
    Have you a solution ?
    Problem on 3 tablet differents ? (include test on phone galaxy "grand")

    ReplyDelete
  12. Hi Alistair

    Outstanding job!! Is there any particular reason to connect MS5611 pins SCLK, SDI and SDO to PIC24 pins 20, 21 and 22? Other than being analog AN12, AN11 and AN10?

    Thanks

    Sergio

    ReplyDelete
    Replies
    1. Not really. It is just where the design ended up.

      Delete
  13. Hi Alistair,

    Have recently (had) installed a v11 BlueFlyVario_ttl in a kobo-mini running lk8000 (latest version) ...

    Unfortunately, have found that the lk8000 is not using the baro-altitude & speed is not registering (GPS position & height working ok); have you heard of / is there any reason why v11 ttl should not fully interface with an lk-setup ??

    Note (1) : this exact kobo reported as working *ok* with xcsoar installed (replaced card)
    Note (2) : a second (parallel) kobo-mini build works *fully* with v10 ttl & same (cloned) lk8000 card

    Any ideas, comments, assistance gratefully received .... :)

    Best wishes,

    Mark

    ReplyDelete
    Replies
    1. Mark,

      It is really hard to work out what might be going on without having your setup in front of me to test. Are you using the LK8EX1 output mode of the BlueFly? Do you have the baud rate and port setup properly in LK8000? Can you see any data in the LK8EX1 Terminal?

      Delete
  14. Hi Guys,
    I have got a BlueFlyVario_TTL_GPS_v11 with Kobo glo.
    It will work?
    Thanks

    ReplyDelete
    Replies
    1. Yes. See here for the Kobo Glo install information: http://blueflyvario.blogspot.com.au/2014/11/kobo-glo-install.html

      Delete
  15. Hi Alistair, due to the popularity of TTL_GPS will you supply the case?

    ReplyDelete
    Replies
    1. The case for every model of the Kobo is different, and most other pilots have designed their own better one. I think the supplied heart shrink plastic is sufficient for a minimalist install; although it is not very pretty. 3D printing a case locally will be cheaper for you than the price I would have to charge.

      Delete