SMALL - espritmodel.com SMALL - Telemetry SMALL - Radio
Reply
Thread Tools
Old Dec 03, 2012, 08:02 AM
kha
openLRSng haxor
Finland, Espoo
Joined Mar 2011
2,029 Posts
Discussion
OpenLRS - new firmware fork: openLRSng

As you may kown thUndead stopped maintaining his mod for openLRS so I decided to step in and startted to build a cleaner and more structured open source firmware for the openLRS hardware.

The code is available at http://github.com/openLRSng/openLRSng. 'Tagged' version are considered stable while the master may have some work in progress altough I do my best to avoid breaking it.

Latest stable version can be installed using the Chrome based configurator <<here>>. This is recommended for normal users that don't need to fiddle with the code.

It is possible to stick to a version by downloading a specific version of configurator from https://github.com/openLRSng/openLRS...rator/releases

Developer chat and live help for troubleshooting is available at #openLRS @freenode.net webchat link

Changelog for stable releases:

v3.7 (Jun 30 2014) - TX versatility (EEPROM should be cleared)
  • Allow selecting mnimum channels required on PPM stream (on TX)
  • Enable reordering of PPM channels (tx side)
  • Enable use of TX I2C as 2 extra inputs
  • compile firmware images with bootloader embedded (for flashing via ISP)
v3.6.4 (May 26 2014) - bugfix (EEPROM can be left unerased)
  • Fix for usage of TX/RX pins as channel outputs
v3.6.3 (May 22 2014) - minor features (EEPROM can be left unerased)
  • Support for Deluxe JR TX
  • Required protocol changes to support signal monitor
v3.6.2 (Apr 24 2014) -bugfix (EEPROM can be left unerased)
  • Bugfix for problematic connecting through configurator
v3.6.1 (Apr 20 2014) - faster start (EEPROM can be left unerased)
  • Decreased startup time of the TX firmware
  • Micro PPM bugfix
v3.6 (Apr 16 2014) - EEPROM robustness
  • Improved EEPROM robustness
  • Bugfix for rare TX lockup with telemetry enabled
v3.5.6 (Mar 24 2014) - watchdog support (if supported by bootloader) (EEPROM can be left uneerase)
  • Enable watchdog when possible (needs optiboot on atmega328P)
  • Loosen spektrum frame input validation
  • Failsafe values can now be accesed via configurator
v3.5.5 (Feb 21 2014) - bugfix (recommended to be updated, EEPROM can be left unerased)
  • Fixed Sxx and LLIND output modes
v3.5.4 (Feb 17 2014) - direct switch
  • integrated NFET/Transistor dirving for each channel (Sxx output modes)
  • logic level linkloss output (high when link lost)
v3.5.3 - diversity (beta)
  • Ability to use 2 receivers in diversity mode (connect via I2C)
v3.5.2 (Jan 21 2014)- Spektrum satellite
NOTE:
- binddata is compatible, flashing needed to activate new feature
  • Spektrum satellite output on RX
v3.5.1 (and v3.5) (Jan 2 2014) - TX profiles
NOTE:
- binddata modified, you need to reflash TX and all RX:s with new firmware.
  • profile support on TX (TX can store 4 completely separate settings)
  • improved combined RSSI
v3.4 (Dec 8 2013) - PPM improvements
NOTE:
- binddata modified, you need to reflash TX and all RX:s with new firmware.
  • manual selection for PPM polarity and microPPM mode
  • option to mute buzzer on telemetry loss
v3.3 (Nov 28 203) - smartPort & all
NOTE:
- binddata modified, you need to reflash TX and all RX:s with new firmware.
- when setting up RX config, it is recommended to reinitialize to defaults first
- RSSI behaviour is changed, verify your limits
RSSI is now (RSSI/4 + 75%) * (linkquality)
  • support for DTFUHF/HawkEye 6ch RX
  • support FrSky smartPort telemetry (Taranis, only RSSI & 2x analog, no hubdata yet)
  • delay for failsafe/PWMstop/PPMstop can now be set separately
  • improved RSSI output
  • allow PWM/PPM enabling before radiolink (loads failsafes)
  • allow muting TX beeper on telemetry loss
  • set serial baudrate in bind mode, this allows entering TX menu with e.g. 9600 bauds (bluetooth etc.)
  • EXPERIMENTAL: added datarates 57k6 and 125k, use with care
  • shortened 'jumpper probe' time on outputs 1-4, fixes ESCs refusing to arm
  • enable channel id matchingm prevents syncing to wrong hop position
  • use higher power on bind, fixes bind problems with some 1W units
  • RX type/config information is now transferred during RXconf, this removes the need for TX to know details of every TX type.
