Encrypted USB Bootloader for AVRs

It probably doesn’t matter much for the hacker who sleeps with a bag of various microcontroller flash programmers under the pillow, but for an end-user to apply a firmware upgrade, convenience is king. These days that means using USB, and there are a few good AVR USB bootloaders out there.

But [Dmitry Grinberg] wanted more: the ability to encrypt the ROM images and verify that they haven’t been tampered with or otherwise messed up in transit. Combined with the USB requirement, that meant writing his own bootloader and PC-side tools. His bootloader will take unencrypted uploads if it doesn’t have a password, but if it’s compiled with a key, it will only accept (correctly) encrypted hex files.

Since the bootloader, including the USB firmware, is on the hefty side at 3.3 kB, [Dmitry] included hooks to re-use the bootloader’s USB code from within the target application. So if you were going to use V-USB in your program anyway, it doesn’t actually take up that much extra space. It’s a cute trick, but it ties the bootloader and user program together in a way that gives us the willies, without specifically knowing why. Perhaps we can debate this in the comments.

If you need an AVR USB bootloader, but you don’t need the encryption, we like Micronucleus. But if you need to deliver updates to users without them being able to modify (or screw up) the code in the middle, give [Dmitry]’s setup a try.

Quad Serial Adapter

Despite concerted efforts to kill them, serial ports are alive and well, especially in embedded system. True, most of them end in a USB port, these days, but there’s still a lot of gear with a DE-9 (it isn’t a DB-9, despite the common use of the word) or a TTL-serial port lurking around. [James Fowkes] got tired of managing a bunch of USB to serial adapters, so he decided to build his own FT4232 breakout board that would provide four serial ports from a USB connection.

The small board has transmit and receive LEDs for each port along with EMI and ESD protection on the USB port. The ports are all TTL serial, serving the modern hacker, and the 3.3V pins are 5V tolerant.

Continue reading “Quad Serial Adapter”

Add USB OTG To A USB Thumb Drive

Every hacker has a USB thumb drive on their keyring, filled with backup files and a way to boot up a broken computer. One feature that most are missing though is USB On The Go (OTG) support, which allows a USB device to act as a USB host, connecting to devices like cell phones and tablets.

That can be added with the addition of a USB OTG adapter, though, and [usbdevice] has produced a nice how-to on soldering one of these permanently into a USB thumb drive to create a more flexible device. It’s a simple solder-something-on-something-else hack, but it could be handy.

There are a few caveats, though: it needs a USB thumb drive with solderable headers, which most of the smallest drives that have connectors right on the PCB won’t have. Most of the larger drives will have these, though, and they are cheap, so finding a suitable victim isn’t hard.

Smartphone Hack For Adding Magnet Power Dock

Here’s a neat hack for making a magnetic charging mount for a cell phone. We know what you’re thinking, but this is definitely not a traditional contactless charging system. Those use magnets but in a different way. This hack involves putting a couple of magnets onto the case of the cell phone, and a couple more on a charging base. You then wire these magnets into the power inputs of the USB port, and a USB cable onto the base, so putting the phone on the base magnets completes the circuit. The magnets themselves become the charging contacts.

It’s a neat idea, but makes us wonder what this will do to the compass sensor in your phone or your credit cards if they are nearby. With these caveats, it is a neat hack, and could be easily adapted. Want to make a vertical cell phone mount, or a way to attach (and charge) your cell phone to the fridge? This can be easily adapted for that.

Continue reading “Smartphone Hack For Adding Magnet Power Dock”

Quickie USB Keyboard Device

There are a ton of applications that we use that can benefit from keyboard shortcuts, and we use ’em religiously. Indeed, there are some tasks that we do so often that they warrant their own physical button. And the only thing cooler than custom keyboards are custom keyboards that you’ve made yourself.

Which brings us to [Dan]’s four-button Cherry MX USB keypad. It’s not really all that much more than four keyswitch footprints and an AVR ATmega32u4, but that plus some software is all you really need. He programs the Arduino bootloader into the chip, and then he’s using the Arduino Leonardo keyboard libraries. Bam! Check out the video below.

Continue reading “Quickie USB Keyboard Device”

Dragging Teletypes Into The 21st Century

If you are of a certain age you may have worked in an office in the days before the computer revolution, and the chances are that in the corner of your office there would have been a teletype machine. Like a very chunky typewriter with a phone attached, this was an electromechanical serial terminal and modem, and machines like it would have formed the backbone of international commerce in the days before fax, and then email.

Teletypes may have disappeared from the world of trade, but there are a surprising number still in private hands. Enthusiasts collect and restore them, and radio amateurs still use digital modes based on their output. The problem facing today’s teletype owner though is that they are becoming increasingly difficult to interface to a modern computer. The serial port, itself an interface with its early history in the electromechanical world, is now an increasingly rare sight.

[Eric] has a project which addresses the teletype owner’s interfacing woes, he’s created a board with all the necessary level shifters and an Atmega32u2 microcontroller to translate the teletype’s output to USB.

In his design he’s had to solve a few problems related to such an aged interface. Teletypes have a serial output, but it’s not the TTL or RS232 we may be used to. Instead it’s a high-voltage current loop designed to operate electromagnets, so his board has to incorporate an optocoupler to safely isolate the delicate computer circuitry. And once he had the teletype’s output at a safe level he then had to translate its content, teletypes speak 5-bit ITA2 code rather than our slightly newer 7-bit ASCII.

The result though is a successful interface between teletype and computer. The former sees another teletype, while the latter sees a serial terminal. If you have a teletype and wish to try it for yourself, he’s released the source code in a GitHub repository.

Teletypes have featured a few times here at Hackaday over the years. We’ve had one as an SMS client, another that monitors a Twitter feed, and while it’s not strictly a teletype, a close examination of an Olivetti mechanical serial terminal.

DIY USB Type C

For many years, the humble serial port was one of the best ways to communicate with an embedded system. Then USB ports became more popular and serial ports started to vanish. These days, even if you’re using a serial protocol to communicate with the microcontroller, it’s often over USB. And USB provides a convenient source of 5 V too. In short, we’ve made our peace with USB.

And then they go and change it. USB type C is a small connector that is reversible and has more options for power and connectivity. However, it is yet another new interface to figure out. [Scorpia] recently posted an article about USB type C that you may find useful.

Continue reading “DIY USB Type C”