Does The World Need An FPGA Arduino?

What would you get it you mashed up an FPGA and an Arduino? An FPGA development board with far too few output pins? Or a board in the form-factor of Arduino that’s impossible to program?

Fortunately, the ICEZUM Alhambra looks like it’s avoided these pitfalls, at least for the most part. It’s based on the Lattice iCE40 FPGA, which we’ve covered previously a number of times because of its cheap development boards and open-source development flow. Indeed, we were wondering what the BQ folks were up to when they were working on an easy-to-use GUI for the FPGA family. Now we know — it’s the support software for an FPGA “Arduino”.

Icezum-rev1-1607-img1-peq_thumbnail

The Alhambra board itself looks to be Arduino-compatible, with the horrible gap between the rows on the left-hand-side and all, so it will work with your existing shields. But they’ve also doubled them with pinheaders in a more hacker-friendly layout: SVG — signal, voltage, ground. This is great for attaching small, powered sensors using a three-wire cable like the one that you use for servos. (Hackaday.io has two Arduino clones using SVG pinouts: in SMT and DIP formats.)

The iCE40 FPGA has 144 pins, so you’re probably asking yourself where they all end up, and frankly, so are we. There are eight user LEDs on the board, plus the 28 I/O pins that end in pinheaders. That leaves around a hundred potential I/Os unaccounted-for. One of the main attractions of FPGAs in our book is the tremendous availability of fast I/Os. Still, it’s more I/O than you get on a plain-vanilla Arduino, so we’re not complaining too loudly. Sometimes simplicity is a virtue. Everything’s up on GitHub, but not yet ported to KiCad, so you can tweak the hardware if you’ve got a copy of Altium.

We’ve been seeing FPGA projects popping up all over, and with the open-source toolchains making them more accessible, we wonder if they will get mainstreamed; the lure of reconfigurable hardware is just so strong. Putting an FPGA into an Arduino-compatible form-factor and backing it with an open GUI is an interesting idea. This project is clearly in its very early stages, but we can’t wait to see how it shakes out. If anyone gets their hands on these boards, let us know, OK?

Thanks [RS] for the tip!

Monitor A Serial Port From Anywhere

This simple WiFi serial port monitor would have saved us a lot of trouble. We can’t count how many times where being hooked into an Arduino with USB just to get the serial out has nearly been more trouble than it’s worth. Times where we sat cross-legged on the floor and could choose comfort or accidentally shifting the set-up and ruining everything, but not both.

[Frenky]’s set-up is simple and clever. The Ardunio’s serial out is hooked to an ESP8266. The Arduino spams serial out to the ESP8266 in its usual way. The ESP8266 then pipes all that out to a simple JavaScript webpage. Connect to the ESP8266’s IP with any device in your house, and get a live stream of all the serial data. Neat.

As simple as this technique is, we can see ourselves making a neat little box with TX, RX, GND, and VCC screw terminals to free us from the nightmare of tethering on concrete floors just for a simple test. Video after the break.

Continue reading “Monitor A Serial Port From Anywhere”

Fail Of The Week: Battery Pack Jack Wired Backwards

Last Saturday I had a team of teenage hackers over to build Arduino line-following robots from a kit. Everything went well with the mechanical assembly and putting all the wires on the correct pins. The first test was to check that the motors were moving in the proper direction. I’d written an Arduino program to test this. The first boy’s robot worked fine except for swapping one set of motor leads. That was anticipated because you cannot be totally sure ahead of time which way the motors are going to run.

The motor’s on the second robot didn’t turn at all. As I checked the wiring I smelled the dreaded hot electronics smell but I didn’t see any smoke. I quickly pulled the battery jack from the Arduino and – WOW! – the wires were hot. That didn’t bode well. I checked and the batteries were in the right way. A comparison with another pack showed the wires going into the pack were positioned properly. I plugged in another pack but the motors still didn’t run.

I got my multimeter, checked the voltage on the jack, and it was -5.97 V from center connector to the barrel. The other pack read 6.2 V. I had a spare board and pack so swapped those and the robot worked fine. Clearly the reverse polarity had zapped the motor control ICs. After that everyone had a good time running the robots on a course I’d laid out and went home pleased with their robots.

After they left I used the ohmmeter to check the battery pack and found the wiring was backwards, as you can see in the feature photo. A close inspection showed the wire with a white line, typically indicating positive, indeed went to the positive battery terminal. I shaved the barrel connector down to the wires and the white line wire was connected to the outside of the barrel. FAIL!

This is a particularly bad fail on the part of the battery pack supplier because how hard is it to mess up two wires? You can’t really fault the robot kit vendor because who would expect a battery pack to be bad? The vendor is sending me a new battery pack and board so I’m satisfied. Why did I have an extra board and pack, actually an entire kit? For this exact reason; something was bound to go wrong. Although what I had imagined was for one of the students to break a mechanical part or change wiring and zap something. Instead, we were faced with a self-destructing kit. Prudence paid off.

Teensy 3.1 Controlled VFO

[Tom Hall], along with many hams around the world, have been hacking the Silicon Labs Si5351 to create VFOs (variable frequency oscillators) to control receivers and transmitters. You can see the results of his work in a video after the break.

vfo board[Tom] used a Teensy 3.1 Arduino compatible board, to control the Si5351 mounted on an Adafruit breakout board. An LCD display shows the current frequency and provides a simple interface display for changing the output. A dial encoder allows for direct adjustment of the frequency. The ham frequency band and the frequency increment for each encoder step are controlled by a joystick. When you get into the 10 meter band you definitely want to be able to jump by kHz increments, at least, since the band ranges from 28 MHz to 29.7 MHz.

