proj-oot-lowEndTargets-lowEndTargetsUnsorted5

two ppl suggested NXP (Freescale) for chips for major projects:

https://news.ycombinator.com/item?id=24800037

one of them suggested NXP's i.MX line.

a review of one of the cheaper I.MXs (NXP i.MX 6ULL and NXP i.MX 6ULZ) is here (see also the relevant section in Discussion):

https://jaycarlson.net/embedded-linux/#imx6

the conclusions about this part in the Discussion section are pretty good. Combined with the other recommendations on HN, i might try this part first, if i wanted to learn a lot of electronics. From the HN comments, longevity list is here:

https://www.nxp.com/products/product-information/product-longevity:PRDCT_LONGEVITY_HM

The NXP i.MX 6ULL has 15-year production (from 2016 Q4) and NXP i.MX 6ULZ has 10 year (from 2018 Q4). So they're both usable in major projects. The 6ULL is about $10 and the 6ULZ is about $7 (although the reviewer found it for $3).

The ULZ has:

64k of these would cost about 65536*7 = ~$450k. Assembled, i'm very blindly guessing that that's probably around the $2mil range i was getting earlier.

But maybe a better tactic would be to multiplex a number of threads on each one.

If 256 threads per, then:

---

"the ZX Spectrum had 16KB"

---

https://www.sparkfun.com/news/3422

Sparkfun ALC:

"Select your controller. Today, we offer five controllers: Artemis, SAMD51, ATmega328, ATtiny84 and ESP32"

https://m5stack.com/ ESP32 based

"Typically I use Cortex-M4's and Cortex-M7's, in part because I can stick 16MB of DDR on them pretty easily and for the application space that is important. "

---

https://interrupt.memfault.com/blog/the-best-and-worst-mcu-sdks

---

M1 chip:

https://www.anandtech.com/show/16226/apple-silicon-m1-a14-deep-dive/2


" What is an “Embedded System”?Definition of “embedded system” is arbitrary.What is meant here:•Small 16-bit or 32-bit CPU (e.g. ARM Cortex M0+)•RAM: 64 kB or less•ROM: 256 kB or less•Some network connectivity•No operating system (“bare metal”)•Strong constraints on size / power / thermal dissipation(CPU is feeble but this does not matter much.)

No memory management unit (MMU)•All RAM is accessible read/write (and exec in some architectures)•ROM (Flash) is all readable•No sandbox / isolation•No trapping of NULL pointer dereference•No ASLR•No? guard page for stack overflows•Recursive algorithms must be banned

No room for multiple or large stacks•Multiple concurrent processes must run•... but without locking the system•A typical C stack needs at least 1-2 kB, more realistically 4 kB•C tends to increase stack usage

" https://t1lang.github.io/NorthSec-20190516.pdf

" T0is a Forth-like language used to implement the handshake parser and the X.509 validation engine.•Compiled to threaded code•Uses two custom stacks (data & system stack) of limited size (128 bytes each)•Runs in a flat, small interpreter loop that can be stopped and restarted at will•Instructions are a single byte each (token threading)•Compiler is written in C# and performs some static analysis (maximum stack usage) "

--- keyboard

https://www.clockworkpi.com/

---

list of rpi-type things on frontpage of:

https://elinux.org/Main_Page

---

https://elinux.org/Main_Page

---

foss smartwatch:

https://www.pine64.org/pinetime/

uses SOC:

Nordic Semiconductor nRF52832

    64 MHz + Floating Point

" Versatile Bluetooth 5.2 SoC? supporting Bluetooth Low Energy, Bluetooth mesh and NFC "

"64 MHz ARM Cortex-M4F CPU" [2]

2k icache [3] [4] (icache for the flash)

512/256 KB Flash + 64/32 KB RAM

(but the full pinephone has 4 MB of User Storage, 0.5 MB of OS Storage)

GPIO: 32 configurable (but a whole bunch of other peripherals)

"The ARM® Cortex®-M4 processor with floating-point unit (FPU) has a 32-bit instruction set (Thumb®-2 technology) that implements a superset of 16 and 32-bit instructions to maximize code density and performance.

This processor implements several features that enable energy-efficient arithmetic and high-performance signal processing including:

    Digital signal processing (DSP) instructions
    Single-cycle multiply and accumulate (MAC) instructions
    Hardware divide
    8 and 16-bit single instruction multiple data (SIMD) instructions
    Single-precision floating-point unit (FPU)

The ARM Cortex Microcontroller Software Interface Standard (CMSIS) hardware abstraction layer for the ARM Cortex processor series is implemented and available for the M4 CPU.

Real-time execution is highly deterministic in thread mode, to and from sleep modes, and when handling events at configurable priority levels via the Nested Vectored Interrupt Controller (NVIC)." [5]

37 interrupts (vectors in NVIC) [6]

nRF52832 price is about $3-$4

while searching for it i happened upon a lower-end thing in the same product line:

" The main differences between the nRF52810 and the nRF52832 are the following

    NFC peripheral has been removed on the nRF52810
    Flash reduced from 256kB to 192kB and RAM reduced from 32kB to 24kB.
    Number of SPI/TWI Master peripherals reduced from 3 to 2 ( 1 x SPI Master or Slave + 1 x TWI Master or Slave)
    Number of PWM channels reduced from 12 to 4.
    I2S Peripheral has been removed.
    Low Power Comparator has been removed
    Number of 32-bit 16MHz Timers reduced from 5 to 3
    Number of 32.768kHz RTCs reduced from 3 to 2.
    The number of GPIOTE channels reduced from 8 to 4.
    FPU (Floating Point Unit) removed.
    Cache removed"

nRF52810 price is about $2-$3

---

looperhacks 6 hours ago [–]

Funny, I actually have an open Pinetime in front of me right now. I use it for my masters thesis and it's a really nice project. If you want to try out some embedded development (that you can actually show to friends who don't aren't developers), I think this is the perfect project.