v3.2 (Sep13 2013) - Beep me up Scotty
  • new LBEEP RSSI mode, this outputs a audio frequency beep (1kHz) on the RSSI pin when packet is lost. It can be wired directly into vTX audio input (or via attenuator curcuit). Normal RSSI is still available as 'servo' output using the 'rssi injection' if needed.
  • CLI option for 'slave mode' added, this is just to help testing the slavemode is not in the code just yet.
v3.1.1 - v3.1.4 (Aug 15 - Sep 10 2013) 'behind the scenes stuff'v3.1 (Aug 9 2013) 'it is now in CLI'
  • preliminary support for ATMEGA32u4 based TX (DTFUHF deluxeTX)
  • faster timing frsky data to avoid "NO DATA"
  • FrSky mode is now selectable via CLI
  • Serial baudrate for telemetry configurable via CLI
  • ALWAYS_BIND configurable via CLI
  • longer 5 tone beacon tone "Close encounters"
  • Fixed PPM 8ch limit
  • More robust EEPROM access code (verify & retry)
  • expose LEDs and variable tone buzzer on servo header when using RX as TX (rchacker style)
v3.0 (Jul 13 2013) 'openLRSng:s most wanted'
  • Link & Receiver configurations separated
  • Flexible outputs on receiver, upto 13 PWM:s on OrangeRX/Flytron, PWM channels can be remapped freely
  • FrSky telemetry emulation (TX/RX RSSI + 2 * analog input)
  • 'serial' passthru feature both transparent and 'frsky' framed.
  • RSSI injection into PPM/PWM channel
  • Config backup/restore for link and receiver ( '!' during menu )
  • binary config protocol for GUI (soon available)
  • support for DTF UHF 4ch RX (as TX too)
  • adjustable failsafe delay (0.1 - 25s)
  • support Futaba 'microPPM' mode (16 ch in 20ms frame)
  • allow limiting PPM to 8 channels while having more on the link
  • binddata changed -> reflash both TX&RX
v2.1 (May 18 2013) 'more channels for you my friend'
  • introduction of 2bit channels to save amount of data (map: -1244 -> 1000 / 1245-1499 -> 1333 / 1500 - 1766 -> 1666 / 1767- -> 2000)
  • support for upto 16 channels via PPM, modes 4+4 8 8+4 12 12+4 16 (+x channels are 2bits)
  • separate features and datarate, now these can be selected invidually and resultting update rate is shown on menu
  • binddata changed -> reflash both TX&RX
v2.0 (Apr 21 2013) 'dawn of the CLI'
  • introduce the configuration menu on TX, to access it connect via serial (default 115200 baud) to the module while it is in bind mode and press enter. You need to rebind RX to copy setting to it.
  • this version is incompatible with v1.x so reflash both TX and RX.
v1.9 (Apr 4 2013)
  • fix a bug in RSSI output where it may be left to 'zero' when link is restored
v1.8 (Mar 26 2013)
  • add support for 868MHz RFMxx modules
  • add support for openLRSngTX
  • fix PWM/PPM outputs to come active only after initial link is achieved
v1.7 (Mar 16 2013)
  • add define for US FRS channels 1-7 to make beacon frequency setting easier
  • add possibility to select PPM mode at compile time (FORCED_PPM_OUTPUT) allowing 7 PWM channels along with PPM
  • change RSSI PWM frequency to 32kHz for stabler values on OSD
v1.6 (Feb 23 2013)
  • fix PPM mode setting to be robust if servos attached, 6 channels available as PWM.
v1.5 (Feb 18 2013)
  • add spectrum analyser mode in RX too.
v1.4 (Feb 13 2013)
  • fix beacon enabling
  • add possibility to reset to defaults (in .int) without randomization (hold button until continous beep)
v1.3 (Feb 13 2013)
  • basic telemetry (beep on link lost) if datarate==2
  • combined PWM/PPM mode (6 PWM channels available)
  • NOTE: PPM selection method changed !!!
v1.2 (Feb 9 2013)
  • extend frequency limits to 413 - 460MHz
v1.1 (Jan 25 2013)
  • binding and (key/channel) randomization support
  • support for spectrum analyserGUI (with TX)
  • interrupt based PWM out (really an internal change)
v1.0 (Dec 6 2012)
  • initial version

Supported hardware
  • Flytron openLRS M2 TX 100mW (with optional poweramp)
  • Flytron openLRS M3 TX 1000mW
  • Flytron openLRS M2 RX 100mW (as TX too)
  • OrangeRX UHF TX 100mW
  • OrangeRX UHF RX 100mW (as TX too)

