#795

Ғылым және технология

Episode 795
I bought a SA818 module to play with. I make a board using an esp32 board with display. The audio output is amplified with a LM386 to a speaker.
Buy: www.banggood.com/custlink/m3D...
Be a Patron:
/ imsaiguy

Пікірлер: 37

  • @johnwest7993
    @johnwest7993 Жыл бұрын

    That's some very nice 'traditional' assembly work. I haven't seen any like it in years. I bet a lot of your younger viewers have never seen anything like it.

  • @billpowell5931
    @billpowell59313 жыл бұрын

    Looks like a great unit to experiment with. Great tool to demonstrate both RF and Arduino programming techniques. As always, a nice presentation.

  • @jdmccorful
    @jdmccorful3 жыл бұрын

    Nice project. Like the test procedures.Thanks.

  • @nickcaruso
    @nickcaruso3 жыл бұрын

    you are a craftsman, and a gentleman, sir.

  • @GEORGE-jf2vz
    @GEORGE-jf2vz3 жыл бұрын

    Nice way to tie up the wires on the board. Don't see that much anymore.

  • @ruhnet

    @ruhnet

    3 жыл бұрын

    Yup I noticed that too. It’s so 1950-1970ish, in a good way! 😁

  • @acestudioscouk-Ace-G0ACE
    @acestudioscouk-Ace-G0ACE3 жыл бұрын

    I'll be very interested to see how this progresses. If you keep the explanations very precise but simple...I might even be able to build one!

  • @electronicengineer
    @electronicengineer3 жыл бұрын

    Wow! What a beautiful and super neat job you did on that SDR! You have some serious prototyping skills fine sir! BTW, I am not sure that I can handle an IMSAI Guy video without at least one "ubiquitous" reference in it though... What's going on? LOL. Really nice job on that radio and I truly am impressed with not only your RF knowledge but I had no idea that you also dabbled in Arduino code. You are just chock full of surprises IMSAI Guy! Color me "Blown Away"! Fred

  • @IMSAIGuy

    @IMSAIGuy

    3 жыл бұрын

    It is not an SDR. It's a hardware module

  • @vincei4252
    @vincei42523 жыл бұрын

    Very cool. Regarding protecting the SA, some SA's want no more or less than 0V DC so you'd also need a DC block as well. Just thought i'd throw that out there. [edit] I see your SA can tolerate 25V DC.

  • @frankowalker4662
    @frankowalker46623 жыл бұрын

    Brilliant. Is that the only way to see how many watts you are transmitting, or can it be done with just an Oscilloscope somehow ?

  • @IMSAIGuy

    @IMSAIGuy

    3 жыл бұрын

    kzread.info/dash/bejne/lKat1KOOcrGqmps.html

  • @frankowalker4662

    @frankowalker4662

    3 жыл бұрын

    @@IMSAIGuy Thank you. I've written a computer program to deal with the equations. I used your values to test it. It's perfect. Thank you.

  • @vincei4252
    @vincei42523 жыл бұрын

    9:49 Hmm. Maybe this module needs a bandpass filter? The screen seems to show there's some significant spurious stuff at 220Mhz and lower :(

  • @IMSAIGuy

    @IMSAIGuy

    3 жыл бұрын

    the 220 stuff looks pretty low to me

  • @nickcaruso
    @nickcaruso2 жыл бұрын

    what was the “final product” you refer to?

  • @IMSAIGuy

    @IMSAIGuy

    2 жыл бұрын

    diy mars rover project that never gets done

  • @TeslaTales59
    @TeslaTales593 жыл бұрын

    Did you use the "old style" wax string ties" Very cool!

  • @IMSAIGuy

    @IMSAIGuy

    3 жыл бұрын

    cable lacing: kzread.info/dash/bejne/i2uqx5qCZJi5gbA.html

  • @TeslaTales59

    @TeslaTales59

    3 жыл бұрын

    @@IMSAIGuy Excellent vid on lacing!

  • @Wayde-VA3NCA
    @Wayde-VA3NCA3 жыл бұрын

    What modes does the module implement? FM?

  • @IMSAIGuy

    @IMSAIGuy

    3 жыл бұрын

    yes, FM

  • @deBug67
    @deBug673 жыл бұрын

    Very neat breadboarding. I expect you might have more power out if you remove the external LP filter. It might not be able to handle the power. If that is the case it becomes very lossy. Anyway, nice Video!

  • @IMSAIGuy

    @IMSAIGuy

    3 жыл бұрын

    when I did the power measurement, there was no filter

  • @deBug67

    @deBug67

    3 жыл бұрын

    @@IMSAIGuy Ahh OK. I measured the VHF version SA818 and I think it gave out 0.5w är the low power setting and 1.5w at high power setting. Perhaps the UHF version has a bit lower power output. The Data sheet also says it is VCC dependent. I belive I tested at 5V.

  • @jjoeygold
    @jjoeygold3 жыл бұрын

    You did relative dB difference between fundamental and harmonics (relative measurement) , however some RF regulations require absolute values in dBm or dBuV/metre.

  • @IMSAIGuy

    @IMSAIGuy

    3 жыл бұрын

    Some of the non licenced bands require dBm, such as 915mhz. I don't know of any for 440mhz with an amateur radio licence.

  • @jjoeygold

    @jjoeygold

    3 жыл бұрын

    @@IMSAIGuy FCC 15.247 20dB down (not dBm)

  • @jjoeygold

    @jjoeygold

    3 жыл бұрын

    www.govinfo.gov/content/pkg/CFR-2013-title47-vol1/pdf/CFR-2013-title47-vol1-sec15-247.pdf part (d) says: The frequency band in which the spread spectrum or digitally modulated intentional radiator is operating, the radio frequency power that is produced by the intentional radiator shall be at least 20 dB below that in the 100 kHz bandwidth within the band that contains the highest level of the desired power, based on either an RF conducted or a radiated measurement, provided the transmitter demonstrates compliance with the peak conducted power limits.

  • @jjoeygold

    @jjoeygold

    3 жыл бұрын

    Also there may FCC "catch all" spurious emission requirements outside of the operating band

  • @cocusar
    @cocusar3 жыл бұрын

    Would it be nice if you can hack a baofeng (I think they use a similar Radio on Chip, but you have *some* filtering, even tho it's laughable; and a BMS and a display!)

  • @IMSAIGuy

    @IMSAIGuy

    3 жыл бұрын

    That would be great. I haven't found anything yet. The only 'hack' was someone removing the microcontroller and having to wire everything to a different one he could program.

  • @cocusar

    @cocusar

    3 жыл бұрын

    @@IMSAIGuy Yep, that's the one I saw. He sniffed the i2c bus with the original mcu to check which commands to send. It might be a little bit tedious if you want to configure all the features the original firmware had, but hey, it's a complete transceiver for very little money!

  • @IMSAIGuy
    @IMSAIGuy3 жыл бұрын

    //============================================================================== // IMSAI Guy 4/2021 // SA818 Demo // // written for TTGO T-display board with SPI color TFT // // ######################################################################### // ###### DON'T FORGET TO UPDATE THE User_Setup.h FILE IN THE LIBRARY ###### // ######################################################################### // #define ILI9341_DRIVER // #define TFT_HEIGHT 240 // GC9A01 240 x 240 //============================================================================== #include // Graphics and font library for ST7735 driver chip #include TFT_eSPI tft = TFT_eSPI(); // Invoke library, pins defined in User_Setup.h //=============================================================================== #define Button0 0 // lower button #define Button1 35 // upper button #define Backlight 17 // LCD backlight #define RxD2 32 // connect to SA818 pin 16 #define TxD2 33 // connect to SA818 pin 17 #define PTT 25 // connect to SA818 pin 5 // SA818 has a 400~480MHz Range #define Channel_count 6 // number of channels in the below matrix double Frequency[Channel_count] = {421.1250,462.5625,462.5875,462.6125,462.6375,462.6625 }; char *Channel_name[] = {"IMSAI" , "FRS 1", "FRS 2","FRS 3" , "FRS 4", "FRS 5" }; int Volume = 3; // initial volume level int Channel = 0; // current channel //================================================================== void setup(void) { Serial2.begin(9600, SERIAL_8N1, RxD2, TxD2); pinMode(Button0, INPUT_PULLUP); pinMode(Button1, INPUT_PULLUP); //pinMode(Backlight, OUTPUT); //used to turn off the TFT backlight pinMode(PTT, OUTPUT); digitalWrite(PTT,HIGH); //initilize to receive tft.init(); tft.setRotation(1); tft.setTextColor(TFT_GREEN,TFT_BLACK); tft.fillScreen(TFT_BLACK); tft.setCursor(0, 0, 4); tft.println("IMSAI SA818 Demo"); // splash Serial2.println("AT+DMOCONNECT "); // connect communications with SA818 tft.print(Serial2.readString()); // returns :0 if good Serial2.print("AT+VERSION "); // get version tft.print(Serial2.readString()); // returns: version number delay(2000); tft.fillScreen(TFT_BLACK); tft.setCursor(0, 0, 4); tft.println("Set Group"); // group set setfreq(); // set frequency tft.print(Serial2.readString()); // returns :0 if good //Format:AT+DMOSETVOLUME=X //Reply: +DMOSETVOLUME: 0 //“X” is the volume level, the range is 1---8 tft.print("Set Volume: "); tft.println(String(Volume)); Serial2.print("AT+DMOSETVOLUME=8 "); // set volume tft.print(Serial2.readString()); // returns :0 if good delay(2000); //Format: AT+SETFILTER=PRE/DE-EMPH, HIGHPASS, LOWPASS //Reply: +DMOSETFILTER: X //HIGHPASS: 1: bypass 0: normal //LOWPASS: 1: bypass 0: normal //Format: RSSI? //Reply: RSSI=X //“X”: Value of RSSI, from 0 to 255, unit 1dB tft.fillScreen(TFT_BLACK); disp_channel(); } //=============================================================================== void loop() { if (digitalRead(Button0) != 1){ // wait for bottom button press tft.fillScreen(TFT_RED); // spash RED when transmitting disp_channel(); digitalWrite(PTT,LOW); // assert push to talk while(digitalRead(Button0) != 1); // wait for button release digitalWrite(PTT,HIGH); // release push to talk tft.fillScreen(TFT_BLACK); disp_channel(); delay(1000); // wait for transmisson to end // causes false button presses } if (digitalRead(Button1) == 0){ // check for upper button press Channel += 1; // next channel if (Channel >= Channel_count) Channel=0; setfreq(); tft.fillScreen(TFT_BLACK); disp_channel(); delay(500); // button repeat delay } } //=============================================================================== //Format:AT+DMOSETGROUP=BW,TX_F,RX_F,Tx_subaudio,SQ,Rx_subaudio //BW:0: 12.5K 1: 25K //SQ: 0 ~ 8 0: listen mode 1-8: Different SQ Level. //The range of Tx_CTCSS and Rx_ctcss is 0001-0038. 0000: none void setfreq() { Serial2.print("AT+DMOSETGROUP=0,"); Serial2.print(String(Frequency[Channel],4)); Serial2.print(","); Serial2.print(String(Frequency[Channel],4)); Serial2.print(",0000,1,0000 "); } //=============================================================================== void disp_channel() { tft.setCursor(0, 0, 4); tft.println("SA818 Transceiver"); tft.print("Freq: "); tft.println(String(Frequency[Channel],4)); tft.print("Name: "); tft.println(Channel_name[Channel]); } //=============================================================================== //===============================================================================

  • @JohnTarbox
    @JohnTarbox3 жыл бұрын

    It would be fun to see you use it for a QSO on the 440 MHz ham band.

  • @bigfoottoo2841
    @bigfoottoo28412 жыл бұрын

    Just buy a Bao Feng ht for $25

Келесі