I2C Bus Splitting with a more Professional Touch


This is certainly more robust, although not as quick. I think the stability is better in the long run with this than the prior write up with the shift register.


Last week, I covered some of the bitter details of an interesting hack that lets us split up the I²C clock line into multiple outputs with a demultiplexer, effectively giving us “Chip Selects” for devices with the same address.

This week, I figured it’d be best to layout a slightly more practical method for solving the same problem of talking to I²C devices that each have the same address.

I actually had a great collection of comments mention the same family of chips I’m using to tackle this issue, and I’m glad that we’re jumping off the same lead as we explore the design space.

Recalling the Work of Our Predecessors

Before figuring out a clever way of hacking together our own solution, it’s best to see if someone before us has already gone through all of the trouble to solve that problem. In this case–we’re in luck–so much that the…

View original post 288 more words


Unboxing the LinkIt ONE


So you got yourself a LinkIt ONE, and you’re trying to figure it out. Everything on paper looks pretty cool, but it’s a little intimidating. Don’t worry, I will help you through it.

First thing you notice is the small size of the box, and the distinct lack of weight. The blue on the edges stands out and looks crisp. Then you flip the box over and see all the small text on the back. The biggest things to take from the small text is that this is a very flexible, powerful board.


You should cut the two tape circles that hold the top and bottom of the box together before trying to open it up. This is only a suggestion, as user experience varies with the method employed. Once you get it open, you realize they are serious about wanting you to use this for IoT, as on the inside of the glowing pink lid, it says “The Ultimate Developer Board for Wearables and Internet of Things”. This is the 5th time you see this.


The board is now exposed. You take a moment to let this masterpiece sink in. It’s green and yellow. Why? I’m not sure, but it’s a coloring style they have carried over to their other LinkIt products, so I’m just going to go with it.


When you look closer you’ll see every pin labeled, including the pins in the Grove connectors. I wish they would color code the board connectors based on the type (digital, analog, i2c, serial), but they have not, and I have yet to do that myself.

There’s a couple switches on the board that are key to your user experience:

  • SPI/SD: this determines if the board can send over serial, or write to the SD card (using the LSD library). I know, it sucks having to choose, but you’ll move on.
  • USB/BAT: this tells the board what power source to pull from. If the board is in BAT mode, it will charge and run off USB, but stay on when unplugged. Also important to note is that providing 5v to the 5v pins does not charge or power the board. It was recommended to me to sacrifice a micro USB cord and power it through the USB port.
  • MS/UART: when the computer is connected to the ONE, you have to choose how it shows up. MS is used for loading small files onto its 10mb storage or upgrading the firmware. UART is what we are used to from ‘duino programming.

Take the board out and look at the bottom. There’s a shield that takes up about 60% of its size with a sticker with your UUIDs. You’ll also see a SIM card holder on the top. The micro SD slot is between that and the motherboard, accessible from the end. The card clicks into place. The ONE can support up to 32GB. At the other end of the board are the three connectors for the antennas. Be diligent when connecting your antennas so that they go in the right place.


Take out the black foam, and you’ll find the good stuff. There’s a battery in one bag, and the antennas in the other. Looking at the antennas, you realize they couldn’t have chosen a wider variety. The battery is awesome in that the connector is polarized so you won’t plug it in wrong, and the ONE has a built in system for charging and reporting on its’ state.


20150804_115645At the bottom of the box there are an additional two sheets of paper that are almost impossible to get out. The smaller one is the Quick Start Guide, and the larger one is the wall pin-up that describes the connections. Careful where you post this, as it is certainly described as hardware porn.

20150804_122309 20150804_115720

It’s said a few times that the main processor is the MediaTek 2502A, and to give you an idea what it actually does, I’ll give it a shot. It’s a Socket on a Chip (all in one) that has Bluetooth and GSM/GPRS abilities. Bluetooth modes 2.0 and 4.0 are supported, and cell bands 850/900/1800/1900MHz are usable. This means that T-Mobile, AT&T, and Ting are all available to use in the USA. The Wifi is actually a separate chip (I think the one that drives the LinkIt Connect) but is integrated seamlessly. The libraries you’ll use are prefixed with an “L”: LGPS, LDateTime, LBT along with many others, and then my favorite, LSD the SD card library.

The one thing that is distinctly lacking is a USB cord. The ONE uses a standard mirco USB adapter, and has worked fine on a 2.0 port on my laptop. When plugged in, the battery will charge, regardless of the coding actions being performed on it. Remember the SD/SPI switch that I mentioned earlier? That’s one time that you’re going to have to fly blind since you can’t have serial output while the ONE is reading/writing to the SD. Also interesting to note is that the ONE shows up as two serial connections in the Arduino IDE.

Once you get all the items out of the bags, you’re going to wonder how to organize the unwieldy mess of wires and antennas. I too was wondering that, since I wanted to just put this beauty in a case, and forget about it. Alas, I have yet to find one, so I made one out of Legos. Then I rebuilt it, then rebuilt it again. This has proven to be quite a solid transportation and developmental base station.

Final version, or all versions


I’d recommend you take a look at what you are actually going to use, then only have those antennas connected. I was looking towards my old stand-alone GPS with a frayed connection cord as justification for all my time spent figuring out a case for the ONE.

In my next post I’ll talk about getting up and going with programming the ONE with Windows 7. I will also discuss the different libraries and uses with them.