reply

---

kken 5 hours ago [–]

Ok, just to make sure I understand this correctly.

Ok, sounds easy enough. It should be possible to just buy one of those smartwatches and crack them open? But OTOH the developer version is not much more expensive.

The main question is now: What software to run on it, that goes beyond a few experiments? Is there any kind of open source smartwatch OS that would run on this?

Edit: Corrected typo, of course I meant SWD interface, not SWM. (SWM or rather SWIM is for STM8)

reply

amar-laksh 3 hours ago [–]

There ya go: https://github.com/daniel-thompson/wasp-os

reply

wongarsu 2 hours ago [–]

There is also https://github.com/endian-albin/pinetime-hypnos

and the default https://github.com/JF002/Pinetime

My guess would be that Wasp-OS will become the beginner-friendly fully-featured option while Pinetime will be the more battery friendly option.

reply

---

deadw3ight 48 minutes ago [–]

After reading what others have said and feedback on PineTime? and what a good hackable watch should have, it seems like Pebble should resurrect from the grave as a hackable watch. I mean the pebble time had 128kb ram (this only has 64k ram), an color epaper display, 150mAh battery (over a week battery life), heart rate sensors, etc. Heck its even being supported by the open source community AFTER it was discontinued.

Maybe Fitbit can be petitioned to make the Pebble's hardware fully open source too.

reply

---

I have a pinetime and the form factor is great (until I lost the back plate, next one will be sealed). All the opensource activity around the watch is also great. The biggest drawback to me is only 64k of ram. Thats a Commodore64's worth of ram. The 240x240 screen is 57kbytes, it must have its own display ram.

Also NordicSemi? never seemed to be particularly opensource friendly. I'm hoping for a future RISCV edition of this watch with more ram.

reply

makomk 5 hours ago [–]

Apache have a fully open source Bluetooth LE stack for most of the Nordic Semi chips, in part because they actually documented their radio hardware unlike most other manufacturers.

reply

plasticchris 2 hours ago [–]

I think the linux foundation has one in zephyr as well.

reply

listic 5 hours ago [–]

Do you state that it has its own display RAM or doesn't it?

240x240 is ~56.25 kB at 8 bpp. the screen is RGB 65K colors, that is, 16 bpp; so the framebuffer size should be twice larger. I assume that the display controller has its own memory. True, you would need another 112,5 kB for double-buffering, but maybe you can do without it.

reply

deadw3ight 2 hours ago [–]

Color displays are great, but they should have had an option for a (color or black and white) e-paper display. More efficient for these purposes imo.

reply

lambda_obrien 1 hour ago [–]

I would pay so much for a hackable watch like this with a 3 or 4 color epaper display, I'd almost pay as much as an apple watch if it was high quality hardware and had a great open API and toolchain.

reply

deadw3ight 52 minutes ago [–]

Go on ebay and purchase a Pebble Time. Color epaper display, fully hackable even after being discontinued thanks to the dev community who continues to update it with "Rebble" the open source version of the OS it ran on.

reply

rch 1 hour ago [–]

I'd pay more than for mass produced consumer gear, from any manufacturer.

reply

---

deadw3ight 4 hours ago [–]

Yeah, the original Apple watch had like half a GB, and a raspberry pi zero ($5 price) has the same. Couldn't they have fit that within both budget and size?

reply

leoedin 4 hours ago [–]

It's a microcontroller rather than an application chip - so the amount of RAM will always be significantly less. A really beefy high end microcontroller might have 1MB of internal RAM - and for most applications that's more than enough.

reply

deadw3ight 4 hours ago [–]

Ohhhhh, I didn't realize that. Makes a lot more sense, I guess it is a better comparison to an Arduino than a raspberry pi.

reply

rubenbe 3 hours ago [–]

Slapping on a more RAM on the PCB is not free energy-wise. The watch only has a 180mAh battery that needs to provide power for an entire week.

reply

deadw3ight 2 hours ago [–]

I mentioned in another comment about how I had the Pebble watch (before Apple and Android watches were a thing) and it had 128 kb ram total, but it lasted 11 days. That thing was a beast, but as someone else mentioned cost is a. big consideration too. It had 150 mAh on the newer models, before it was discontinued, so while I'm sure it definitely eats up energy I think it's definitely possible to fit more RAM in the power constraints.

Granted that was an e-paper display. (They had color and black and white options)

reply

mschuster91 4 hours ago [–]

> Couldn't they have fit that within both budget and size?

Oh they could have. The problem is: it's extremely hard to get access to powerful SoCs? - the vendors simply won't work with you and most of the documentation is under NDA.

reply

deadw3ight 2 hours ago [–]

> it's extremely hard to get access to powerful SoCs? - the vendors simply won't work with you

That's a really good point. I remember having the Pebble watch (this was pre-Apple and Android watches) and I think it had 128 KB of RAM total, including OS, background tasks, apps, etc. That was a mass produced and commercialized item though.

reply

mschuster91 1 hour ago [–]

I've written about the other challenges in another post: https://news.ycombinator.com/item?id=25252022

reply

---

tannerbrockwell 5 hours ago [–]

See also the TTGO T-Watch-2020 which is based on an ESP32 processor.

[1]: https://www.tindie.com/products/ttgo/lilygor-ttgo-t-watch-20... [2]: https://github.com/Xinyuan-LilyGO/TTGO_TWatch_Library

reply

jmiskovic 4 hours ago [–]

Does it the watch have support for Lua? It's popular language around ESP32 but it's not mentioned on any product materials.

Is the size some standard? I would prefer some other belt but don't know how to search for it?

reply

StavrosK? 3 hours ago [–]

I've been using ESP8266es and ESP32s for years and Lua isn't really that popular. The original NodeMCU? did come with Lua, but I've never used it (I just flashed something else as soon as I got them) and I don't know of many people using it either.