Current features
  • up to 16 channels
  • proper timer based PPM output (for multicopters)
  • increase resolution to 10bits (original openLRS code had 12 and thUndeadMod 8)
  • use timer hardware when possible to avoid jitter
  • clean the code to make developing easier (proper indentation etc.)
  • simplify configuration part eg. frequency selection
  • 'beacon' mode (fading power audio beep).
  • selectable bitrate for balancing between range and features
  • proper binding procedure instead of hard coded values
  • fixed RSSI sampling (sample when TX is transmitting)
  • configuration via 'serial dialog' instead of code changes
  • spectrum analyser backend on both TX & RX for e.g.
    https://chrome.google.com/webstore/d...chekgakdfkejek

What I have currently planned is
  • enable GPS input (for telemetry and beacon)
  • enable telemetry backlink for RSSI, analog inputs and GPS data
  • use second rx as satellite (I2C connected)
  • use 'live' failsafe by ppm input to rx

I am open for any ideas regarding functionality, also contributions are welcome.
https://www.paypal.com/cgi-bin/websc...=DSWGKGKPRX5CS

Usefull/informative posts:

Nice flashing instruction:
http://www.rcgroups.com/forums/showp...&postcount=467

Info on adding a filtter on RSSI output to make it usable for OSD:s not having internal filtter.
http://www.rcgroups.com/forums/showp...&postcount=439
kha is online now Find More Posts by kha
RCG Plus Member
Last edited by kha; Aug 07, 2014 at 09:41 AM.
Reply With Quote
Sign up now
to remove ads between posts
Old Dec 04, 2012, 04:29 AM
Electronics slayer
SouthPawPaul's Avatar
Reading, UK
Joined Jul 2008
494 Posts
Nice to see someone else picking up the sterling effort that thundead has put into this custom firmware.

I personally have an interest in getting the telemetary feature working.
SouthPawPaul is offline Find More Posts by SouthPawPaul
Reply With Quote
Old Dec 04, 2012, 11:49 AM
Registered User
Joined Sep 2010
2,425 Posts
My wish would be antenna tracking ....Another software fork of Openlrs, though thath one is close source, has it implemented....Its coded by some polish guys and called Eleres.
msev is offline Find More Posts by msev
Reply With Quote
Old Dec 04, 2012, 01:16 PM
Registered User
Joined Dec 2011
35 Posts
Quote:
Originally Posted by kha View Post
I think I spotted a bug in the thundead mod that the first channel is used twice i.e. if you have hopping set to 11,22,33,44,55 it actually hopped 11,11,22,33,44,55 this would explain what you saw.
Thanks that fixed it, hop_channel>nrofhops didn't work. When your have 4 hopping channels chosen and set nrofhops to 4 it will try to get 0,1,2,3,4 from the array -_-.
Rownald is offline Find More Posts by Rownald
Reply With Quote
Old Dec 04, 2012, 01:46 PM
Registered User
dathird313's Avatar
Joined Jul 2006
76 Posts
An example of one of the many advantages to open source.
dathird313 is offline Find More Posts by dathird313
Reply With Quote
Old Dec 05, 2012, 12:31 PM
Registered User
CheckSum's Avatar
Joined Jan 2011
512 Posts
kha-
Thank you for working on OpenLRS. I am looking forward to your future improvements.
One quick question: Do I have the file designation right in the photo I attached?
-Thanks
CheckSum is offline Find More Posts by CheckSum
Last edited by CheckSum; Apr 05, 2013 at 10:37 PM.
Reply With Quote
Old Dec 05, 2012, 12:44 PM
kha
openLRSng haxor
Finland, Espoo
Joined Mar 2011
2,029 Posts
Quote:
Originally Posted by CheckSum View Post
One quick question: Do I have the file designation right in the photo I attached?
Well yes, but you don't need to care about the .h files too much as the .ino includes them depending on what you selected.

I.e. you make you config selections in the .ino, enable COMPILE_TX and upload to TX. Then comment the COMPILE_TX out and upload to RX modules.
kha is online now Find More Posts by kha
RCG Plus Member
Reply With Quote
Old Dec 05, 2012, 03:03 PM
Registered User
Poland, Śląskie, Bielsko-Biala
Joined Jan 2012
634 Posts
This has been already done:

HW is similar to OLRS but FW is fully rewritten without orginal code, many features

- advanced telemetry with eldisp LCD display
- lost model buzzer
- antenna tracker
- configuration firmware

However it's not yet fully released to public, poor documentation, ask cyberdrones.com why ...


