How To Program A Really Cheap Microcontroller

There are rumors of a cheap chip that does USB natively, has an Open Source toolchain, and costs a quarter. These aren’t rumors: you can buy the CH552 microcontroller right now. Surprisingly, there aren’t many people picking up this cheap chip for their next project. If there’s no original projects using this chip, no one is going to use this chip. Catch 22, and all that.

Like a generous god, [Aaron Christophel] has got your back with a working example of programming this cheap chip, and doing something useful with it. It blinks LEDs, it writes to an I2C display, and it does everything you would want from a microcontroller that costs a few dimes.

The CH552, and its friends the small CH551 all the way up to the CH559, contain an 8051 core, somewhere around 16 kB of flash, the high-end chips have a USB controller, there’s SPI, PWM, I2C, and it costs pennies. Unlike so many other chips out there, you can find SDKs and toolchains. You can program the chip over USB. Clearly, we’re looking at something really cool if someone writes an Arduino wrapper for it. We’re not there yet, but we’re close.

To program these chips, [Aaron] first had to wire up the microcontroller into a circuit. This was just a bit of perf board, a resistor, a few caps, and a USB A plug. That’s it, that’s all that’s needed. This is a fairly standard 8051 core, so writing the code is relatively easy. Uploading is done with the WCHISPTool software, with options available for your favorite flavor of *nix.

But it gets better. One of the big features of the CH552 is USB. That means no expensive or weird programmers, yes, but it also means the CH552 can emulate a USB HID device. The CH552 can become a USB keyboard. To demo this, [Aaron] programmed a CH552 board (DE, here’s the Google translatrix) loaded up with touch pads and LEDs to become a USB keyboard.

If you don’t feel like soldering up one of these yourself, there are some suppliers of CH554 dev boards, and the files for [Aaron]’s projects are available here. Check out the videos below, because this is the best tutorial yet on programming and using some very interesting chips that just appeared on the market.

Continue reading “How To Program A Really Cheap Microcontroller”

The Thrill of Building Space Hardware to Exceptionally High Standards

It’s fair to say that the majority of Hackaday readers have not built any hardware that’s slipped the surly bonds of Earth and ventured out into space proper. Sure we might see the occasional high altitude balloon go up under the control of some particularly enterprising hackers, but that’s still a far cry from a window seat on the International Space Station. Granted the rapid commercialization of space has certainly added to that exclusive group of space engineers over the last decade or so, but something tells us it’s still going to be quite some time before we’re running space-themed hacks with the regularity of Arduino projects.

Multi-use Variable-G Platform

That being the case, you might assume the protocols and methods used to develop a scientific payload for the ISS must seem like Latin to us lowly hackers. Surely any hardware that could potentially endanger an orbiting outpost worth 100+ billion dollars, to say nothing of the human lives aboard it, would utilize technologies we can hardly dream of. It’s probably an alphabet soup of unfamiliar acronyms up there. After all, this is rocket science, right?

There’s certainly an element of truth in there someplace, as hardware that gets installed on the Space Station is obviously held to exceptionally high standards. But Brad Luyster is here to tell you that not everything up there is so far removed from our Earthly engineering. In fact, while watching his 2018 Hackaday Superconference talk “Communication, Architecture, and Building Complex Systems for SPAAACE”, you might be surprised just how familiar it all sounds. Detailing some of the engineering that went into developing the Multi-use Variable-G Platform (MVP), the only centrifuge that’s able to expose samples to gravitational forces between 0 and 1 g, his talk goes over the design considerations that go into a piece of hardware for which failure isn’t an option; and how these lessons can help us with our somewhat less critically important projects down here.

Check out Brad’s newly published talk video below, and then join me after the break for a look at the challenges of designing hardware that will live in space.

Continue reading “The Thrill of Building Space Hardware to Exceptionally High Standards”

Custom Jig Makes Short Work of Product Testing

When you build one-off projects for yourself, if it doesn’t work right the first time, it’s a nuisance. You go back to the bench, rework it, and move on with life. The equation changes considerably when you’re building things to sell to someone. Once you take money for your thing, you have to support it, and anything that goes out the door busted is money out of your pocket.

[Brian Lough] ran into this fact of life recently when the widget he sells on Tindie became popular enough that he landed an order for 100 units. Not willing to cut corners on testing but also not interested in spending days on the task, he built this automated test jig to handle the job for him. The widget in question is the “Power BLough-R”, a USB pass-through device that strips the 5-volt from the line while letting the data come through; it’s useful for preventing 3D-printers from being backfed when connected to Octoprint. The tester is very much a tactical build, with a Nano in a breakout board wired to a couple of USB connectors. When the widget is connected to the tester, a complete series of checks make sure that there are no wiring errors, and the results are logged to the serial console. [Brian] now has complete confidence that each unit works before going out the door, and what’s more, the tester shaved almost a minute off each manual test. Check in out in action in the video below.