I'd say that MicroPython? is more popular than Lua at this point.

reply

---

"FPGA dev board that's cheap, simple and supported by OSS toolchain (github.com/tinyvision-ai-inc)"

https://github.com/tinyvision-ai-inc/UPduino-v3.0

vrangan 3 hours ago [–]

I'm the author of the blog . Not trying to promote myself but since you posted, the v3 of the board is available on the tinyvision.ai and tindie stores. I discontinued v2 as it was a terrible design that I couldn't stand behind.

There are many reasons to learn about fpga's. Yes micros have their place as well and are very capable and cheap like the Nxp RT series.

reply

alfiedotwtf 1 hour ago [–]

What's the best place to start learning about FPGAs? I've been wanting to dip my toes in, but not sure where to begin.

reply

victor82 1 hour ago [–]

If you are already familiar with Python I could recommend start with this tutorial: https://github.com/RobertBaruch/nmigen-tutorial

reply

vrangan 9 minutes ago [–]

Also, icestudio (https://icestudio.io/) is a gentle way to get introduced with minimal knowledge to the verilog side of things. As others have posted, the learning curve for HW can be steep and development tools tend to be in the dark ages as compared to those for SW development. eg. you will spend a lot of time hitting your head on a wall with debugging HW if you arent careful to follow a process of linting and simulating your design well before going to HW.

nMigen is highly recommended.

reply

https://tinyvision.ai/collections/frontpage/products/upduino-v3-0 $24.00

" Lattice UltraPlus? ICE40UP5K FPGA with 5.3K LUTs, 1Mb SPRAM, 120Kb DPRAM, 8 Multipliers FTDI FT232H USB programmer 39 GPIO on 0.1” headers, 5V/3.3V/Ground to supply project DC power (<200mA) Dedicated 12MHz oscillator 8MB qSPI SPI Flash RGB LED PMOD compatible On-board 3.3V and 1.2V Regulators Open source schematic and layout using KiCAD? "

another description from https://github.com/tinyvision-ai-inc/UPduino-v3.0 : " Lattice UltraPlus? ICE40UP5K FPGA with 5.3K LUTs, 1Mb SPRAM, 120Kb DPRAM, 8 Multipliers FTDI FT232H USB to SPI Device ALL 32 FPGA GPIO on 0.1” headers 4MB SPI Flash RGB LED On board 3.3V and 1.2V Regulators, can supply 3.3V to your project Open source schematic and layout using KiCAD? design tools "

---

osamagirl69 4 hours ago [–]

I love the emphasis on breaking out all of the GPIO pins, it is incredible today how many dev boards either leave pins as not connected or hard wire them (no jumper to disable) to some onboad peripheral. Looking at you stm32 discovery boards...

reply

the__alchemist 4 hours ago [–]

The Discovery boards are a bit of a minefield over which pins you're allowed to use. It can cause surprising problems if you don't check the dev board manual's pin table, or don't know how to interpret it. Additionally, you need to plug the jumpers into the bottom of the board; it looks like you can use the top, but the jumpers tend to fall out!

The nucelo ones are even weirder. The pins aren't labeled on the board, and they're in a weird layout, with some male and others female.

reply

---

https://beaglev.seeed.cc/

https://www.sifive.com/cores/u74 says 32k icache + 32k dcache

https://news.ycombinator.com/item?id=25761469 interesting thread about other similar single-board computers for various purposes

---

RP2040

The new flexible $4 microcontroller board from Raspberry Pi

Raspberry Pi Pico is a tiny, fast, and versatile board built using RP2040, a brand new microcontroller chip designed by Raspberry Pi in the UK.

Designed by Raspberry Pi, RP2040 features a dual-core Arm Cortex-M0+ processor with 264KB internal RAM and support for up to 16MB of off-chip Flash.

" We’ve put together a whole book to help you get started with your new Raspberry Pi Pico. From installing MicroPython? to getting to grips with PIO, Get Started with MicroPython? on Raspberry Pi Pico is your essential guide. "

26 interrupts 26 external interrupt inputs, each with four levels of priority. Dedicated Non-Maskable Interrupt (NMI) input (which can be driven from any standard interrupt source)

Memory Protection Unit (MPU) features are:•Eight user-configurable memory regions.•Eight sub-region disables per region.•Execute never (XN) support.•Default memory map support.Further details available in Section 2.4.6

The Event RegisterThe? Event Register is a single bit register. When set, an Event Register indicates that an event has occurred, since theregister was last cleared, that might prevent the processor having to suspend operation on issuing a WFE instruction

.3.1. XIP CacheThe? cache is 16 kB, two way set-associative, 1 cycle hit. It is internal to the XIP subsystem, and only affects accesses toXIP flash, so software does not have to consider cache coherence, unless performing flash programming operations

 nousermane 1 day ago [–]

Great video. And thank you so much for your continuing work measuring power consumption!

So, this board takes 90mA in full-speed run mode. That's not better than Raspberry Pi Zero (despite pico having 2000 times less RAM, and 10-20 times slower CPU). So why would one use this over Zero? Am I missing something?

reply

coder543 1 day ago [–]

I think the major difference is that a microcontroller can rapidly enter and leave sleep mode, and will likely spend most of its time sleeping. The other Pi products do not support sleeping at all to my knowledge, which makes them an awful fit for battery powered devices.

A microcontroller like this should be able to sleep for microseconds at a time or possibly even less (but you can obviously sleep for long periods of time too), letting you spend the majority of every second asleep, just waking up for brief instants throughout the second (possibly thousands of times) to do work. This enables huge power savings over something like the Pi Zero.

You can also run the microcontroller at a lower clock speed to save more power, if you don't need to run at maximum speed to get things done.

I would be curious what process node this microcontroller is built on, because I completely understand why these numbers would be discouraging when the microcontroller is running at full tilt.

reply

pinewurst 1 day ago [–]

It's built on 40nm by Sony.

reply

PragmaticPulp? 1 day ago [–]

Generally, if you can get away without using a full Linux SoC? then it’s better to use a microcontroller platform like this.

Microcontrollers allow much lower system complexity, more predictable timing and real-time response times, and nearly instant boot times.

Virtually every USB port can supply at least 100mA, so for most applications there’s no difference between using 9mA or 90mA. That said, if you’re making a battery project you’ll almost certainly be able to stretch the microcontroller further. Micros generally have fantastic support for low power sleep modes.

reply

ramary 14 hours ago [–]

These are some really great points for when it can be better to use microcontrollers over microprocessors/applications processors. Agree that generally simpler is better, and microcontrollers are simpler than Linux SoCs? for many things (maybe not in getting from zero to main(), but after that).

I would add that it really depends on the problem you're trying to solve, though. Microcontrollers are disadvantaged compared to Linux SoCs? for many workloads other than low power and low latency (i.e. hard and soft realtime).

reply

throwaway81523 22 hours ago [–]

> 90mA in full-speed run mode.

Keep in mind that's at maybe 2 volts rather than 5 volts. Still, it's 360uA per MHz, counting the two 125MHz M0+ cores as 250MHz total. That's pretty power hungry compared to other Cortex M0+ products which tend to be in the 100uA/MHz range. I think the real product here is the RP2040 SOC and the Pico board is described as a breakout board for it. I like to think the RP2040 will find its way onto future RPi Linux boards, to give them some analog and realtime capabilities.

reply

gslin 5 hours ago [–]

It's 5V micro-USB mode according to "3.1.1 Popcorn" section in https://datasheets.raspberrypi.org/pico/pico_datasheet.pdf this datasheet.

reply

geerlingguy 1 day ago [–]

I got some hands-on time with the Pico and made a video for it [1], with a tiny project I decided to try out with MicroPython?.

It was the first time I'd ever tried MicroPython?, and I have to say I'm a huge fan. As a dev who came from PHP/Javascript into Java and Python (heh, not quite the same thing but that's how life was), I find MicroPython? a lot more intuitive than the Arduino language or raw C.

I also learned that Adafruit maintains their own flavor, CircuitPython? [2].

Definitely worth trying out if you haven't, and know any Python!

[1] https://www.youtube.com/watch?v=dUCgYXF01Do

[2] https://circuitpython.org

reply

---

nickt 1 day ago [–]

While it’s double your budget, perhaps the Clockwork Pi DevTerm? is worth a look?

https://www.clockworkpi.com/

reply

gangstead 1 day ago [–]

Not OP but this looks amazing. I'm very excited that this product exists.

reply

jascii 15 hours ago [–]

https://shop.pocketchip.co/

reply

robterrell 1 day ago [–]

I'm pretty pleased with the Lilygo products. Here one with a an ESP32, case, screen, and keyboard for $45:

https://www.tindie.com/products/ttgo/lilygor-ttgo-t-watch-ke...

reply

---

---

https://news.ycombinator.com/item?id=25856862

dheera 1 day ago [–]

Personally I really like the following boards for general projects:

They're both designed by the same dude. I'm not affiliated with them, I've just tried dozens of microcontroller boards and these two are easily the winners in my book for versatility in hobby projects.

These boards are absolutely jam-packed with features (capacitive touch sensing, RGB indicator LED, Li-Po battery management, ...) but moreover support Bluetooth and Wi-Fi. That's a major problem with the Pi Pico. You'll end up with a mess easily 2-3 times the physical size of the Pico to get Wi-Fi on it in the form of HAT-like boards, whereas the above microcontrollers have everything on-board.

By the way, CircuitPython? is for the most part a real pleasure to use. If you slap an Adafruit display on them, with about 4 lines of code you can have the Python interpreter's STDOUT go straight to the display. The boards also emulate a USB drive that exposes all the Python code so you can program them with literally zero additional software.

reply

test1235 1 day ago [–]

I've only just got started in electronics, and I have to say I find the range of options to be bewildering - what do you think of the Adafruit Feather, Teensy, or Arduino Nano?

(I think they're all comparable products ... apologies if not)

reply

incanus77 1 day ago [–]

As stated elsewhere, all are great. If you just want to get going with CircuitPython? on some hardware, I really recommend Adafruit’s CircuitPlayground? series[1]. They have things like LEDs, temp sensor, speaker, mic, gyro, buttons, switches, and touch-capacitive pads all in a tiny form factor which means you don’t have to get into breadboarding, soldering, or wiring anything up to do an amazing variety of things and get your feet wet.

[1] https://www.adafruit.com/index.php?main_page=category&cPath=...

reply

angst_ridden 1 day ago [–]

I haven't used all of these products. I have used several generations of Teensy for projects. I'm a big fan! They're powerful, well thought out, and inexpensive. Paul Stoffregen (creator of the Teensy products), is amazingly responsive to users. The only downsides (for some) is that you have to know C to program them. You can use the Arduino libraries if you want, which provides you with a lot of functionality with very little effort. If you have a specific project you'll be manufacturing, you won't want to use something like this. You'll want to design your own board that only has what you need. But for prototypes, small run, or one-off projects, it's hard to beat the power of a Teensy 4.

reply

geerlingguy 1 day ago [–]

FYI there are already new Feather and Nano versions in the works that will have the RP2040 chip!

reply

craftinator 1 day ago [–]

Nope, these are all pretty comparable. And from the beginner point of view, they're all similar. They can all be programmed using the Arduino IDE and language, and all except the Nano can also be loaded up with Circuit Python and programmed in scripts rather than binary.

They're all pretty simple to use, with good documentation. I would probably add an M5StickC? to this list, as they come as a nice modular package, with case and screen and a bunch of fun things for experimenting.

Since they can all be programmed using Arduino IDE, which has good documentation and forum support, you don't have to deal with a bunch of external toolchains and whatnot (though I would suggest VSCode with the PlatformIO? plugin as soon as you're comfortable with the programming side of things.)

Ordered most to least simple: Nano Feather M5StickC? Teensy

Ordered by most to least powerful: Teensy M5STICKC Feather Nano

Ordered by most to least peripherals: M5STICKC Teensy Feather Nano

Ordered by most to least reliable: Nano Teensy Feather M5STICKC

reply

tooltower 1 day ago [–]

What do you think of Wemos D1 in comparison? They also seem to have onboard WiFi? and Bluetooth, and support micropython.

I don't know too much about its battery management, though. The microusb port seems like a good thing?

reply

bxparks 1 day ago [–]

The D1 Mini is my favorite ESP8266 board right now. It has built-in WiFi? of course. It is physically smaller than a NodeMCU?, but still exposes enough GPIO pins to allow interesting peripherals. The built-in micro-USB connector and USB-Serial chip means that programming it is easy, it doesn't need a separate programmer like the ESP-01. Unlike the ESP-01, the D1 Mini exposes the GPIO16 pin (aka D0) which is required to wake the board from DEEP SLEEP. The ESP-01 requires a soldering hack to enable DEEP SLEEP.

The LDO voltage regulator on the D1 Mini is so good that in DEEP SLEEP mode, it consumes only about 200 microamps, so I use it directly in battery-operated applications. In comparison, the ESP-01 goes down to 40 microamps in DEEP SLEEP, so the overhead of the voltage regulator is only about 160 microamps. (Edit: Both of those numbers include the DHT-22 temperature sensor).

My outdoor temperature sensor uses a D1 Mini with 3 x AA NiMH? batteries feeding the voltage regulator, and it lasts 4 months. It wakes up for 5 seconds, every 15 minutes, reads the temperature and battery voltage, then transmits the info to an MQTT server. In theory, the ESP-01 (w/ soldering hack) would last 6 months on those batteries, but the difference isn't worth the extra hassle of an ESP-01 for me.

reply

dheera 1 day ago [–]

My biggest gripe about the NodeMCU? honestly is that it's almost impossible to find one without the headers pre-soldered. The D1 Mini and the other microcontrollers I recommended all can be bought without headers soldered.

Headers pre-soldered is a big dealbreaker for me. I almost exclusively use JST-EH connectors for personal projects in place of headers. They are 2.5mm spaced so they fit in 0.1" spaced pins, and are much more secure than headers and won't easily get pulled out and jumbled up.

reply

dheera 1 day ago [–]

I used a Wemos D1 ESP8266 in this project [0]. Plenty good for the project at hand. I heard they have an ESP32 version now?

For one-off personal projects I'd probably still reach for a TinyPICO? or FeatherS?2 though because of the additional features they have, and that they have a Discord server you can ask questions to, but if you're deploying a dozen of them in your garden and want to save money then yeah, the Wemos would probably be a good bet. Support and documentation is a little sparse though, in comparison.

[0] https://github.com/dheera/shadow-clock

reply

lostlogin 1 day ago [–]

A great thing about the ESP32 in my experience is the 5v out. 3.3v can often power things that claim to need 5v, but bad things happen, like reboots. Some claim to have had damage too, but that hadn’t been my experience.

reply

MrBuddyCasino? 1 day ago [–]

Oh wow, the TinyPICO? is awesome! Back when I was hacking on the ESP32, this form-factor was uncommon and very expensive (a single guy on Tindie sold them). How is the antenna performance? I'm suspicious of anything that doesn't have one of those Proant thingies.

EDIT it even has 4MB PSRAM! Very, very nice.

EDIT2 ok it does have a Proant antenna, and its 20$, so not that cheap. But ok for what you get I suppose.

reply

new_here 1 day ago [–]

Yeah, the TinyPICO? has everything you'd want for building your own IoT? device (e.g. a smart switch) but at $20 you might as well buy a pre-made device for the same price. If they could get the price down a bit more it could hit a real sweet spot. Still an awesome board though, kudos to them.

reply

dheera 1 day ago [–]

I haven't had any major issues with the antenna, although I've only really used it around my home Wi-Fi. It occasionally blips and I have some reconnection logic for that but overall it's been fine for indoor use. I have a DIY smart lock and DIY smart thermostat (that literally sit over the real lock and real thermostat -- I rent my apartment so I can't change those out) running off a TinyPICO? each and they've been doing fine as far as the Wi-Fi connection goes. They just run a HTTP server on my LAN and I can set the lock and thermostat states with a simple REST API. (I can't stand the complexities around interfacing with Google Home and Alexa ...)

