Other than that(And the fact that I only very rarely build anything without WiFi), it looks awesome.
Most applications can just use the larger board, but for the ones that can't, this would sure beat a custom PCB just for a one off.
Other than that(And the fact that I only very rarely build anything without WiFi), it looks awesome.
Most applications can just use the larger board, but for the ones that can't, this would sure beat a custom PCB just for a one off.
I used to use AVR and sometimes ATTiny processors (all 8 bit) but for the last ten years I’ve exclusively used 32 bit microcontrollers and lately it’s all the RP2040.
I think someone had some fun doing a small layout, but I’d really never recommend anyone use this thing. A Raspberry Pi Pico (which hosts the RP2040) is $5. That one still quite annoyingly uses Micro USB, but there’s plenty of clones that use USB-C which are also $5 each, such as this one: https://a.co/d/0d1foa5f
2k RAM is huge for what most people need do with a microcontroller: read sensor, read push-button/potentiometer, turn on LED, spin motor/servo.
The 20 year old gas heater at my parents place is run by one of those and that has a button/LED user interface and runs PID controllers and safety features. All that in 2k RAM.
It's not enough to run Doom on it it stuff like that but the amount of consumer election with them out there is proof they're not underpowered in any way.
But this isn’t about running doom. Any beginner that tries to use this system runs the risk of importing a library that carelessly consumes half their ram. If they want to use an I2C sensor with a specialized library, the random person on GitHub who wrote that library might not have optimized their code. If someone sees this board and wants to try it because it looks cute, it’s worth warning them that they’re buying a chip with a 20 year old architecture and extremely limited capabilities.
The flew astronauts to the moon on machines with hand wired magnetic RAM. But if you can get a modern architecture with 264k of RAM for $5, it’s worth warning people that they’re looking at something that is extremely limited compared to other options.
I also have some Twitter followers that seem to love micropython. You can’t even run micropython on attiny because of insufficient RAM. https://forum.micropython.org/viewtopic.php?t=9102
Or let’s say someone wants to run a rainbow pattern on an LED strip. Let’s say they’re using the SK6812 LEDs which are 21 bits per pixel. Let’s also say the rest of their code uses zero bytes of ram and the library is perfectly efficient. Well I hope they don’t try to control a light strip with more than 83 LEDs on it! That would consume all the RAM. If they get a high density LED strip with 244 LEDs per meter, then 83 LEDs represents a 34 centimeter long section of that strip. That’s 13 inches.
People do lots of things with microcontrollers these days, and RAM is cheap and plentiful on modern chips.
They aren’t trying to create something better or more capable, they are just making a riff/tribute of what is almost certainly the worlds most popular embedded learning tool.
Why do you need to store the pattern in RAM at all?
I would compute the next RGB and shift it out one LED at a time. Maybe you were thinking of using DMA for some async work?
Of course a skilled engineer could write a tight output loop that computes and outputs every value on the fly with a guarantee that the time budget won't be exceeded, but your average Arduino user probably doesn't have the knowledge to do this. So all the control libraries that I know allocate a memory buffer for the whole output stream and let the user update it whenever they want.
That’s how the popular libraries do it. Not strictly necessary but the whole point of my warning was to make sure any beginners who saw this understood that this board has serious limitations compared to other options.
Many C64, ZX Spectrum, Coupé folks would dream of having such an amount of memory available to them, the best they ever got was 128KB.
I think many don't imagine what is possible with such microcontrollers nowadays, and we don't even have to write in Assembly all the time, like back then. These aren't Z80 and 6502 CPUs.
I definitely didn't use near the whole 128B of RAM. I don't remember how much, because it wasn't ever an issue.
The difficult part was actually the 1024 instructions limit on the FLASH storage. It was written in Rust, which wasn't good with AVR at the time (it got better since then).
When tools like the RP2040 are available, using an ATTiny should be carefully considered. There’s many better options now, and I think this is worth pointing out to people who might not be aware of its limitations.
You can take a sailing ship across the ocean too but it’s cheaper and faster to fly.
I’m using it on the brushless motor controllers and CAN BUS nodes on our open source farming robot. I’m also using it on some LED controllers for fun, and really anything I want to build. I’m learning about switching power supplies so I’m designing a bidirectional buck/boost controller with discrete components and software control using the RP2040 as the switching controller.
Here’s my motor controller: https://github.com/Twisted-Fields/rp2040-motor-controller
normally only occurs while aggressively debugging