Thursday, August 11, 2011

Not all rotary encoders are created equal...

I had a hell of a time getting the (F)Light Suit remote control to work with the Modern Device LCD117 backpack and inexpensive BI EN11-HSM1AF15 rotary encoders. It turned out that I was having two issues:
  1. The LCD117 was getting its updating commands too quickly, so chose to reset instead of display, and
  2. the rotary encoders make contact so quickly when stepping up or down, my debounced code for bigger rotary encoders with more even click timing wasn't working.
Preventing the LCD117 from updating too quickly solved the first problem, and redoing the rotary encoder code from scratch solved the second problem. I'll post code later when the project is complete, but I based it on Max Wolf's very simple first example from the Arduino Playground rotary encoder page. The interrupt-based examples are too cryptic and (I think) unnecessary in a sketch that loops at a few KHz, which all of my sketches run at.

Wednesday, August 10, 2011

(F)Light Suit Major Components

The main components of the (F)Light suit:
(Updated 8/15/11)
Component(s)SourceStatus
LED stripsDealExtreme 22 strips with connectors, need sealing and velcro backing.
8-channel MOSFET Output BoardsDorkbotPDX board orderThree built and tested, work perfectly
Arm accelerometers Modern Device Left one on main board, right attached with 3-wire lead across shoulders
Black flight suit Amazon Needs velcro for LED strips
Arduino-compatible main board: Minimalduino 105 DorkbotPDX board order
Arduino interface board: Adafruit protoshield Adafruit Industries Done, ready for mounting and cable threading. Ports for MOSFET output boards, right accelerometer, remote control, audio sensor
Remote control homemade, various parts Needs laser-cut acrylic surround, rot 2 flaky
Batteries eBay 12V, 4800mAh Li-ion battery packs with barrel connectors, powering third MOSFET board.
Audio input: ZX-Sound board RobotShop.com Test, add light, change connector, paint, velcro back
Missing anything?

Wednesday, July 27, 2011

Ethernet Arduinos (and Compatibles)

Also on the spreadsheet, three boards with built-in ethernet:
  • There's finally an official Arduino Ethernet ($60), complete with RJ45 port. It has an FTDI cable header for programming (no USB), a microSD card slot for storage, and there's an optional PoE daughter card.
  • SparkFun also released an Arduino-compatible board with ethernet, the Ethernet Pro ($55), but without the SD card slot. It's less cluttered than the official board, hopefully the price will come down as more people build projects around them.
  • Additionally, the Freetronics EtherTen ($70) includes a microSD slot and (mini) USB interface.
All of these are compatible with an Arduino (or Arduino-compatible) board with the ethernet shield ($40) on top, but I wonder: will shields fit on any of these without hitting the magjack? Or do they use taller female pin sockets? They're also equivalent to an Arduino hooked up to a Wiznet W5100, eg. with a WIZ811MJ module ($20!). Too bad Adafruit doesn't sell the ethernet module breakout shield anymore, but at least the design files are still available.

Call me cheap, but these all seem overpriced, being based around a $4 microcontroller! With a basic Arduino board at $20 and WIZ811MJ module at $20, why isn't the SparkFun Ethernet Pro $40 or $45?

Tuesday, July 26, 2011

More 'duinos on the Spreadsheet

I've continued to add Arduino-compatible boards to the spreadsheet, bringing the count to 119 boards. You can get there easily by remembering "allarduinos" and going to http://tinyurl.com/allarduinos or http://bit.ly/allarduinos.

Some recent additions to the spreadsheet:

Monday, July 25, 2011

(F)Light Suit Progress: PWM!

I had a frustrating time trying to get a PCA9685 working-- it wouldn't even reply with its register byte values. I've interfaced with other I2C chips and didn't expect problems, but trouble was all I got.

Poking around the Arduino Forum trying to find any examples with a PCA9685, I found the thread on Elco Jacobs' new ShiftPWM library to drive the outputs of the ubiquitous 74HC595 shift register with 8-bit PWM precision. His demo video is on the right. The example sketch was so straightforward, I had two chips driving-- and dimming-- 16 red LED's in minutes.

Once I saw those red LED's cycling, I considered that part of the project done-- thank you, Elco!-- and started laying out a driver board with a 74HC595, eight outputs hooked up to MOSFETs and test LED's, and screw terminals so they can be daisy chained. With the DorkbotPDX order deadline this morning, I had to stay up late laying it out and getting a final Eagle brd file ready, and hopefully it will work; I wasn't that excited about asking for six copies of a 3.9"x2.1" V001 design and having no time for a second run if they don't work, but... hey, they'll work!

