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)
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.
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.
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.
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?
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.
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 ..
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.
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.
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.
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]
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)
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...
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.
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.
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.
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.
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.
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.
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.
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.
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)
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.
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.
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.
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?
I dream of an open board like the yubikey nano. This is very nice!
If you are talking about USB-A Nanos, there is https://tomu.im/, which is very nice and interesting.
I’m very familiar, we made Somu :) I meant USB-C.
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.
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 ..
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.
https://tomu.im/somu.html
This is an stm32l432kc in the form of a yubikey nano.
Very cool, but what about the $ to manufacture? Things get exponentially(?) harder the smaller it is, especially for custom boards.
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.
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
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
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)
Very nice. I am wondering -- why have a devboard this small?
...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...
That's it, I'm going back to parallel port cables for everything now.
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!
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.
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.
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?
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.
> 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
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.
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.
It isn't necessarily smaller. See https://github.com/PegorK/f32
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.
> 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.
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.
Why not usb c male?
Or one of these: https://github.com/AnasMalas/pcb-edge-usb-c
That's not a plug. To be precise, that's the opposite of a plug xD
That thing is sexxxy. Very nice board, beautiful documentation.