High Speed SSD1306 Library

[Lewin] wrote in to tell us about a high speed library for Arduino Due that he helped develop which allows interfacing OLED displays that use the SSD1306 display controller, using DMA routines for faster display refresh time.

Typically, displays such as the Monochrome 1.3″ 128×64 OLED graphic display , are interfaced with an Arduino board via the SPI or I2C bus. The Adafruit_SSD1306 library written by [Limor Fried] makes it simple to use these displays with a variety of Arduinos, using either software or hardware SPI. With standard settings using hardware SPI, calls to display() take about 2ms on the Due.

[Lewin] wanted to make it faster, and the SAM3X8E on the Due seemed like it could deliver. He first did a search to find out if this was already done, but came up blank. He did find [Marek Buriak]’s library for ILI9341-based TFT screens. [Marek] used code from [William Greiman], who developed SD card libraries for the Arduino. [William] had taken advantage of the SAM3X8E’s DMA capabilities to enable faster SD card transfers, and [Marek] then adapted this code to allow faster writes to ILI9341-based screens. All [Lewin] had to do was to find the code that sent a buffer out over SPI using DMA in Marek’s code, and adapt that to the Adafruit library for the SSD1306.

There is a caveat though: using this library will likely cause trouble if you are also using SPI to interface to other hardware, since the regular SPI.h library will no longer work in tandem with [Lewin]’s library. He offers some tips on how to overcome these issues, and would welcome any feedback or testing to help improve the code. The speed improvement is substantial. Up to 4 times quicker using standard SPI clock, or 8 times if you increase SPI clock speed. The code is available on his Github repo.

Temperature, Altitude, Pressure Display

During a recent trip to Bhutan, [electronut] wished for a device that would show the temperature and altitude at the various places he visited in the Kingdom. Back home after his trip, he built this simple Temperature, Altitude and Pressure Display Device using a few off the shelf parts.

Following a brief search, he zeroed in on the BMP 180 sensor which can measure temperature and pressure, and which is available in a break-out board format from many sources. He calculates altitude based on pressure. The main parts are an Arduino Pro Mini clone, a BMP180 sensor and a Nokia 5110 LCD module. A standard 9V battery supplies juice to the device. A push button interface allows him to read the current parameters when pressed, thus conserving battery life.

Standard libraries allow him to interface the LCD and sensor easily to the Arduino. He wrapped it all up by enclosing the hardware in a custom laser cut acrylic box. The result is bigger than he would like it to be, so maybe the next iteration would use a custom PCB and a LiPo battery to shrink it in size. While at it, we think it would be nice to add a RTC and some sort of logging capability to the device so it can store data for future analysis. The schematic, code and enclosure drawing are available via his Github repository.

Chinese Whispers For Arduino

The game of Chinese Whispers or Telephone involves telling one person a sentence, having that person tell another person the same sentence, and continuing on until purple monkey dishwasher. For this year’s Arduino Day, [Mastro] was hanging out at Crunchlab with a bunch of Arduinos. What do you do with a bunch of Arduinos? Telephone with software serial.

The setup for this game is extremely simple – have one Arduino act as the master, listening for bits on the (hardware) serial port. This Arduino then sends those bits down a chain of Arduinos over the software serial port until it finally loops around to the master. The result is displayed in a terminal.

With only about a dozen Arduinos in this game of Telephone, [Mastro] did get a few transmission errors. That’s slightly surprising, as the code is only running at 1200 bps, but the point of this game isn’t to be completely accurate.

Continue reading “Chinese Whispers For Arduino”

Arduino IDE Support for the ESP8266

Despite a wealth of tutorials for setting up and writing code for the ESP8266 WiFi module, there has not been much of anything on programming this cheap wireless module with the Arduino IDE. Finally, this has changed. After many months of coding, the Arduino IDE supports the ESP8266 module.

The Arduino IDE support was announced on the ESP8266 community forum. Setup is fairly simple with downloads for Linux, OS X, and Windows. This isn’t an ESP8266 shield, either: you can write code for the ESP module, connect the serial pins, and hit the program button.

The basic functions of the Arduino IDE – pinMode, digitalRead, digitalWrite, and analogRead – are available. Most of the WiFi functions work just like the WiFi shield library.

There are a few things that aren’t written yet; PWM doesn’t work, as the ESP8266 only has one hardware PWM source. SPI and I2C slave mode aren’t done yet, and uploading sketches via WiFi needs a little bit of thought. That said, this is a great introduction to programming the ESP module. If the Arduino IDE isn’t your thing, you could always do it the cool way with [CNLohr]’s programming tutorial we featured last week.

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””

APRS Tracking System Flies Your Balloons

Looking for a way to track your high-altitude balloons but don’t want to mess with sending data over a cellular network? [Zack Clobes] and the others at Project Traveler may have just the thing for you: a position-reporting board that uses the Automatic Packet Reporting System (APRS) network to report location data and easily fits on an Arduino in the form of a shield.

The project is based on an Atmel 328P and all it needs to report position data is a small antenna and a battery. For those unfamiliar with APRS, it uses amateur radio frequencies to send data packets instead of something like the GSM network. APRS is very robust, and devices that use it can send GPS information as well as text messages, emails, weather reports, radio telemetry data, and radio direction finding information in case GPS is not available.

If this location reporting ability isn’t enough for you, the project can function as a shield as well, which means that more data lines are available for other things like monitoring sensors and driving servos. All in a small, lightweight package that doesn’t rely on a cell network. All of the schematics and other information are available on the project site if you want to give this a shot, but if you DO need the cell network, this may be more your style. Be sure to check out the video after the break, too!

Continue reading “APRS Tracking System Flies Your Balloons”

Hacklet 39: The Kerbal Way Of Doing Things

Kerbal Space Program is a space flight simulator based on an extremely stupid race of green space frogs that have decided to dedicate all their resources towards the exploration of space. It is a great game, a better space simulator than just about anything except for Orbiter, and the game is extremely moddable. For this edition of the Hacklet, we’re going to be taking a look at some of the mods for KSP you can find over on hackaday.io.

1271491420181365398Like most hardware builds for Kerbal Space Program, [lawnmowerlatte] is using a few user-made plugins for KAPCOM, a hardware controller and display for KSP. The Telemachus plugin is used to pull data from the game and display that data on a few screens [lawnmower] had sitting around.

There are a few very cool features planned for this build including seven-segment displays, a throttle handle, and neat enclosure.


IMG_20140419_013717[Gabriel] is working on a similar build for KSP. Like the KAPCOM, this one uses the Telemachus plugin, but this one adds three eight-digit, SPI-controlled, seven-segment displays, relegendable buttons, and a Kerbal-insipired frame made out of Meccano.


[Lukas]’ KSP Control Panel is another complicated control system that breaks immersion slightly less than a keyboard. He’s using a Raspberry Pi to talk to the Telemachus server to control every aspect of the craft. From staging to opening up the solar panels, it’s all right there in [Lukas]’ control panel.


You may have noticed a theme with these builds; all of them use the Telemachus plugin for KSP. Even though it’s fairly simple to create plugins for Unity, there really aren’t that many KSP plugins build for these immersive control panels and space flight simulators. Or rather, Telemachus is ‘good enough’. We’d like to see a fully controllable KSP command pod model, just like those guys with 737 flight simulators in their garage. If you have any idea how that could happen, leave a note in the comments.