I saw that you made the Sdr console controller with ARDUIO. It felt very practical. Could you please provide me with some production materials? thank you
First things first. Thanks for our QSO. It was my very first one to China.
Of course can i provide you some more infos about the Controller. It consists mostly of an Arduino Micro (one that can act as an USB HID Device) and some KY-040 encoders for the Filter and the VFO.
The Volume knob is a 10k Potentiometer.
Regarding the wiring. It has been mostly done by intution with some pull down resistors, unfortunately i don't have created a wiring diagram. But it's no Rocket science in here
Please take a look at the Arduino Sketch:
C
#define USE_ROTARY_ENCODER
#include <Bounce2.h>
#include <MIDI_Controller.h>
USBDebugMIDI_Interface midiInterface(57600);
// Channel definition
const uint8_t vfoChannel = 2;
const uint8_t filterLowChannel = 10;
const uint8_t filterHighChannel = 11;
// Controller id
const uint8_t Controller = 0x14; // MIDI Control Change controller number
// Settings for encoder inputs
const int speedMultiply = 1; // No change in speed of the encoder (number of steps is multiplied by 1)
const uint8_t velocity = 0b1111111;
// Pin definitions
const int vfoClk = A1;
const int vfoDt = A2;
const int vfoSpeedPin = 7;
const int vfoSpeedLedGreen = 10;
const int vfoSpeedLedYellow = 11;
const int vfoSpeedLedRed = 12;
const int filterLowClk = 2;
const int filterLowDt = 3;
const int filterHighClk = 4;
const int filterHighDt = 5;
const int pttPin = 6;
const int volumePin = A0;
const int vfoAPin = 8;
const int vfoBPin = 9;
// Encoder objects
RotaryEncoder vfoEncoder1(vfoClk, vfoDt, Controller, vfoChannel, speedMultiply, NORMAL_ENCODER, TWOS_COMPLEMENT);
RotaryEncoder filterLowEncoder(filterLowClk, filterLowDt, Controller, filterLowChannel, speedMultiply, NORMAL_ENCODER, TWOS_COMPLEMENT);
RotaryEncoder filterHighEncoder(filterHighClk, filterHighDt, Controller, filterHighChannel, speedMultiply, NORMAL_ENCODER, TWOS_COMPLEMENT);
// volume control objects
Analog volume(volumePin, MIDI_CC::Channel_Volume, 1);
// Button objects
Digital vfoAButton(vfoAPin, 0x10, 1);
Digital vfoBButton(vfoBPin, 0x11, 1);
// Misc objects
Bank bank(1);
BankSelector bankSelector(bank, { vfoSpeedPin }, { vfoSpeedLedRed, vfoSpeedLedYellow, vfoSpeedLedGreen } );
Bounce debouncer = Bounce();
void setup()
{
Serial.begin(9600, SERIAL_8N1);
//
// Add vfoEncoder to the bank and change channel upon bank change
//
bank.add(vfoEncoder1, Bank::CHANGE_CHANNEL);
//
// Initialize debouncing
debouncer.attach(pttPin);
debouncer.interval(25);
}
void loop() {
MIDI_Controller.refresh();
debouncer.update();
HandlePtt();
}
void HandlePtt()
{
if ( debouncer.fell() )
{
Serial.print("P");
}
if ( debouncer.rose() )
{
Serial.print("p");
}
}
Display More
The VFO has a speciality in it. It switches the Midi Bank which results in a changed MIDI channel number. It can be used for different step sizes within SDR Console.
The PTT Pin of the Arduino has one Pushbutton and a 6.3mm Audio Jack connected. I've attached a foot pedal when operating.
The VFO Buttons (Black ones) can be used to switch between Receiver A and B. Pushing A when Receiver A is currently active, will mute the audio.
BG0AUB
I saw that you made the Sdr console controller with ARDUIO. It felt very practical. Could you please provide me with some production materials? thank you
73 De BG0AUB
DL5CV
Hi Feng,
First things first. Thanks for our QSO. It was my very first one to China.
Of course can i provide you some more infos about the Controller. It consists mostly of an Arduino Micro (one that can act as an USB HID Device) and some KY-040 encoders for the Filter and the VFO.
The Volume knob is a 10k Potentiometer.
Regarding the wiring. It has been mostly done by intution with some pull down resistors, unfortunately i don't have created a wiring diagram. But it's no Rocket science in here
Please take a look at the Arduino Sketch:
The VFO has a speciality in it. It switches the Midi Bank which results in a changed MIDI channel number. It can be used for different step sizes within SDR Console.
The PTT Pin of the Arduino has one Pushbutton and a 6.3mm Audio Jack connected. I've attached a foot pedal when operating.
The VFO Buttons (Black ones) can be used to switch between Receiver A and B. Pushing A when Receiver A is currently active, will mute the audio.
DL5CV
Sorry Feng,
i've posted an older source code version. This one here sends PTT as MIDI Command as SDR Console can handle it since some versions back.
You need the Midi controller library installed in your Arduino IDE.
Best regards
Chris
BG0AUB
Thank you very much for your reply.I'm going to try to make a controller.What I understand is that aiduino simulates a usb device.
I found a MIDI controller library file.There should be no problem.
https://github.com/tttapa/MIDI_controller
73
zhaofeng BG0AUB