Hello everyone!
Has anyone managed to start the camera on the Radxa 3W board?
I am testing on Debian b6
with an update via rsetup (after the update, overlays from radxa 8M appear)
I have 4 GB RAM 32 eMMC
I am testing the following cameras:
Original RADXA 8M, rspb camera 1.3, rspb camera 2
When switching cameras, I select the corresponding overlay.
When connected, the radxa 3w board starts to heat up a lot (much hotter if the camera is not connected). Is this normal or a defect?
And sometimes the Radxa 3W does not start at all with the camera connected.
I try to test the camera via cheese, via rsetup
by starting the RTSP server via the link
https://docs.radxa.com/en/zero/zero3/app-development/rtsp
I used different device addresses: video0 video-camera0 etc.
Errors and other things are everywhere.
Maybe someone has encountered and solved the problem? or I have a defect in the Radxa 3W itself.
Zero 3W Camera 8M doesn’t work
can you send a picture how it is connected, right now I guess you have a radxa zero3w version which has the wrong connector
yes, this one is inverted, either you let them refund you or you search for a cable with inverted pins.
It’s a wrong connector on the pcb it should be flipped :
Ok, thanks for the clarification.
Now when ordering I will specify what type of connector.
I will use this board for other purposes.
I think it will be difficult to find an FPC with an inverted connection.
However, it would be nice to indicate the revision on the board, so that it is clear what you are ordering.
it’s not an revision, but a manufacturing defect
I ordered a second board, it came with the same defect, I will try to arrange a return,
I noticed that the packaging has an indication of the revision,
revision from 1.120 my connector turned out to be defective.
Are there revision numbers where the defect was fixed? so that I can immediately write to the seller
Or you can send me the correct part number of the connector, I will order it and resolder it
I’ve managed to make Radxa Camera 8M 219 work. My approach is probably far from the optimal one, but it works. Image used: radxa-zero3_debian_bullseye_xfce_b6
sudo rsetup -> System -> System Update
cd /lib/linux-image-5.10.160-26-rk356x/rockchip/overlays/
sudo cp radxa-zero3-rpi-camera-v2.dtbo /boot/dtbo/
sudo u-boot-update
- Change default to
l1
froml0
in/boot/extlinux/extlinux.conf
.l1
target should point to linux image5.10.160-26-rk356x
instead of5.10.160-38-rk356x
. sudo reboot
- Check kernel version with
uname -r
it should be5.10.160-26-rk356x
sudo rsetup -> Hardware -> Video capture devices -> vide-camera0 -> Show live video
Remarks:
- This approach could fail if FPC cable is not connected properly OR FPC wiggles inside MIPI CSI and connection is loose.
- All of my cameras on Radxa Zero 3 work only on kernel 5.10.160-26. The list contains only cameras with sensor IMX219 - Overlay RPi Camera v2.0 and OV5647 - Overlay RPi Camera v1.3)
Can you send a photo of the CSI port on the board?
Ok, sure.
I have flipped upside down black plastic holder inside MIPI CSI connector for better contact of the FPC cable to the connector contacts. When my project will be ready I am going to glue FPC to the port with silicon glue for more motion-proof connection.
yes, I managed to do it with a defective connector
You need to turn the wire over, turn the gray clamp over
and according to the instructions from moonLighter above, the camera worked
Did you manage to launch the RTSP server on the old kernel?
I followed the instructions
https://docs.radxa.com/en/zero/zero3/app-development/rtsp
Ffmpeg does not work correctly, the picture does not update in real time, Gstreamer did not work.
As far as I remember I’ve managed to make RTSP work. Here is my test code for Radxa Zero 3W
:
import gi
import sys
import socket
import fcntl
import struct
gi.require_version('Gst', '1.0')
gi.require_version('GstRtspServer', '1.0')
from gi.repository import GObject, Gst, GstRtspServer
def get_wlan0_ip():
"""
Get the IP address of the 'wlan0' interface on Unix-like systems.
Returns:
str: IP address of 'wlan0' interface, or None if not found.
"""
iface = 'wlan0'
try:
# Create a socket to perform network operations
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# Interface name must be a bytes object of max length 15
iface_bytes = iface.encode('utf-8')[:15]
# Perform an ioctl system call to get the IP address
# SIOCGIFADDR is the IOCTL command to get the address
# 0x8915 is the standard code for SIOCGIFADDR
ip_addr = fcntl.ioctl(
sock.fileno(),
0x8915, # SIOCGIFADDR
struct.pack('256s', iface_bytes + b'\x00' * (256 - len(iface_bytes)))
)[20:24]
# Convert the binary IP address to a human-readable string
return socket.inet_ntoa(ip_addr)
except OSError:
# If the interface is not found or another OS error occurs
return None
class RTSP_Server:
def __init__(self, ip_add : str = None):
Gst.init(None)
self.ip_add = ip_add
self.server = GstRtspServer.RTSPServer()
self.server.set_service("8554") # RTSP port
factory = GstRtspServer.RTSPMediaFactory()
factory.set_launch(
'( v4l2src device=/dev/video0 ! '
'video/x-raw,width=640,height=480,framerate=30/1 ! '
'x264enc tune=zerolatency bitrate=500 speed-preset=superfast ! '
'rtph264pay name=pay0 pt=96 )'
)
factory.set_shared(True)
mount_points = self.server.get_mount_points()
mount_points.add_factory("/test", factory)
self.server.attach(None)
print(f"RTSP Server is running at rtsp://{self.ip_add}:8554/test")
if __name__ == '__main__':
# ip_add = str(get_wlan0_ip()) # Get IP address of wlan0 interface
ip_add = "eth0_ip_address"
s = RTSP_Server(ip_add)
loop = GObject.MainLoop()
try:
loop.run()
except:
pass
Change IP if you need in ip_add
variable. Run this code without virtual environment. Had issues with gi
lib when tried to execute inside conda env
. But it’s possible with virtualenv
, just create env with system packages option.
I installed Android and the camera worked (Radxa 8M) without any problems with the kernels. If anyone needs a working external Wi-Fi antenna in Android, the neighboring thread describes how to activate it.
I took IP Webcam Pro as an RTSP server, it connects via the ONVIF protocol, everything works, but I encountered a limitation at 720p of 30 frames, but I need 60. According to the camera specification, it can do 720p 60 frames, and the hardware H.264 encoder can also do 60 frames at 720p (the specification says 1080p @ 60 fps, I think it should also be able to do 60 frames at 720p)
Apparently, there is some kind of limitation in DTS, I’ll have to look at the Android source code.
Maybe someone has encountered this?
Hey, can u link the android img that u used for this purposes?
Original Image
Update where external wifi antenna is enabled (Installed over the existing one)
https://mega.nz/file/Qj5zCYCQ#We27FOyQDs2p1MMmzuRL1m-TGjtPL037w_L4jTHaDE4
Instructions with explanations for compiling android
Original instructions for compiling android