Hacker News new | ask | show | jobs
by some_random 1187 days ago
I typically see two kinds of raspi hate, and only one of them is reasonable imo. The first is stuff like this article, where you can probably get something better than a raspi these days for about the same price (especially when you consider scalper pricing) or just run a docker image in a server you can make with an old computer. This is very good advice, especially now that getting a raspi at MSRP is borderline impossible.

The second is most of the comments here, declaring that novices should just learn embedded programming and use an arduino for everything! If you're in this camp, you should consider _why_ people chose to use raspis for project. and watch your ass because an EE is about to arrive to drag you for not just using a 555 timer in your projects.

12 comments

> and watch your ass because an EE is about to arrive to drag you for not just using a 555 timer in your projects.

I know from an electrical engineer that with microcontrollers having become that cheap, it can often be cheaper to use a massively produced microcontroller instead of a 555 despite the former often being insanely overpowered for the task at hand.

Oh, cool! A summons!

Hey, nerds! Do some real hacking and program with solder and a 555 timer!

Regards, The EE who showed up to drag you all

I am not an EE, but I've done a missing-pluse detector both with a 555 and with an 8-bit micro. Both solutions were great. I sure as heck wouldn't use an Rpi for it though.
> novices should just learn embedded programming

For people that think this is a significant barrier, I'd suggest to take a look at MicroPython (on something like a ESP32 or RP2040 -- there's no reason to bother with the classic 8-bit Arduinos anymore). It gives you an environment that's surprisingly similar to what you'd use on a Pi.

I've done embedded programming, but I just don't enjoy it. It's far too in the weeds for the type of simple tasks I want to do around my house. Every time I start with Arduino, I realize that I'm simply not having fun.

Raspberry pie lets me work at a higher level that I actually find enjoyable.

Totally respect this. Especially for "household" things.

There's an alternate timeline where CPUs are really hard to make, so every SOC 'wasted' on a curtain-opener or a glorified doorbell deprives someone who badly needs a general-purpose computer and can't afford one. But in our timeline, every day probably a million perfectly good "computers" (cell phones, desktops, smart speakers, etc) get tossed in e-waste anyway, so it's not a sin to use an overkill computer for a task. (Ironically of course the Pi itself is in a shortage but... :shrug:)

EE here: micros are cheaper than 555s and discrete lol. Not many bother with them when we can toss a micro in for pennies. I agree with the sentiment tho that this whole argument sounds like when programmers bash others for not using REAL programming languages like C! Python is overkill why don’t you write this in assembly!?
From a professional perspective, I have a general annoyance towards raspi or embedded linux more generally. I have been part of multiple projects where there was a push towards prototyping/initial release on Pis and SOMs when a simple MCU was all that was required. It enabled a metric ton of bloat that made debugging the system a nightmare and made it impossible to easily port the software to a simpler hardware setup. Software grows to fit the available hardware.
> I typically see two kinds of raspi hate, and only one of them is reasonable imo. The first is stuff like this article, where you can probably get something better than a raspi these days for about the same price (especially when you consider scalper pricing) or just run a docker image in a server you can make with an old computer. This is very good advice, especially now that getting a raspi at MSRP is borderline impossible.

This bit was always the head scratcher to me. I've never owned or worked with a pi, simply because I have an old SFF PC that is many times more powerful. I remember reading stuff here on HN about people building k8s clusters and similar things on raspis... why would you do this to yourself? Just virtualize on the junky old PC if you really want to have multiple "nodes" of some sort.

I get there are use cases where "put a small slow computer in a physical location" is what you actually want, but it feels like raspi gets jammed into a lot of uses which don't make much sense. Just because you can doesn't mean you should...

> why would you do this to yourself? Just virtualize on the junky old PC if you really want to have multiple "nodes" of some sort.

An RPI uses as much power as charging a phone. Your old junk PC probably uses an order of magnitude more, and most people don't need the extra CPU power. Why waste electricity? I bought all of mine at MSRP, and at that price its likely covered by the savings on power quickly.

That said, I've also used a few "thin client" PCs to build a cluster when I got the space. As much as I've wanted it, I can't convince the better half to let me install a full server rack in our guest bedroom (or pay for electricity).

