Hackaday Prize Entry: PICs and Arduinos, Cats and Dogs Living Together

Half of our little corner of the Internet complains about the Arduino, how the pin headers of the Arduino standard don’t make any sense, how the Arduino IDE is rubbish, gives well-reasoned arguments why the Arduino language is hindering the next generation of embedded programmers, and laments the fact that everything is commoditized into Arduino-compatible packages. The other half of our little corner of the Internet uses Microchip PICs.

[Jarrett] is stubborn, and he wants to use a PIC with the distinctive Arduino pin layout. Thus was born PIC-On-The-Go. It’s a PIC18F4520 in the familiar goofy-pin package, made specifically for everyone who just wants to buckle down and get some work done.

This isn’t the only PIC-become-Arduino board out there; the Fubarino is a great board that speaks Arduino, but that doesn’t take advantage of our favorite Arduino shields. Either way, we’re surprised something like [Jarrett]’s project doesn’t exist yet, making it a great entry for The Hackaday Prize.

The 2015 Hackaday Prize is sponsored by:

“Arduino Borealis” Combines LEDs and Paint

[Stef Cohen] decided to combine three different artistic mediums for her latest project. Those are painting, electronics, and software. The end goal was to recreate the aurora borealis, also known as the northern lights, in a painting.

The first step was to make the painting. [Stef] began with a shadow box. A shadow box is sort of like a picture frame that is extra deep. A snowy scene was painted directly onto the front side of the glass plate of the shadow box using acrylic paint. [Stef] painted the white, snowy ground along with some pine trees. The sky was left unpainted, in order to allow light to shine through from inside of the shadow box. A sheet of vellum paper was fixed to the inside of the glass pane. This serves to diffuse the light from the LEDs that would eventually be placed inside the box.

Next it was time to install the electronics. [Stef] used an off-the-shelf RGB LED matrix from Adafruit. The matrix is configured with 16 rows of 32 LEDs each. This was controlled with an Arduino Uno. The LED matrix was mounted inside the shadow box, behind the vellum paper. The Arduino code was easily written using Adafruit’s RGB Matrix Panel library.

To get the aurora effect just right, [Stef] used a clever trick. She took real world photographs of the aurora and pixelated them using Photoshop. She could then sample the color of each pixel to ensure that each LED was the appropriate color. Various functions from the Adafruit library were used to digitally paint the aurora into the LED matrix. Some subtle animations were also included to give it an extra kick.

$40 Antenna Analyzer with Arduino and AD9850

If you are a hacker, you might consider ham radio operators as innovative. Most people, however, just see them as cheap. So it is no surprise that hams like [jmharvey] will build an antenna analyzer from a DDS module and an Arduino instead of dropping a few hundred dollars on a commercial unit. As he points out, you probably only need an analyzer for a day or two while you set up an antenna. Unless you are a big time antenna builder, the unit will then sit idle on the shelf (or will wind up on loan to hams even cheaper than you are).

The design is rooted in another proven design, but changed to take advantage of parts he happened to have on hand. Although the build is on a universal circuit board, [jmharvey] used Eagle to lay out the circuit as though it were a PCB. Since placement can be important with an RF circuit, this isn’t a bad idea. It’s always easier to move stuff around on the screen than on the perf board.

Since this is a no frills, unit, you are expected to grab the output from the Arduino and manually put it in a spreadsheet to plot the results. There is another version of the Arduino code that drives an OLED screen, although you still need a PC to kick the process off. One interesting feature of the Arduino code is how it deals with the nonlinear nature of the diodes used in the circuit. After plotting the values with known loads, [jmharvey] broke the diode operation into three regions and used different equations for each region. Even so, he warns that readings higher than 1:1 VSWR are only accurate to 10% or 20% – still good enough for ham shack use.

If you want an antenna analyzer for $40 (or less, if you have a good stock of parts) this looks like a worthwhile project. If, however, you want to repurpose it to Rickroll your neighbor’s AM radio, you might want to go with the commercial unit.

Click past the break to see the analyzer in action.

Continue reading “$40 Antenna Analyzer with Arduino and AD9850”

Embed with Elliot: There is no Arduino “Language”

This installment of Embed with Elliot begins with a crazy rant. If you want to read the next couple of paragraphs out loud to yourself with something like an American-accented Dave-Jones-of-EEVBlog whine, it probably won’t hurt. Because, for all the good Arduino has done for the Hackaday audience, there’s two aspects that really get our goat.

