Nano DIP: the smallest complete Arduino board 33 x 10mm
avdweb.nl
avdweb.nl
45x18=810 vs 33x10=330, great. But If you're adding another 5mm z-height for a connector, the volume is now kind of significant.
Just think of the stack-up at this point: Motherboard + female socket (1.6mm + 5mm?) + daughterboard (1.6mm) + pins (5mm?) + vertical USB (5mm?). You're looking at something that's +/-18mm tall. Given that this whole design is basically just a way of attaching a 1mm tall IC to a design, that starts to feel a bit extreme if you care about size.
If you really care about a tiny board, and don't need the DIP compatibility (or removability), I feel like a castellated design that can be soldered down is more useful. Designs like the Piksey Atto (20x13 = 260, but also something like 5mm tall)
For me, the killer feature of not having the microcontroller soldered down is that you can flash something on a dev PC, and then insert it into the device.
But in that case, I like something like the tinyduino, which eschews .1 headers and uses a B2B connector. More of a pain to deal with, but you get the benefit of tiny size + low z-height + removable: https://tinycircuits.com/products/tinyduino-processor-board
Regardless, more options are always better. But it's also useful to really think about what your requirements really are.
https://wiki.seeedstudio.com/Seeeduino-XIAO/
20x17.5mm, ARM® Cortex®-M0+ 32bit 48MHz microcontroller(SAMD21G18) with 256KB Flash,32KB SRAM.
https://wiki.seeedstudio.com/xiao_esp32s3_getting_started/
21x17.5mm, Xtensa LX7 dual-core, 2.4GHz Wi-Fi, Bluetooth 5.0, On-chip 8M PSRAM & 8MB Flash.
The reason I was wondering is that without the headers it would be easy to solder it to another pcb like a module.
Very cool though, I hope it's a big hit.
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.
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.
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’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
I worked out how to pump up the sample rate to 300k and up, drastically reducing the aliasing for the simple tone generation. Works great: it's what expensive professional synths like the Novation Summit do.
I don't know how many of these will be made and out there before it too goes away, but as somebody who's spent a lot of time playing with perfboard and CMOS chips and soldering music synthesizers and processors together, but who is not up to the task of doing that within an SMD context, Nano DIP is an astonishing hybrid of those two worlds. .1 headers gets you into a world where all sorts of things can be made from parts. I've even got a bunch of DIP ATTinys, the much more primitive ones used in the Bastl Kastle, for the same reason, but while those would also fit into that world, this is far more capable and run at high sample rate the 8-bit output is more impressive than you'd think: aliasing turns into an odd sort of harmonic distortion at very high sample rate.
I hope this catches on, and I'm struggling not to just run off and buy a bunch of them even without a plan (when I haven't even used the Kastle-style ATTinys). As long as there are people with workshops full of vintage through-hole components and breadboards and perfboard etc. I hope there are projects like this that bridge the gap between that and the world of Arduino.
Imagine one of these with even better ADCs and a DAC that's natively 16 bit but able to clock up to silly rates when used on simple waveform generation (never mind that pulse and square waves need only be 1 bit, and sawtooth waves use only 1 bit for their characteristic part). You'd have a DIP 'chip' that would work like a really expensive analog Eurorack oscillator, available for hacking prototypes together. Heck, this is probably already there. I hope synth makers jump on this project. It seems hard to predict which Arduino-world things continue to be available (crude ATTinys) and which do not (Teensy 3.2 with the 12-bit DAC).
In this case, a perf board to hold everything together is more than sufficient.
I made my own bathroom fan speed controller that react to humidity level by cobbling together some ready made modules, a few wires, LEDs, an arduino board and some Rust.
It was much faster than making a dedicated PCB.
In case you are curious, the fan is hidden away in the attic for noise isolation. The humidity sensor and an indicator LED lives in the intake grill above the shower. Connected via a few meters of ethernet cable running along the air duct to the control box. The sensor communicates via i2c. The control box adjusts the fan speed with a triac.
Saves you the time of doing PCB design, but still off-the-shelf enough.
I mean: Why re-implement an Arduino (and potentially do it badly) on a custom board, when one can just install a DIP socket on some protoboard and plug a relatively small widget like this in -- retaining all of the features that were useful in the beginning of the development process?
Do the Dev with a full size board, then get whoever your PCB mfg is to P&P the real chips for cents.