Difference between revisions of "Modems"
IHaveADrone (talk | contribs) m (typos etc) |
|||
(46 intermediate revisions by 6 users not shown) | |||
Line 500: | Line 500: | ||
== SiLabs Si1000 SoC based modems == | == SiLabs Si1000 SoC based modems == | ||
[[Image:R0_V1_1_Top_Prototype.jpeg|thumb|left|R0 Sub GHz Telemetry Radio Modem]] | |||
The latest SiK firmware supports also mesh topologies. | The Si1000 - Si102x/3x radio System on Chip (SOC) produced by SiLabs is found in a number of radio modules, for example the cheap and widely used HopeRf module. There is paparazzi fork of [https://github.com/paparazzi/SiK open source firmware] for these radios which makes them suitable for use in MAVs. Online documentation for the Sik firmware shows how to configure it for various jurisdictions. The firmware supports 433 MHz, 470 MHz, 868 MHz and 900 MHz radios. The new RFD868 also works in the European spectrum licenses (868 MHz). The latest SiK firmware supports also mesh topologies. | ||
Sik firmware can be used for example for: | |||
* powerful [http://rfdesign.com.au/products/rfd900-modem/ RFD 900+] modem. RFD 900+ is well proven and supports antenna diversity. A combination of 6dbi Yagi plus a dipole on the ground station, with a pair of orthogonality oriented dioples in the airframe, has been extensively tested and proven reliable at >8km range (theoretical range of > ~40km). | |||
* cheap and ubiquitous [http://ardupilot.org/copter/docs/common-3dr-radio-v1.html 3DR radios] | |||
* for shorter range a pair of HopeRF-based modems such as the [[R0]] sub GHz telemetry radio modem. It was developed by [[1BitSquared]] specifically for the use with the Paparazzi UAV framework and is part of the [[Elle]] avionics system | |||
The RFD900 can be paired with the [[R0]] radio that has only a single front-end. You can for example, use a small short range airframe with a ground station that is also used for long range operations. | |||
=== Paparazzi SiK Firmware & RSSI=== | |||
Paparazzi has a modified fork of Sik firmware: https://github.com/paparazzi/SiK | |||
This firmware add options to add RSSI info to your messages. Also aditionally to fully encrypt your connection | |||
When using a SiK firmware radio with Paparazzi, you should set MavLink packing off ([https://github.com/paparazzi/SiK/blob/pprz_rssi/Firmware/radio/parameters.c#L63 set MAVLINK=0 here])and configure Paparazzi for transparent serial mode. You can also turn on an optional ''RSSI_COMBINED'' message that shows local and remote RSSI. To do that (and make Sik radio aware of Pprzlink packets) follow the instructions [https://github.com/paparazzi/SiK#paparazzi-rssi-enable here]. | |||
Make sure you to add the following line to your for your airframe chosen telemetry file: (conf/telemetry/ etc etc) | |||
<source> | |||
<process name="Ap"> | |||
<mode name="default"> | |||
... | |||
<message name="RSSI_COMBINED" period="0.3"/> | |||
... | |||
</source> | |||
<br style="clear:both"/> | |||
== Laird (ex Aerocom) == | == Laird (ex Aerocom) == | ||
Line 695: | Line 712: | ||
[[File:ESP8266.jpg|thumbnail|left|ESP8266 WiFi module]] | [[File:ESP8266.jpg|thumbnail|left|ESP8266 WiFi module]] | ||
=== ESP as client === | |||
The WiFi chip tries to connect to a hotspot or router. The GCS is connected to the same network. No additional tools are required on the GCS computer. | |||
See https://github.com/paparazzi/esp8266_udp_firmware for installation and usage instructions | |||
=== ESP as host === | |||
Change the config of the software to use Host and set the preferred SSID and if wanted the PW and reflash the module | |||
<br style="clear:both"> | |||
=== Yet another ESP8266 datalink modem === | |||
[[File:Taranis openlrsng to udp.jpg|thumb]] | |||
Lately i started connecting the aircraft with the GCS link agent using the Wemos D1 mini or any other ESP8266 module as a short range modem. | |||
In order to accomplish this you will need to setup the Arduino IDE, instructions here [https://randomnerdtutorials.com/how-to-install-esp8266-board-arduino-ide/ How to setup Arduino IDE for esp8266] | |||
so it can compile and upload ESP8266 code to the ESP8266 mcu. | |||
After setting up the Arduino IDE you will need to compile and upload this sketch [[File:UART to UDP paparazzi autopilot.zip|thumb|uart to udp Access poin (AP)]]. | |||
HAVE IN MIND THAT THE CODE IN THE PREVIOUS PROJECT WITH ESP8266 NAMED "ESP8266 Chip Module" (https://github.com/paparazzi/esp8266_udp_firmware) IS FAR BETTER AND IT WORKS VERY VERY WELL WITHOUT ANY DELAY, mine is a simple program just to understand what is going on basically so use the "esp8266_udp_firmware" but remember to edit the wifi_config.h to suit your needs and also the LED pin inside "pprz_udp_link" line #14 | |||
that reads #define LED_PIN 13, for the Wemos D1 mini this line should read #define LED_PIN 2 | |||
It could be a joke but i didn't saw the EXCELLENT project of Christophe De Wagter (CDW) (i only saw it when i came here to edit this page...) and i spent 2 whole days and one night reading about Arduino coding style and ESP8266 libraries only to write a very simple version of his code... | |||
Now upload whichever program you decided to use to your ESP8266 board, both are in AP mode but have different SSID and password, make sure that you have selected the right ESP8266 board as a target, i use the Wemos D1 mini because that was what came in first after i ordered a bunch of those ESP8266 modules. | |||
Now just use the ESP8266 board as a regular modem but remember that now we are using UDP datagrams so after powering up the autopilot (and thus powering up the ESP8266 module) so it can transmit telemetry THEN CONNECT YOUR LAPTOP OR COMPUTER TO THE AP WITH SSID "PAPARAZZI" (password is "paparazzi") and in the GCS select the Flight UDP/WiFi session. | |||
Where this ESP8266 application is different is that i use the ESP8266 module as a wireless connection from my OrangeRx OPENLRSng TX module to the paparazzi running laptop | |||
Instead of using a dedicated telemetry modem i use the open project OPENLRSng [https://github.com/openLRSng/openLRSngWiki/wiki OPENLRSng WiKi] which provides a RC link for controlling the aircraft AND a transparent serial link of up to 19200 bps, enough for my usual flights. | |||
This way the telemetry leaves the aircraft via the rc link and i comes to my RC transmitter module and the via the ESP8266 module to the GCS running laptop. | |||
I am sure that with a ESP8266 or a ESP32 module with external antenna and/or an bidirectional amplifier a very nice modem can be realized, you can even use it as a cheap short range modem for testing the aircraft while not in flight, this way you avoid the messy wires and ftdi adapters, something very nice for setting up the compass, accelerometer or gyro neutral points and sensitivity. | |||
The UART0 pins have been swapped because on my Wemos D1 mini the on board serial to USB chip uses the default UARTO pins, Serial Tx is now assigned to GPIO15 and Rx is assigned to GPIO13 on your ESP8266 board, on my Wemos D1 mini pin D7 (GPIO13) is the Rx and D8 (GPIO15) is the Tx. | |||
Important: The ESP8266's default serial port speed is 57600 bps and this will be also the telemetry speed but if you plan to duplicate my method of telemetry using OPENLRSng as the telemetry transport method please remember that 57600 bps is only the speed of the TX module to ESP8266 module connection and not the actual telemetry data rate which will be about 19200 bps maximum if you select the air to air data speed of the RC receiver and rc radio TX module to be 57600 bps. | |||
The reason is simple, inside this 57600 bps bandwidth two things must be accommodated, one is the standard rc servo channel data and the other is the paparazzi telemetry. | |||
OPENLRSng has 2 baud rate settings in its dedicated Chrome app, The serial link baud rate and the air data rate, set the first to 57600 and the second to 57600 which means that you will get a serial link connection speed of 57600 bps (rc receiver's uart and tx module uart connection speed) and an air data rate (rc receiver to radio Tx module) of 57600 bps which can pass a transparent serial link of 19200 bps along the rc link. | |||
You must set the modem's baud rate in the airframe file at 57600 bps ALSO but the actual telemetry rate will be about 19200 bps and that's why you need to adjust your messages that come through telemetry to fit in that 19200 bps rate. | |||
VERY IMPORTANT: | |||
ONE THING TO REMEMBER IS THE MANDATORY USE OF SHIELDED CABLE FOR CONNECTING THE ESP8266 UART PINS WITH THE AUTOPILOT OR RC TX MODULE'S SERIAL PORT DUE TO RF INTERFERENCE PROBLEMS. | |||
== Telemetry via Video Transmitter== | == Telemetry via Video Transmitter== |
Latest revision as of 23:53, 20 January 2021
The Paparazzi autopilots generally feature a TTL serial port to interface with any common radio modem. The bidirectional link provides real-time telemetry and in-flight tuning and navigation commands. The system is also capable overlaying the appropriate protocols to communicate through non-transparent devices such as the Coronis Wavecard or Maxstream API-enabled products, allowing for hardware addressing for multiple aircraft or future enhancements such as data-relaying, inter-aircraft communication, RSSI signal monitoring and automatic in-flight modem power adjustment. Below is a list of some of the common modems used with Paparazzi, for details on configuring your modem see the Airframe Configuration and XBee Configuration pages.
General comparison
This is ONLY a comparison between modules on this page
All modules listed here work without issue and are generally available.
Feature | XBee Series 1 | XBee Pro Series 1 | XBee Series 2 | XBee Pro Series 2 | XBee 868LP | XBee Pro 900HP | XBee Pro XSC 900 | Digi 9XTend | SiLabs Si1000 | Aerocom AC4790-200 | Aerocom AC4790-1000 | Laird RM024 50mW | Laird RM024 125mW | RN-41 Bluetooth |
frequency | 2,4GHz | 2,4GHz | 2,4GHz | 2,4GHz | 868MHz | 900MHz | 900MHz | 900MHz, 2.4GHz | 240-960MHz | 900MHz | 900MHz | 2,4GHz | 2,4GHz | 2,4GHz |
output power | 1mW | 63mW (US) 10 mW (Int'l) | 2mW | 63mW | 5mW | 250mW | 250mW | 1mW-1W | max 100mW | 5-200mW | 5-1000mW | 2,5-50mW | 2,5-125mW | 32mW |
RF speed | 250kbps | 250kbps | 250kbps | 250kbps | 10kbps, 80kbps | 10 or 200kbps | 10, 20kbps | 9.6, 115.2kbps | 76.8kbps | 76.8kbps | 280, 500kbps | 280, 500kbps | 300kbps | |
antenna | chip, wire, rpsma, u.fl | chip, wire, rpsma, u.fl | chip, wire, rpsma, u.fl | chip, wire, rpsma, u.fl | external required | wire, rpsma, u.fl | wire, rpsma, u.fl | rpsma, MMCX | external required | MMCX, internal Antenna | MMCX | u.fl, chip, both | u.fl, chip, both | pcb trace |
pinout | XBee | XBee | XBee | XBee | SMD | XBee | XBee | 20 pin 2,54mm/USB | SMD (42 pin LGA) | 20 pin mini connector | 20 pin mini connector | XBee/SMD | XBee/SMD | SMD |
price | 16€ | 26€ | 14€ | 28€ | 18€ | 32€ | 32€ | 150€ | 4€ | 52€ | 64€ | 30€ | 30€ | 20€ |
for Country | Worldwide | Worldwide | Worldwide | Worldwide | Europe | North America, Australia | North America, Australia | Worldwide | Worldwide | North America, Australia | North America, Australia | Europe | North America | Worldwide |
Frequencies
Analog and digital signals (video and data/modem) can not be transmitted over the same frequency band since the analog signal will "block" the digital one. (Attention ! the common 2.4 or 5.8GHz frequencies have multiple channels, if the analog and digital transmitter/receiver modules are set up to different channels/frequencies, they should work (even on 2.4GHz)).
You may want to inform yourself about your countries laws ! Different countries allow different frequencies at different power.
Sending on a wrong frequency or with too much power may end in a serious lawsuit !
Digi: Government Agency Certifications
HAM / CEPT Licence
If possible, consider making a HAM radio (amateur radio) licence. (e.g. CEPT, depends on your locality)
You will learn about the radio technology, operational technology and legislation.
With a HAM radio licence, you can also use other frequencies or transmit on a higher power. (e.g. In some countries, the 5.8GHz video transmission is for non licenced people restricted to 10mW!)
Licence Pros
- You will be informed well about the (local and international) legislations.
- You can transmit on a higher power (depends on frequency).
- You will learn a lot about the techniques and be more than a standard "consumer" of radio electronic products.
- It will be easier to find faults in your radio systems.
- You can build (if you want) high gain/focused antennas which can give you a better signal, wider range and won't disturb anyone else.
- Well educated people respecting the legislation just looks much better in looks to UAV's :)
Licence Cons
- You will need to learn for the test (can be compared with a diverce licence).
- The certificate and books will cost about 70€ (total, can vary !).
- Maybe some costs (per year) for your call sign.
CEPT Licence in Austria
A short description about getting the CEPT 1 (not the CEPT Novice !) licence in Austria.
You will need the appropriate books which cost 50€ (70€ if you want them with the ask catalog and answers which can be helpful) and rough 18€ for the exam and certificate. The ÖVSV offers also some courses, but you can also learn everything with the books.
The are (regularly?) HAM licence courses at the https://metalab.at/ in Vienna.
To be continued...
Links
Digi XBee modules
Digi (formerly Maxstream) offers an increasing variety of Zigbee protocol modems well suited for Paparazzi in 2.4 GHz, 900MHz and 868Mhz frequencies. The "Pro" series are long range, up to 40km! Standard series are slightly smaller/lighter/lower power consumption and very short range. All versions are all pin compatible and weigh around 2 grams with wire antennas. All Digi modems can be operated in transparent mode (as a serial line replacement) or in "API mode" with hardware addressing, managed networking, and RSSI (signal strength) data with the Paparazzi "Xbee" option.
Four antenna options are offered: RP-SMA, U-FL, wire antenna, chip antenna
- XBee (PRO) ZB (the current series)
- XBee (PRO) ZNet 2.5 (formerly Series 2) (only legacy -> use XBee-PRO ZB)
The XBee & XBee-PRO ZB share hardware (ember stack) with XBee & XBee-PRO ZNet 2.5. As a result, modules can be "converted" from one platform to another by loading different firmware onto a given module.
These two also share the same hardware and can be converted from one to another by flashing a different firmware:
- XBee-PRO 802.15.4 (formerly Series 1)
- XBee-PRO DigiMesh 2.4
Note: Modules based on Freescale chipset (formerly Series 1) are not compatible with Ember chipset based modules (Series 2).
If only point to point or point to multipoint communication is required 802.15.4 will do the job. These are designed for high data rates and low latency.
Modules with Zigbee firmware are needed for mesh functionality(communication between the UAV's)
See the XBee Configuration page. This tutorial is also good to configure and get started with XBee Pro.
Module Comparison
Module | Point-to-Multipoint | ZigBee/Mesh | Chipset | Software stack | Frequency | TX Power normal/PRO | Notes |
XBee ZB | yes | Ember | EmberZNet PRO 3.1 (ZigBee 2007) | 2.4 GHz | 2mW/50mW | coordinator needed | |
XBee ZNet 2.5 | yes | Ember | EmberZNet 2.5 ZigBee | 2.4 GHz | 2mW/50mW | (only legacy -> use XBee-PRO ZB) coordinator needed | |
XBee DigiMesh 2.4 | yes | Freescale | 2.4 GHz | all nodes equal (no special coordinators/routers/end-devices) | |||
XBee 802.15.4 | yes | Freescale | 2.4 GHz | ||||
XBee-PRO 868 | yes | ? | 868 MHz | 500mW | Only High Power Frequency allowed in the UK. 2.4GHz limited to 10mW |
Pinout
Xbee 20-pin Header | Name | Notes | Suggested Color | |
1 | +3.3v | Power | Red | |
2 | DOUT | Tx output - connect to Autopilot Rx | Green | |
3 | DIN | Rx input - connect to Autopilot Tx | Blue | |
10 | GND | Ground | Black |
The image view is from above, top, thus NOT at the side where the connector pins come out
Note : DTR and RTS need to be wired for upgrading firmware
GCS Adaptation
There are several vendors of hardware to connect the ground XBee radio modem to the GCS computer.
More information about general USB-Serial adapters can be found on the Serial_Adapter page.
Adafruit
Adafruit offers a great adapter board kit for the Xbee modules that includes a 5-3.3V voltage regulator, power and activity LEDs, and pins to connect directly to your FTDI cable for $10! Some assembly required.
Droids
Simple breakout board with voltage regulator.
Adapter with FTDI chip for direct USB connection.
PPZUAV
ppzuav.com product link
More information at the Serial_Adapter#FTDI_utility_Board page.
FTDI Utility Board 1.0 with FTDI232RL
On board XBEE connector and Molex Picoblade connectors.
Sparkfun
XBee Explorer USB with FTDI232RL
Digi XBee Pro DigiMesh / 802.15.4 ("Series 1")
- Note: Products based on XBee ZNet 2.5 (formerly Series 2) modules do not communicate with products based on XBee DigiMesh / 802.15.4 (formerly Series 1) modules.
These relatively cheap and light modules implement the ZigBee/IEEE 802.15.4 norm. They allow up to 1.6km (1 mile) range (Paparazzi tested to 2.5km (1.5 miles)). The main drawback of using such 2.4Ghz modules for datalink is that it will interfere with the 2.4Ghz analog video transmitters and a inevitable decrease in range when in proximity to any wifi devices. For the plane, get the whip antenna version if you are not planning to build a custom antenna.
|
Mouser: 888-XBP24-PKC-001-UA
NOTE: If you wish to use this unit with another XBee type other than the 802.15.4 (i.e. XBee-PRO ZB) then purchase a modem with the U.fl connector.
Documentation
- product page
- datasheet
- user manual
- To program your Xbee you need X-CTU you can download it here. (only windows)
- explanation on X-CTU here.
- Drivers for XB24 and XBP24 modules
Digi XBee Pro ZB / ZNet 2.5 ("Series 2")
The low-power XBee ZB and extended-range XBee-PRO ZB use the ZigBee PRO Feature Set for advanced mesh networking.
|
These are available from Mouser:
888-XBP24-Z7WIT-004 XBee-PRO ZB with whip antenna
888-XBP24-Z7SIT-004 XBee-PRO ZB with RPSMA
See XBee Configuration for setup.
Documentation
Digi XBee Pro 868
WARNING - THESE MODEMS HAVE A 10% DUTY CYCLE, AND CURRENTLY HAVE SEVERE ISSUES WITH PAPARAZZI
868MHz is a limited band. Please read the 868MHz Issues
XBee-PRO 868 modules are long range embedded RF modules for European applications. Purpose-built for exceptional RF performance, XBee-PRO 868 modules are ideal for applications with challenging RF environments, such as urban deployments, or where devices are several kilometers apart.
|
See XBee Configuration for setup.
Documentation
Digi XBee 868LP
XBee 868LP modules are a low-power 868 MHz RF module for use in Europe. The range is shorter than it's brother the XBee PRO-868, but it can use the 868 G4 band with hopping which does not have restrictions on it's duty cycle. This is a big advantage if one want to have a good stream of telemetry data
|
Documentation
Trial
With a quickly crafted and not optimal positioned antenna on the airframe we managed to get the advertised 4000 meter range. Data throughput was not high and the Iridium Telemetry XML configuration document was therefore used. All in all, cheap, easy to setup, pin compatible with regular modules and quite a range and usable in Europe without hassle.
Digi XBee Pro 900HP
- Frequency band 900Mhz
- RF rate 10 or 200 kbps
- up to 250mW output power
- 5 to 8 grams
- price: 32€
Documentation
http://ftp1.digi.com/support/documentation/90002173_H.pdf
Digi XBee Pro XSC 900MHz
Maxstream has recently announced a promising new line of modems combining the small size and low cost of their popular Xbee line with the long range and 2.4 GHz video compatibility of their high end 900 MHz models. Sounds like the perfect modem for anyone who can use 900 MHz. Give them a try and post your results here!
|
Documentation
Trials
Tested one today and it worked great. Going to try a multiUAV test with it soon
--Danstah
MultiUAV tests concluded this is probably not the best module to use. Even though it says you can change the baudrate inside x-ctu that is not the case, it is fixed at 9600 bps. This is a great modem however for single UAV's and I do recommend.
--Danstah
Why would the European (868 MHz) be good to 24kbps and this only to 9600? When I was altering my XBees (2.4Ghz Pro's) I had this problem altering baud rates until I read you have to send a "commit and reboot" type command after setting the baud rate. Could this be the case? --GR
Digi 9XTend
These larger units have been tested on the 900Mhz band, but are also available in 2.4Ghz. They are a bit on the heavy side, about 20 grams, but give good performance at range. They have adjustable transmit power settings from 100mW to 1W. Testing has shown range up to 5.6km (3.5 Miles) with XTend set to 100mW with small 3.1dB dipole antenna.
|
Pinout
9XTend 20-pin Header | Name | Tiny Serial-1 Header | Notes |
1 | GND | 1 (GND) | Ground |
2 | VCC | 2 (5V) | 5V power (150mA - 730mA Supplied from servo bus or other 5V source) |
5 | RX | 8 (TX) | 3-5V TTL data input - connect to Tiny TX |
6 | TX | 7 (RX) | 5V TTL data output - connect to Tiny RX |
7 | Shutdown | 2 | This pin must be connected to the 5V bus for normal operation |
Notes:
- 9XTend can run on voltages as low as 2.8V but users are strongly advised against connecting any modem (especially high power models) to the sensitive 3.3V bus supplying the autopilot processor and sensors.
Documentation
Configuration
These modems need to be carefully configured based on your usage scenario to obtain the best possible range and link quality. In addition, it is always good to make sure the firmware is up to date.
Some typical configurations that may work well, but can still depend your particular situation, are given below. For further details, be sure to consult the XTend users manual. Your application may need a different or modified configuration. The radiomodems do not need identical settings and can in fact be optimized with different settings. A good example is delays and retries: if each radio has the same number of retries and no delay, when a collision occurs each will continuously try to re-transmit, locking up the transmission for some time with no resolution or successful packet delivery. Instead, it is best to set the module whose data should have a lower latency to have no delay and a lower number of retries, while the other module has a delay set (RN > 0) and a greater number of retries. See acknowledged mode example below.
- Acknowledged Polling Mode (Recommended):
- This causes one radio to be the base and the other(s) to be the remote(s). It eliminates collisions because remotes do not send data unless requested by the base. It can work in acknowledged mode (RR>0), basic reliable mode (MT>0) or in basic mode (no acknowledgement or multiple packets). It is recommended that the lower latency and/or higher data rate side be configured as the base (i.e. if you are sending lots of telemetry then the air module configured as the base is probably a good idea, but if you are using datalink joystick control, the ground side might be better as the base. It may require some experimentation).
- Acknowledged Point-to-(Multi)Point Mode:
- Each radio sends a packet and requests and acknowledgement that the packet was sent from the receiving side. The retries and delays must be set appropriately to ensure packet collisions are dealt with appropriately. It can also work without acknowledgements in basic reliable mode (MT>0) without any acknowledgements (RR=0, MT=0). Some experimentation may be required.
Setting Name | Acknowledged Mode | Polling Mode (Acknowledged) | Notes | ||
Airside Module | Groundside Module | Base Module | Remote Module | ||
BD | 6 | 6 | 6 | 6 | Adjust to match your configured autopilot and ground station baud rates (default for these is 57600bps) |
DT | default | default | 0x02 | 0x01 | Can be adjusted if consistency maintained across addressing functionalities (see manual) |
MD | default | default | 3 (0x03) | 4 (0x04) | |
MT | 0 | 0 | 0 | 0 | Use this to enable Basic Reliable transmission, link bandwidth requirement increases (see manual) |
MY | default | default | 0x01 | 0x02 | Can be adjusted if consistency maintained across addressing functionalities (see manual) |
PB | default | default | 0x02 | default | Can be adjusted if consistency maintained across addressing functionalities (see manual) |
PD | default | default | default | default | Can be adjusted to increase polling request rate and DI buffer flush timeout (see manual) |
PE | default | default | 0x02 | default | Can be adjusted if consistency maintained across addressing functionalities (see manual) |
PL | default | default | default | default | Transmit power level should be reduced for lab testing!! |
RN | 0 (0x00) | 8 (0x08) | default | default | |
RR | 6 (0x06) | 12 (0x0C) | 6 (0x06) | 12 (0x0C) |
Note: All settings are assumed to be default except those listed. Those listed are in decimal unless hex 0x prefix included. Depending on your firmware version, slight modifications may be necessary.
Here is some additional information and alternative instructions to configure the polling mode from the Digi site: Polling Mode for the 9XTend Radio Modem
SiLabs Si1000 SoC based modems
The Si1000 - Si102x/3x radio System on Chip (SOC) produced by SiLabs is found in a number of radio modules, for example the cheap and widely used HopeRf module. There is paparazzi fork of open source firmware for these radios which makes them suitable for use in MAVs. Online documentation for the Sik firmware shows how to configure it for various jurisdictions. The firmware supports 433 MHz, 470 MHz, 868 MHz and 900 MHz radios. The new RFD868 also works in the European spectrum licenses (868 MHz). The latest SiK firmware supports also mesh topologies.
Sik firmware can be used for example for:
- powerful RFD 900+ modem. RFD 900+ is well proven and supports antenna diversity. A combination of 6dbi Yagi plus a dipole on the ground station, with a pair of orthogonality oriented dioples in the airframe, has been extensively tested and proven reliable at >8km range (theoretical range of > ~40km).
- cheap and ubiquitous 3DR radios
- for shorter range a pair of HopeRF-based modems such as the R0 sub GHz telemetry radio modem. It was developed by 1BitSquared specifically for the use with the Paparazzi UAV framework and is part of the Elle avionics system
The RFD900 can be paired with the R0 radio that has only a single front-end. You can for example, use a small short range airframe with a ground station that is also used for long range operations.
Paparazzi SiK Firmware & RSSI
Paparazzi has a modified fork of Sik firmware: https://github.com/paparazzi/SiK This firmware add options to add RSSI info to your messages. Also aditionally to fully encrypt your connection
When using a SiK firmware radio with Paparazzi, you should set MavLink packing off (set MAVLINK=0 here)and configure Paparazzi for transparent serial mode. You can also turn on an optional RSSI_COMBINED message that shows local and remote RSSI. To do that (and make Sik radio aware of Pprzlink packets) follow the instructions here.
Make sure you to add the following line to your for your airframe chosen telemetry file: (conf/telemetry/ etc etc)
<process name="Ap">
<mode name="default">
...
<message name="RSSI_COMBINED" period="0.3"/>
...
Laird (ex Aerocom)
Lairds's API mode is already implemented but some system integration is required. Full API more with addressed packets works well and was tested with AC4790-1x1 5mW low power modules. Maximim range achieved with a whip quater-wave antenna was 1Km.
How to use this modem on ground station side? [1]
See folder paparazzi3 / trunk / sw / aerocomm. It has all the required files to use this modem on the airborne and ground station side. The link.ml file is a direct replacement of the "main" link.ml file of the ground sttaion and will be merged into it in the future.. or you can do it as well.
AC4790-200
|
||
AC4790-1000
|
Pinout
AC4868 20-pin Header | Name | Color | Tiny v1.1 Serial-1 | Tiny v2.11 Serial | Notes |
2 | Tx | green | 7 | 7 | (Note 1) |
3 | Rx | blue | 8 | 8 | (Note 1) |
5 | GND | black | 1 | 1 | - |
10+11 | VCC | red | 2 | 3 | +3.3v (Note 2) |
17 | C/D | white | 3 | ? | Low = Command High = Data |
Note 1 : names are specified with respect to the AEROCOMM module
Note 2 : AC4790-1000 needs pins 10 and 11 jumped to work properly
Laird RM024
The RM024 replaces the discontinued LT2510 (they are backwards compatible).
General features:
- Frequency Band 2.4GHz
- Output Power 2,5mW - 125mW
- Sensitivity -98dbm @ 280kbps/-94 dBm @ 500kbps
- RF Data Rate 280/500 kbps
- UART up to 460800 baud
- Power Draw 90mA - 180mA TX / 10mA RX
- Supply Voltage 3.3v
- Range up to 4000m
- Dimensions 26 x 33 x 4mm
- Weight 4 grams
- Interface 20-pin mini connector (smd solder pad or XBee compatible pin header)
- Chip antenna, U.FL antenna connector or both
- Price: 29-31€ @ mouser (SMD / XBEE header)
Two different mounting/pinuts are available:
- smd version: can be soldered on a pcb
- pin header: standard XBEE pinout (this is the SMD version mounted on a seperate pcb with male pin headers)
Available in two different output power versions:
value | 50mW version | 125mW version |
output power | 2,5 mW - 50 mW | 2,5 mW - 125 mW |
output power dbm | 4 dbm - 17 dbm | 4 dbm - 21 dbm |
TX drain | 90mA | <180mA |
max range (280kbps with 2 dbi antenna) | 2400m | 4000m |
approval | CE for EU, FCC/IC for USA,
Canada PRM122/123 also for Japan |
FCC/IC for USA, Canada |
The RM024 uses frequency hopping (FHSS) which needs a client/server model. That means that one modem (most appropriately the ground station modem) needs to be set to server mode. It will transmit a beacon message and have all client modems synchronize to that in a time and frequency hopping scheme manner. For that all modems need to have the same channel (in fact the hopping scheme) and system-id. Clients can be set to auto-channel and auto-system-id to follow any/the first visible server.
Documentation
RM024 User Manual
LT2510 User Manual
Windows configuration tool
Setup
Look at the Laird_RM024_setup page
Bluetooth
These modems do not give you a great range but Bluetooth can be found in a lot of recent laptops built-in. Maybe not useful for fixed wing aircrafts it might be used for in-the-shop testing or quadcopters. Make sure you get a recent Class 1 EDR 2.0 stick if you buy one for your computer.
RN-41 Bluetooth module(Sparkfun's WRL-08497)
|
|
To connect to it, get the MAC address of the bluetooth modem me@mybox:~$ hcitool scan Scanning ... 00:06:66:00:53:AD FireFly-53AD either make a virtual connection to a Bluetooth serial port each time you connect sudo rfcomm bind 0 00:06:66:00:53:AD or configure it once in /etc/bluetooth/rfcomm.conf rfcomm0 { bind yes; device 00:06:66:00:53:AD; } now you can use Bluetooth as /dev/rfcomm0 with the Paparazzi 'link'. You might need to restart 'link' in case you get out of range and it disconnects (tbd). Set the Tiny serial speed to 115200 as the modules come preconfigured to that. |
WiFi
ESP8266 Chip Module
ESP as client
The WiFi chip tries to connect to a hotspot or router. The GCS is connected to the same network. No additional tools are required on the GCS computer. See https://github.com/paparazzi/esp8266_udp_firmware for installation and usage instructions
ESP as host
Change the config of the software to use Host and set the preferred SSID and if wanted the PW and reflash the module
Yet another ESP8266 datalink modem
Lately i started connecting the aircraft with the GCS link agent using the Wemos D1 mini or any other ESP8266 module as a short range modem. In order to accomplish this you will need to setup the Arduino IDE, instructions here How to setup Arduino IDE for esp8266 so it can compile and upload ESP8266 code to the ESP8266 mcu. After setting up the Arduino IDE you will need to compile and upload this sketch File:UART to UDP paparazzi autopilot.zip.
HAVE IN MIND THAT THE CODE IN THE PREVIOUS PROJECT WITH ESP8266 NAMED "ESP8266 Chip Module" (https://github.com/paparazzi/esp8266_udp_firmware) IS FAR BETTER AND IT WORKS VERY VERY WELL WITHOUT ANY DELAY, mine is a simple program just to understand what is going on basically so use the "esp8266_udp_firmware" but remember to edit the wifi_config.h to suit your needs and also the LED pin inside "pprz_udp_link" line #14 that reads #define LED_PIN 13, for the Wemos D1 mini this line should read #define LED_PIN 2
It could be a joke but i didn't saw the EXCELLENT project of Christophe De Wagter (CDW) (i only saw it when i came here to edit this page...) and i spent 2 whole days and one night reading about Arduino coding style and ESP8266 libraries only to write a very simple version of his code...
Now upload whichever program you decided to use to your ESP8266 board, both are in AP mode but have different SSID and password, make sure that you have selected the right ESP8266 board as a target, i use the Wemos D1 mini because that was what came in first after i ordered a bunch of those ESP8266 modules. Now just use the ESP8266 board as a regular modem but remember that now we are using UDP datagrams so after powering up the autopilot (and thus powering up the ESP8266 module) so it can transmit telemetry THEN CONNECT YOUR LAPTOP OR COMPUTER TO THE AP WITH SSID "PAPARAZZI" (password is "paparazzi") and in the GCS select the Flight UDP/WiFi session.
Where this ESP8266 application is different is that i use the ESP8266 module as a wireless connection from my OrangeRx OPENLRSng TX module to the paparazzi running laptop Instead of using a dedicated telemetry modem i use the open project OPENLRSng OPENLRSng WiKi which provides a RC link for controlling the aircraft AND a transparent serial link of up to 19200 bps, enough for my usual flights. This way the telemetry leaves the aircraft via the rc link and i comes to my RC transmitter module and the via the ESP8266 module to the GCS running laptop. I am sure that with a ESP8266 or a ESP32 module with external antenna and/or an bidirectional amplifier a very nice modem can be realized, you can even use it as a cheap short range modem for testing the aircraft while not in flight, this way you avoid the messy wires and ftdi adapters, something very nice for setting up the compass, accelerometer or gyro neutral points and sensitivity. The UART0 pins have been swapped because on my Wemos D1 mini the on board serial to USB chip uses the default UARTO pins, Serial Tx is now assigned to GPIO15 and Rx is assigned to GPIO13 on your ESP8266 board, on my Wemos D1 mini pin D7 (GPIO13) is the Rx and D8 (GPIO15) is the Tx.
Important: The ESP8266's default serial port speed is 57600 bps and this will be also the telemetry speed but if you plan to duplicate my method of telemetry using OPENLRSng as the telemetry transport method please remember that 57600 bps is only the speed of the TX module to ESP8266 module connection and not the actual telemetry data rate which will be about 19200 bps maximum if you select the air to air data speed of the RC receiver and rc radio TX module to be 57600 bps. The reason is simple, inside this 57600 bps bandwidth two things must be accommodated, one is the standard rc servo channel data and the other is the paparazzi telemetry. OPENLRSng has 2 baud rate settings in its dedicated Chrome app, The serial link baud rate and the air data rate, set the first to 57600 and the second to 57600 which means that you will get a serial link connection speed of 57600 bps (rc receiver's uart and tx module uart connection speed) and an air data rate (rc receiver to radio Tx module) of 57600 bps which can pass a transparent serial link of 19200 bps along the rc link. You must set the modem's baud rate in the airframe file at 57600 bps ALSO but the actual telemetry rate will be about 19200 bps and that's why you need to adjust your messages that come through telemetry to fit in that 19200 bps rate.
VERY IMPORTANT: ONE THING TO REMEMBER IS THE MANDATORY USE OF SHIELDED CABLE FOR CONNECTING THE ESP8266 UART PINS WITH THE AUTOPILOT OR RC TX MODULE'S SERIAL PORT DUE TO RF INTERFERENCE PROBLEMS.
Telemetry via Video Transmitter
In order for the UAV to transmit video from an onboard camera, an analog video transmitter can be used. These vary in power, and thus range, and run normally on 2.4Ghz. Small UAVs can get about 600m of range from the 50mW version, and extended range can be achieved using units up to 1W. Weight for these units varies from a couple grams to about 30 for the 1W with shielding. Please check for your countries regulations on 2.4Ghz transmission, as each is different.
It is possible to use the audio channel to send simple telemetry data to the groundstation. Uploading telemetry not possible via analog audio transmitter only.
Antennas
Here are some examples of lightweight and efficient 868MHz antennas developped by the RF laboratory at ENAC.
This wiki page might give some ideas about antennas: http://en.wikipedia.org/wiki/Dipole_antenna