We’ve featured quite a few of [Brian]’s projects before. You may remember his Tetris-themed YouTube subscriber counter, or his seven-segment shoelace display.

Continue reading “Custom Jig Makes Short Work of Product Testing”

How a Microcontroller Hiding in a USB Port Became an FPGA Hiding in the Same

When you think of microcontroller development, you probably picture either a breadboard with a chip or a USB-connected circuit board. But Tim Ansell pictured an ARM dev board that is almost completely hidden inside of a USB port. His talk at the 2018 Hackaday Superconference tells that story and then some. Check out the newly published video, along with more details of the talk, after the break.

Continue reading “How a Microcontroller Hiding in a USB Port Became an FPGA Hiding in the Same”

A Scratch Instrument For Ants

If you think that this scratch instrument looks as though it should be at least… three times larger in order to be useful, you’d be wrong. This mighty pocket-sized instrument can really get the club hopping despite its diminuitive size. Despite that, the quality of the build as well as its use of off-the-shelf components for almost every part means that if you need a small, portable turntable there’s finally one you can build on your own.

[rasteri] built the SC1000 digital scratch instrument as a member of the portabilist scene, focusing on downsizing the equipment needed for a proper DJ setup. This instrument uses as Olimex A13-SOM-256 system-on-module, an ARM microprocessor, and can use a USB stick in order to load beats to the system. The scratch wheel itself uses a magnetic rotary encoder to sense position, and the slider is miniaturized as well.

If you want to learn to scratch good and learn to do other things good too, there’s a demo below showing a demonstration of the instrument, as well as a how-to video on the project page. All of the build files and software are open-source, so it won’t be too difficult to get one for yourself as long as you have some experience printing PCBs. If you need the rest of the equipment for a DJ booth, of course that’s also something you can build.

Continue reading “A Scratch Instrument For Ants”

Using FTDI Chips With Python

FTDI are a company known for producing chips for USB applications. Most of us have a few USB-to serial adapters kicking about, and the vast majority of them run on FTDI hardware (or, if we’re honest, counterfeit copies). However, FTDI’s hardware has a whole lot more to offer, and [jayben] is here to show us all how to take advantage of it using Python.

FTDI chips are an effective way to debug ARM projects, using the SWD protocol.

FTDI’s chips have varying capabilities, but most can do more than just acting as a USB-connected COM port. It’s possible to use the chips for SPI, I2C, or even bitbanging operation. [jayben] has done the hard work of identifying the best drivers to use depending on your operating system, and then gone a step further to demonstrate example code for sending data over these various interfaces. The article not only covers code, but also shows oscilloscope traces of output, giving readers a strong understanding of what should be happening if everything’s operating as it should. The series rounds out with a primer on how to use FTDI hardware to speak the SWD protocol to ARM devices for advanced debugging use.

It’s a great primer on how to work effectively with these useful chips, and we imagine there will be plenty of hackers out there that will find great use to this information. Of course, it’s important to always be careful when sourcing your hardware as FTDI drivers don’t take kindly to fake chips.

Open Hardware Board For Robust USB Power Monitoring

We’ve all seen the little USB power meters that have become popular since nearly every portable device has adopted some variation of USB for charging. Placed between the power source and the device under test, they allow you to see voltage and current in real time. Perfect for determining how long you’ll be able to run a USB powered device on batteries, or finding out if a USB power supply has enough current to do the business.

[Jonas Persson] liked the idea of these cheap little gadgets, but wanted something a bit more scientific. His design, which he refers to as UPM, is essentially a “smart” version of those ubiquitous USB gadgets. Instead of just showing the data on a little LCD screen, it can now be viewed on the computer and analyzed. His little gadget even allows you to cut power to the device under test, potentially allowing for automated testing of things such as inrush current.

Essentially the UPM works in much the same way as the simple USB meters: one side of the device goes towards the upstream power source, and the device under test plugs into the other side. Between the two devices is a 16 bit ADC and differential amplifier which measures the voltage and current. There’s a header on the board which connects to the ADC if you wanted to connect the UPM to an external microcontroller or other data logging device.

But most likely you would be using the internal microcontroller to analyze the output of the ADC over I2C, which [Jonas] very cleverly connected to the upstream port with an integrated USB hub. One side of the hub goes off to the device being tested, and the other to the microcontroller. So the host device will see both the UPM’s integrated microcontroller and the target device at the same time. From there, you can use the ncurses user interface to monitor and control the device in real-time.

While the hardware looks more or less finished, [Jonas] has some more plans for the software side of UPM, including support for remote control and monitoring over TCP/IP as well as robust logging capabilities. This is definitely a very interesting project, and we’re excited to see it develop further.

In the past we’ve seen homebrew USB power meter builds, and even commercial offerings which boasted computer-based logging and analysis, so it was only a matter of time before somebody combined them into one.