Manual IP switch II
This revision is from 2018/06/09 11:52. You can Restore it.
← Old web page | Previous MK1 version
Quick start guide
The hardware
KIT is delivered with
- PCB with soldered all SMT parts
- preinstaled bootloader and simply 'snake' firmware lighting with all nine LED
- separate THT parts which you install in six steps
- I2C LCD display with 3D printed plastic holder
- Aluminium box
- 1 - status LCD display
- 2 - 25 pin D-SUB inputs outputs
- 3 - Ethernet (optional) not implemented yet
- 4 - micro USB for upload firmware
KIT assembly instructions
All components
Soldering in six steps
- 1 - bottom pad J1 USB connector
- 2 - U5 DIL socket
- 3 - RL1 Relay
- 4 - P1 P2 P10 P11 JP1 Pin header
- 5 - S1 Reset button
- 6 - J2 D-SUB connector
❏ Short JP5 JP7 SMD jumper padds on bottom side
Display
❏ Deploy from the left side Left LCD holder on PCB board
❏ Put LCD
❏ Deploy Right LCD holder on display and deploy to PCB from front side
❏ Display cabe - on both side using only outside pins
❏ Connect display and PCB board - Red arrow shows polarity
❏ Insert PCB with display to aluminium box and tighten with two screws
❏ I2C display need preset address in firmware
#define LcdI2Caddress 0x3F
- If display dont work
- Upload I2C scanner firmware
- Open terminal Ctrl+Shift+M
- Write detect addres to band decoder firmware
Power
❏ Connect power, typicaly 13,8V from transceiver
Configure output driver
We available two types of output drive
Open collector
Using for components with grounding outputs
- Put in ULN2803A chip to U5 dil socket
- Set two jumpers in P2 to LEFT side
Open emiter
Using for components controlled with positive voltage
- Put in MIC2981 chip to U5 dil socket
- Set two jumpers in P2 to RIGHT side
- Connect power for output control to pin1 in J2 D-SUB connector| - this voltage use also for powered of band decoder and may be in range 8-24V
Configure outputs in firmware
- Allways enabled.
An entrance band data, or frequency, converts to output band 0-14 which can be configured in the following table - Preset Band to output matrix - in default settings Band-1 corresponds to Output-1, etc. You can sets any combination outputs for each band separately. With change zeros and ones in the Matrix table. Band-0 reserved for out of range inputs measure.
//=====[ Sets band --> to output in MATRIX table ]=========================================================== const boolean matrix[17][16] = { /* Band 0 --> */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, /* first eight shift register board \ Band 1 --> */ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* \ Band 2 --> */ { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* \ Band 3 --> */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* \ Band 4 --> */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* \ Band 5 --> */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* \ Band 6 --> */ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IN ) Band 7 --> */ { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* / Band 8 --> */ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, /* / Band 9 --> */ { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }, /* second eight shift register board / Band 10 -> */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, /* (optional) / Band 11 -> */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, /* / Band 12 -> */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 }, /* / Band 13 -> */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 }, /* Band 14 -> */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 }, /* Band 15 -> */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, /* Band 16 -> */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, /* | | | | | | | | | | | | | | | | V V V V V V V V V V V V V V V V ---------------------------------- --------------------------------- | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ---------------------------------- --------------------------------- OUTPUTS */Outputs only eight, for next need aditional board.
Pinouts 25 pin D-SUB
pin-1 | in | Input power 8-18V DC from Transceiver |
pin-2 | in | ICOM CI-V |
pin-3 | out | TXD TTL |
pin-4 | out | TXD TTL inverted |
pin-5 | out | TXD 232 level |
pin-6 | out | PTT output |
pin-7 | out | Relay 2 |
pin-8 | out | Relay 4 |
pin-9 | out | Relay 6 |
pin-10 | out | Relay 8 |
pin-11 | in/out | BCD4 |
pin-12 | in/out | BCD2 |
pin-13 | in | AZ |
pin-14 | - | GND |
pin-15 | in | RXD TTL |
pin-16 | in | RXD TTL inverted |
pin-17 | in | RXD 232 level |
pin-18 | in | PTT in |
pin-19 | out | Relay 1 |
pin-20 | out | Relay 3 |
pin-21 | out | Relay 5 |
pin-22 | out | Relay 7 |
pin-23 | out | +5V |
pin-24 | in/out | BCD3 |
pin-25 | in/out | BCD1 |
shield | - | GND |
Firmware
- Download and install last version Arduino IDE
- Download Band Decoder 2 firmware source from GitHub
- Preset two jumper in P10/P11 pin geader
- Connect micro USB cable between band decoder and PC
- Configure... (more in the chapter Configure TRX inputs)
- Select menu Tools/Board:"Arduino Nano"
- Select menu Tools/Port/YOUR-CONNECTED-PORT
- Upload firmware
CONFIGURE INPUTS
First sets global frequency rules which they choose BAND number by frequency with a resolution of one Hz. Also may be use for partition one band to more subbands.
//Freq Hz from to Band number {1810000, 2000000}, // #1 [160m] {3500000, 3800000}, // #2 [80m] {7000000, 7200000}, // #3 [40m] {10100000, 10150000}, // #4 [30m] {14000000, 14350000}, // #5 [20m] {18068000, 18168000}, // #6 [17m] {21000000, 21450000}, // #7 [15m] {24890000, 24990000}, // #8 [12m] {28000000, 29700000}, // #9 [10m] {50000000, 52000000}, // #10 [6m] {144000000, 146000000}, // #11 [2m] {430000000, 440000000}, // #12 [70cm] {1240000000, 1300000000}, // #13 [23cm] {2300000000, 2450000000}, // #14 [13cm] {3300000000, 3500000000}, // #15 [9cm] {5650000000, 5850000000}, // #16 [6cm]
Second uncomment and activate only one input in source code
//=====[ Inputs ]============================================================================================= // #define ICOM_CIV // read frequency from CIV // #define KENWOOD_PC // RS232 CAT //#define YAESU_BCD // TTL BCD in A // #define ICOM_ACC // voltage 0-8V on pin4 ACC(2) connector - need calibrate table // #define INPUT_SERIAL // telnet ascii input - cvs format [band],[freq]\n // #define YAESU_CAT // RS232 CAT YAESU CAT since 2015 ascii format // #define YAESU_CAT_OLD // Old binary format RS232 CAT ** tested on FT-817 **And connect to TRX as described below
Available Inputs
Icom CI-V
- Activate uncomment line
#define ICOM_CIV
- And settings with
#define SERBAUD 9600 // [baud] Serial port in/out baudrate #define WATCHDOG 10 // [sec] determines the time, after which the all relay OFF, if missed next input data - uncomment for the enabled #define REQUEST 500 // [ms] use TXD output for sending frequency request #define CIV_ADRESS 0x56 // CIV input HEX Icom adress (0x is prefix)
- short JP1
- short P10 left/down
- short P11 left/down
- Connect trough two wire line
Kenwood/Elecraft RS232
- Activate uncomment line
#define KENWOOD_PC
- And settings with
#define SERBAUD 9600 // [baud] Serial port in/out baudrate #define WATCHDOG 10 // [sec] determines the time, after which the all relay OFF, if missed next input data - uncomment for the enabled #define REQUEST 500 // [ms] use TXD output for sending frequency request
Sniffing mode
- short P11 right/top
- Connect trough two wire line
Request mode
- short P10 right/top
- short P11 right/top
- Connect trough three wire line
Kenwood (old) TS-x50 inverted TTL
- short P10 right/bottom
- short P11 right/bottom
- Connect trough three wire line
YAESU/General BCD
- Activate uncomment line
#define YAESU_BCD
- Connect trough five wire line
Icom ACC voltage
- Activate uncomment line
#define ICOM_ACC
- need disable watchdog
// #define WATCHDOG 10 // [sec] determines the time, after which the all relay OFF, if missed next input data - uncomment for the enabled
- And settings with
//=====[ Icom ACC voltage range ]=========================================================== if (VOLTAGE > 0.73 && VOLTAGE < 1.00 ) {BAND=10;} // 6m * * * * * * * * * * * * * * * * if (VOLTAGE > 1.00 && VOLTAGE < 1.09 ) {BAND=9;} // 10m * Need * if (VOLTAGE > 1.09 && VOLTAGE < 1.32 ) {BAND=8;} // 12m * calibrated to your * if (VOLTAGE > 1.32 && VOLTAGE < 1.55 ) {BAND=7;} // 15m * own ICOM * if (VOLTAGE > 1.55 && VOLTAGE < 1.77 ) {BAND=6;} // 17m * ---------------- * if (VOLTAGE > 1.77 && VOLTAGE < 2.24 ) {BAND=5;} // 20m * (These values have * if (VOLTAGE > 0.10 && VOLTAGE < 0.50 ) {BAND=4;} // 30m * been measured by any) * if (VOLTAGE > 2.24 && VOLTAGE < 2.73 ) {BAND=3;} // 40m * ic-746 * if (VOLTAGE > 2.73 && VOLTAGE < 2.99 ) {BAND=2;} // 80m * * if (VOLTAGE > 2.99 && VOLTAGE < 4.00 ) {BAND=1;} // 160m * * * * * * * * * * * * * * * * if (VOLTAGE > 0.00 && VOLTAGE < 0.10 ) {BAND=0;} // parking //==========================================================================================
- Connect trough two wire line
- Precise calibrate value reach with measure voltage on Aref input (C17) and insert to code
float ArefVoltage = 4.228; // Measure on Aref pin 20 for calibrate
YAESU CAT
- Activate uncomment line
#define YAESU_CAT
- And settings with
#define SERBAUD 9600 // [baud] Serial port in/out baudrate #define WATCHDOG 10 // [sec] determines the time, after which the all relay OFF, if missed next input data - uncomment for the enabled #define REQUEST 500 // [ms] use TXD output for sending frequency request
Sniffing mode
- short P11 right/top
- Connect trough two wire line
Request mode
- short P10 right/top
- short P11 right/top
- Connect trough three wire line
Input Serial
Activate uncomment line
#define INPUT_SERIAL
- Disable watchdog
// #define WATCHDOG 10 // [sec] determines the time, after which the all relay OFF, if missed next input data - uncomment for the enabled
Not need any hardware settings, only send via USB to serial line ascii characters in preconfigured baudrate.
X,YYYYYYY\n
- X - band output in range 0-14, if activate BCD output range is 0-10 because 11-14 reserved for BCD. 0 (zero) = no output will be turned on.
- YYYYYYY - frequency in Hz - has no effect on the output relays, used if any CIV/CAT outputs activated.
- \n - is LF Line Feed (0A in hex)
CONFIGURE OUTPUTS
You can uncomment more than one output, but not all combinations are worked.
Always usable - may all at once.
- 8 output driver - allways enabled
- Yaesu BCD - allways enabled except activate Yaesu BCD input
- Serial echo
Only one from (not available during active Frequency request option (available only one TXD line)
//=====[ Outputs ]============================================================================================ // #define SERIAL_echo // Feedback on serial line in same baudrate, CVS format <[band],[freq]>\n // #define ICOM_CIV_OUT // send frequency to CIV ** you must set TRX CIV_ADRESS, and disable ICOM_CIV ** // #define KENWOOD_PC_OUT // send frequency to RS232 CAT ** for operation must disable REQUEST ** // #define YAESU_CAT_OUT // send frequency to RS232 CAT ** for operation must disable REQUEST **
8 output driver
- Allways enabled.
SERIAL ECHO
Activate uncomment line
#define SERIAL_echo
Requires setting
#define SERBAUD 9600
YAESU BCD output
Always activate - except enable BCD input.
You can set rules to select BCD output, dependency to detected band input.
//=====[ BCD OUT ]=========================================================================================== const boolean BCDmatrixOUT[4][16] = { /* -------------------------------------------------------------------- Band # to output relay 0 1 2 3 4 5 6 7 8 9 10 (Yaesu BCD) 160 80 40 30 20 17 15 12 10 6m -------------------------------------------------------------------- | | | | | | | | | | | V V V V V V V V V V V */ { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 }, /* --> DB25 Pin 11 */ { 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1 }, /* --> DB25 Pin 24 */ { 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1 }, /* --> DB25 Pin 12 */ { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1 }, /* --> DB25 Pin 25 */}; //============================================================================================================
ICOM CIV output
Activate uncomment line
#define ICOM_CIV_OUT
Requires baud rate and CIV address in setting section of source code
#define SERBAUD 9600 // [baud] Serial port in/out baudrate #define CIV_ADR_OUT 0x56 // HEX Icom adress (0x is prefix)
- short JP1 left (TXD)
KENWOOD CAT output
Activate uncomment line
#define KENWOOD_PC_OUT
Requires baud rate in setting section of source code
#define SERBAUD 9600 // [baud] Serial port in/out baudrate
- short JP1 right (TXD)
- short JP7
YAESU CAT output
Activate uncomment line
#define YAESU_CAT_OUT
Requires baud rate in setting section of source code
#define SERBAUD 9600 // [baud] Serial port in/out baudrate
- short JP1 right (TXD)
- short JP7