I also used a TinyPICO?'s BLE interface to connect a phone with a motor driver for a mini telepresence robot [0] though a TinyPICO? was probably overkill for this use case. My thinking was really just future-proofing it in case I wanted to add more stuff to the robot.

BTW the Wi-Fi only seems to support 2.4 GHz. No 5Ghz.

[0] http://github.com/dheera/robot-tethys

reply

MrBuddyCasino? 1 day ago [–]

Yeah still waiting for a new chip that has at least as much SRAM, number of cores and clock frequency as the original ESP32, but with integrated USB and 5Ghz WiFi?. What Espressif have released so far are just cost-optimized variations.

reply

raminf 1 day ago [–]

One alternative with both 2.4/5GHz wifi+BLE is the RTL8720DN. More here: https://www.cnx-software.com/2020/01/17/realtek-rtl8720dn-du...

Until recently, the only devkit you could find was the Seeedstudio Wio Terminal. Just came across a devboard on AliExpress? for < $6. Looks interesting.

reply

MrBuddyCasino? 1 day ago [–]

I have briefly experimented with Mediatek and RTL wifi SoCs?, but found SDK and documentation severely lacking / buggy. What’s your experience?

reply

fomine3 1 day ago [–]

Is 5GHz matter for IoT? use case?

reply

