« first day (1 day earlier)      last day (19 days later) » 

1:13 AM
Now I am setting up the transmitter and receiver module, But I don't know the use of the pot in the transmitter module. Is it for changing/tuning the frequency of the transmission to match with the receiver. I don't know if the couple of receivers I have in hand have different frequencies. If yes, then is it possible for one Pico to control multiple transmitters to talk to multiple receivers at different frequency channels?
Please let know if you happen to know any Arduino tutorials on how to use the pot.
 
1:42 AM
I found this Arduino forum discussion on MX05 very good:
 
 
8 hours later…
9:34 AM
Now I have placed the MX05 and FS1000 on to the bread board, with the 3V to 5V level shifter, ready to do the point to point wiring.
Now I am thinking of naming my project "PicoVirtualWire". For now I have Pico GP0 and GP1 shorted by a jumper/jumper wire, and that the serial loopbackverifies that UART TxD message sent out is received by RxD.
If both MX05V and FS1000S are working OK, when I remove that TxD to RxD jumper, and run the same serial loopback program without any changes to the program, the output should be the same. In other words, the real hardware jumper/jumper wire is replaced by the RF 433MHz send/recv operation, thus the name "PicoVirtualWire".
MicroPython v1.16 on 2021-06-18; Raspberry Pi Pico with RP2040
Type "help()" for more information.
>>> %Run -c $EDITOR_CONTENT
Begin testUartLoopBackV01(), ...
  writeTestMsg = Hello World
  bytes read = b'Hello World'
End   testUartLoopBackV01().
>>>
 
 
3 hours later…
1:01 PM
@tlfong01 yes this is for changing frequency. I have read that in a post
very nice setup btw
clean and tidy
i'll try your code now to reproduce it and i will share the results
i'm excited!
but, i dont have this converter for 5v. Maybe i should order one.
Is it needed?
For testing purposes, i will use a Rpi3b that I have, to test the receiver
Also, does the VBUS output, has 5V?
 
1. Thank you for confirming that the pot is for changing frequency. I looked closely and found that it seems to be inductor coil outside and perhaps a moving iron core inside, so adjust the frequency around 433MHz.
2. So I think I should not try to turn the pot, because the pot should be adjusted at factory to make sure both transmitter and receiver are tuned at the same frequency. This means that all the xmit/recv pairs sold might have slightly different frequencies and one recv would only worked for one xmit module but not the other.
3. This is very useful for me, because I am thinking of one pico control two pairs of xmit and recv modules.
4. The setup you see is actually a Pico 4WD with BLDC motors. My dream is to train a team of say eight, 4WDs which can talk to each other in RF, sort of forming a team of robot cars, ... But I am diverting too far, let us go back to normal business, ... :)
5. Yes, it would be nice if you can test using Rpi3/4B x 1, Pico x 1, or Pico x 2, and so on. I am too lazy to test with Pico x 2, so think Pcio x 1, with TxD pretending to be Xmit module, and RxD pretending to be another Pico' RxD.
6. About the 3 to 5V level converter: (a) The spec said the Xmit module must be powered by 5V, so 3V3 won't do. (b) Other Arduino guys say they even use higher voltage, up to 12V, and higher the longer distance. For now I will be using 5V, because all the robots are moving on a table. I once thought of using BlueTooth, but that is muc more complicated than the quick, dirty, cheap MX05V.
7. If you do power the xmit module FS1000S with 5V, and you use Pico's GP pin as TxD or output to FS1000S, there would be risk of frying the Pico. One Arudino guy suggests to use a protecting 1K or 10K in series, that should be practical, but there is stall a risk of say 5% or frying the Pcio, because of the so called "Latch up" problem.
8. I just test a level shifter called TXB0104 (CJMCU401) but found a problem, the shifter do shift up signals from 3V to 5V, but once loaded by the FS1000S, the shifter does no longer work and goes into oscillation. I need to find the better, stronger HCT125, but I am too lazy for now, so I will skip the level shifter, and let Pico direct drive the FS1000S. You might like to let me, the brave guy, try this first, and if my Pcio does not fry, then you can follow. :)
I remember that Pcio VBUS had 5V, but am not familiar with Pico power bus, so I am only using external 3V3, 5V0 PSUs.
Now my test results with the CJMCU401/TBX0104 level shifter. As said earlier, no load performance is OK, but troulbe once load with FS1000S. These shifters are mainly for I2C devices with sort of open collector/source cct, and do not work well with push/pull ccts. Anyway, I would try HCT125 later, ...
BTW, I have a newer version of the loopback program, for easier scope waveform display.
# mx05v05.py MX05V, FS1000S 433MHz Demo Program v0.5  tlfong01  2021oct24hkt2143
# Pico GP Pin Assignment
#   GP0 = UART0 TxD = MX05    433MHz Revciver Module Data Pin
#   GP1 = UART0 RxD = FS1000D 433MHz Transmit Module Data Pin
# Setup
#   To loop back, short TxD pin to RxD pin

from machine import UART, Pin
import utime

uart0 = UART(0, baudrate = 9600, tx=Pin(0), rx=Pin(1))

def testUartLoopBackV01():
    print('Begin testUartLoopBackV01(), ...')
    testMsg = 'Hello World'
    print('  writeTestMsg =', testMsg)
 
1:49 PM
have you connected the rf rx/tx modules?
so, if, i Power the receiver with 5v, but from an outside source, instead of Pico, will it cause problems?
 
(1) I am testing only FS1000S, the MX05V is not connected to Pico RxD, not even powered on.
(2) Now I am letting Pico TxD to direct drive FS1000S, not even using a series 1K or 10K to protect or limit current. I know it is the "latch up" thing that fries the Pico/Rpi, series resistance does not help.
This is the test function.
def testPicoDirectDriveFs1000sV03():
    print('Begin Pico TxD (GP0) direct drive FS1000S, ...')
    testBytes = b'\0x5b\0xb5'
    for count in range(100000):
        uart0.write(testBytes)
        utime.sleep(0.01)
    print('End   Pico GP0 direct drive FS1000S.')
    return

# *** Main ***

#testUartLoopBackV01()
#testUartLoopBackV02()
testPicoDirectDriveFs1000sV03()

# .END

''' *** Sample output ***
MicroPython v1.16 on 2021-06-18; Raspberry Pi Pico with RP2040

Type "help()" for more information.
Test Results: Pico TxD 3V3 signal seems not overloaded by FS1000S. Seems OK for continuously driving the 0x5B,,, bytes for 5 + minutes.
Ah, bed time. I call it a day. See you tomorrow. Cheers.
@Antifa Ah, I almost always use external 5V PSU, almost never use the Rpi3/4 power bus, so not frying anything by carelessly connect the wrong pin.
REMINDER - If you use external 5V, there should be not problem of frying anything, but you MUST REMEMBER TO CONNECT BOTH GROUNDS TOGETHER.
 

« first day (1 day earlier)      last day (19 days later) »