Live data from Hacker News

The $8 Linux Computer

thelittleengineerthatcould.blogspot.com

71–80 of 166 posts

Re: The $8 Linux Computer

#71
post #11

> It looks like a microcontroller, but behaves like a UNIX machine. While a great achievement and very interesting article, the same can be said from many RTOS that offer POSIX compatibility.

The difference is that with RTOSes you typically link the application together with the OS, whereas with Linux you can dynamically load applications at run-time.

This is a big deal to me. What's stopping normal microcontroller platforms like Zephyr from providing dynamic loading of programs?

It'd be great for iteration to have a solid OS that cares about networking and updates and a an application layer you can move fast and break things with without risking soft-bricking your device.

I'm currently finding this with interpreted platforms like Espruino and Micropython, but don't understand at all why they have to be the only ones making this possible.

Re: The $8 Linux Computer

#72
Show me one with an integrated serial adapter and I'll buy it. I know how to generally program things via UART, but really would prefer not having to bother with it. It's not a great development experience.

Pine64 keep making these silly little mistakes limiting their products' appeal.

Re: The $8 Linux Computer

#73

I don't get it. We've had fully functional ARM based Linux boards in this form factor for a few years now, such as the Nano Pie Duo. So it's $15... https://wiki.friendlyelec.com/wiki/index.php/NanoPi_Duo

The interesting thing about this is that it's a RISC-V machine, at least for me. A few years ago RISC-V dev boards were much more expensive than their ARM counterparts, nowadays they still are but are getting closer in price parity.

Re: The $8 Linux Computer

#74
post #43

Does anyone know of cheap touch screens to hook up to this. I feel a lot of cheap computers are available by now but the expensive pieces are displays which would 100X the value of these boards.

If you are looking for a generic screen (likely without a bezel) take a look at Alibaba.

Re: The $8 Linux Computer

#75

Show me one with an integrated serial adapter and I'll buy it. I know how to generally program things via UART, but really would prefer not having to bother with it. It's not a great development experience. Pine64 keep making these silly little mistakes limiting their products' appeal.

Why not just get a serial adapter, or repurpose an Arduino as one?

Re: The $8 Linux Computer

#76

Earlier quoted context omitted.

The difference is that with RTOSes you typically link the application together with the OS, whereas with Linux you can dynamically load applications at run-time.

This is a big deal to me. What's stopping normal microcontroller platforms like Zephyr from providing dynamic loading of programs? It'd be great for iteration to have a solid OS that cares about networking and updates and a an application layer you can move fast and break things with without risking soft-bricking your device. I'm currently finding this with interpreted platforms like Espruino and Micropython, but don…

Where would you even load to program to and where from? Typical microcontroller platforms only have a few kB of ROM and RAM, you can't load your application to RAM to run it, it's directly run from Flash.

But the internal flash of a MCU can only be erased in pages that can range up to 4k or 8k depending on the platform. So that already limits how many free pages you might have that you could dedicate to an application.

What usually is done is to partition the flash into two areas, so you have two firmware slots. This allows you do do OTA updates: While you run from slot A you can write the new firmware to slot B, once you verified the firmware in slot B you set a flag that tell the bootloader to boot from slot B next time. (Oh and you need different firmware images for slot A and slot B as ROM addresses will be different and there is no address translations. Some bootloaders will avoid this always copying slot B to slot A if it's newer than slot A, but IMHO that's unnecessarily complex/inefficient. You might as well always generate both slot images and let the firmware decide which one to request).

Another question is, why would you even want to dynamically load applications? Those systems are not interactive, if you have some sensor monitoring the water level of your pot plant or the vibrations on some industrial equipment, it will only ever run that single application. It might get updates if it's doing some networking, but that will just be an update of the whole firmware.

Re: The $8 Linux Computer

#77

Earlier quoted context omitted.

Just as a semi-random example, NXP has the i.MX series[1] with one or more application-level cores alongside a microprocessor-level core. You can get something like the i.MX 8M Nano[2] with 4x Cortex-A53 and a single Cortex-M7. Another "big-player" option is ST which has the STM32MP1[3], which features a single Cortex-A7 alongside a Cortex-M4. [1]: https://www.nxp.com/products/processors-and-microcontrollers... [2]:…

NXP's software support for the heterogenous ARM cores is abysmal. I had to abandon an architecture on the iMX7 because their RPMSG drivers were simply broken. Documentation and examples were multiple-years old and their FAE support came down to "well, the examples work." Except they didn't. Perhaps it's better with the newer BSPs on the 8, but I wouldn't be too quick to jump back into it.

I haven't worked with 'bigger' (application processors running Linux) yet, but with the small MCUs I always stick to an Open Source toolchain/RTOS. Sometimes you have to write a driver yourself, but if you can integrate it upstream it's not in vain.

But I imagine that the larger SoCs are a more complex beast where getting everything to play nice with upstream Linux would be a greater challenge.

Re: The $8 Linux Computer

#78

Show me one with an integrated serial adapter and I'll buy it. I know how to generally program things via UART, but really would prefer not having to bother with it. It's not a great development experience. Pine64 keep making these silly little mistakes limiting their products' appeal.

Why not just get a serial adapter, or repurpose an Arduino as one?

I don't want to bother. Manually creating a serial connection means it's more effort to hook up and the whole thing is larger, more fragile and less portable than necessary.

Might just be me, but I value the ability to quickly get started without a lot of setup and debugging hardware before getting to the software aspect. I don't want to keep the thing fully set up on my desk, I'd like to put it in a bag and get it out whenever I feel like it.

The WiFi capability may make this easier after the initial setup, but it's still an unnecessary hurdle.

Re: The $8 Linux Computer

#79

Wasn't Pi Zero around $5 on release?

And didn't require a PhD in UART to get an OS running on it. Seriously, who the hell thought the process described in that blog makes any kind of practical sense at all. I mean the thing has two USB ports, TWO! And you can't use either, hahaha!

But don't worry, instead they connected the MIPI CSI to.. the USB-C connector?

Re: The $8 Linux Computer

#80

Earlier quoted context omitted.

Zigbee? My man, ESP32 boards get you 802.11 WiFi for like $5 these days. Zigbee is the kind of protocol designed for even simpler, more power efficient microcontrollers. Think closer to a $1 microcontroller instead. There is a reason we have lol WiFi light bulbs. The uC that powers the smarts are really cheap these days.

I think his point was something to sense zigbee? Would be nice to set it in your house and bridge your power meter, water meter, whatever, onto your wifi. Could have it incorporated into your budget app live. "huh, no dinner out this week, better turn down the heat!". And if anyone figures outbhow to use that NPU you could even do some inference to get some trends or something. Or even a classifier that could detect…

Hmm.

I dunno radios (skipped that class way back in college). I'm guessing that although 802.11 and Zigbee use 2.4 Ghz, you might need 2x radios physically tuned for the correct frequencies, and listening at the same time.

Looks like channel 1 802.11 is different than channel 15 Zigbee for instance, so bridging the two might need two different radios.

So you'd need a 802.11 radio + Zigbee Radio working as a team (even if ESP32 has enough CPU power to handle both, there are likely physical limitations to radio designs).

And I'm pretty sure that the radios use more power than the microcontroller in any case.

------

In any case, there seem to be many 802.11 to Zigbee bridges already available. So you should only attempt the project as a learning experience.

Post reply on HN