An LCD, Touch Sensor, USB-C, And A Microcontroller For A Buck

[CNLohr] has been tinkering with some fun parts of late. He’d found out that ordinary LCD screens could be used as simple touch sensors, and he had to try it for himself. He ended up building a little doohickey that combined USB C, an LCD display, and a touch interface, all for under a buck. You can check out the video below.

The key to this build was the CH32V003 CPU. It’s a RISC-V microcontroller that runs at a healthy 48 MHz, and it costs just 10 cents in reasonable quantities. A PCB etched to mate with a USB C cable eliminates the need for a connector.

[CNLohr] then gave the board a three-digit 7-segment LCD display from Aliexpress, which can be had for around 21 cents if you buy 100 or more. He then figured out how to drive the LCDs with a nifty trick that let the microcontroller use the display as a crude touch sensor. All in all, the total bill of materials for one of these things comes out somewhere under a dollar in quantity.

It’s mostly a random assemblage of tech glued together for a demo, but it’s a fun project. It’s worth checking out even if it’s just to learn how to create an integral USB C port on your own PCBs. The way it’s achieved with the etched contacts and milled-out tabs is pure elegance. Files are on Github for the curious.

We’ve featured a ton of [CNLohr’s] work over the years; the clear keytar was a glowing highlight, as were his early discoveries in the depths of the ESP8266.

Continue reading “An LCD, Touch Sensor, USB-C, And A Microcontroller For A Buck”

pcb with santa sleigh racing circuit

Rudolph’s Sleigh On A North Pole PCB

Each Christmas, [Adam Anderson], [Daniel Quach], and [Johan Wheeler] (going by ‘the Janky Jingle Crew’)—set themselves the challenge of outdoing their previous creations. Last year’s CH32 Fireplace brought an animated LED fire to life with CH32V003 microcontrollers.

This year, they’ve gone a step further with the North Pole Circuit, a holiday project that combines magnetic propulsion, festive decorations, and a bit of engineering flair. Inspired by a miniature speedway based on Friedrich Gauss’ findings, the North Pole Circuit includes sleighs and reindeer that glide along a custom PCB track, a glowing village with flickering lights, and a buzzer to play Christmas tunes.

The propulsion system works using the Lorentz force, where vertical magnets interact with PCB traces to produce motion. A two-phase design, similar to a stepper motor, ensures smooth operation, while guard rails maintain stability on curves. A separate CH32V003 handles lighting and synchronized jingles, creating a cohesive festive display. As we mentioned in the article on their last year’s creation, going from a one-off to a full batch will make one rethink the joy of repetitive production. Consider the recipients of these tiny Christmas cards quite the lucky ones. We deem this little gift a keeper to put on display when Christmas rolls around again.

This annual tradition highlights the Crew’s knack for combining fun and engineering. Curious about the details or feeling inspired to create your own? Explore the full details and files on their GitHub.

Programming Tiny Blinkenlight Projects With Light

[mitxela] has a tiny problem, literally: some of his projects are so small as to defy easy programming. While most of us would probably solve the problem of having no physical space on a board to mount a connector with WiFi or Bluetooth, he took a different path and gave this clever light-based programming interface a go.

Part of the impetus for this approach comes from some of the LED-centric projects [mitxela] has tackled lately, particularly wearables such as his LED matrix earrings or these blinky industrial piercings. Since LEDs can serve as light sensors, albeit imperfect ones, he explored exactly how to make the scheme work.

For initial experiments he wisely chose his larger but still diminutive LED matrix badge, which sports a CH32V003 microcontroller, an 8×8 array of SMD LEDs, and not much else. The video below is a brief summary of the effort, while the link above provides a much more detailed account of the proceedings, which involved a couple of false starts and a lot of prototyping that eventually led to dividing the matrix in two and ganging all the LEDs in each half into separate sensors. This allows [mitxela] to connect each side of the array to the two inputs of an op-amp built into the CH32V003, making a differential sensor that’s less prone to interference from room light. A smartphone app alternately flashes two rectangles on and off with the matrix lying directly on the screen to send data to the badge — at a low bitrate, to be sure, but it’s more than enough to program the badge in a reasonable amount of time.

We find this to be an extremely clever way to leverage what’s already available and make a project even better than it was. Here’s hoping it spurs new and even smaller LED projects in the future.

Continue reading “Programming Tiny Blinkenlight Projects With Light”

A devboard with the CH32V003, with a few resistors and bodges, with a USB-C cable plugged into it, and a programmer plus an extra probe attached.

USB PD On CH32V003 Teaches You Everything

