PCB devboard the size of a USB-C plug

(github.com)

246 points | by zachlatta 2 days ago ago

64 comments

  • zachlatta 5 hours ago

    This project was made by a teenager in https://blueprint.hackclub.com, a nonprofit program I'm helping run that helps teenagers learn PCB design and get up to $400 USD in funding to prototype and manufacture their designs!

    We just launched https://stasis.hackclub.com, another similar electronics program.

    If you know any teens that want to get into PCB design, please encourage them to join Hack Club and these programs!

  • proee 3 hours ago

    Just be aware of dorking around with exposed hardware connected to your $2K MBP. If you end up shorting out your DIY circuit, or have external power supplies connected to your dev board, it's very possible you can fry your laptop.

    Best practice is to have a completely opto-isolated USB connection between your dev system and test hardware. You can buy a USB opto-isolated system for like $100 that will tell you downstream currents and isolate your hardware.

    • bxbdbehdbdb 2 hours ago

      I have to second this. Multiple Mainboards in my company were fried before mandatory opt isolation of USB fixed the issue

  • stephen_g 15 hours ago

    Title is inaccurate, it's really designed to be about the size of a USB-C receptacle , the plug is the other side (in this case the part of the cable that plugs in to this board)

  • amelius 10 hours ago

    Does anyone here know the reason why Pcbway stopped accepting credit cards? My colleague asked them but I recall there wasn't a clear answer. It is puzzling why they would make it harder to do business with them from outside China. Jlcpcb doesn't have this problem.

    • auxym 5 hours ago

      They had stopped for a while because they were transitioning away from using Paypal as a processor. A few weeks, maybe a month or so tops? I had to switch to JLC PCB for an order back in January, because they didn't support any viable payment method for me in Canada (tried to make a payoneer account, they don't do business in Canada).

      But I just checked and it seems that they now accept CCs again.

    • bArray 8 hours ago

      It was either PCBWay or JLCPCB, but they had a "review window" where it was possible to make changes or cancel an order. They recently switched this to be an automated review, so there was no opportunity for corrections. It could be that the card companies blacklisted them after people started cancelling orders with their credit cards, because their UI stopped supporting the feature.

      • Liftyee 7 hours ago

        Ordered from JLC a few weeks ago, their "review" is still manual. You can select a "confirm production file" option to get a second chance too.

  • alnwlsn 2 hours ago

    I don't think it's smaller, but you can also drop the USB connector and just order the right thickness of PCB:

    https://github.com/AnasMalas/pcb-edge-usb-c

    • ajb 2 hours ago

      True, but in this case you'd need to make the PCB larger as you can't put any components on the part the USB plug will attach to (unlike the case with USB-A, where the contacts are only on one side. Nevertheless, this is worth considering if your goal is cost reduction rather than size reduction.

  • Lwrless 13 hours ago

    I recently got my hands on an M5Stack NanoC6 (https://docs.m5stack.com/en/core/M5NanoC6), it's also quite small and I'm pretty happy with it. It has onboard IR and a Grove connector, good enough for IoT projects at home.

  • pedro_caetano 9 hours ago

    Question for the people who have used the CH32V003 or more generally WCH, either for hobby or production, what is the current state of documentation and toolchain for these chips? Positive experiences, war stories?

    • rgoulter 6 hours ago

      I've used CH32X035 (which is practically CH32V00x plus USB and some other things) at the hobbyist level (no-frills keyboard PCB designs).

      The impression I get of WCH and their CH32 line is it ... draws heavy inspiration from STM32.

      WCH provide English translated datasheets and reference manuals. They're fine.

      Their own recommended toolchain is a fork of GCC. But as far as I can tell, they haven't shared their changes anywhere. The specifics of the changes they've made are a bit beyond my understanding, though.

      With the open source distributions of GCC toolchains work just fine. I've built Rust crates as firmware libraries for them.

      That the CH32X035 is very simple to design for (& low cost) means I'd rather make use of it for hobbyist keyboard PCB designs compared to the RP2040.

    • kpcyrd 5 hours ago

      Running Rust on them worked well for me: https://github.com/kpcyrd/ch32v003-demo

      I had to put in more effort regarding RAM use and flash size, but I managed to fit a game into the 16kb limit regardless: https://github.com/kpcyrd/game-streetcat2026

  • cbm-vic-20 6 hours ago

    TIL about "Charlieplexing", or how to use a reduced set of pins to drive a matrixed set of LEDs.

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

    • jacquesm 5 hours ago

      That's going to be funny when you try to make a photograph on a short shutter time. Half the display will be off!

      • Liftyee 5 hours ago

        True, but doesn't this apply to regular matrixed displays as well?

      • mmastrac 3 hours ago

        A significant number of consumer electronic devices (especially reduced-cost ones) already do this. I have yet to see an alarm clock that isn't at least matrixed...

  • ecesena 13 hours ago

    I dream of an open board like the yubikey nano. This is very nice!

    • PennRobotics 4 hours ago

      A founder I know is making reduced-pin Arm-based prototyping modules: https://www.bergsonne.io/

      They're seriously tiny; basically answering the question, "What if mechatronic prototypes didn't need to be the size of an Altoids tin?"

      • bxbdbehdbdb 2 hours ago

        While this looks novel, I don't quite get the expected usage pattern? Those boards don't seem any more easy to solder to than the chip itself

    • antoinealb 12 hours ago

      If you are talking about USB-A Nanos, there is https://tomu.im/, which is very nice and interesting.

      • ecesena 11 hours ago

        I’m very familiar, we made Somu :) I meant USB-C.

  • tl2do 18 hours ago

    I'm interested in this too. I've been using STM32 NUCLEO boards, which are cheap and capable, but even the smallest ones are noticeably larger than this. I'd love to see an STM32 version of this project.

  • george_max 17 hours ago

    Very nice. I am wondering -- why have a devboard this small?

    • rolph 17 hours ago

      ...trust me this is the best USB cord ever try it out for free, ill sell you some cheap if you get a couple friends to buy some.

      https://shop.hak5.org/products/omg-cable

      https://phreakboutique.com/blogs/tutorials/using-your-new-ev...

      thats how the grift starts...

      • rkagerer 17 hours ago

        That's it, I'm going back to parallel port cables for everything now.

        • jasongill 16 hours ago

          The parallel port (at least in it's later implementations) actually supports DMA - I'm sure that data exfiltration via the parallel port is hard, but probably not impossible...

          Nothing is safe, unfortunately!

          • toast0 15 hours ago

            The parallel port controller can DMA, that lets the driver tell the port hey, send this buffer out to the port and let me know or read this many bytes into this buffer and let me know. It's not peripheral controlled DMA like with firewire or PCI.

            You can absolutely exfiltrate data via the parallel port... that's why you attach printers or zip disks... it's just that it needs host participation.

          • throwup238 14 hours ago

            It’s almost certainly impossible on modern systems. The southbridge which allowed DMA to parallel port was absorbed into PCH and slowly stripped of legacy LCP support by chipset and motherboard manufacturers.

      • jacquesm 5 hours ago

        If I were an evil person I would start a cable shop where I sell all kinds of cables. And based on who the customer is I would send them a real cable or one with a nice and free to them surprise extra payload.

        Who is going to x-ray each and every cable they buy? And who keeps track of where they sourced what cable?

        • rolph 2 hours ago

          you should tender to NSA. less liability exposure, probably better revenue.

          there is an interception and controlled delivery often used to get at the big problems.

          you should never trust a "ground score" if your doing anything bad, it could be a controlled delivery.

          considering current events i speculate there may be an uptick in this type of security operation.

          https://www.schneier.com/blog/archives/2014/03/cottonmouth-i...

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

          • jacquesm an hour ago

            Fuck the NSA. I did start off with 'If I were an evil person'. If I were an even more evil person I would go to work for the NSA. But no worries, I'm not politically aligned with anything in the USA right now and saw the writing on the wall two decades ago.

  • chrisallick 18 hours ago

    This looks awesome, I'd love to get one. Question, what's the advantage over something like the ESP32C3 and the like? Just even smaller?

    • rkagerer 18 hours ago

      If it helps, I've used earlier Atmel AVR chips, as well as the ESP32-S3.

      8-bit AVR is an extremely clean, relatively simple instruction set that can be viably hand-coded. It's fairly straightforward to calculate the exact number of cycles your code will use, which is handy for applications requiring deterministic timing and for knowing worst-case execution time of interrupt handlers.

      If the C3 instruction set is anything like the S3, I'm willing to bet it's not as straightforward.

      Atmel also tends to do a better job of their documentation. I've lost count of how many confirmed errata I've reported to Espressif, and the time (and steam) I lost troubleshooting them in the first place.

      I like the S3, and it's heaps powerful, but for small projects that don't need advanced peripherals like Wifi, DMA, etc. I can envision that AVR as being a fine choice.

      • girvo 17 hours ago

        > If the C3 instruction set is anything like the S3, I'm willing to bet it's not as straightforward.

        Its not, not really anyway. The Xtensa LX7 in the S3 is very weird, though also quite fun to play with. The C3 is RISC-V

        • rkagerer 17 hours ago

          Thanks for correcting me. Are there any good, small "Hello World" examples of RISC-V programming with the C3 you can point me to? I'd love to get a sense of how it compares in practice.

      • claytongulick 13 hours ago

        I'll second this.

        Doing asm on the AVR is beautiful, you can count clock cycles easily and then observe them on the scope.

        I wrote a bit banging serial interface for an AVR once and had a mystery when I was testing it from a PC just with a basic echo. Every Nth character would be wrong. Was able to figure out a timing problem by counting clock cycles and found the bug in my code.

        Was cool to see it align with what I was seeing on my oscilloscope.

    • samhclark 17 hours ago

      It isn't necessarily smaller. See https://github.com/PegorK/f32

    • throwaway81523 18 hours ago

      It's a much less fancy cpu that's very small. No wireless. Lower powered I would expect. But it's an MCU with something like 16KB of flash and 2KB of ram if I remember right. The analog stuff on it is supposed to be pretty good. The Anduril flashlight firmware (toykeeper.net/anduril) is a somewhat popular application that can run on it.

      • tgsovlerkhgsel 17 hours ago

        > Lower powered I would expect

        With the right software, ESP32 can be incredibly low power. Like "months on 3xAA batteries" for watching a pin with the ultra low power subsystem and then occasionally waking up and making a HTTPS call over WiFi.

        • _flux 10 hours ago

          That's not lower power, is it? E.g. RuuviTags can run 3 years or longer while sending sensor data 2.5 times per second, with a single CR2477 (3V 1000mAh). A single AA alkaline battery has 1.5V and 2100-2700 mAh (https://batteryskills.com/aa-battery-comparison-chart/ , somehow this data was difficult to find so I'll add this link :)).

          Bluetooth is lower energy than WiFi, but in your scenario the energy used for the radio is quite low anyway.

          • tgsovlerkhgsel an hour ago

            There definitely are lower-powered options; I mostly meant that as an example that as an hobbyist, an ESP32 - possibly even on a standard dev board! - could easily be good enough for your use case.

            I never did a formal study to see how much of that power use was standby vs. power-on usage, how much of the standby usage was the ESP32 vs. the board/voltage regulators/pulldowns, how much of the power on usage was radio vs. e.g. all the crypto (we're doing asymmetric crypto for the TLS handshakes on batteries here, that isn't going to be cheap!) etc.

            I just slapped it together and found it good enough to not care further.

          • benterix 8 hours ago

            nRF52832 are famous for their low energy usage, it's hard to compete with them. However, ESP32 is much more universal.

            • _flux 3 hours ago

              Actually I've read claims that ESP32 C6s are pretty decent battery-consumption-wise. So much so that I bought a few, hoping to make at least a doorbell out of it. Alas I don't have a device to measure microampers, so I guess I'll just see how long they're fare..

              • BenjiWiebe 39 minutes ago

                You can use ohms law - let it draw power through a 10k resistor, and put your multimeter across the resistor. Every .01 volt is 1 uA. This also means that if you're powering it with 3.3v and it browns out at 3.0v, you'll only be able to draw 30uA before browning out.

                You can use a different resistor according to the power draw and how sensitive your volt meter is.

                You'll probably need to power it up with the resistor shorted, and only remove the short once it's in sleep mode, to measure the current.

        • ale42 6 hours ago

          This is just kind-of low-power. Some microcontrollers (e.g. PICs) can have sleep consumptions measured in nanoamperes. Months to years on a coin cell... just, they would need an external wifi module, which is highly inconvenient.

        • benterix 8 hours ago

          Do you have an example of such a setup handy?

          • tgsovlerkhgsel an hour ago

            No, it was an undocumented one-off using a random cheap devboard from Aliexpress (i.e. not some specifically optimized circuit!), built (IIRC) using the Arduino IDE - aside from spending the time to find and configure the low power mode properly, this was done in the dumbest, most naive way possible, and still worked.

    • girishso 7 hours ago

      If it had a female usb c connector at the other end, we could daisy chain those or connect other device on the same port (like mcu in the middle).

  • d0able 12 hours ago

    Very cool, but what about the $ to manufacture? Things get exponentially(?) harder the smaller it is, especially for custom boards.

    • FiniteIntegral 11 hours ago

      It's not that things get more expensive as they get smaller. As long as you're within reasonable tolerances it can be more cost effective. There is very little reason in a consumer-grade product, especially a devboard, to push any major fabs' tolerances. SMD components are grain-sized and you can make traces pretty thin.

      For example, this project is a 2-layer PCB. Those are bog standard. With this small of a footprint it can be printed on a single surface and cut out. The schematic they posted keeps everything on a single surface for print. This is also an operation any fab can easily perform. If you order from China, even cheaper (even accounting for duty cost + S&H).

      I'd be more concerned about the MCU and the components rather than the cost of a custom PCB.

    • gucci-on-fleek 11 hours ago

      Looks like it only has 6 discrete components [0], and the pinout on the MCU looks like a standard QFP [1] (and everything else is on larger pads), so I think that you should be able to manufacture this using standard production techniques/manufacturers. But I know hardly anything about hardware, so I may be completely wrong here.

      [0]: https://github.com/user-attachments/assets/0f7962d5-38e1-4bd...

      [1]: https://en.wikipedia.org/wiki/Quad_flat_package

      • Liftyee 5 hours ago

        Pedantic correction: it's a QFN (quad flat no-leads) package, as it doesn't have any legs. Agreed though, this is well within normal capabilities.

    • imtringued 9 hours ago

      This is backwards. PCBs get cheaper to produce the smaller they are, because PCB panels have a fixed size and you can put more PCBs on a single panel if they are smaller. Since you're repeating the same PCB over and over again, it means you're constantly placing the same parts over and over again, meaning that you need fewer reels, which means fewer machines and a shorter assembly line.

      The really expensive stuff is through hole components and bulk components (relays, connectors, etc) because they need separate machines (wave soldering, large pick and place).

      Placing small components is dirt cheap due to machines like SIPLACE SpeedStar. [0]

      [0] https://youtu.be/3joTYHRTcCs

      • rcxdude 8 hours ago

        There is a point where smaller isn't cheaper, because handling and overhead costs dominate and even get harder. (the same is true for fasteners, where they get cheaper as they get smaller, until the material cost is irrelevant and they start getting more fiddly the manufacture and handle)

  • luzionlighting 9 hours ago

    Miniaturization in electronics is getting impressive. In lighting hardware we see something similar with LED drivers and control systems becoming smaller while handling higher efficiency and thermal management requirements.

  • polalavik 17 hours ago

    Why not usb c male?

  • vdcjhhhcfdd 14 hours ago

    That's not a plug. To be precise, that's the opposite of a plug xD

  • aa-jv 8 hours ago

    This looks great - how viable would it be to use as a USB Audio class device, perhaps as a synthesizer or effects unit? It'd be simply amazing to be able to add audio/synthesis processing capabilities in such a form factor ..

  • motorducky 16 hours ago

    That thing is sexxxy. Very nice board, beautiful documentation.