hex4def6 3 days ago

At a certain point, if you're going for "smallest", it's a bit of a cheat not to include Z-height, especially if you're relying on a vertical micro-USB connector in your design.

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.

  • Eisenstein a day ago

    A lot of people like .1 headers because they can prototype with them using through-hole components and breadboards.

BMc2020 a day ago

OP, are there any parts on the bottom? The side picture has the headers hiding the bottom. Going by the schematic it looks like U3 is on the bottom.

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.

eternityforest 3 days ago

It's really cool, but MicroUSB is a terrible connector.

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.

  • TaylorAlexander a day ago

    Also it’s an Attiny which just isn’t a very good processor. It has 2k of ram. Compare that to my favorite microcontroller, the 32 bit RP2040, which has 264k of ram!

    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

    • bombela a day ago

      On an attiny14a, with 128B of RAM, I had no problem implementing a 433MHz radio remote decoder, controlling 13 LEDs (via a shift register), a digital pot, a rotary encoder, and one button. With the ability to clear and record new remotes in EPROM.

      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).

      • TaylorAlexander a day ago

        Sure. And Pong was implemented in pure logic circuits with no CPU at all. Your comment takes up 530 bytes.

        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.

        • Eisenstein a day ago

          Some people sail for fun. Same with circuit design.

          • TaylorAlexander 15 hours ago

            Totally. I absolutely see that the person who designed this little board was having fun. I’m in no way criticizing them for doing that. Actually I think it’s a neat project. I just wanted to add a warning to this thread in case any beginners saw this who are used to working with other modern chips. It might not be obvious to beginners who might not think to check the CPU specs.

    • Rinzler89 a day ago

      >Attiny which just isn’t a very good processor. It has 2k of ram

      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.

      • TaylorAlexander a day ago

        Your commercial heater has code written by a professional engineer who understands the limitations of that system. I’ve been writing embedded systems code for 25 years, and I’m well aware of what can be done by an informed engineer with a limited system.

        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.

        • bombela 20 hours ago

          > someone wants to run a rainbow pattern on an LED strip > I hope they don’t try to control a light strip with more than 83 LEDs on it! That would consume all the RAM

          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?

          • jonp888 17 hours ago

            The way these things work(so far as I know) is that for the data to be passed along the chain the gap between transmissions can't be greater than 50 microseconds.

            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.

            • TaylorAlexander 15 hours ago

              That’s right. I’m really thinking of beginners, and as you say all the existing libraries I’m familiar with store the string state in RAM.

          • TaylorAlexander 15 hours ago

            > Why do you need to store the pattern in RAM at all?

            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.

            • bombela 11 hours ago

              Thank you for the clarification.

        • dghlsakjg a day ago

          You’re not wrong, but the point of this exercise seems to be to produce an arduino uno clone in dip package the same size as the chip on the original arduino.

          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.

        • jdndndjs 18 hours ago

          I don't get why you would need more RAM for more LEDs? Isn't the data shifted out one by one?

          • TaylorAlexander 15 hours ago

            My word of warning was for beginners. All these seasoned experts are coming in here to explain to me how they would be perfectly capable of using 2k of ram effectively. But that’s not the case for beginners. The most popular libraries for driving all these LEDs store the state of the full chain on RAM. Not strictly required but it makes working with the LED strips much easier. And most devices have plenty of RAM to support this…

    • dandelany 16 hours ago

      There is at least one area where ATtiny still outcompetes RP2040: low power consumption. Even in its lowest-power dormant state, 2040 still burns around 200uA, whereas the ATTiny can sleep on only a handful of uA or less. Even during active use, an ATtiny with low voltage supply and low frequency clock can often do what you need with an order of magnitude or two less power than a 2040. So for a hobbyist project to build a battery-powered device with long lifetime, it’s hard to beat the ATtiny. Otherwise I completely agree!

      • TaylorAlexander 13 hours ago

        Yes that’s a good point! I’m designing some RP2040 based LED earrings and the static power consumption is significant for sure. I’ve designed them so that when you place them next to a magnet, an ultra low power consumption magnetic switch completely cuts off battery power, but when they are on and in use that static draw hurts.

    • pjmlp a day ago

      264k of RAM is really a lot.

      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.

      • TaylorAlexander a day ago

        Yes! Modern systems are amazing. And with so much memory available on chips like the RP2040 and ESP32, people are writing their open source libraries to take advantage of that memory. I pity the poor newbie that wants to control a WS2812 LED string with this thing and finds out that just importing the library consumes all the ram (possibly) before the code has even done anything.

    • prox a day ago

      What are actually the use cases, is it for hobby or do you use in commercial work?

      • TaylorAlexander a day ago

        For the RP2040? It’s absolutely suitable for commercial work with the caveat that it lacks any security features to hide your code from users.

        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

        • prox a day ago

          That is really cool! I love that people are actively working on these devices. It’s a field that doesn’t get that much attention.

  • lemonlime0x3C33 a day ago

    I have stopped using MicroUSB in my designs because without fail at some point I rip the thing off the board -_-

    normally only occurs while aggressively debugging

omneity 19 hours ago

I like that the usb connector is vertical. I always found it more challenging than necessary to plug and unplug the cable when using a breadboard as its hard to get a grip on the cable and forces me to put the board on the breadboard's edges.

jimbobthrowawy 4 days ago

Cool as hell. It's kind of a shame the pins live in different places, so you can't put the board into the DIP slot on an actual uno. Not that there'd be a serious reason to do that.

jsnsisjw 4 days ago

I don't get this, you use a dev board for ease of access. If you need a tiny footprint, just place the chip on your board O_o

  • bombela a day ago

    For many small one off projects, you don't need enough ancillary components to require a dedicated PCB. Merely soldering a few pins to some buttons, LEDs, perhaps a ready made relay module etc.

    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.

  • g15jv2dp a day ago

    It's a fun challenge to miniaturize stuff. Not everything needs to be the most 100% uber efficient choice.

  • Already__Taken 4 days ago

    there's a lot of applications where standard is more useful than custom, so size is a feature. costumes for example.

    • Kirby64 4 days ago

      I'd think for custom MCUs integrated into something like costumes (or jewlery), that you'd look for smaller sizing. No need for a 'DIP' style package. You go castellated designs, or something where you solder wires to the pins directly. Much more compact.

      Saves you the time of doing PCB design, but still off-the-shelf enough.

  • ssl-3 4 days ago

    It may seem irrational, but it's a bit of a leap to go from blinking an LED on a breadboard with an Arduino to blinking an LED with an ATtiny3217 (or whatever) soldered onto a custom PCB.

    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?

    • Panzer04 a day ago

      It's not that hard? You just need a programming header at this point.

      Do the Dev with a full size board, then get whoever your PCB mfg is to P&P the real chips for cents.

  • Eisenstein a day ago

    You can put this in a breadboard though.

    • xxs a day ago

      ...and use the vertical USB plug. Weird.

      • squarefoot a day ago

        Yes, that is my main concern; an attached cable will put a lot of force on the pads and underlying tracks. I would consider sandwiching a small board with a plain horizontal connector soldered in.

      • shultays a day ago

        Honestly sounds like it would do better than a horizontal one. It is always a struggle to plug usb to boards on breadboard

Applejinx a day ago

I love it. I've got multiple 'Radio Music/Chord Organ' Eurorack modules, which use a Teensy 3.2 to generate audio such as playing files from an SD card, or generating tones to be an oscillator. This (now-obsolete) Teensy has an onboard 12-bit DAC, which is used for the audio.

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).