Here's the Eagle schematic: pdf, sch. And the board: pdf, brd.

Sunday, July 17, 2011

LED (F)Light Suit: Ramping Up

I've been mesmerized by bouncing red LED's since the early '80s. LED's were mostly red, needle-style VU meters were on the outs, we hadn't yet graduated to green-yellow-red meters, and I grew a special place in my heart for those bouncing red lights. We also had KITT and the Cylons: bouncing red lights were and still are awesome ("rad" had not been invented yet).

I put together a black flight suit with red EL-wire segments for Burning Man in 2008 but did not have time to build the sequencer and control system I envisioned, so it was an on/off affair, or it pulsated to the music before the small batteries died.

Working on a suit for this year's burn, I've decided to return to the original concept-- red LED's-- and am working on the major areas now:
  • Suit electronics: Arduino core, I2C port expander w/PWM output using PCA9685 16-channel, 12-bit PWM I2C-bus LED controller driving power MOSFETs, one per segment. There are 17 segments in my design, so I'll use the port expander and then another spare pin to trigger the 17th channel.
  • Audio metering: I have a MaceTech Shifty VU shield working but I wonder about adjusting levels on the fly, and how to best get a mic input to it or something similar. There will be other modes for sequencing the lights, but bouncing VU meter is the primary mode I'm looking for.
  • Segment planning: location and length of each segment, power lead routing, attachment to suit. This is going well, with the first seven (of 22) segments cut and tested last night from my first 5M strip from DealExtreme; the suit will need 53' of light strip so I've ordered more.
  • Power: rechargable 12V power packs are easy to get; not sure how to recharge them on the Playa.
  • Remote control: would like to have a small, wireless remote to control modes and mode parameters.
  • The program: I have a list of modes I'd like to switch between, some of which have parameters I'll want to adjust on the fly. Ideally I'll be able to edit the program during the day if I come up with new ideas while I'm in BRC.

Saturday, July 16, 2011

What is "Minimalduino"?

I started working on the "minimalduino" design as...
  1. a minimal hardware design for an Arduino-compatible board. At heart, it is very similar to the Dorkboard, but
  2. designed to match the form factor of the "official" Arduino boards so users can benefit from the many, many shield boards designed to fit on top. While (awesome) boards like EMSL's Diavolino are also low-cost and shield-friendly, I wanted to explore
  3. optional hardware configurations, with different power connector options (pin headers, JST connector, barrel jack, screw terminals, or mini USB jack), 5V and 3.3V power regulation and optional voltage switching and regulator bypassing, and options for crystal and caps or a resonator. I also wanted to have
  4. better shield-friendliness by placing LEDs (power and D13) and the reset switch (side switch or top switch) at the edges of the board, and lastly, I wanted the board to be
  5. single-sided, home-etchable with wide traces and minimal jumper wires. There is still work to be done to reduce jumpers, but it improves on the the S3V3 "Severino" board which doesn't match up size-wise (it's bigger), the standoff mounts don't match, and it uses a DB9 serial connector instead of the now widespread FTDI USB-serial breakout cable.

Thursday, June 16, 2011

3-Digit 7-Segment Display With an SAA1064


Working on the grinder timer project, I built out a basic circuit (EAGLE .sch) with an NXP SAA1064 and resurrected a test sketch (Arduino .pde) for it. The SAA1064 works beautifully for driving common anode 4-digit 7-segment displays with constant current per segment, from 3 to 21 mA in 3mA increments; in this case I'm only driving three digits since that's what the design calls for.

There are two buttons in the test sketch (on D10 and D11), the first to change count modes (seconds, tenths, hundredths, hex, and "chase") and the second to cycle through the seven current settings.

This schematic is identical to one I did a board layout for with an SO24 package chip, but for some reason those boards didn't work; maybe something in manufacture or assembly bridged pins somewhere. I'll redo the layout and see what happens, with vias further from pads.

Wednesday, June 15, 2011

Minimalduino 105: Nice!

I built out one of the "V.105" boards I got a few weeks ago from the DorkbotPDX PCB order, and it works beautifully, almost identical to the version 107 I posted files of, with "5V/3.3V" voltage and "FTDI/IN" power selector switches. I mounted a mini USB socket and a 7805 regulator, in addition to the barrel jack for power in.

I've gone to whole number versioning btw, no need for "always under 1" versioning or major/minor versions, and if I need to go higher than 999 (huh?!), I can just use four digits.