miguelrochefort 1 day ago [–]

If anyone wants to play with MicroPython?, check out Wasp-OS for the PineTime? and the Colmi P8 smart watches (~$20). I've learned a lot about embedded development since I got them.

reply

jononor 1 day ago [–]

Whaat, I can get a <100 USD usable out-of-the-box that I can program in Python? Quite interesting!

reply

lostlogin 1 day ago [–]

The ESP32 and ESP8266 can use micropython. They are very inexpensive and are often sub US$5.

https://docs.micropython.org/en/latest/esp32/tutorial/intro....

https://docs.micropython.org/en/latest/esp8266/tutorial/intr...

reply

---

"In terms of career, I started as an embedded programmer – not as in “embedded Linux” but as in microcontrollers where 16KB of RAM was generous."

"How do you create small programs? I think the main thing is that you have to care about size, and most of us don’t think we have time for that. Apart from embedded development, there’s an entire programming subculture called the demoscene that cares about this. They have competitions for the smallest 4KB demos: who can pack the most graphical punch into 4096 bytes of executable. That’s smaller than many favicons! (Elevated and cdak are two of the highest-rated 4K demos.) Many demosceners go on to become game developers."

---

m4rtink 1 hour ago [–]

Scott Manley mentioned in one of his recent videos about Perserverance that they have an FPGA on board the rad hardened PPC main cpu can offload tasks to, such computer vision based navigation during landing.

