Seriously, why the hacker community even touches the RPi is beyond me. It is a ridiculously closed product.
Seriously, why the hacker community even touches the RPi is beyond me. It is a ridiculously closed product.
In fact I'd bet most of them would be scared off by the several thousand pages of documentation an SoC like that usually would have.
1) glue shit together
or
2) read several thousand pages of documentation
who is going to choose the latter?
This is a market that's being poorly served (maybe it's not big enough to justify investment in developing non-shitty products for them?) but blaming the users seems distasteful.
Is that any different from all that stack overflow copypasta you find all over source code, where the paster clearly had no idea how that code worked? And I’m talking about people who are being paid to ship code.
shudder. It’s a wonder anything functions at all these days.
Not to pick on anyone, but I recently installed a stock storybook setup. Out of curiosity I did a count of all the node_modules (top level + nested). There were >2000 packages installed.
Now I know that if I follow the rules of a textbook professional (one that takes security seriously), then I'm obliged to audit all 2000 packages. But between you and the rest of the gazing internet, I don't do this. That's my dirty little secret. I don't give a shit. Gluing orphaned half-assed npm packages together and pretending everything is okay is my job.
The ironic part is how many hours we are murdering worrying about TypeScript or unit tests or integration tests and trying very very very hard not to notice that landfill we have placed under our massive rug.
There are too many technologies and not enough time to master them. Every time I dive into a popular node package I become more and more worried for the human race. We get things fundamentally wrong and it lives like that. For decades. And people come along and just obliviously use it like that and don't question it. Take something simple, like JWT. Or nonces. Or what people believe and implement around random numbers and how random numbers work (or, often, don't work). Bad information becomes bad code that sits around for a lifetime.
I started on ARMv5 back in the days of Sheevaplug/Dreamplug. At least that had JTAG, even if the cable did cost $70.
I have tried:
* Espressobin: While Marvell's hardware is pretty good, they've had trouble with the v7 board, resulting in the small community being somewhat bifurcated. I still don't think it runs a mainline kernel properly. At least the PCIe slot is standards-compliant. u-boot+ATF will always be a 2018 (?) Marvell fork, no one's ever going to update that.
* Firefly RK3399. Lol. https://lkml.org/lkml/2020/4/6/320. Although, if you can get ARM Trusted Firmware working it's a reasonably competent board.
* Vocore2. Support is reasonably helpful but insists that I use GCC 3.4.2 to compile the bootloader. Remember to back up the wifi calibration data - you can't ever get it back if you erase it. You will need to break out the magnet wire if you want to unbrick it. Shame, it's a nice little MIPS board.
* Anything Libreboard - use this, they've put a stunning amount of work in to get things upstreamed.
When I want to just work on something not on a PC, I keep coming back to the Pi. The Pi 4 is competent with an SSD attached over USB 3, and the Pi 0W is great for very simple tasks that need Linux. I wish it were better, I wish Broadcom was more open, but the Pi has the biggest community I've seen in any "hobbyist" ARM space.
Seriously, it's easy to crap on this stuff when you're willing to recommend boards that cost "just 20 dollars more", or have one-hundrenth the community because most of the end users are embedded engineers or the anything-but-a-pi sub crowd.
To me it just shows a lack of ability to consider requirements in evaluation. Even something as simple as the fact the rPI form factor has been fairly consistent for a while is a huge boon to people just trying to start with this stuff.
I could give my mom a rPI and a $20 starter kit and she could probably get to the point of a working PC.
I wouldn't dream of that with anything else. The fact it's Broadcom based is a little unfortunate but that ship has sailed and the ecosystem around it now trounces any benefit of alternatives for the actual people using them. Not embedded engineers who say it's crap because they wouldn't make a custom product based on that SoC.
-
This is like when people point out that for half the price of an Arduino Uno you can get an STM32 board that will run circles around a dinky ATmega328.
It's not about the power or "objective goodness", even the header layout of the Uno lets beginners use an insane wealth of peripherals designed for it
There is an Arduino port to STM32 (Blue Pill in particular), for those whose idea of embedded programming involves a bunch of delay() statements scattered around the library code, making sure no other peripherals can be used while you’re polling for the next UART char..
There's a million and one peripherals designed for that specific combination that don't work seamlessly with other boards (even within the "official" Arduino family)
I mean your complaint about the quality of the library code, it's perfectly fine that the code sucks if it lets people do 1 million and one things they couldn't otherwise.
Do you really think someone programming an Arduino for controlling their cosplay LEDs cares if the library they used is poorly written? As long as it works it works.
They were never going to read the datasheet for an MCU and start figuring out bit masks for pin initialization, so it's literally a case of something is better than nothing, and there's no reason to gatekeep the environment that lets them use embedded systems
(A few employers ago, they were the only source for ethernet PHYs for a carrier-grade network product we were building where we supplied our own MAC)