Arduino IDE Forked

As if it weren’t confusing enough in the Arduino world these days, now we’re going to have to deal with conflicting version numbers for the IDE. Yup, it’s been forked. Arduino LLC is offering a recently-updated version 1.6.3 at arduino.cc, but Arduino SRL has bumped up the version number to 1.7.0 at arduino.org. The conflict in naming and versioning has not gone unnoticed.

For those of you who’ve been living under a rock lately, the company that developed the Arduino (Arduino LLC) and the company that’s been manufacturing most of the hardware (Smart Projects SRL, now Arduino SRL) have stopped cooperating, filed a bunch of lawsuits, and now maintain separate websites.

According to this article (Google translate here) the versions don’t differ by much, and the 1.7.0 IDE may even be a step backwards versus 1.6.3. It certainly seems to us that the majority of the active developers in the Arduino project have been sticking with [Massimo Banzi] and the Arduino LLC camp. Of course, everything’s open source and there’s nothing stopping Arduino SRL from porting worthwhile IDE changes across to their version of the codebase.

It doesn’t take a clairvoyant to sense that this may be in response to the warning about non-licensed boards that was included in the “official” 1.6.1 release. Nor does it take a psychic to foresee confusing times ahead.

If you’re interested in doing some code-sleuthing, have a look at the two versions and leave a comment below letting us know of any substantive differences you unearth.

Thanks [Kai], and via [Golem.de].

Arduino SRL To Distributors: “We’re The REAL Arduino”

Arduino SRL (formerly known as Smart Projects SRL) sent out a letter to its distribution partners yesterday. If you’ve been following along with the Arduino vs Arduino story (we’ve previously published two installments), the content isn’t entirely surprising; it’s essentially a tactical move to reassure their distribution channels that Arduino SRL is the “One True Arduino”. That said, there’s still some new tidbits buried inside. You can skip down to read the full text below, but here’s our take.

The Business History of Arduino

arduino_vs_arduino_tnA quick summary of the legal situation. Arduino LLC was formed in April 2008 by the original five founders to provide a corporate entity behind the Arduino project. Smart Projects SRL, controlled by one of the founders, was tasked with the actual production of the boards. It turns out that Smart Projects had trademarked the Arduino brand in Italy in December 2008, before Arduino LLC got around to filing in April 2009 in the USA. But everyone was friends, right? As long as the licensing fees keep flowing.

Fast-forward to September 2014, when Arduino LLC filed a lawsuit in Italy against Smart Projects claiming that they had infringed LLC’s trademark and that they had recently stopped paying licensing fees on their use of the Arduino name. In October, Smart Projects filed with the USPTO to revoke Arduino LLC’s trademark. In late 2014, Smart Projects changed its company name to Arduino SRL (a “Società a responsabilità limitata” is one form of Italian limited-liability company) and hired a new CEO, [Federico Musto].  Around the same time, Arduino SRL opened up the website arduino.org (different from long-existing arduino.cc) but with nearly identical style. In January 2015, Arduino LLC filed a lawsuit in the US, claiming their right on the Arduino name.

The Gist of it

In short, Arduino LLC has been working on developing the Arduino platform, software, and community while Smart Projects / Arduino SRL was the major official producer of the hardware for most boards. Both are claiming to “be” Arduino, and going after each other in court. So it’s not strange that Arduino SRL would like to try to keep its hold on the distribution channels. Which brings us to their letter to distributors.

March 27 Letter

Arduino-Distributor-Update-0A good portion of the letter reads to be a very carefully worded defense of why Arduino SRL is the true Arduino:

“Arduino Srl (aka Smart Projects Srl), as you know has been from the  beginning of the Arduino® project, the place where the ideas were turned into reality and into a business.”

This is of course strictly true — Smart Projects was certainly the largest manufacturer of Arduino boards. But it sidesteps the issue at hand in the trademark suits: whether they were simply a licensed producer of the boards or whether they’re “Arduino”.

Similarly, in the questions section of the letter, they ask if there are actually two “Arduino” product manufacturers, and answer “not really”. Of course, that’s true. Arduino LLC doesn’t manufacture boards, but exists to license their trademark out to fund development.

The only real news in the letter is that Arduino SRL is replacing its old distribution and logistics company, Magyc Now, with a new one named CC Logistics. Both Magyc and CC Logistics are named as defendants in the US lawsuit filed by Arduino LLC, so it’s unlikely that this change is due to legal fallout.

