UKHAS Wiki

UK High Altitude Society

User Tools

Site Tools


projects:jimbob:bob

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
projects:jimbob:bob [2012/10/02 20:21] kevwalprojects:jimbob:bob [2016/09/08 14:52] (current) – Updated URLS to Uputronics upu
Line 10: Line 10:
  
   * [[http://www.skpang.co.uk/catalog/arduino-pro-328-33v8mhz-p-486.html|Arduino Pro 328 - 3.3V/8MHz from SKPang]]   * [[http://www.skpang.co.uk/catalog/arduino-pro-328-33v8mhz-p-486.html|Arduino Pro 328 - 3.3V/8MHz from SKPang]]
-  * [[http://ava.upuaut.net/store/index.php?route=product/product&path=71_63&product_id=62|NTX2 434.075Mhz Radio Module from HAB Supplies]] +  * [[https://store.uputronics.com|NTX2 434.075Mhz Radio Module from HAB Supplies]] 
-  * [[http://ava.upuaut.net/store/index.php?route=product/product&path=59_60&product_id=51|Assembled uBLOX MAX-6 Breakout With Sarantel Antenna]]+  * [[https://store.uputronics.com|Assembled uBLOX MAX-6 Breakout With Sarantel Antenna]]
   * [[http://datasheets.maxim-ic.com/en/ds/DS18B20.pdf|DS18B20 Temp Sensors]]   * [[http://datasheets.maxim-ic.com/en/ds/DS18B20.pdf|DS18B20 Temp Sensors]]
  
Line 36: Line 36:
 For reference I also find the signal at 434.0745 MHz, but this version appears to be a reversed signal, requiring the "Rv" button to be pressed in dl-fldigi to decode correctly. For reference I also find the signal at 434.0745 MHz, but this version appears to be a reversed signal, requiring the "Rv" button to be pressed in dl-fldigi to decode correctly.
  
-**Update**, In the version built on Vero board I have used 2 x 4k7 and 1 x 20k, as per the guide, which gives me a shift of 620Hz.  On a E4000 dongle using SDR# ([[guides:sdr_tracker]]) I get a nice clean signal at 434.073Mhz.+**Update**, In the version built on Vero board I have used 2 x 4k7 and 1 x 20k, as per the guide, which gives me a shift of 620Hz at 20 deg C.  On a E4000 dongle using SDR# ([[guides:sdr_tracker]]) I get a nice clean signal at 434.073Mhz.  At about -20 deg C (in the freezer!) the shift is down to around 530Hz with a frequency of 434.074Mhz
  
 ===== uBLOX MAX-6 Breakout With Sarantel Antenna ===== ===== uBLOX MAX-6 Breakout With Sarantel Antenna =====
  
-With an aim to keep weight down I was tempted to purchase the [[http://ava.upuaut.net/store/index.php?route=product/product&path=59_60&product_id=52|Assembled uBLOX MAX-6 Pico Breakout with Chip Scale Antenna]] but was advised to go with the Sarantel Antenna version as it is much more reliable at gaining a locked GPS signal - I don't want to loose my first payload to a weak GPS signal!+With an aim to keep weight down I was tempted to purchase the [[https://store.uputronics.com|Assembled uBLOX MAX-6 Pico Breakout with Chip Scale Antenna]] but was advised to go with the Sarantel Antenna version as it is much more reliable at gaining a locked GPS signal - I don't want to loose my first payload to a weak GPS signal!
  
 I didn't need the version with level converters as I has specifically purchased a 3.3v Arduino board. I didn't need the version with level converters as I has specifically purchased a 3.3v Arduino board.
Line 46: Line 46:
 There are two UKHAS related guides to the Max-6: There are two UKHAS related guides to the Max-6:
  
-  * [[http://ava.upuaut.net/store/wiki/doku.php?id=levelconvertor|ublox Max-6 With Level Converter]]+  * [[http://|ublox Max-6 With Level Converter - Link no longer valid]]
   * [[guides:ublox6|uBlox NEO-6Q / uBlox MAX-6Q]]   * [[guides:ublox6|uBlox NEO-6Q / uBlox MAX-6Q]]
  
Line 167: Line 167:
   * Added satellites(), hdop(), course_to(), and cardinal()   * Added satellites(), hdop(), course_to(), and cardinal()
  
-This library has been tested with the included software test harness and within my tracker code in a hardware tracker.  It has not yet flown.+This library has been tested with the included software test harness and within my tracker code in a hardware tracker.  It has now flown and no bugs were spotted.
 ===== Transmitted Sentence ===== ===== Transmitted Sentence =====
  
 When I build my sentence to send to the radio, I need to use this format:  [[communication:protocol|communication:protocol]] When I build my sentence to send to the radio, I need to use this format:  [[communication:protocol|communication:protocol]]
  
-An example sentence that I produce:+My latest sentences that I produce are:
  
-$$BOB,178,18:36:35,51.5089,-0.7323,80,7,381*20C9+  // No Fix:             $$BOB,4,00:00:49,0.0000,0.0000,0,0,5038,25,24*D592 
 +  // Time only:          $$BOB,42,21:13:32,0.0000,0.0000,0,0,5045,27,23*4E8E 
 +  // Fix getting closer  $$BOB,218,21:54:56,53.7650,-30.2871,13872,0,5032,27,23*8941 
 +  // And closer          $$BOB,3060,9:29:51,52.3205,-0.7067,24,0,5045,26,22*8F1A 
 +  // 6 Sats:             $$BOB,3512,11:19:58,52.3228,-0.7062,118,6,5064,27,23*E012
  
  
Line 193: Line 197:
   * Printing debug strings can take up significant memory and cause the Arduino to reboot.  Use the F() Macro to print from Flash not from RAM - Debugger.println(F("Blah"));   * Printing debug strings can take up significant memory and cause the Arduino to reboot.  Use the F() Macro to print from Flash not from RAM - Debugger.println(F("Blah"));
  
 +  * Times must be padded with zeros, a time like 12:13:3 fails to be parsed by habitat.
 +
 +Hardware:
 +
 +  * When you first connect the GPS module to the hardware serial port, it will be spewing out GPS messages once a second - these will stop your programming of the Arduino via the boot loader working.  Either program via an ICSP header, <del>or connect up all but the TX line from the GPS module, load and run your program (which will probably include turning off all GPS message, just requesting GPS data when you need it) and then it will program fine and talk to the GPS fine over the same hardware serial port.</del>  Anthony Stirk (UPU) kindly pointed me to this page: http://www.billporter.info/2011/06/26/how-to-add-multiple-uart-connections/  which demonstrates the correct (and much safer) way of resolving this issue by using 1K resistors to prioritise the programming connection!
 ===== DS18B20 Temp Sensors ===== ===== DS18B20 Temp Sensors =====
  
Line 199: Line 208:
 To talk to them I will use: To talk to them I will use:
  
-Dallas_Temperature_Control_Library v3.7.2  from here [[http://milesburton.com/Main_Page?title=Dallas_Temperature_Control_Library]]+  * Dallas_Temperature_Control_Library v3.7.2  from here [[http://milesburton.com/Main_Page?title=Dallas_Temperature_Control_Library]] 
 +  * OneWire Library v2.1 from here [[http://www.pjrc.com/teensy/td_libs_OneWire.html]]
  
-OneWire Library v2.1 from here [[http://www.pjrc.com/teensy/td_libs_OneWire.html]] +I found the sensor addresses using the code here: http://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html
- +
-Using the code here: http://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html+
  
   * The internal one has address: 0x28, 0x02, 0x01, 0xDD, 0x03, 0x00, 0x00, 0xC5   * The internal one has address: 0x28, 0x02, 0x01, 0xDD, 0x03, 0x00, 0x00, 0xC5
-  * The external one has address:+  * The external one has address: 0x28, 0x78, 0x82, 0x36, 0x04, 0x00, 0x00, 0xB0
  
 +I then used this code to test the 2 sensors:
  
 +  * [[http://www.hacktronics.com/Tutorials/arduino-1-wire-tutorial.html]]
  
 ===== Code ===== ===== Code =====
  
-The Code lives here:  [[https://github.com/KevWal/JimBob||https://github.com/KevWal/JimBob]]+The Code lives here:  [[https://github.com/KevWal/JimBob|https://github.com/KevWal/JimBob]] 
 + 
 + 
 +===== Habhub Payload Config ===== 
 + 
 +Using the form [[http://habitat.habhub.org/genpayload/|here]] I generated a payload config: 
 + 
 +Payload Name: G7PMO $$Bob 
 + 
 +Primary, 434.075, USB, RTTY, 600, ASCII-7, 50 Baud, Parity none, 2 Stop bits. 
 + 
 +{"type":"payload_configuration","name":"G7PMO $$Bob","time_created":"2012-10-09T00:03:44+01:00","metadata":{"description":"G7PMO's Bob Tracker"},"transmissions":[{"frequency":434075000,"modulation":"RTTY","mode":"USB","encoding":"ASCII-7","parity":"none","stop":2,"shift":600,"baud":50,"description":"Primary"}],"sentences":[{"protocol":"UKHAS","checksum":"crc16-ccitt","callsign":"BOB","fields":[{"name":"sentence_id","sensor":"base.ascii_int"},{"name":"time","sensor":"stdtelem.time"},{"name":"latitude","sensor":"stdtelem.coordinate","format":"dd.dddd"},{"name":"longitude","sensor":"stdtelem.coordinate","format":"dd.dddd"},{"name":"altitude","sensor":"base.ascii_int"},{"name":"satellites","sensor":"base.ascii_int"},{"name":"battery","sensor":"base.ascii_int"},{"name":"temperature_internal","sensor":"base.ascii_int"},{"name":"temperature_external","sensor":"base.ascii_int"}],"filters":{"post":[{"factor":0.001,"round":3,"filter":"common.numeric_scale","type":"normal","source":"battery"},{"filter":"common.invalid_gps_lock","type":"normal","ok":[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"source":"satellites"}]},"description":"$$Bob Std format"}]} 
 + 
 + 
 +Doc ID: 0a984ba19e061f0103cebb55f2344c1c
  
 +Note the filter I use to identify if I have a satellite fix "{"filter":"common.invalid_gps_lock","type":"normal","ok":[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"source":"satellites"}"
  
 +I should really implement another variable in the sentence to define lock directly for the PUBX code, but I am told the above should do what I want it to do.
  
  
 ====== Notes for future ====== ====== Notes for future ======
  
-Add Barometer, Internal & External temperature sensors.+Add Pressure sensor?
  
  http://pastebin.com/py8K3uzy  http://pastebin.com/py8K3uzy
projects/jimbob/bob.1349209292.txt.gz · Last modified: 2012/10/02 20:21 by kevwal

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki