Good morning, I’m starting in the world of the rrock pi 3c, in general is it a good development card?
What recommendations would you give me to take into account?
is the rock pi 3c a good development board ?
Of course, internally we hope ROCK 3C will be the best seller.
On paper Rock 3C is similar to a Pi4, although having a format compatible with a Pi 3B. This is the reason I bought it, mainly to upgrade a sluggish Pi 3B into a Iono Pi.
The reality instead is that there is little that can be done with a 3C, the documentation is scarce at best. Nothing works, not even a very simple 1 wire temperature sensor. It is likely they sold a handful and there is no support. The most I have managed to make work to date are basic gpio pin ON/OFF, so that I can control relays. Nothing else. I am quite frustrated. The availability of software is what makes/breaks the success of any device.
Radxa could not even manage to release consistent operating systems and drivers across their devices.
Rock 3C has NO SOFTWARE WHATSOEVER to control devices on SPI, 1 wire, etc. Unless you have days and weeks to create even the most basic software driver (that are so widely available for a Raspberry Pi), practically doing the job that Radxa developers should have done before releasing their boards.
There is no doubt that the Rock 3C is a good development board (the hardware is of good quality) and can be used to replace Raspberry 3 or 4. The main problems are that there is less software support, lack of drivers, missing examples of feature development, lack of support, etc. There is no complete feature support on the official website, so radax team need to accelerate the construction of rock 3c software ecological services.
From what I have learnt since I bought a Rock 3C, not only there is NO SOFTWARE SUPPORT WHATSOEVER, but also, despite format and header fits a Raspberry Pi perfectly, the GPIO Pins are in the WRONG places compared to a Raspberry Pi, therefore, even if software were available, these Radxa boards can NOT be used to replace a Raspberry Pi, as I initially thought, inside industrial devices built for a Pi (like the Iono Pi for example), nor existing Pi HATs can be used with a Rock 3C, because the GPIO PINs (for 1 Wire, INPUT, OUTPUT, i2c, SPI, etc, are mapped differently.
Sadly, I do not see any immediate application for a Rock 3C, even if software were available. Better spend a little more and get a real Pi.
When you are buying a car you also usually check if the features you need are there. Why here things would be different?
Silly comparison, before I buy a car I do a test drive. These boards aren’t available for test drives and the only way to test them is to source one. Beside, the form factor is that of a raspberry Pi (check), the PINs appear to be the same as a Raspberry Pi (check before buy, discovered later that they aren’t).
Take my comments as feedback to radxa. The board technically is quite good. It needs software. Also I would make sure that the pinout is configurable to match Raspberry Pi so that we can reuse existing HATs and hardware projects.
Ain’t the best, agree, could come up with something better I guess. Just trying to make a point that pushing on HW vendor to sponsor your (spoiled by Rpi) software needs might be pointless.
Rpi had / have enough of customers that are providing software support for themselves. This is how this business model works. Producing HW is dirt cheap and you are only willing to pay for that.
What is the point of creating a R Pi competitor, at the same price, if you cannot do at least the same?
You are purchasing hardware, not software and certainly not a solution. FOSS software is provided as is. The same deal is with Rpi. If you need this for your business, there are people that can help you.
I have all sorts of devices, doing various things. Connected displays, controlling power relays, running smart home, UPS, small NAS. Not a single one is done with Rpi. I agree not all features works, but all I need do.
I think many of single board computers don’t want association with Rpi as this shape your expectations which are hard to meet.
I don’t think I am asking too much when all I want is to be able to get temperature and pressure from sensors as simple as DS18B20 and DHT22. That feature should come out of the box with the OS built for the board.
If anyone can guide me through achieving that with my Rock 3C I will shut up.
Then maybe you start explaining “how” you tried to access? The header is really “mostly” the same, but of course GPIO pins are not. And there are ways to many methods to access them. Libmraa, libgpio, python libraries that access the sys filesystem directly. None of this is “compatible” in the sense that it work without modifications.
However, modifications are typically “small”, for instance it took me 2 hours to port the python script that runs the argon one service to C and libmraa. So yes, it is not a “drop-in” replacement. SW has to be adopted.
That said, after running a lot of things on RPIs, I replaced rhem all by Rock 5 und 4C(+), because of stability. The rocks (if they arive me not dead) runs “rocksolid” without any strange problems with USB and its PCI interface are much faster (which is my only criticism, why Radxa has removed that in R4C+ 1.4???).
TLDR; try to explain what you did, how it fails, and maybe someone can help.
Because Okdo required.
libmraa is not available with Rock 3C.
I found that with libgpio I get basic access to GPIO PINs to turn them on/off and read their status (output and input).
So far I managed to control 3 relays of an industrial HAT on PINs 36,38,40. However I read from the documentation that 1wire is on PIN 40. I tried to enable it with the overlays, I modprobe w1_temp, I connect a DS18B20, but it is not recognized at all.
Waiting for an how to guide.
You can build mraa yourself. Adding support for a new board is relatively easy, basically you need to describe the GPIOs. The official github repo has support for Rock 4A,B,C. Radxa’s version has support for 3C, but not 3a yet, but is based on an old mraa and does not built cleanly under bullseye or bookworm. I have a modernized fork of it.
Regarding the one-wire I cannot help, never used that. What distro do you use? Official radxa build?
as if…
If you do no even use 1 wire, what do you use this board for? Just as a cheap small server?
radxa ubuntu 22, the only one available on the radxa site for a Rock 3C
I use severals Rocks as thin clients and NAS, a 5B as my primary desktop machine.
Regarding the one-wire, which overlay did you load? There seems to be no w1-gpio.dtbo overlay in the ubuntu-b33 image, the only one is 3568-w1-gpio.dtbo, which is probably wrong, as it looks like:
dts-v1/;
/ {
metadata {
title = "Enable 1-Wire on GPIO3_A5";
compatible = "radxa,rock-3c";
category = "misc";
exclusive = "GPIO3_A5";
description = "Enable 1-Wire on GPIO3_A5.\nOn ROCK 3C this is pin 40.";
};
fragment@0 {
target-path = "/";
__overlay__ {
onewire {
compatible = "w1-gpio";
gpios = <0xffffffff 0x05 0x00>;
status = "okay";
phandle = <0x01>;
};
};
};
__symbols__ {
w1 = "/fragment@0/__overlay__/onewire";
};
__fixups__ {
gpio3 = "/fragment@0/__overlay__/onewire:gpios:0";
};
};
However, it might be enough to create one from this by replacing the line:
compatible = "radxa,rock-3c";
by
compatible = "radxa,rock-3a";
Then compile and load it, reboot and look into dmesg for a message from the w1 driver.
Beware, my DTB knowledge is mostly non-existent, not sure if this can damage something.
BTW: There is a Debian image too: https://github.com/radxa-build/rock-3c/releases/download/b33/rock-3c_debian_bullseye_xfce_b33.img.xz but is has (of course) the same overlays.
It might be even possible to load the 3568 one…
I am not familiar with this radxa/rock platform configuration files.
I used rsetup and selected the only one in the list with 1 wire in the name.
After doing so, I see that rock 3c boots with some w1_something modules (lsmod). w1_temp is missing however so I load it manually with modprobe.
We need a proper how to guide from radxa. No point trying to guess.