http://cyberdrones.com/shop/product....t=17&id_lang=1
shafter is offline Find More Posts by shafter
Reply With Quote
Old Dec 05, 2012, 04:03 PM
Registered User
Joined Dec 2011
35 Posts
Hey kha, have you confirmed that the RSSI you code puts out matches with the RSSI you get when you run the spectrum analyzer code (Should be around 200 when Rx and Tx are <2 meter)? Because I hade the problem that my RSSI didn't match in any way with what the RSSI should be. It turned out that when you read the RSSI just after receiving a package there is no data being transmitted and thus the RSSI doesn't match the real RSSI. I 'fixed' it by just constantly reading the RSSI outside the if received and taking an average because you are almost always receiving data. This isn't a really neat solution, do you have any suggestions? I'm not sure if your code has the problem too (I do suspect so) but it might be interresting to update that as well in your code.
Rownald is offline Find More Posts by Rownald
Reply With Quote
Old Dec 05, 2012, 04:19 PM
kha
openLRSng haxor
Finland, Espoo
Joined Mar 2011
2,029 Posts
@shafter yes I was told about the eleres firmware and even haf a look at it. Pretty nifty. Nothing of that is actually hard to do.

@rownald no I haven't checked rssi and believe you are right. As my code knows the timing I can read the RSSI while the packet is coming so should be able to make it fairly good.

One of the real first things to do is the binding i.e. creation of semi random packet id and hop list and transferring parameter to rx via a special binding mode. One can still specify the id and hoplist by hand but there is no need to program the rx with same as pairing will transfer the id, hoplist and timing (datatate).
kha is online now Find More Posts by kha
RCG Plus Member
Last edited by kha; Dec 05, 2012 at 04:36 PM.
Reply With Quote
Old Dec 05, 2012, 04:25 PM
Registered User
Joined Sep 2010
2,425 Posts
Kha so are you gonna include antenna tracking in the code some-time in the future? And maybe also support for 1W transmitter module? I'm planing to diy that module, so if you plan on making some changes regarding hardware I'm in for it
Hope those modules at HK will restock soon, I wasn't at home while they sold out
msev is offline Find More Posts by msev
Reply With Quote
Old Dec 05, 2012, 04:27 PM
Registered User
dathird313's Avatar
Joined Jul 2006
76 Posts
1 watt module works, I have one and have tested it. Its pin for pin compatible with the rfm22 that's used in the 100 mw modules.
dathird313 is offline Find More Posts by dathird313
Reply With Quote
Old Dec 05, 2012, 04:37 PM
Registered User
Joined Sep 2010
2,425 Posts
Cool , thanks for the info!
msev is offline Find More Posts by msev
Reply With Quote
Old Dec 05, 2012, 08:09 PM
Registered User
CheckSum's Avatar
Joined Jan 2011
512 Posts
kha-

For this:
Code:
// helpper macro for European PMR channels
#define EU_PMR_CH(x) (445993750L + 12500L * x) // valid for ch1-ch8

#define BEACON_FREQUENCY EU_PMR_CH(1)
#define BEACON_DEADTIME 30 // time to wait until go into beacon mode (s)
#define BEACON_INTERVAL 10 // interval between beacon transmits (s)
I live in the US. I assume I comment out only [//#define EU_PMR_CH(x) (445993750L + 12500L * x) // valid for ch1-ch8] .
-Thanks
CheckSum is offline Find More Posts by CheckSum
Reply With Quote
Old Dec 06, 2012, 12:19 AM
kha
openLRSng haxor
Finland, Espoo
Joined Mar 2011
2,029 Posts
Quote:
Originally Posted by CheckSum View Post

I live in the US. I assume I comment out only [//#define EU_PMR_CH(x) (445993750L + 12500L * x) // valid for ch1-ch8] .
-Thanks
For US you can ignore the macro and just put frequency directly e.g. FRS ch1
Code:
#define BEACON_FREQUENCY 462562500
kha is online now Find More Posts by kha
RCG Plus Member
Reply With Quote
Reply


Thread Tools

Similar Threads
Category Thread Thread Starter Forum Replies Last Post
New Product OpenLRS - Opensource Radio Control System form Flytron MelihK FPV Talk 132 Dec 25, 2013 05:35 AM
Sold To trade or sell: my new firmware DL rx for your old firmware DL rx signflyer FPV Equipment (FS/W) 4 Apr 24, 2012 10:49 PM
Sold Flytron OpenLRS Receiver v1 x3 $125 Shipped mrfliboy FPV Equipment (FS/W) 1 Nov 05, 2011 04:20 PM
Discussion Flytron's OpenLRS available now CrashingDutchman FPV Talk 30 May 28, 2011 05:36 AM
New Product New web shop, New product *EMI P-38 Forked Tail Devil * infinityhobby Product Announcements 60 Nov 03, 2006 07:48 PM