So what is the Si5351? The data sheet calls it an I2C-Programmable Any-Frequency CMOS Clock Generator + VCXO. Phew! Let’s break that down a bit. The chip can be controlled from a microprocessor over an I2C bus. The purpose of the chip is to generate clock outputs from 8 kHz to 160 MHz. Not quite any frequency but a pretty good range. The VCXO means voltage controlled crystal oscillator. The crystal is 25 MHz and provides a very stable frequency source for the chip. In addition, the Si5351 will generate three separate clock outputs.

[Tom] walks through the code for his VFO and provides it via GitHub. An interesting project with a lot of the details explained for someone who wants to do their own hacks. His work is based on work done by others that we’ve published before, which is what hacking is all about.

Continue reading “Teensy 3.1 Controlled VFO”

At Last! A SIL-Duino!

There are some standard components that have been so continuously refined as to have become if not perfect then about as good as they’re going to get. Take the Arduino Uno for instance, and compare it with its ancestor from a decade ago. They are ostensibly the same board and they are compatible with each other, yet the Uno and its modern clones have more processing power, memory and storage, a USB interface rather than serial, and a host of small component changes to make them better and cheaper.

You’d think that just another Arduino clone couldn’t bring much to the table then. And you’d be right in a broad sense, just what is there left to improve?

[Clovis Fritzen] has an idea for an Arduino clone that’s worth a second look. It’s not an amazing hardware mod that’ll set the Arduino world on fire, instead it’s a very simple design feature. He’s created an Arduino that mounts vertically on a single row of pins. Why might you find that attractive, you ask? A SIL vertical Arduino takes up a lot less breadboard space than one of the existing DIL Arduinos. A simple idea, yet one that is very useful if you find yourself running out of breadboard.

[Clovis] took the circuit of an Arduino Uno and simplified it by removing the USB interface, so this board has to be programmed through its ICSP header. And he’s made it a through-hole board for easy construction by those wary of SMD soldering. The resulting board files can all be found on GitHub.

Every now and then along comes a hack so simple, obvious, and useful that it makes you wonder just why you didn’t think of it yourself. Many of us will have used a DIL Arduino and probably found ourselves running out of breadboard space. This board probably won’t change the world, but it could at least make life easier in a small way for some of us who tinker with microcontrollers.

This is just the latest of many Arduino clones to find its way onto these pages. In 2013 we asked why the world needed more when featuring one made as a PCB design exercise. There’s even a Hackaday version called the HaDuino developed by [Brian Benchoff]. But while it’s true that Yet Another Vanilla Arduino Clone brings nothing to the table, that should not preclude people from taking the Arduino and hacking it. Every once in a while something useful like this project will come from it, and that can only be a benefit to our community.

Start Your Day The Arduino Way With This IoT Shower Controller

No longer content with adding value to the thermostat in the hallway or making your fridge smarter than it should be, IoT vendors are pushing into the inner sanctum of homes, the holy of holies – the bathroom. Sure, you can spend big bucks on an electronically controlled valve to turn your shower into a remote-controlled spa that shares your bathing habits with the cloud, but if you’re on a more modest budget and have the hacker spirit, you might want to check out this DIY automated shower valve with IoT features.

When we last ran into [TVMiller], he was opening gates using Jedi mind tricks, and before that he was shrinking a floating golf green to a manageable size. Such hacks work up a sweat, and while a clean hacker is a happy hacker, all that pesky valve-twisting and temperature-fiddling is so annoying. So with a few parts acquired from the waste stream, like an acrylic box, some salvaged servos, popsicle sticks, and a hell of a lot of caulk, [TVMiller] hacked together a feature-packed controller for his existing shower valves. An Arduino MKR1000 reads the water temperature and controls the servos that allow him to start the shower from his phone. Time and temperature data are sent to the cloud using ThingSpeak. You can see the whole thing in action in the mildly-NSFW video after the break.

Admittedly, this is a pretty janky setup, but it falls under the universal hacker disclaimer of “it’s just a prototype.” Still, we like the idea of retrofitting standard shower valves, and the popsicle-stick parallelograms for increasing leverage is a neat trick. We’ll be watching to see where this goes next.

Continue reading “Start Your Day The Arduino Way With This IoT Shower Controller”

Wiring Was Arduino Before Arduino

Hernando Barragán is the grandfather of Arduino of whom you’ve never heard. And after years now of being basically silent on the issue of attribution, he’s decided to get some of his grudges off his chest and clear the air around Wiring and Arduino. It’s a long read, and at times a little bitter, but if you’ve been following the development of the Arduino vs Arduino debacle, it’s an important piece in the puzzle.

Wiring, in case you don’t know, is where digitalWrite() and company come from. Maybe even more importantly, Wiring basically incubated the idea of building a microcontroller-based hardware controller platform that was simple enough to program that it could be used by artists. Indeed, it was intended to be the physical counterpart to Processing, a visual programming language for art. We’ve always wondered about the relationship between Wiring and Arduino, and it’s good to hear the Wiring side of the story. (We actually interviewed Barragán earlier this year, and he asked that we hold off until he published his side of things on the web.)

The short version is that Arduino was basically a fork of the Wiring software, re-branded and running on a physical platform that borrowed a lot from the Wiring boards. Whether or not this is legal or even moral is not an issue — Wiring was developed fully open-source, both software and hardware, so it was Massimo Banzi’s to copy as much as anyone else’s. But given that Arduino started off as essentially a re-branded Wiring (with code ported to a trivially different microcontroller), you’d be forgiven for thinking that somewhat more acknowledgement than “derives from Wiring” was appropriate.

screenshots_comparo
See what we mean?

The story of Arduino, from Barragán’s perspective, is actually a classic tragedy: student comes up with a really big idea, and one of his professors takes credit for it and runs with it.

Continue reading “Wiring Was Arduino Before Arduino”