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!

Tuesday, August 17, 2010

Workshop!

After over a month of planning, boxing, and finally moving into a new home, I'm ready to get back to projects working in a dedicated workshop/office space!

Arduino-based projects, all within reach:
  • Mutetater: get it working for the Sharp TV I have, at least. This is more a challenge of IR encoding/decoding than anything else, so I'll reel back my code and try to re-approach the examples I've looked through before.
  • Resurrect Growduino for an herb garden on the upper desk, easy since there are power outlets available so I can sidestep solar power issues for now and get stuff growing.
  • Net-enabled coffee grinder timer so it can be controlled through a simple web interface, via an iPhone on the local network. I think it would mostly involve working with the ethernet shield, then maybe "shield-ifying" the grinder timer or building ethernet capability into the single-PCB circuit. Then I can start building out a control system for the Gaggia Classic.
  • Remote-controlled curtain system for the TV. Mostly involving IR decoding, simple (MOSFET) motor control, some limit switches, mounting hardware, and sewing.
  • PPAC: um, why aren't the relays firing?! Buttons work, so I need to disassemble it and check the output pins, then position the "pea" for exciting wake-up sequences.
  • Intervalometer ("intervalomejar"?): get a simple one working for timelapse using the FSM (Finite State Machine, not Flying Spaghetti Monster) library.
I'll add more later, just want to get a list going so I can start building some test sketches. Other tech to sketch for more complex projects:
  • PID for temperature and motor control
  • Temperature sensing for PID control: thermocouples

Saturday, July 10, 2010

More Boards...

Seems like I'm always finding more Arduino-compatible boards to add to the spreadsheet-- added four today, bringing the current count to 89. I remove some occasionally when I check and find the links are no good, but hopefully all of the listed boards really are available, or will be very soon.

Added today are Duemilanove and Mega clones from DF Robot, a Chinese company, as well as their Romeo robotics board (pictured, $36) which is essentially a Duemilanove with the SMD ATmega328's 2 extra analog pins exposed (Seeeduino style), male header pins, on-board buttons, I2C headers, and an L298 motor driver with screw terminals.

Also added is the Displayduino (pictured, $70, which I noticed at Sparkfun), the core of the MondoMatrix modular system for controlling large numbers of LEDs or servos or whatever. Displayduino acts like a Sanguino with USB, screw terminals, and an RS485 port driver for communication in addition to the ATmega644's two UARTs.

Wednesday, June 23, 2010

EMSL "Diavolino"!

Windell from Evil Mad Scientist Laboratories ("EMSL") announced a new Arduino-compatible board today: Diavolino!

Designed to be programmed with an FTDI USB cable (6-pin), the awesome-looking $13 kit comes with just enough to get started, including an ATmega328 pre-loaded with the Arduino bootloader. Pin headers cost an extra $1.50, and you can power it with an optional $1 3xAA battery box with switch, which should supply 4.5V (using alkalines).

Very cool kit from some very cool people, and (according to my Arduino-compatible board spreadsheet,) currently the lowest-priced way to get access to the big wide world of Arduino shields.

Update 6/24: Added the EMSL Peggy 2LE and Bulbdial Clock to the spreadsheet, though they're "maybe not" really Arduino-compatible :)

Friday, June 11, 2010

DorkbotPDX PCB Order: Boards and Boards and...

After missing the May 17 deadline, I was able to get two boards in for the May 31 DorkbotPDX PCB order. That order has taken longer than previous ones though, since the fab house quoted a much higher price than for previous orders. Fortunately, Laen was able to find a different manufacturer for the panel and stick with the $5/square inch (for three boards *shipped*) pricing structure-- woohoo!!

I submitted a 3-digit 7-segment display board (using an SAA1064) and an Arduino-compatible board with curvy traces and optional everything (including 3.3V operation).

The next deadline is this Monday, June 14 at 8AM, so tweak your designs this weekend and get your .brd or gerber files in!!