Not sure what the long term plan is for that hardware - I guess they can just do stuff more slowly on the main CPU if it gets fried by radiation. Or maybe being an FPGA the can just isolate the radiation affected regions over time and use the rest ?

reply

reilly3000 32 minutes ago [–]

You got me curious and I found a product listing with a rather amazing explanation of what they're doing for radiation-proofing.

Radiation Performance

> RTG4 FPGAs are immune to radiation-induced changes in configuration, due to the robustness of the flash cells used to connect and configure logic resources and routing tracks. No background scrubbing or reconfiguration of the FPGA is needed in order to mitigate changes in configuration due to radiation effects. Data errors, due to radiation, are mitigated by hardwired SEU resistant flip-flops in the logic cells and in the mathblocks. Single Error Correct Double Error Detect (SECDED) protection is optional for the embedded SRAM (LSRAM and uSRAM) and the DDR memory controllers. This means that if a one-bit error is detected, it will be corrected. Errors of more than one bit are detected only and not corrected. SECDED error signals are brought to the FPGA fabric to allow the user to monitor the status of these protected internal memories.

https://www.microsemi.com/product-directory/rad-tolerant-fpg...

reply

--

reilly3000 9 hours ago [–]

Yep, that’s the same reason why it runs on a PowerPC?750 chip. They cost $200k+ for under 200Mhz on a 150-250 nm process, but can withstand up to 1,000,000 rads of radiation and function within extreme temperature ranges for decades. They have been proven to work in the harshest environments on prior missions, and the risk of an unproven processor is giant; a CPU failure could jeopardize the mission just as much as a crash landing. Design constrains are so very different when you shoot something 140M miles away!

reply

---

wongarsu 3 hours ago [–]

Ingenuity (the Mars helicopter) has a much more modern processor that isn't particularly radiation hardened, and instead just restarts within milliseconds on any fault (fast enough to recover if it happens in flight). If Ingenuity does well I wouldn't be surprised to see a similar design in a future rover.

reply

---

https://en.wikipedia.org/wiki/RAD750

The RAD750 is a radiation-hardened single board computer manufactured by BAE Systems Electronics, Intelligence & Support.[1] The successor of the RAD6000, the RAD750 is for use in high radiation environments experienced on board satellites and spacecraft.[2] The RAD750 was released in 2001, with the first units launched into space in 2005.[1][3]

...Deployment...Perseverance rover, launched 30 July 2020.[13]

L1 cache 32 KB instruction + 32 KB data

---

"The RTG4 family offers up to151,824 registers, which are hardened by design against radiation-induced single-event upsets (SEU" file:///tmp/mozilla_bshanks0/Microsemi_RTG4_FPGA_Datasheet.pdf

https://www.microsemi.com/product-directory/rad-tolerant-fpgas/3576-rtg4#documents https://www.microsemi.com/document-portal/doc_download/135193-rtg4-fpga-datasheet

file:///tmp/mozilla_bshanks0/90003294A.pdf "209 blocks of dual-port 24.5 Kbits SRAM (Large SRAM) with 250 MHz synchronous performance (512 × 36, 1Kbit × 18)"

file:///tmp/mozilla_bshanks0/RT_FPGA_Brochure_3_17_2020.pdf RTG4 150 KLE 5 Mbits SRAM