On top of all this, it's small, so it can fit anywhere. I ran a few hanging with zipties under the bed frame in my dorm room years ago. My first apartment was 400sqft - I threw out my "server" PC I built and used a few Pis. When not in use they fit in a shoebox or drawer, so it's easy to have extras.

I suppose it depends on your background and goals. Most non-techies I've worked with find it easier to learn Arduino than an entire Linux stack.

On the other-hand, if you have existing software that you want to move over to a small system, then a platform with a widely supported OS is going to be easier.

I think "hate" is a strong term but I know what you are trying to say. Articles like this suggest that too many people think the Pi is the only tool we have in our toolbox. Truth be told, we have a lot of tools and should use them appropriately.
> server you can make with an old computer

Power consumption inefficiencies often make this a very poor choice (for same workload than can be done on low-wattage rpi or similar).

I hate PI because its hardware is just junk. Cheap low end stuff designed for consumer electronics like TVs!

Devops like to use Intel NIC, ECC memory only. But somehow Pi junk gets pass because it is "open-source" or what.

Great, we will run this mission critical deployment from cheap SD CARD!!!!!

The funny thing about hardware and non-nerds/non-EEs/etc. is that most people don't care if the components are "junk". They care if they can make their project work on it. They care how much time it takes from beginning to end. They care how easy it is to get help when something doesn't make sense.

It's small, it's inexpensive, it gets the job done.

It does not get the job done.

Last problem I had with Pi: my keyboard did not work for some reason. Guess what, Pi has shitty USB 1.1 implementation (USB 2.0 is different stack), on top of that it does not give enough power to connected devices. With normal computers I had similar problems in 2003!!!

For serious use it is like Gentoo. You have to learn about its boot process, how it bootstraps from video memory.... Or how USBC power delivery is not really important (remember Pi4 initial batches?)...

It only makes sense if you are deploying embedded devices on midscale (~100 devices). For hobby projects it is a nonse. You have to learn completely new HW platform just to read sensor data...? Haha

Your arguments are almost identical to the ones greybeard embedded devs have against the Arduino. Yeah, it's expensive, uses an outdated micro (at least the AVR-based Arduinos), but it's effective because of its popularity. Basically a flywheel effect. Doesn't have to be good or optimal, just has to be flexible and have a big community.

I doubt anyone is using an off the shelf Pi with SD card for an actual safety critical deployment and expect to get it certified. There are options like the Revolution Pi which is half PLC and uses the Pi's Broadcom SOC for non-safety calculations. Some even support CODESYS.

I agree that most ARM embedded Linux SOC's can be absolute dumpster fires when it comes to peripheral documentation and poorly maintained device trees (looking at you, Texas Instruments!!!) but that's nothing new in embedded dev. Learning how each manufacturer/platform do hardware peripherals is half the battle.

So I agree that the pi isn't always the best device for an application. Cost and power savings on an ESP32, better processing on your old laptop-turned-server, and so on. But the Pi does have excellent documentation, and was lucky enough to gain enough traction to create an ecosystem that reduces friction to just get something running for beginners, which is literally its original design intention.

I once encountered a hydroponic nutrient dosing system that was, no shit, a RPi 3+ with a custom HAT for the electrochemistry and actuation. These were sold to businesses running container farms and the like.

At the end of the day, it seemed like the manufacturer had the (good) idea to automate the dosing, but thought that all the standard industrial automation tactics (PLCs, ladder logic, HMIs, etc) were somehow overkill for the application.

Which meant that the end users had to write all the software to make it work with a standard industrial automation system anyway. It was super annoying.

Every rpi (ever?) has supported the 100mA USB 1.1 output limit. All except one have additionally supported the 2.0 500mA limit, and most of those support 1000/1200mA with a boot config parameter at most, assuming your power supply is adequate.

I'm sorry you had issues, but these are just normal embedded systems problems. I totally get if that's not what you want to deal with, but you should really consider a different platform like a NUC.

Sure, running off the SD card sucks, but "flash the card on another computer, boot straight to your installed OS" is the nicest OS installation experience I've ever had.
And it gives users an easy way to set up an SSH key and wifi configuration as well
if anything you're doing can be described as mission critical there was never a real argument for using raspberry pi unless there's no consequences to losing the mission, in which case what does mission critical really mean?