Top and bottom labeling came out great, including the Open Hardware logo, though the letters mush together a little. Also, the "FTDI" header label didn't print at all, maybe there's a problem having two "FTDI" text labels.

One issue is that the drills for the main female headers are smaller than those on versions 89 and 97 boards, even though they use the same parts in EAGLE! I'll check the parts and maybe swap them out. That's a bummer-- I had to drill them all out to mount the headers, which ripped some of the pads off the fiberglass, but thankfully they stayed connected to the traces.

Minor edits for the next version:
  • Move the power input components to give electrolytic capacitors more room to accomodate shorter/fatter ones or taller ones mounted horizontally. As it is, the 100uF cap at the input is jammed between the .1uF cap and the barrel jack. [done]
  • Rotate LED's so they can be mounted horizontally for better side viewing when using a shield. [done]
  • Add heat sink polygon and vias under the 7805 tab.
  • Fix the Sparkfun mini USB through-hole part: its outline is on the bPlace layer, not tPlace where it belongs. Or just use a different part. [done]
  • Check female header drill diameters.
  • Add 2-pin header at the reset button to make it easier to add a remote panel-mounted reset button. [done]
  • Round the corners; looks nice on the Freetronics boards. Also check Uno outline and drills to make sure things are lined up right. [done]
I'm pretty happy with this for now though-- I have plenty of cheap, homemade, 5/3.3V-switchable Arduino-compatible boards to work with!

Monday, May 16, 2011

MinimalDuino 107 Pattern

After submitting the 105c version to the DorkbotPDX PCB order, I mentioned I'd make one at home, but the traces looked so thin on paper and I didn't like the routing of gnd to the crystal area, so I made a few changes to optimize it for toner transfer and home etching.

Here's a shared folder with the updated, v107 EAGLE files and a 600dpi jpeg for toner transfer. See the low res at right, or click for higher res; get the full res jpeg here.

Monday, May 9, 2011

Minimalduino v.105: Curvy Trace Fun

I've been trying out some Hope RFM12B radio modules-- very cool and inexpensive!-- which run off 3.3V. I've been using MinimalDuinos since they're 5V/3.3V switchable, and I got three version .97 boards made last year, with curvy traces, and they're coming in handy.

I have a few boards I'll need to get made over the next few months, so to warm back up with EAGLE, I polished up a straight (normal) trace version .105 board and set to curving it up. It took about an hour and a half, going around trace by trace in move mode, lots of command-clicking and dragging in the middle of trace segments to adjust their arcs. I submitted it to the DorkbotPDX PCB order before the deadline hit, and I can't wait to see what I get :) Design files and snapshots can be found here.

A key goal of the design is to have a good single-sided pattern for home etching, so I'll also make one by hand after fattening up as many traces as possible.

V.105 with straight traces:

Compare to V.105C, with curvy traces:

Friday, February 25, 2011

Spreadsheet: "Date Added" Column, More Boards

So many people have asked for a column on the Arduino-compatible board spreadsheet showing the date when each board was added, so I put that on the spreadsheet this week. I had to sift through the revisions, but it wasn't too much of a pain.

Also new to the spreadsheet:
  • Six boards by the Indian company Bhasha, all through-hole except for the FTDI USB chips, mostly simple designs but it's clear from the traces that the boards were reworked slightly. Interesting to see the "Severino" Single Sided Serial V3 design offered for sale, something I haven't seen elsewhere.
  • Zigduino by Logos Electromechanical is offering their first run of IEEE 802.15.4 radio-equipped boards for $70. I've been looking forward to these boards coming out, but the price seems high given that you could buy an Arduino FIO for $25 and an XBee module for $19, so $44 total, or a Freakduino Chibi for $33. I hope the high price is only for this first run and that it is lower when Logos goes into full scale production, but I also wonder if it's as easy to use as the widely available XBee modules for which there are many example sketches available. It does have XBee "Pro" capabilities though, and I'm not familiar enough with 802.15.4 to really compare it to other offerings. I look forward to more complete documentation on its specs along with full design files since it's unclear what its equipment and capabilities are.

Open Source Hardware Definition 1.0

The Open Source Hardware ("OSHW") definition version 1.0 was released a few weeks ago, and a bunch of organizations and people (like me!) have signed on in support of the definition and of OSHW in general.

