Experimenting with SA818 miniature RF modules

The SA818 module (Also DRA818)

Chinese vendor NiceRF (and some others) have came up with a all-in-one RF transceiver module for both VHF and UHF. Size of a large stamp, you get all the basic FM transceiver functions including 12.5kHz/25kHz channel width, scanning, CTCSS/DCS support and 1 watt RF output power. The soul of the module is RDA1846 single-chip-transceiver which also powers most of the chinese radios like Baofeng, Banzai! and others. VHF model covers 136-174MHz and UHF model 400-470MHz respectively.

Programming the module

The SA818 features a microcontroller which has a 3.3V TTL-level serial port. Very basic instructions how to program the module using a terminal program can be found from NiceRF webpage.

SA818 module can store configuration for a single channel at once, whilst the big brother module SA828 can store 16 channels. It also features a programming software to configure all the channels. The SA818 can also be controlled real-time using an external MCU like Arduino, to support more than a single channel. There are implementations where a MCU and small controller with display and controls have been built around the module to build a complete radio.

A cheap USB-to-TTL adapter was used to interface to the serial port of the module. I have bought a simple unit which supports both 5V and 3.3V ports and has also handshake signals if needed. 

The module appeared to be quite picky about the communication, and for a long time I ended up to a single message DMOERROR to all attempts to communicate. The secret handshake to enable the configuration interface is to send AT+DMOCONNECT over the line with 9600 8N1 configuration and including both CR and LF. I tried Teraterm, Putty and few other terminal programs and always ended up with the error but then eventually tried the serial port tool of Arduino IDE software development program, and with it I got through and got the correct reply with +DMOCONNECT:0 -message and I was successfull in programming the modules.

It is important to set 'Both NL & CR' on as the module expects all the configuration parameter lines to end with them. When the communication is established, I entered the required parameters to set up frequency, channel width, squelch level and CTCSS parameters for both TX and RX. I was to build a repeater out of the modules so I eventually programmed two of them. Who would have guessed that I make a repeater? :)

The configuration parameters described in the SA818 programming manual are bit cryptographic at some point as the English version of the manual has been written or translated from Chinese and there are some parts of the documentation which are quite hard to come by. I wrote all the configuration lines first to a notepad program and copied and pasted them them to the terminal program to get them correct right away. Each command returns with a reply, in general a reply with 0 means good entry, 1 means failure. In addition to programming frequency settings, I disabled all filtering and pre/de-emphasis of the signal as I wantet flat throughput.

CTCSS tones in the programming sentence are referred to tone numbers from 1 to 38. According to Wikipedia, the numbers refer to 'Non-standard numerical codes. Many radios use a matching set of numerical codes to represent corresponding tones; however, there is no published standard and only partial industry adoption.' The documentation from NiceRF does not say anything about this so this was a good catch :) Tone 118.8 Hz is code 17 for reference.

The list of CTCSS NS codes can be seen from Wikipedia

Building a repeater

Earlier I had purchased a miniature repeater controller board NHRC-micro for some project which has been forgotten long time ago already. Now this small controller got a job with two SA818 modules, interfacing them together to make a small repeater. The controller takes care of  COS to PTT activation, timers, CW ID, courtesy tones etc. 

NHRC-micro repeater controller board

I sat the controller in middle of a veroboard and the SA818 modules on both sides of it to isolate them even a bit from each other. Given that at this point I have quite little understanding or measurement results of their actual RF performance, this was maybe a good choice to do.

SA818 TX module
SA818 RX module

Completed pocket repeater board

The SA818 module features a 'hardware' high/low power switch, by grounding one of the module pins the module switches to low output power of about 500mW. There is no way to control the power from the software configuration, only this simple signal. I 'hardcoded' the power to low as the TX module creates quite much heat already with the low power. I ended up stuffing the chassis for the repeater with heat transfer pads to make at least some heat dissipate to the aluminium chassis.

Heat transfer padding on top of the TX module

Completed pocket repeater

The completed pocket repeater looks nice. It does not serve any actual purpose or need other than playing with the modules and making me as a repeater builder happy. Plans are to maybe house the repeater in a bit better case and add external I/O lines so that the repeater could be hooked to R.Net, Echolink or other VoIP platform.

Miniature magnet antennas or such are to be used with the repeater. As there are no duplexers inside, some isolation needs to be created between TX and RX to avoid blocking and distance between antennas is the easiest way to achieve it.