I think I have answered my own question from within the openLRS software (line 658 of hardware.h):
For the TX it looks like PPM is on 8 and the bind button on A4 (Software extract follows)
#if (BOARD_TYPE == 5) // openLRSngRX-4ch
#if (__AVR_ATmega328P__ != 1) || (F_CPU != 16000000)
#warning Possibly wrong board selected, select Arduino Pro/Pro Mini 5V/16MHz w/ ATMega328
#endif
#if (COMPILE_TX == 1)
// TX operation
#define TelemetrySerial Serial
#define USE_ICP1 // use ICP1 for PPM input for less jitter
#define PPM_IN 8 // ICP1
#define TX_AIN0 A4 // SDA
#define TX_AIN1 A5 // SCL
#define BUZZER_PAS 3 // OCR2B
#define BUZZER_ACT A5
#define BTN A4
void buzzerInit()
{
pinMode(BUZZER_ACT, OUTPUT);
digitalWrite(BUZZER_ACT, LOW);
TCCR2A = (1<<WGM21); // mode=CTC
#if (F_CPU == 16000000)
TCCR2B = (1<<CS22) | (1<<CS20); // prescaler = 128
#elif (F_CPU == 8000000)
TCCR2B = (1<<CS22); // prescaler = 64
#else
#errror F_CPU Invalid
#endif
pinMode(BUZZER_PAS, OUTPUT);
digitalWrite(BUZZER_PAS, LOW);
}
void buzzerOn(uint16_t freq)
{
if (freq) {
uint32_t ocr = 125000L / freq;
digitalWrite(BUZZER_ACT,HIGH);
if (ocr>255) {
ocr=255;
}
if (!ocr) {
ocr=1;
}
OCR2A = ocr;
TCCR2A |= (1<<COM2B0); // enable output
} else {
digitalWrite(BUZZER_ACT,LOW);
TCCR2A &= ~(1<<COM2B0); // disable output
}
}
#else
// RX operation
#define PPM_OUT 9 // OCP1A
#define RSSI_OUT 3 // PD3 OC2B
#define PWM_1 9 // PB1 - also PPM
#define PWM_2 A4 // PC4 - also SDA
#define PWM_3 3 // PD3 - also RSSI
#define PWM_4 A5 // PC5 - also SCL
#define PWM_5 A0 // PC0
#define PWM_6 A1 // PC1
#define OUTPUTS 8 // outputs available
const pinMask_t OUTPUT_MASKS[OUTPUTS] = {
{0x02,0x00,0x00}, {0x00,0x10,0x00}, {0x00,0x00,0x08},// CH1/PPM, CH2/SDA, CH3/RSSI
{0x00,0x20,0x00}, {0x00,0x01,0x00}, {0x00,0x02,0x00},// CH4/SCL, CH5/AIN, CH6/AIN,
{0x00,0x00,0x01}, {0x00,0x00,0x02}, // CH7/RXD, CH8/TXD - only on 6ch
};
#define PPM_OUTPUT 0
#define RSSI_OUTPUT 2
#define ANALOG0_OUTPUT 1 // actually input
#define ANALOG1_OUTPUT 3 // actually input
#define ANALOG0_OUTPUT_ALT 4 // actually input
#define ANALOG1_OUTPUT_ALT 5 // actually input
#define SDA_OUTPUT 1
#define SCL_OUTPUT 3
#define LLIND_OUTPUT 5
#define RXD_OUTPUT 6
#define TXD_OUTPUT 7
const uint8_t OUTPUT_PIN[OUTPUTS] = { 9, A4, 3, A5, A0, A1, 0, 1};
struct rxSpecialPinMap rxSpecialPins[] = {
{ 0, PINMAP_PPM},
{ 1, PINMAP_SDA},
{ 1, PINMAP_ANALOG}, // AIN0
{ 2, PINMAP_RSSI},
{ 2, PINMAP_LBEEP},
{ 3, PINMAP_SCL},
{ 3, PINMAP_ANALOG}, // AIN1
{ 4, PINMAP_ANALOG},
{ 5, PINMAP_ANALOG},
{ 5, PINMAP_LLIND},
{ 6, PINMAP_RXD},
{ 7, PINMAP_TXD},
{ 7, PINMAP_SPKTRM},
{ 7, PINMAP_SBUS},
{ 7, PINMAP_SUMD},
};
void rxInitHWConfig()
{
rx_config.rx_type = RX_OLRSNG4CH;
rx_config.pinMapping[0] = PINMAP_PPM;
rx_config.pinMapping[1] = PINMAP_ANALOG;
rx_config.pinMapping[2] = PINMAP_RSSI;
rx_config.pinMapping[3] = PINMAP_ANALOG;
rx_config.pinMapping[4] = 4;
rx_config.pinMapping[5] = 5;
rx_config.pinMapping[6] = PINMAP_RXD;
rx_config.pinMapping[7] = PINMAP_TXD;
}
#endif
#define Red_LED 6
#define Green_LED 5
#if (COMPILE_TX != 1)
#define Red_LED_ON PORTD |= _BV(6);
#define Red_LED_OFF PORTD &= ~_BV(6);
#define Green_LED_ON PORTD |= _BV(5);
#define Green_LED_OFF PORTD &= ~_BV(5);
#else
#define Red_LED2 A0
#define Green_LED2 A1
#define Red_LED_ON { PORTD |= _BV(6); PORTC |= _BV(0); }
#define Red_LED_OFF { PORTD &= ~_BV(6); PORTC &= ~_BV(0); }
#define Green_LED_ON { PORTD |= _BV(5); PORTC |= _BV(1); }
#define Green_LED_OFF { PORTD &= ~_BV(5); PORTC &= ~_BV(1); }
#endif
#define buzzerOff(foo) buzzerOn(0)
Some not too positive feedback on this project. The photo says it all. Slow and fiddly progress. Not really any good for the average DIY modeller.
The middle row shows 4 working RXs . ( A working Mark 1 at the bottom of this row.) The left hand row shows 2 x rf modules that never worked or stopped working.
So a fairy high failure rate. The fiddly bit is getting the modules to communicate. I have had a lot of problems with binding and doing the configuration from the TX to RX. I have found that using the configurator to flash the software seems to work better than the Arduino IDE. The Hobbyking modules can give similar problems but less often.
I haven't yet got the DIY module working as a transmitter.
So my guidance to anyone working on this would be don't expect any easy victories and it is a steep learning curve. I am still some way from trusting a DIY RX in a sub. (Note that I have been using Hobbyking modules very successfully in subs, for several years.)
So I think that unless commercial organisations can be encouraged to make or continue to make 433Mhz gear we model submariners will have to get used to very elderly 40Mhz gear!
Connections and parts list details follow:
Connections for Chinese sourced module (For the Mark 2):
Arduino-------Level shifter---PCB------S14432
Not connected 1 GND power supply
Not connected 2 GPIO0 internal module, launch control foot
Ard D12* HV1 PCB no 1 3 SDO 0-VDD V digital output provides a serial readback function of the internal control register
Ard D11* HV4 PCB no 2 4 SDI serial data input. 0-VDD V digital input, this pin for 4-wire serial data clock function
Ard D13* HV3 PCB no 3 5 SCLK serial clock input. 0-VDDV last month set of inputs. This pin provides a 4-wire serial data clock
Ard D04* HV2 PCB no 4 6 NSEL serial interface select input pin,0-VDDV digital input.
Ard D02 Direct PCB no 5 7 NIRQ interrupt output pin
Ard GND GND PCB no 6 8 SDN Close the input pin. Input 0-VDDV digital. SDN = 0 in shutdown mode, to GND
Ard 3.3v LV PCB no 7 9 VCC positive supply 3.3V
Ard +5v HV
* Put through voltage level shifter. Add separate 3.3 supply from Arduino.
Red Led -> D6
Green Led -> D5
PPM_IN is D8 (note: RX use D9 as PPM_OUT)
BUZZER_ACT is A5 (from i2c interface)
Bind buttons is on A4
Components:
SI4432 470MHz 1000m Wireless Module 470M 433mhz Wireless Communication Module
( 191674547806 ) (eBay)
Quantity: 2
ITEM PRICE:
£3.00
SOP14 SSOP14 TSSOP14 to DIP PCB SMD DIP/Adapter plate Pitch 0.65/1.27mm + Pins
( 272682553778 ) (eBay)
No Required: 4
ITEM PRICE:
£2.50
IIC I2C Bi-Directional Logic Level Shifter Converter Module 5V to 3.3V
puretek-innovations (12579 ) (eBay)
JHEMCU SPP 8CH Signal Converter Module Support SBUS PPM PWM Output for Receiver
ID: 1549017 (Banggood UK)
Price:US$8.76
Tue Oct 29, 2024 4:46 pm by tsenecal
» RC Drift Gyro for pitch control
Sun Oct 20, 2024 2:04 pm by geofrancis
» WW2 mini sub build
Thu Oct 17, 2024 2:34 pm by geofrancis
» sonar data link
Mon Oct 14, 2024 4:31 pm by geofrancis
» Robbe Seawolf V2
Sat Oct 12, 2024 3:52 pm by geofrancis
» ExpressLRS - 868/915 Mhz equipment
Fri Oct 11, 2024 8:58 pm by Marylandradiosailor
» Flight controllers as sub levelers
Fri Oct 11, 2024 8:14 pm by geofrancis
» 868/915 Mhz as a viable frequency for submarines.
Thu Oct 10, 2024 3:21 am by tsenecal
» Microgyro pitch controller corrosion
Wed Oct 02, 2024 11:32 am by geofrancis