One of my favorite parts, emphasis mine:
4. Derived Works
The license shall allow modifications and derived works, and shall allow them to be distributed under the same terms as the license of the original work. The license shall allow for the manufacture, sale, distribution, and use of products created from the design files, the design files themselves, and derivatives thereof.
If I'm reading that right, by allowing and not obliging derivative works to adhere to the definition, industry is encouraged to incorporate as much or as little OSHW thinking as they like into their products. I think this is key for encouraging manufacturers at large to think in terms of making their products hackable, but more importantly, servicable. Of course companies will need to lay out all kinds of disclaimers for when you break their products when you were trying to fix them, but that's already standard practice. This is getting interestinger all the time...

Monday, February 14, 2011

Spreadsheet Edits

I've made some changes to my Arduino-compatible boards spreadsheet lately: I added a few boards, removed boards which are no longer available, and made some general changes.

Added:
  • Stripduino by TinkerAct! has a small SMD area for its Arduino-compatible core, with IO pins in a line next to a stripboard area for on-board prototyping. There was an initial issue with the name of the board, but it seems straightened out now, and the design is lovely-- nothing extraneous. It reminds me of one of my favorite boards, Prototino by Spikenzie Labs.
  • "Drum Kit - Kit AI" by SpikenzieLabs, a "maybe not" Arduino-compatible board for creating a MIDI 6-pad drum kit using piezo sensors stuck to just about anything.
  • rEDI Education Board by Rogue Robotics is a prototyping board with buttons, LED's, a piezo speaker and volume knob, real time clock, high-powered 5V voltage regulator, servo headers, and a breadboard area. Also "maybe not" Arduino-compatible since it runs an ATmega644P, so it needs a custom bootloader.
Removed:
  • A bunch of boards by Fundamental Logic which apparently stopped accepting orders in May of 2010. That makes me sad since they offered some interesting boards, but thankfully the designs are still online for reference. My favorites: iDuino, StickDuino, MPGuino.
  • Modified Pico was a very compact, breadboard-friendly Duemilanove-compatible board. Thankfully details (including design files) are still available.
  • Rampage Robot Base V4 was an Arduino-powered robot platform with headers for a shield. Looks like its creator has moved on to more complex microcontrollers.
  • Zuccherino by Evil Mad Scientist Laboratories was to be "a low-cost, scalable, and extremely versatile open-source motion control platform," but the project has not had an update in a while. I look forward to more from this project.
  • "Flexi" was an inexpensive breadboard-friendly clone, not sure what happened but the domain now hosts a useless/spammy link page.
Changes:
  • I just added a "By" column for designer, author or manufacturer. I'd like it to be simply "Author," but some companies [cough] mostly sell other peoples' designs, so I'm not sure whom to credit.
  • I'd like to add more information about when boards were edited or checked, but wading through the revision history in Google Docs is a pain. A few people have suggested this and I like the idea, but I can't figure out how to track down the details.
  • I updated a bunch of boards' links, prices, and chip; a few use ATmega328s but used to be ATmega168s.
As always, please email me with any suggestions or corrections!

Wednesday, February 9, 2011

Minimal*duino V.96

I've done a little work on my "Minimalduino" Arduino-compatible board design lately:
  • Moved the fourth standoff mount hole to line up with the Uno's new fourth standoff hole (which they didn't make aligned to the one across the way!).
  • Fattened up the traces to make it more home-etcher-friendly: .016" and .024" traces, .018" min. separation.
  • Spread out the components, reduced the jumper count, and removed the I2C header.
  • Added pads for a mini USB jack, for power only. (I'm not sure about the grounded heat sink of a 7805 shorting to the 5V trace so I put in a solder bridge, but it's fine for making at home using real wires for the top layer jumpers.) So many options for powering this sucker!
Files can be found here.

Thinking about running this at 3.3V, I don't think it would work right for programming or for running with the FTDI cable attached.

Update: I had some v.97 boards made (DorkbotPDX order ftw!), same as .96 but with curvy traces and a few parts moved a little, here's one assembled:

Wednesday, January 5, 2011

Arduino: What Direction?

In spite of the year-end hype surrounding the Arduino Uno, and while I like seeing Arduino hit its 1.0 release, other Arduino-compatible boards get me more excited. If Arduino is a low hurdle access architecture for the ATmega**8 line of microcontrollers, I'd prefer the extra circuitry to be optional:
  • Power regulation: why embed regulation in each board when it's not always needed? And what about regulation or step-up converters for battery-powered projects?
  • Board voltage: There are good reasons to use 3.3V or 5V depending on applications, why are so few boards switchable?
  • Programming interface: While USB (and its decoder chips) is ubiquitous, so (still) are serial and ethernet, and (increasingly) XBee. Why not make the programming/serial interface optional or external?
  • Real estate: There is only so much room in the standard Arduino form factor. Why not use that space for useful circuitry that would be tricky to locate externally?
