The Intel Edison is a neat piece of hardware, but the connector for the Edison is extremely intimidating and the Mini breakout board is incompatible with breadboards. What’s [Federico], a builder of Internet of Things to do? Etch their own breakout board.
The Mini Breakout board for the Intel Edison is the official ‘minimal’ offering for getting the Edison up and running with a mess of jumper wires and LEDs. While this breakout board handles the USB to UART bridge, power regulation, and exposes all the pins on the Edison connector, it is terrible for prototyping. It’s a 4×14 array of holes on a 0.1″ grid that are hidden underneath the Edison.
[Federico] handled this problem with a copper clad board and a little bit of ferric chloride. He jumped into Eagle and created a breakout board to turn the 4×14 pin grid into a more sensible breadboard-friendly layout.
The breadboard-friendly adapter doesn’t have level shifters, but by using the mini-breakout board between the Edison and the breadboard adapter [Federico] still has the UART to USB hardware and a battery charging circuit. Still, there’s room for improvement and we can’t wait to see what he comes up with next.
Fan of shooting things? Jealous of proper shooting ranges? Why not build your own automated target practice rig with a few servos and an ATMega168?
[Cowboy Bob] of Making Stuff decided he needed a practice target, and wanted to make it a bit more interesting than throwing up some beer cans on a fence. He’s created a highly durable 10-target “Robo-Target” which can be remote controlled or automated. A thick piece of 1/4″ angle steel makes up the main frame of it, so if you’re practicing with hand guns it’ll take the abuse. If you’re just using an air soft or paintball gun you probably don’t need to make it this beefy.
Five servo motors swing paper five targets back and forth on 3D printed swing arms — and since each target has a front and a back side, it gives you 10 different things to shoot at. In challenge mode it’ll even show you two targets at a time which will require you to quickfire in order to get both!
Continue reading “Automated Robotic Target Practice”
[Frank] has a Ultimaker2 and wanted to install a new bootloader for the microcontroller without having physical access to the circuitry. That means installing a new bootloader for the ATMega2560 without an In System Programmer, and as is usual on AVRs, the bootloader can only be edited with an ISP. Additionally, modifying the bootloader in any way runs the risk of corruption and a bricked circuit. That’s okay, because [Frank] knows how to do it, and he’s here to show you how.
You can think of the memory layout of the ATMega in the Ultimaker as being split in half, with the printer firmware in the first half and the bootloader in the second half. There’s extra space in both halves, and that’s something that comes in very useful. When the circuit powers up, it jumps to the bootloader, does it’s thing, then jumps to the very beginning of the application code – a vector table – that starts up the actual firmware.
[Frank]’s trick to adding on to the bootloader is to place the SD card bootloader in the space normally reserved for applications, not where you would expect to find a bootloader. This code is accessed by the stock bootloader jumping into a modified vector table at the beginning of the application data that points to new executable code. That code is the actual SD card bootloader, but because it is in the application part of the memory, it can’t perform Flash writing or erasing. To fix that, a tiny bit of code is tacked onto the end of the bootloader for performing Flash writes and jumps back to the application part of memory.
Tired of buying boring keyboards with almost no customization available? We’ve seen lots of keyboard hacks before, but if you want to take it a step further — why not make it from scratch and have it 3D printed?
Reddit user [Wildpanic] has just finished his first attempt at a 3D printed keyboard and he’s even shared the files to make it over at Thingiverse. The frame is entirely 3D printed, but he’s chosen to use pre-manufactured key switches, which is probably for the best. They are the Cherry MX Green variety, which have these little clips in the side which make them super easy to install — especially on a 3D printed frame.
He’s wired them all using 20ga copper wire (which might be a bit overkill) to a Teensy 2.0 microcontroller. The diodes he chosen to use are 1N4148 which he was able to get fairly inexpensively. Total cost is just a bit over $50. Not bad!
Oh and in case you’re wondering, he’s chosen the style of keyboard that makes use of 4 keys for the space bar — as made popular by the planck style custom keyboards — you know, for people who love symmetry.
For more awesome keyboard hacks, check out this roundup [Adam Fabio] put together in a Hacklet last year!
I2C has a seven-bit address space, and you’re thinking “when do I ever need more than 127 devices on a pair of wires?” So you order up some parts only to find that they have one, two, or three user-configurable address pins for any given device type. And you need a bunch more than four or eight capacitive sensor buttons on your project. What do you do?
If you’re reader [Marv G], you think outside the box and realize that you can change the addresses on the fly by toggling address pins high and low with your microcontroller. That is, you can use a single I2C address pin for each device as a chip select signal just like you would have with SPI.
That’s it, really. [Marv G] goes through all of the other possible options in his writeup, and they’re all unsavory: multiple I2C busses, a multiplexer, buying different sensors, or changing micros. None of these are as straightforward as just running some more wires and toggling these with your micro.
We’d even go so far as to suggest that you could fan these chip select lines out with a shift register or one of those 1-of-N decoder chips, depending on how many I2C devices you need to chip-selectify. (We’re thinking 74HC595 or 74HC154.)
Along the way, we found this nice list of the number of address pins for a bunch of common peripherals provided by [LadyAda], in case you don’t believe us about how ubiquitous this problem is. How many devices on that list have one (1!!) address pin?
At the end of his post, [Marv G] asks if anyone else has thought of this chip select trick before. We hadn’t. Here’s your chance to play the smart-ass in the comments.
[Josh] has written up two posts that those of you who use AVRs might find handy. The first post documents a C library that implements a jitter-free one-shot timer. The second post explains how it works. We think it’s such a good idea that we’re going to spoil it for you, but go ahead and read his links and check out his code.
A one-shot is a pulse generator that runs once and only once. You trigger it, it produces the desired pulse, and that’s all she wrote. Why is this handy? Many external ICs that you’ll interface with have minimum durations for signal pulses that must be respected. You could program the AVR to toggle a pin high and then sit around and wait until it’s time to toggle the pin low again, but this wastes valuable CPU time, isn’t going to be very precise, and is susceptible to timing discrepancies if interrupt routines fire in the mean time.
You’d think that you could use the hardware timers for this, but it’s not straightforward. Normally, the timers are free-running; the counter that’s keeping track of time rolls over the top and starts over again. But we just want one pulse.
[Josh]’s very clever idea abuses the timer/counter’s TOP and MATCH values in “Fast PWM” mode. Essentially you trick the counter into never matching by setting TOP below MATCH. This means that the counter spins in its loop between zero and TOP forever, doing nothing.
To break it out of its loop and enable the one-shot, you manually set the counter to a value above TOP and let it go. As it counts up, it’ll eventually hit MATCH, turn on your pin, and then keep counting. When it rolls over the top (255 + 1 = 0 for the 8-bit AVRs), your pin will be correctly turned off again and then the counter re-enters its loop. The one-shot won’t fire until you manually set the counter higher than TOP again.
So there you have it, a one-shot depending only on the hardware timer/counter module and thus immune to jitter and consuming no CPU time at all. Our hats off to you, [Josh]. Clever hack.
The availability of Smart RGB LED’s, either as individual units, as strips or even as panels, have made blinky light projects with all kinds of color control and transition effects easy to implement using even the simplest of controllers. Libraries that allow control of these smart LEDs (or Smart Pixels as they are sometimes called) make software development relatively easy.
[overflo] at the Metalab hackerspace in Vienna, Austria recently completed development of usblinky – a hacker friendly blinky USB stick. It can control up to 150 WS2812B smart LED’s when powered via an external power supply, or up to 20 LED’s when powered via a computer USB port. The micro-controller is an ATTiny85 running the Micronucleus bootloader which implements software USB using vUSB. The hardware is based on the DigiSpark platform. The usblinky software sources are available on their Github repo. The section on pitfalls and lessons learned makes for interesting reading.
Metalab plans to run workshops around this little device to get kids into programming, as it is easy enough and gives quick visual feedback to get you started. To round off the whole project, [overflo] used OpenSCAD to design a customizable, 3D printable “parametric orb” which can house the LED strip and make a nice enclosure or psychedelic night light. Check out the mesmerizing video of the usblinky Orb after the break.
Thanks to [papst] for sending in this tip.
Continue reading “A Hacker-Friendly Blinky USB Stick”