How do you talk USB Power Delivery (PD)? Grab a PHY? Use a MCU with one built-in? Well, if you’re hardcore enough, you can do it with just a few resistors and GPIOs. [eeucalyptus] shows you their implementation of USB-PD on a CH32V003, which has no PD peripheral. This includes building a PD trigger, completely open source, and walking you through the entire low-level PD basics, too!

It helps that CH32V003 is a 32-bit MCU with a good few resources and peripherals, for instance, an internal comparator. Other than that, you don’t need much in terms of hardware resources, but you do need a steady hand — parts of the firmware had to be written in assembly to keep up with PD timing. Want to tinker with the fruit of this research, perhaps, further build upon the code? There’s an example board on GitHub, too!

Want to try your own luck with this method? There’s a schematic, and logic analyzer captures, and a board to refer to. Again, more than enough information on every single low-level detail! Otherwise, grab an MCU pre-programmed to talk PD, maybe a trigger board chip, or maybe even a PD PHY and implement PD communications with it directly – it’s pretty easy!

We thank [Julianna] for sharing this with us!

Two of these boards next to each other, one showing the front, assembled, side with the MCU and supporting components soldered on, and the other showing the back, patch panel, side, with wires connecting the MCU pads to testpoints leading to the supporting components

Try Out MCUs With This Jumperable TSSOP20 Adapter

There are so many new cool MCUs coming out, and you want to play with all of them, but, initially, they tend to be accessible as bare chips. Devboards might be hard to get, not expose everything, or carry a premium price. [Willmore] has faced this problem with an assortment of new WCH-made MCUs, and brings us all a solution – a universal board for TSSOP20-packaged MCUs, breadboard-friendly and adaptable to any pinout with only a few jumpers on the underside.

The board brings you everything you might want from a typical MCU breakout – an onboard 3.3V regulator, USB series resistors, a 1.5K pullup, decoupling capacitors, and a USB-C port. All GPIOs are broken out, and there’s a separate header you can wire up for all your SWD/UART/USB/whatever needs – just use the “patch panel” on the bottom of the board and pick the test points you want to join. [Willmore] has used these boards for the CH32Vxxx family, and they could, no doubt, be used for more – solder your MCU on, go through the pin table in the datasheet, do a little point-to-point wiring, and you get a pretty functional development board.

Continue reading “Try Out MCUs With This Jumperable TSSOP20 Adapter”

CH32V003 Makes For Dirt Cheap RISC-V Computer

These days, when most folks think of a computer they imagine a machine with multiple CPUs, several gigabytes of RAM,  and a few terabytes of non-volatile storage for good measure. With such modern expectations, it can be difficult to see something like a microcontroller as little more than a toy. But if said MCU has a keyboard, is hooked up to a display, and lets you run basic productivity and development software, doesn’t that qualify it as a computer? It certainly would have in the 1980s.

With that in mind, [Olimex] has teased the RVPC, which they’re calling the “world lowest cost Open Source Hardware All-in-one educational RISC-V computer” (say that three times fast). The tiny board features the SOIC-8 variant of the CH32V003 and…well, not a whole lot else. You’ve got a handful of passives, a buzzer, an LED, and the connectors for a PS/2 keyboard, a power supply, and a VGA display. The idea is to offer this as a beginner’s soldering kit in the future, so most most of the components are through-hole.

On the software side, the post references things like the ch32v003fun development stack, and the PicoRVD programmer as examples of open source tools that can get your CH32V computer up and running. There’s even a selection of retro-style games out there that would be playable on the platform. But what [Olimex] really has their eye on is a port of VMON, a RISC-V monitor program.

When paired with the 320×200 VGA text mode that they figure the hardware is capable of, you’ve got yourself the makings of an educational tool that would be great for learning assembly and playing around with bare metal programming.

It might not have the timeless style of the Voja4, but at least you can fit it in a normal sized pocket.

Thanks to [PPJ] for the tip.

CH32V003 Provides Ultra Cheap Speech Recognition

Speech recognition was once the stuff of science fiction, but it’s now possible with relatively modest hardware. Just how modest, you ask? How about a 10 cent microcontroller?

[Brian Smith] has achieved a very basic form of speech recognition on a CH32V003 RISC-V microcontroller. It may only recognize spoken digits, but that it does so at all on such a modest platform is impressive in itself.

For training purposes it enlists the help of a desktop Linux computer, however the recognition process is purely in the ten cent chip. He goes into much detail about how it achieves this on a system without floating point arithmetic, as well as the other shortcomings of such a limited platform.

We’ve become used to thinking of super-cheap chips as of limited use, but the truth is they’re surprisingly more capable than expected. We’re seeing them starting to appear as subsidiary processors on some badges, so it will be interesting to see them proliferate in more projects now their availability problems have eased. Go on – for ten cents, what do you have to lose?