$30 is a fair price for a board with USB, power regulation, and automatic power switching, but half of that cost is not for the Arduino-capability! This is neatly demonstrated by the $13 Diavolino by Evil Mad Scientist Labs, which has no power regulation (but pads if you want to install it) and a header for the now standard 6-pin FTDI USB-serial breakout interface. Arduino-compatible boards' regulation, voltage, programming interfaces, and extra features are listed on my comprehensive spreadsheet.

Here are a few boards comparably-priced to the Uno that may be more useful for real applications since they have the Arduino core but different circuits for power, communication, or extra capabilities:
  • Wiseduino ($34 kit) has a DS1307 real time clock with backup battery, a 256Kbit EEPROM chip, header pins for the Adafruit XBee adapter, and 6-pin FTDI cable interface.
  • Freakduino Chibi ($33 kit) has built-in 802.15.4 (XBee) radio and optional ($3!) battery voltage regulation so you can input from .7V to 6V.
  • Arduino FIO ($25) has a MAX1555 LiPo charger, power regulation, and an XBee socket.
What do you want in an Arduino-compatible board? Please leave a comment!

Monday, October 4, 2010

Distracted...

The laser has distracted me from Arduino-based pursuits for the last few weeks in spite of the Uno and Mega 2560 release (and subsequent kerfuffle) and the open source hardware summit and Maker Faire in NYC. Making a better ventilation and filtration system takes priority since I'll be able to make all sorts of things when I can run the laser whenever I want:
  • Cases and case front panels
  • Button caps and custom lit buttons
  • PCB etching (removing masking paint)
  • PCB post-etch scoring and labeling
  • PCB solder mask cutting
  • Motor mounting and simple gearing (like this?!).
Update 1/3/2011: I think the laser tube died on Dec. 29...:( Was engraving fine on one pass, then was just marking-- not cutting-- the next. Will try to repair, or else... replace? Rabbit or Epilog? [sigh]

Saturday, September 11, 2010

EPILOG

I replied to a Craigslist post for an old Epilog laser system w/PC, Corel, rotary attachment... complete pipeline.

It's sitting in my office now and it works....:D

More later... much to do...

Thursday, September 9, 2010

Arduino Coffee Control Success!

This morning, Liz woke up, tapped the bookmarked link on her iPhone, and then tapped "Click Mr. Coffee ON Button." A few minutes later, she went downstairs and was greeted with a fresh, hot pot of coffee :)

The circuit for Mr. Coffee ended up being different from what I'd planned when I got everything assembled for a final test: switching on power to the unit did not start the brewing; it needed to have the "ON" button pressed! So instead of switching power on with a relay, I soldered wires to the "ON" button's sides and ran them to the same relay. I edited the sketch in ten minutes to close the relay for a half second, uploaded it, and it worked perfectly.

Tuesday, September 7, 2010

Coffee Control

It looks like we'll have remote control of the grinder timer by the end of the week, along with power for Mr. Coffee and the Gaggia Classic!

The first step (mentioned in my previous post) was to get my old (V1.0) Adafruit Ethernet Shield up and running with an XPort Direct+ and the color picker sketch on the examples page. Then I stripped down the sketch, reconfiguring it for general pin control: toggle outputs, set PWM output values, pulse, and read analog values. After that, I simplified it for the coffee control project which only needs three digital output pins.

One obstacle was getting my LAN to the kitchen counter, and an old AirPort Extreme from my scrap bin (found on the street!) did the trick: it now wirelessly bridges our home network via WDS and connects to the ethernet shield with a cable, its USB port powering my minimal Arduino-compatible board underneath with enough 5V power to spare for Mr. Coffee's relay; I'll add a 12V source for a bigger, higher power relay to switch the Gaggia Classic.

The Arduino side of the system works great, serving a web form (at right) to turn the two power relays on or off and to trigger the grinder timer. The last part is always the hardest, though: wiring and casing it all up. Safe wiring will take some time to nail down, with Mr. Coffee needing ~1025W and the Gaggia Classic rated at 1370W (!). As for the case itself, lucky for me some folks from Ponoko are scheduled to make a presentation tomorrow (er, later today ;) at the Make:SF Meetup-- just the info I need, right when I need it!