Back in March I spoke with Romilly Cocking of Quick2Wire about the Raspberry Pi experimenter's kit they were developing. The first two boards from the kit have now gone into beta testing and this post takes a closer look at them and covers initial hands-on experience.
March feels like a long time ago and who could have predicted that since then we would see so many Raspberry Pi add-ons and kits. But options are a good thing and sometimes there are subtle details which give one product the edge over another, or perhaps appeal to particular sensibilities.
The Interface Board
The Quick2Wire boards are supplied as a kit of through-hole components and the first to arrive was the Interface Board, packaged in a rather unassuming box.
Inside that box could be found a PCB along with a small bag of components, with a link to a draft version of the assembly guide having been sent via e-mail.
The main function of the Interface Board is to provide breakout and protection of the Raspberry Pi GPIO. It also provides a few other handy features but more on those later.
There were not many components to solder and putting the kit together didn't take very long.
Shortly after completing assembly I received an e-mail informing beta testers that a small error had been discovered: a track connecting GPIO pin 22 had somehow been omitted on the PCBs. Fixing this was straightforward and just required adding a short piece of jumper wire.
16-bit I/O Expander
The I/O Expander kit arrived the next day and this included a second smaller PCB and another bag of through-hole components.
Once again, assembly didn't take long.
This package also included a ribbon cable to connect the two boards together and another one to connect the Interface Board to a Raspberry Pi.
This configuration provides:
A voltage regulator for additional 3.3v current
8x diode-protected GPIO pins from the Raspberry Pi
GPIO connected push button and LED, with jumpers to enable/disable
16x additional GPIO pins via the I/O Expander
Headers for SPI0 and SPI1
TTL buffering of the Pi's UART, with a header for connecting a USB adapter
The I/O Expander includes a second header to enable daisy-chaining with additional Expanders or other I2C devices, and three DIP switches are used for setting the I2C address of the Expander.
First it's necessary to enable I2C in the Linux kernel and the Quick2Wire website provides details on how to configure the appropriate modules. It's also worthwhile installing the handy i2c-tools package which allows you to scan the bus and test reading and writing, from and to devices.
Software to accompany the Quick2Wire boards is provided via a Debian apt repository and development repositories on GitHub. At present the former only contains gpio-admin, a command line tool that enables GPIO access without being root (eminently sensible!)
The Quick2Wire Python API is available from GitHub and includes software that makes it easier to control I2C hardware. Since this is still in heavy development it's recommended to install it into a Python “virtual environment” and the instructions provided explain how to do this.
Users which need access to GPIO and I2C should then be added to the gpio and i2c groups.
A testing guide was provided with the Interface Board and this confirmed operation of the LED and push button that can be jumpered to connect to GPIO. Plugging an Arduino USB adapter — a.k.a “FTDI cable” — into the 6-pin header enabled logging into the Pi via the UART/console.
The first test for the I/O Expander was to run i2cdetect and this immediately found the board.
As expected, changing the DIP switch settings made the Expander appear at different I2C addresses.
The next step would be to write code that uses the Python API (the quick2wire.i2c module) or conduct further tests using the i2cget and i2cset etc. tools.
The Quick2Wire boards are suitably easy to use and appear to be well thought out and of a decent quality. The Interface Board providing breakout and protection for onboard GPIO, along with ease of access to the UART and enabling use with TTL level USB adapters, plus breakout for I2C and SPI. The I/O Expander adding another 16 pins of GPIO that's safe to experiment with.
It will be interesting to see how this kit progresses as a system and it looks as though an ADC/DAC expansion board is already in the pipeline. As we've seen with Arduino, it's not always a matter of being first or having the most bells and whistles, and in the end it often comes down to some combination of cost, ease of use and flexibility.
You don't need to own Quick2Wire boards in order to make use of their software, and those curious can keep tabs on hardware development since design files are provided under a Creative Commons licence and are hosted alongside the software on GitHub.
Top image: detail from the Interface Board schematic diagram (© Quick2Wire, CC BY-SA 3.0)
1 commentsLike this Leave a comment