(Rant-mode on!)

First off is the “sketch” thing. Listen up, Arduino people, you’re not writing “sketches”! It’s code. You’re not sketching, you’re coding, even if you’re an artist. If you continue to call C++ code a “sketch”, we get to refer to our next watercolor sloppings as “writing buggy COBOL”.

And you’re not writing “in Arduino”. You’re writing in C/C++, using a library of functions with a fairly consistent API. There is no “Arduino language” and your “.ino” files are three lines away from being standard C++. And this obfuscation hurts you as an Arduino user and artificially blocks your progress into a “real” programmer.

(End of rant.)

Let’s take that second rant a little bit seriously and dig into the Arduino libraries to see if it’s Arduinos all the way down, or if there’s terra firma just beneath. If you started out with Arduino and you’re looking for the next steps to take to push your programming chops forward, this is a gentle way to break out of the Arduino confines. Or maybe just to peek inside the black box.

Continue reading “Embed with Elliot: There is no Arduino “Language””

Pinball Table Gets New Lease of Life With Arduino

Forget all of this video game nonsense: pinball is the real king of gaming. After all, it involves large pieces of metal flying around at high speed. [retronics] agrees: he has resurrected an old Briarwood Aspen pinball table using an Arduino.

pinball-table-repairWhen he bought the table, he found that the electronics had been fried: many of the discrete components on the board had been burnt out. So, rather than replace the individual parts, he gutted the table and replaced the logic board with an Arduino Mega that drives the flippers, display and chimes that make pinball the delightful experience it is. Fortunately, this home pinball table is well documented, so he was able to figure out how to rewire the remaining parts fairly easily, and how to recreate the scoring system in software.

His total cost for the refurb was about $300 and the junker was just $50 to start with. Now for $350 you can probably find a working pinball table. But that’s not really the point here: he did it for the experience of working with electromechanical components like flippers and tilt switches. We would expect nothing less from the dude who previously built an Android oscilloscope from spare parts.

Continue reading “Pinball Table Gets New Lease of Life With Arduino”

It Keeps on Going and… Arduino Edition

How long can you keep an Arduino circuit running on three AA batteries? With careful design, [educ8s] built a temperature sensor that lasts well over a year on a single charge of three 2250 mAH rechargeable cells (or, at least, should last that long).

Like most long-life designs, this temperature sensor spends most of its time sleeping. The design uses a DS18B20 temperature sensor and a Nokia 5110 LCD display. It also uses a photoresistor to shut off the LCD display in the dark for further power savings.

During sleep, the device only draws 260 microamps with the display on and 70 microamps with the display off. Every two minutes, the processor wakes up and reads the temperature, drawing about 12 milliamps for a very short time.

Along with the code, [educ8s] has a spreadsheet that computes the battery life based on the different measured parameters and the battery vendor’s claimed self discharge rate.

Of course, with a bigger battery pack, you could get even more service from a charge. If you need a refresher on battery selection, we covered that not long ago. Or you can check out a ridiculously complete battery comparison site if you want to improve your battery selection.

Continue reading “It Keeps on Going and… Arduino Edition”

Arduino (PCI) Express

It is almost impossible these days to find a PC with old ISA card slots. Full size PCI card slots are in danger of going the same way. Many PCs today feature PCI Express connectors. PCI Express offers a lot of advantages including a small size, lower pin count, and a point-to-point serial bus topology that allows multiple simultaneous transfers between different pairs of end points. You’ll find PC Express connectors in things other than PCs too, including a lot of larger embedded systems.

If you ever wanted to prototype something on PCI Express, you’d usually turn to an FPGA. However, [moonpunchorg] posted a workable design for an Arduino on a mini PCI Express board. (As [imroy264] points out in the comments, the board is using the USB port present on the PCI-E connector.) The design files use KiCAD so it should be fairly easy to replicate or change. Naturally, there are pins on the edges to access I/O ports and power. You do need to use ISP to program the Arduino bootloader on the chip.

The board appears to a host computer as a SparkFun as a Pro Micro 3.3V board, and from there you could easily add function to a computer with a PCI Express slot using nothing more than the Arduino IDE. The board is known to work with the VIA VAB-600 Springboard and VIA VAB-820 boards, although it is likely to work with other PCI Express hosts, too.