What this Means

In conclusion, Arduino SRL’s letter to its distributors seems to essentially follow the line of reasoning in their trademark lawsuit in the US against Arduino LLC: since Arduino SRL is doing the manufacturing and using the Arduino name, they’re the true Arduino. Whether or not this will stand up in court, or whether Arduino LLC can make its case that SRL was simply a licensed manufacturer, remains to be seen.

We’ve embedded the contents of the letter after the break. You can also download the original PDF.

Continue reading “Arduino SRL To Distributors: “We’re The REAL Arduino””

Using I2C Addresses As Chip Selects

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.

Logic Noise: Filters And Drums

Filters and Drums

Logic Noise is an exploration of building raw synthesizers with CMOS logic chips. This session, we continue to abuse the 4069UB as an amplifier. We’ll turn the simple unity-gain buffer of last session into a single-pole active lowpass filter with a single part. (Spoiler: it’s a capacitor.)

While totally useful, this simple filter is a bit boring and difficult to make dynamic. So we’ll look into an entirely different filter, the Twin-T notch filter, that turns out to be sharp enough to build a sine-wave oscillator on, and tweakable enough that we’ll make a damped-oscillator drum sound out of it.

Here’s a quick demo of where we’re heading. Read on to see how we get there.

Continue reading “Logic Noise: Filters And Drums”

AVR Hardware Timer Tricked Into One-Shot

[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.

Nerdalert: German TV Producers’ Amazing Vectorscope Animations

German weekend late-night comedy show “Neo Magazin Royale” has a bunch of super-nerds behind the screens in the production studio. This is apparently what they do when they’re (not) working: making test screens that render as multiple animations on their test equipment.

While others out there are limited to displaying cool graphics on oscilloscopes, these guys have vectorscopes and waveformer monitors. A vectorscope is like an oscilloscope in X-Y mode, but with one screen that decodes the color space and one screen for the audio (in stereo). A waveform monitor that plots out the brightness levels of a test image. Normal studio techs use these to calibrate their colors, brightness, and audio levels.

Apparently, these guys programmed a custom test screen that would: a) encode a small animation of a 20-sided die spinning around the show’s logo in the color channel b) encode the show’s logo in the left and right sound channels, and c) their production company’s logo in the screen’s brightness.

At the end of the video, the director Patrick (in the glasses) admits that they’ve spent about three months working on this project and everyone starts laughing. “And who gets anything from this? Nobody!” says the show’s host.

One way to rectify that, though. Post the source code!

HDMI Splitter Is Also A Decrypter

It warms our hearts when the community gets together. [esar] needed to get a decrypted HDMI stream for his home theater system. A tip-off in the comments and a ton of good old-fashioned hacking resulted in a HDMI splitter converted into a full-featured HDMI decrypter. Here’s the story.

His amazing custom Ambilight clone got profiled here, and someone asked him in the comments if it worked when High-bandwidth Digital Content Protection (HDCP) is on. [esar] lamented that it didn’t. Hackaday readers to the rescue. [Alan Hightower] and [RoyTheReaper] pointed [esar] to the fact that HDMI splitters need to decrypt and re-encrypt the signal to pass it on, and pointed him to a trick to knock out the on-board microcontroller. [esar] took off from there.

Unfortunately, taking the micro out of the picture messed with a lot of other HDMI functionality. So [esar] started digging in the datasheets for the HDMI splitter chip, looking for registers relevant to the re-encryption. If he could get in between the microcontroller and the splitter chip on the I2C bus and disable the re-encryption, he’d be set.

If you’re at all interested in I2C hacking or abusing HDMI splitters, you need to read his post because he details all of the tribulations and triumphs. He first tries just brute-forcing the I2C by overwriting a 1 bit with a 0. This (correctly) signals the micro that there’s been a conflict on the bus, so it re-sends the command again. Dead end.

He then found another signal that the receiver could use say that it wasn’t decrypting. He tried sending this continuously to the splitter so that it would stop encrypting. That worked, but only for one channel, some of the time. It turns out that his code was taking too long in his bit-banged I2C code. He fixes this up and all is well? Well, 90% of the way there.

To hammer down the last 10% of the functionality, [esar] buys a couple more splitters, experiments around with another splitter chipset that works with 3D, and solders some more wires to enable the Audio Return Channel. And after a ton of well-documented hard work, he wins in the end.