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.
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.
Home electrical, it’s really not that hard. But when you’re dealing with the puzzles left for your by someone else things can get really weird. [Daniel’s] sister and her husband ran into this recently. The video demonstration of their fail includes a lot of premature laughter, but it’s worth hanging in there… you’ll quickly see why she can’t contain her amusement.
The project at hand is a replacing a bathroom fan with a simple light fixture. Once the swap was made the light switch works just as anticipated. But a second switch which used to control a different light now behaves strangely. It doesn’t activate the original light, but instead switches the new fixture. Even stranger is that the original switch apparently now acts as a bizarre dimmer when the second switch is on. That’s odd, but the coup d’état of the fail is when they plug in a hair dryer and switching it on illuminates the light but doesn’t activate the hair dryer.
As with all Fail of the Week segments, the goal here is not to criticize but to commiserate. What do you think is causing this? We can’t wait to see what you come up with. Posting simple diagrams is encouraged (you can use HTML img tags in the comments). Ladies and gentlemen, start your conjecture.
Fighting games like Mortal Kombat provide you with a variety of different available moves. These include kicks, punches, grabs, etc. They also normally include various combination moves you can perform. These combo moves require you to press the proper buttons in the correct order and also require you to time the presses correctly. [Egzola] realized that he could just hack his controller to simulate the button presses for him. This bypasses the learning curve and allows him to perform more complicated combinations with just the press of a single button.
[Egzola] started by taking apart his Playstation 3 controller. There were two PCB’s inside connected by a ribbon cable. Luckily, each individual pad for this cable was labeled with the corresponding controller button. This made it extremely simple to hack the controller. [Egzola] soldered his own wires to each of these pads. Each wire is a different color. The wires then go to two different connectors to make them easier to hook up to a bread board.
Each wire is then broken out on the breadboard. The signal from each button is run through a 4n25 optoisolator. From there the signal makes its way back to various Arduino pins. The 4n25 chips keeps the controller circuit isolated from the Arduino’s electrical circuit. The Arduino also has two push buttons connected to it. These buttons are mounted to the PS3 controller.
Now when [Egzola] presses one of the buttons, the Arduino senses the button press and simulates pressing the various controller buttons in a pre-programmed order. The result is a devastating combination move that would normally require practice and repetition to remember. You might say that [Egzola] could have spent his time just learning the moves, but that wasn’t really the point was it? Check out the video below for a demonstration. Continue reading “Get Better at Mortal Kombat by Hacking Your PS3 Controller”→
[Dillon] wrote in to tell us about his latest project, an automatic light switch for a the hallway closet in his house. Although this project could probably be done very simply, [Dillon] accomplished everything in a way that actually looks professionally done and has some neat features. Check out his site for more pictures of the build.
Not that we at [HAD] mind a bit of messy wiring, but if it’s going inside a house, neater is always better. On the other hand, this project took nearly a year to go from idea to implementation, so please keep submitting your spaghetti-wired projects. We understand.
As an electrical engineering major, [Dillon] didn’t skimp on basic electrical components, and has schematics available on his site. A MSP430 microcontroller provides the “brains” for everything, turning the light off after 5 minutes if the doors are not shut. Be sure to check out his video overview after the break with footage of it in action. Continue reading “Automatic Closet Lightswitch”→
[Sultan Qasim] wrote in to tell us about the work he’s been doing on the Stellarino library. It’s goal is to break down the coding barriers present for those looking to move from Arduino to ARM. This is accomplished by facilitating Wiring-stlye code for the Stellaris Launchpad ARM development board.
Right off the bat [Sultan] mentions that the interface is Wiring-like, but is not compatible with it. This means you can’t just plop your existing sketches into a C file and get them to work with the addition of a simple include file. But what it does do is provide access to the functions to which seasoned Arduino users have grown accustomed. You can see some examples above, including analogWrite(), digitalRead(), and a simple delay function.
We had a quick look at the library. It uses StellarisWare components which are stored in the ROM of the chip (these are all preceded by ‘ROM_’). The one thing missing is the UARTstudio library which apparently carries a license incompatible with GPL.
[Shachar Geiger] sent in an interesting project that he worked on with [Tal Avivi] at the Bezalel academy in Jerusalem. They were given the task of designing a 1-person electrical urban vehicle. They took some cues from MIT’s Transology and designed the OmniDirectional Research Platform (ODRi). There’s a video of it embedded above. It can be driven using three different input styles: an accelerometer joystick, a traditional gamepad, or body mass shift. They started with an Arduino, but needed more I/O and had to switch to a Wiring board (this was before the Mega). The platform is built mostly from scrap. The accelerometers were placed in an old Microsoft Sidwinder. The standard joystick is from a Sega Mega Drive. The weight sensors are out of cheap home scales.
[Marcus] has written up his experiences using the AD7746 capacitance sensor. He used the SparkFun breakout board in conjunction with an Arduino. The available Arduino code wasn’t that great so he rewrote it to be easier to understand. The AD7746 is an I2C device that can be continuously read, but this doesn’t mesh well with the Wiring libraries. Additionally, the calibration routine from the data sheet is difficult to understand. He’s included all of the code he used plus a Processing sketch to help visualize the input which will hopefully make your experience with the chip much more smooth.