RT PolarFire? 481 KLE 33 Mbits SRAM LSRAM blocks (20 kb)1520 uSRAM blocks (64 × 12)4440 (64*12*4440/2^10 Total RAM (Mb)33 20*1520*2^10/2^20 = 29.6875 64*12*4440/2^20 = 3.2519531 so most of that RAM is the LSRAM (30 Mb), and the uSRAM is another 3 Mb. Each uSRAM element appears to have 64*12 bits, or 8*12=96 bytes. This is confirmed on the next page:

LSRAM (30 Mbits) μSRAM (3 Mbits) - Two-port memory with 64 words of 12-bits

sNVM 56 Kb - sNVM Content can initialize LSRAM and μSRAM

RTG4 Product Family LSRAM 24.5 kbit blocks (with ECC): 209 uSRAM 1.5 kbit blocks (with ECC: 210 Total SRAM Mbits: 5.2 uPROM Kbits: 374

RTAX-S/SL RTAX250S/SL RTAX1000S/SL RTAX2000S/SL RTAX4000S/SL Register (R-cells) Modules1,408 6,048 10,752 20,160 Embedded RAM/FIFO(without EDAC) (k = 1,024 bits)54k 162k 288k 540k

RTAX-DSP RTAX2000D/DL RTAX4000D/DL Register (R-cells) Modules 9,856 18,480 Embedded RAM/FIFO (without EDAC) (k=1,024 bits)288k540k

RT ProASIC?3 RT3PE600L RT3PE3000L VersaTiles? (D-flip-flops)13,824 75,264 RAM (k = 1,024 bits)108k 504k RAM Blocks (4,608 bits)24 112 FlashROM? (Kbits) 1 1

RTSX-SU RTSX32SU RTSX72SU SEU-Hardened Register Cells (D-Flip-Flops) Logic Module 1,080 2,012

---

cache lines "are typically 64, or 128 bytes long and aligned on 64-byte memory adresses.

"vector lane widths vary from 128 bits to 512 bits"

-- [7]

---

[8]

Casio fx-9750GII with SuperH? SH4 CPU:

nsxwolf 11 hours ago [–]

Doesn't this run on one of the CPUs Sega used in the Saturn or Dreamcast?

reply

whizzter 11 hours ago [–]

Same as in the Dreamcast yes, albeit the Casio seems to be clocked far lower (29mhz in Casio vs 200mhz for DC). Also the memory seems a bit anemic at 60ish-kb vs 16mb main for the DC (+8mb videomem and 2mb audiomem).

It was a fine CPU for the era with parallel instructions but also a fairly deep pipe compared to other contemporaries so it did best with a bit of hand tuning. (We worked on a DC game and Transform&Lighting loops needed hand optimizations iirc)

reply

xeeeeeeeeeeenu 8 hours ago [–]

>29mhz in Casio

It's extremely overclockable, though: http://pm.matrix.jp/ftune2e.html

reply

opencl 11 hours ago [–]

Not quite the same CPU but they're all based on the SuperH? ISA. The 32X and Saturn both had dual SH-2s, Dreamcast had an SH-4, and Casio uses SH-3 and SH-4. The Dreamcast SH-4 has an FPU but the Casio one doesn't.

reply

---

https://www.tinypico.com/ TinyPICO? is the world’s smallest, fully-featured ESP32 development board about $20

n4bz0r 2 days ago [–]

Besides the size, are there any practical advantages over ESP8266 NodeMCU? boards that you can buy on Aliexpress for $2.50? The specs are solid, but the price tag of $25 seems a bit excessive. I'm not big on microcontrollers, must be missing something.

reply

Rebelgecko 2 days ago [–]

In addition to the regular ESP32 benefits (BT, BTLE, dual core, etc), the TinyPICO? is REALLY small and has really good power consumption in deep sleep mode. A lot of the random Aliexpress boards have power consumption on the order of 10-100 milliamps in deep sleep. The TinyPico? is more like 20 microamps. Part of that is through higher quality parts (presumably better voltage regulator, battery controller, etc.). Part of that is through a more thoughtful design (instead of having to desolder an annoying always-on LED to reduce power consumption, you can just turn it off in code).

reply

reply

matt_trentini 2 days ago [–]

The ESP32 is vastly more powerful than the ESP8266. Dual core, each core is more powerful, it has BLE, more RAM, flash, GPIO - as well as a handful of other useful peripherals (RMT, PWM etc).

Now, the TinyPICO? is more expensive than some ESP32 boards but that's because it's been engineered well and is manufactured in Australia by a maker that goes out of his way to support his products.

reply

bbulkow 1 day ago [–]

Look, I have some tinopico boards and like them, but let's be honest. The made-by-espressif esp32 devkit boards are 11 bucks bought from Mauser or Digikey and they are perfectly fine boards from a quality perspective. It is really the $7 (Amazon) to $4 (AliExpress?) no name boards that get dodgy.

The benefit of the tinopico is build quality, physical size, more ram (4M instead of 1M if I remember), and battery life, and a three color led on the board instead of 1 color . For a small quantity home project where any of that matters, like a wearable, tinypico is good, if it is a plug in system where a centimeter doesn't matter, I chose espressif, who is the company who builds the chip and does the support (esp32.com) and open sources the dev environment.

In one project where we needed 100 controllers we ended up on esp8266. It was a few years ago ('19) when prices were a little higher. We bought them on AliExpress? and had a high failure rate (50 pct?) And still did ok because they were 2 bucks each. After throwing away the doa ones, they were perfectly reliable. Project success, and 25 buck parts would have blown budget.

reply

reply

colinza 1 day ago [–]

Three big difference:

reply

seonr 1 day ago [–]

Sorry, I don't mean to nitpick, but the Espressif Dev-Kit boards are 2.5 * bigger than the TinyPICO? (not 1 cm) and have no onboard battery management - something that most ESP32 users want - and no extra PSRAM. They also have no low current power paths so are terrible at deep sleep. But they are designed as reference boards, not as user facing project boards.

TinyPICO? has 4MB Flash and 4MB extra PSRAM on top of the 520k SRAM plus the rest.

reply

---

on the tinypico article:

mysterydip 2 days ago [–]

While I love all these "how small can we make an IoT? board," they're all outside my skillset to actually do something with. Is there a recommended more fully featured board to tinker/learn on?

reply

adbachman 2 days ago [–]

You could go with something like the Adafruit FunHouse?: https://www.adafruit.com/product/4985

WiFi?, lots of built in hardware (temp + humidity, light, microphone, buzzer, buttons, LEDs, etc), and CircuitPython? means you can program it with a USB cable and a plain old text editor.

More bucks than the "smallest ESP-whatever" dev board, but handy for learning.

reply

ChuckMcM? 2 days ago [–]

Can you help me understand this comment a bit better?

Here is what I see, a board that one solders header pins into that can then be plugged into a solderless breadboard where jumper wires are used to attach it to other interesting peripherals.

To me, this seems like the new preferred way of doing "Arduino" which no longer refers to a hardware standard so much as it is an integrated development environment connected to the device of through USB and programmed in a somewhat C++'ish dialect of a computer language.

Typical curriculum for learning is to use pre-existing "sketches" (programs) with pre-existing board or processor specific "libraries" to implement behaviors from the simple (blink an LED) to the complex.

An alternative curriculum/universe are the mBed boards which are supported by ARM (and are pretty much all ARM based boards rather than a variety of architectures like Arduino currently supports).

So my questions would be what are you trying to learn, and what constitutes "fully featured" in your mind?

In my experience some people use these kinds of setups to learn programming and some use them to learn embedded systems. The the programming aspect typically links together one or more assembled "break out" boards with a perihperal of interest and the programming learning is how to code something that combines that breakout boards library with some behavioral code to achieve some goal. Leaning embedded systems often involves actually building one's own "break out" board and writing the libraries that provide a programming API that can drive that board.

EDIT: As it turns out, the third method that these things are used is with a variant of Python which is nominally "Micropython" (official project), "CircuitPython?", the Adafruit variant, or "Ardupy", the Seeed Studio variant.

That makes programming things even simpler. You don't even need any software on your computer (just a terminal program to talk to the board).

So getting this from CrowdSupply? with the 'triple shield' and you're good to go.

So knowing what you want to learn, and what your level of investment is, helps give a better answer to the question.

reply

mysterydip 2 days ago [–]

I'm interested in low level programming, not electrical engineering. While I understand the logical stacks, registers, pins in and out, I'm not great at soldering. I can stick components on a breadboard, I don't have the knowledge of what resistors I need with an LED, etc. Basically I want to test sensors and motors without needing to lay out the physical circuit correctly or adding to troubleshooting. So either a development board of some kind, or a modular plug-in system.

reply

ChuckMcM? 2 days ago [–]

Cool! That is a great way to start.

If you look at the Crowdsupply page, for $32 + shipping you can get the Pico and a set of 'shields'. The interesting one for you would be the "Grove" shield.

"Grove" is a connector / pinout standard that was created and supported by Seeed Studio (see: https://www.mouser.com/new/seeed-studio/seeed-studio-grove/ for a video on the infrastructure and ideas behind Grove (also see the Seeed wiki here: https://www.mouser.com/new/seeed-studio/seeed-studio-grove/)

There are a LOT of different boards you can get with sensors and what not on Grove and programming them in Micropython is supported because that is what Seeed uses (calling it Ardupy).

You will have to solder the pins on the Pico and the Grove shield, but after that you can just plug them together with cables.

Grove typically uses either a GPIO (on/off), and analog I/O, or an I^2C per board. You will need to know enough about those to match up the boards with the right connector on the shield. And then its just programming.

One of the things I've used when I've helped people learn about this stuff is to use the Grove temperature and humidty sensor and the NodeD?1 (this is an early ESP8266 design that also runs micro python). A Python program that reads the sensor and then does an http GET on a web server with a CGI that records temperature and humidity. Control flow looks like this:

   while true:
     temp = read_temp()
     humid = read_humid()
     http.get("http://192.168.1.5/environment.cgi?t=" . temp . "?h=" . humid)
     sleep(10)

The same web server has a page that uses D3 to plot temperature and humidity over time. Very simple and easy to do.

(and yes you learn to read the temperature and humidity over i2c, and set the chip up to connect to the wifi hotspot)

reply

mysterydip 2 days ago [–]

Thanks so much for the detailed reply, I'll spend a while digesting it!

reply

noman-land 2 days ago [–]

This is my current favorite dev/project board. It has so much stuff. WiFi?, Bluetooth, LoRa?, and LTE! It also has pins for analog/digital I/O. This thing is incredible.

https://pycom.io/product/fipy/

Pycom also has various extension boards that plug right in with things like NFC/RFID, GPS, light/pressure/humidity sensors, etc.

Oh, and how could I forget to mention that it can run python directly on the microcontroller (micropython) so you don't need to know C to mess with it. And it does that thing where it mounts as a filesystem and you can just drag python files over to it and it'll automatically reboot into running them.

Highly recommend this little device.

reply

matt_trentini 2 days ago [–]

Just be aware that PyCom? chose to fork the MIT-licensed MicroPython? and re-licensed it with GPL.

As a MicroPython? contributor I can't/won't use PyCom?'s fork because any code I develop for it cannot be accepted upstream.

I do like their hardware, it's a shame they chose to make their software licensing incompatible.

reply

noman-land 8 hours ago [–]

Interesting. I did not know this. I'll look more into it. Thank you. I agree their hardware is awesome so I will look into alternative firmware if possible.

reply

nacs 2 days ago [–]

At $60+ per, that is a very expensive board unless you really need LTE built in.

reply

keithnz 2 days ago [–]

they have variants with different feature sets, that is one has all the toys.

reply

---

in https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf page 27 Table 1­2. Embedded Memory Address Mapping it looks like there is 64k of cache: "The capacity of Internal SRAM 0 is 192 KB. Hardware can be configured to use the first 64 KB to cache externalmemory access..The remaining 128 KB can always be read and written byeither CPU at addresses 0x4008_0000~0x4009_FFFF of instruction bus".

and in page 30 section 1.3.4 Cache, "As shown in Figure1-3, each of the two CPUs in ESP32 has 32 KB of cache for accessing external storage"

and on page3 31 1.3.5 Peripherals fig. 1-6 Peripheral Address Mapping, there is a 16k Cache MMU Table. Section 27.3.2.2External Memory page 605 seems to talk more about this.

so, in summary, yeah, the per-CPU cache is about 32k, similar to most other things.

---

what about gaming consoles, eg. nintendo switch, valve steam deck?

https://www.theverge.com/2021/7/15/22578917/valve-steam-deck-nintendo-switch-xbox-series-x-ps5-spec-comparison

at 4 CPU >Ghz cores, 16 GB RAM and >1 TFLOP GPU, they are not 'low end', at least not in the sense meant here

---

---