The ArduPilot Mega by SparkFun ($60) is an extension of the original ArduPilot, but as its name implies, now sports an ATmega1280 as its main processor. Designed to be the brains behind a UAV or radio-controlled flying vehicle, it's all ready to hook up to a GPS receiver, servos, RC I/O, accelerometers and gyros, etc. It's amazing how much is packed in there-- it even has a secondary ATmega328 and multiplexer.Thursday, April 29, 2010
More *duinos
Two new Arduino-compatible boards are out and are now listed in my big spreadsheet of boards.
The ArduPilot Mega by SparkFun ($60) is an extension of the original ArduPilot, but as its name implies, now sports an ATmega1280 as its main processor. Designed to be the brains behind a UAV or radio-controlled flying vehicle, it's all ready to hook up to a GPS receiver, servos, RC I/O, accelerometers and gyros, etc. It's amazing how much is packed in there-- it even has a secondary ATmega328 and multiplexer.
From Spikenzie Labs, the folks who make the Voice Shield and Altoids tin-sized Prototino comes a "SIP" (Single In-line Package) Arduino-compatible board "Sippino" ($16 kit). It can be mounted vertically or horizontally in a breadboard and has a 6-pin FTDI breakout header for programming, though no power regulation or reset.
The ArduPilot Mega by SparkFun ($60) is an extension of the original ArduPilot, but as its name implies, now sports an ATmega1280 as its main processor. Designed to be the brains behind a UAV or radio-controlled flying vehicle, it's all ready to hook up to a GPS receiver, servos, RC I/O, accelerometers and gyros, etc. It's amazing how much is packed in there-- it even has a secondary ATmega328 and multiplexer.
Labels:
Ardupilot,
Sippino,
spreadsheet
Thursday, April 15, 2010
Canon IR Remote Control
After striking out at the Electronics Flea Market Saturday, I stopped at Fry's for a fresh pair of clippers and soldering tips, and picked up a small case too-- a Serpac M4. I used some free protoboard Laen sent me (THANKS!) to build a simple Arduino-compatible circuit to fit inside it, with a single button and IR LED, powered by three LR44 (AG13, 357, etc.) button cell batteries; basically a mutetater circuit with one LED instead of four.
I figured putting it to sleep would solve the power consumption problem, so I modified the ArduinoSleepCode example from the Arduino Playground to make the D2 button both wake it up from sleep and trigger the shutter. It doesn't need to be awake for any time at all really before going into "SLEEP_MODE_PWR_DOWN": the wake up function triggers a shutter release event; currently it sleeps after five seconds. This will be a key feature of the mutetater and a more complete intervalometer-- using a button or a DS1337 clock alarm to wake up when needed.
Files:
Thursday, April 8, 2010
Minimalduino v.89 Delivered
A SparkFun protoshield and Adafruit motor shield fit on top fine, but with very little (read: "zero") clearance over the tall capacitors I used-- they'll get some tape on top, and the next revision will use shorter caps or orient them sideways. Excited to work with my first factory-made board, I shot and posted some build pictures with a few notes.
To correct in the next revision:
- Fix 3.3V regulator (MCP1700-330) pinout,
- Lay out for wider/shorter or horizontal voltage regulator caps for better shield vertical clearance.
- 5V/3.3V switchable with a jumper on three pins (though it will limit power),
- Top pad and through holes under 7805 for better heat dissipation,
- Credits (CC, author names) on bottom silk screen,
- Optional resettable fuse?
- Optional on/off switch or jumper pins?
- Try to reduce the number and length of jumpers.
Labels:
Arduino,
DorkbotPDX,
minimalduino,
Motor Shield,
PCB,
protoshield
Wednesday, March 31, 2010
New(ish) "Official" Arduinos
The Arduino Nano 3.0 by Gravitech ($35) got a lot of press in the last week after being stocked in the Make: Magazine Maker Shed (though it was actually rolled out in July). This revision has LEDs for power, RX, TX, and D13; auto power sensing; power regulation and USB programming interface-- pretty much everything a full-sized Arduino has, plus the two extra analog input pins available on the smd ATmega328.Both are listed on my comprehensive Arduino-compatible boards spreadsheet. I find it interesting that neither of these conforms to the original Arduino form factor, which makes sense given how little space smd components occupy and how often auxiliary circuits are built on solderless breadboards. Still, breadboard tinkerers miss out on the awesome functionality built into shields, which was the motivation behind the Minimalduino board.
Labels:
Arduino,
FunnelIO,
Nano,
spreadsheet,
Uno Punto Zero
Monday, March 29, 2010
Minimalduino: Three, Please!
I got the latest version (.89) of my Minimalduino board to Laen at DorkbotPDX before the deadline this morning-- looking forward to getting three copies of it!I met all of the specs I laid out in my original post, except there are no TX/RX LEDs and no SPI header. Keeping it exactly the same size as the Diecimila/Duemilanove meant more (and longer) jumpers than I wanted, but I like the layout over all, and the jumpers won't matter for the DorkbotPDX order since those will be 2-sided boards.
My favorite features are the button type options (top or side), power connection options (barrel or screw terminals, plus .1" separated pins), I2C header, and extra standoff mount-- the three Diecimila/Duemilanove standoff mounts never seemed adequate to me.
Labels:
Arduino,
DorkbotPDX,
minimalduino,
PCB
Friday, March 19, 2010
Motoruino
Tuesday, March 16, 2010
PPAC Fixes, Minimalduino, Timer
I've been busy lately and haven't had as much time as I'd like to tinker, but I've gotten things moving in the last two weeks and am overdue to post.
Hoping to show off the alarm clock a little, I brought the PPAC (including power block, valve tree, and tank) to the Make:SF Meetup last month, and while talking and hooking it up at the same time, plugged the AC supply into the DC power socket! The voltage regulator fizzled but the power board seems fine otherwise. Strangely, of all things, the LCD display was dead as well... though I may have killed it when disassembling the can..:o I ordered a better looking LCD replacement which I'll install in the next few days-- green-on-black instead of black-on-green: Newhaven NHD-0216K1Z-NSPG-FBW-L.
The minimalduino project is still moving forward: I'm using a test board I made at home a few weeks ago, populated with as little as possible: chip, caps, resonator, female headers, reset and male FTDI header. I'll move a few traces around but it's pretty much there, and hope to get three test boards made through the DorkbotPDX PCB order, deadline noon on March 29. I've built a spreadsheet with costs, and it seems like I could make a batch of 25 kits at just under $15 each. I'm not sure if it's worth the trouble though.
A few weeks ago, I built a new coffee grinder timer with a re-worked sketch and single board, then handed it off to fellow coffee fiend HF for ideas on how to make the ideal grinder timer. One thing we agreed on is that tenths of a second would be cool, so last night I had a great time working out a sketch to drive a common anode 3-digit 7-segment display using an SAA1064 IC. Of course having a sketch to start with made things straightforward-- thanks Alessandro Saporetti! I reworked the code to make it more general purpose, using all of the chip's functions including multiplexed (versus not) and changing the constant current output (7 output levels possible, from 3 to 21mA). [Video to come]
The minimalduino project is still moving forward: I'm using a test board I made at home a few weeks ago, populated with as little as possible: chip, caps, resonator, female headers, reset and male FTDI header. I'll move a few traces around but it's pretty much there, and hope to get three test boards made through the DorkbotPDX PCB order, deadline noon on March 29. I've built a spreadsheet with costs, and it seems like I could make a batch of 25 kits at just under $15 each. I'm not sure if it's worth the trouble though.
A few weeks ago, I built a new coffee grinder timer with a re-worked sketch and single board, then handed it off to fellow coffee fiend HF for ideas on how to make the ideal grinder timer. One thing we agreed on is that tenths of a second would be cool, so last night I had a great time working out a sketch to drive a common anode 3-digit 7-segment display using an SAA1064 IC. Of course having a sketch to start with made things straightforward-- thanks Alessandro Saporetti! I reworked the code to make it more general purpose, using all of the chip's functions including multiplexed (versus not) and changing the constant current output (7 output levels possible, from 3 to 21mA). [Video to come]
Labels:
7segment,
Arduino,
DorkbotPDX,
grinder timer,
I2C,
LCD,
MakeSF,
minimalduino,
ppac
Sunday, January 3, 2010
100K Views!
The PPAC "Inflation" YouTube video had its 100,000th view today-- wow! Thanks, viewers!! The big spike happened on December 14 when it started showing up on my favorite blogs, and it has been getting >1000 views a day since then.
Here it is again:
Also, the first "ejection" video:
- Make: Online: "Inflation alarm clock pretty much rules out snoozing "
- Gizmodo: "'Princess and the Pea' Alarm Clock Makes It Impossible to Stay in Bed"
- Hackaday: "Clocks that only a geek could love"
- Neatorama: "Inflating Alarm Clock Pushes You Out Of Bed When It's Time To Get Up"
- The Daily What: "Alarm Clock of the Day"
Here it is again:
Also, the first "ejection" video:
Minimal*duino
I reworked the one-layer board to got everything routed nicely in two layers, and etched it last night with the layers very well aligned! Now to get flux-- without it, the vias need their own little lead, which is quite a pain. I'll build it out today and test it, then look at board house prices for making a minimal order, seeing how many I'd have to order to get the price down to $10/kit (with no extras). I wonder about rebuilding it in KiCad though-- I've about had it with EAGLE's inefficient UI.
Labels:
EAGLE,
KiCad,
minimalduino,
PCB
Mute-tater lives!
I've been working on the mutetater program and board, and have it mostly sorted out, including the bulk of the mounting details.
I etched a small 1-sided board to hold my old Arduino Mini, with transistors rigged like the TV-B-Gone v1.2, and headers for four LEDs, a button, ftdi programming cable, and 5V power. I'm using a Bodhilabs "VPack" with a single cr2032 to get 5V, and its header works nicely for mounting a power switch. It all fits in the foam potato, so now to figure out the button and LED mounting.
Saturday, November 28, 2009
Minimal Arduino?
I prefer breadboard-friendly Arduino-compatible boards like Boarduino and iDuino, but I keep wanting functionality people have built into shields like Adafruit's Motor Shield and Batsocks' TellyMate Shield.
All I want in an Arduino:
- ATmega328
- FTDI programming header
- Arduino "form factor" with odd D7/D8 spacing and standoff holes
Necessary items:
- microcontroller: ATmega328, socket, capacitor
- clock: oscillator and 2 caps, or a resonator
- reset: 90-degree (side) button, 10K resistor
- FTDI cable interface: 6-pin header, capacitor
- Power: Barrel connector, 2-pin header
- icsp (2x3)
- i2c (4)
spi (6)(nah)
- Power indicator: LED, 1K resistor
- TX/RX indicators: 2 more LEDs, 2 more 1K resistors
- Power regulation: 7805, 2 capacitors, jumper
- Diode to prevent inverted power hookup
Update 12/29: I got a single-sided board laid out with just four jumpers, and I'll tear it up and redo it with the programming header where I want it, jumping TX and RX across the board. The files for the "Severino" single-sided board helped me figure out the routing.
Labels:
Arduino,
Boarduino,
Dorkboard,
I2C,
iDuino,
minimalduino,
Motor Shield,
Sparkfun,
TellyMate Shield
Wednesday, November 18, 2009
PPAC Demo Video
The inflation feature demonstrated with the bed unoccupied:
(Sorry for removing the original video, but... I promised Liz I'd remove it!)
(Sorry for removing the original video, but... I promised Liz I'd remove it!)
Labels:
alarm clock,
Arduino,
demo,
ppac,
video
Tuesday, November 17, 2009
Getting Out Of Bed: PPAC Major Components
The "Princess and the Pea Alarm Clock" (PPAC) has been working beautifully, waking me up with "buzz" alarms and literally getting me out of bed with "inflate" alarm functions! I will post more photos and videos soon, but first to outline the alarm clock's major components:
- Alarm clock: LeSueur peas tin can containing the main circuit board, jog/shuttle dial and button input, 16x2 character LCD display, modular handset cord jack, and female 6-pin FTDI cable jack.
- Power block: Power input/output circuit mounted in a plastic iPod Nano box, with input DC power jack and regulator, relay input power jack, two relay-switched output jacks, modular handset cord jack, status LEDs, and main power switch.
- Valve tree: Brass and plastic fittings around the main trigger solenoid-controlled sprinkler valve, with quick-release fittings on both ends, manual safety valve before the trigger valve, and manual release valve.
- Air pressure source: 10-gallon (red) or 5-gallon (yellow) air tanks, both with pressure gauges and female quick-release connectors, usually filled to 110-120psi.
- Air bladder, aka "Pea": Green exercise ball between my mattress and box spring, with a hose ending in a male quick release fitting.
Labels:
jog shuttle,
LCD,
ppac,
valves
Monday, November 16, 2009
Silly Alarm Clocks
I've been bookmarking funny alarm clocks for a while-- snoozing is so universal, and I get a kick out of the features people choose to include in their wake-up devices to ensure that they actually get out of bed. While not Arduino- or ATmega-based, here are a few of my favorites:
Clocky news popped early 2007, and it took me about a minute to place an order-- had to have one as soon as possible! It was too easy to just turn on its side, though, with the side of a tire as the base, so it spins around on my night stand instead of taking off. Cones on the end might prevent that, but I still love it, and it got me thinking seriously about my old inflating alarm clock idea, so is probably the single biggest inspiration for the PPAC.
- The Pneumatic Bed Shaking Alarm Clock was built for Toronto's "The Edge" 102.1 "World's Biggest" contest and while it seems too violent to be used every day, its maker claims to have used it to get up for four years! This may be the epitome of taking a silly alarm clock idea too far, and I have nothing but the utmost respect for its maker.
- The Perfect Wake-up Machine, a design project by students a Colorado State University, assaults all senses with its control of just about anything. Serial communication, a few PIC chips, and multiple power systems combine to make a beast of an alarm clock-- kudos for overkill!
- "The World's Loudest Alarm Clock was a simple but effective build by Kip Kedersha (aka "Kipkay"), replacing a cheap alarm clock's speaker with two sirens for a deafening wake-up experience. Like The World's Biggest Alarm Clock, I can't see this as something anybody would want to use a second time!
Alarm Clock/Bedpost "-MAWD-" is an odd refitting of an alarm clock, lamp, and speaker into a tube attached to a bedpost. Most notable for being the product of a one-night, I'll-do-it-right-now!-inspired fit of tinkering, it has "silly hacker" written all over it. I love the tangle of wires supporting the LCD.
Labels:
alarm clock,
Clocky
Tuesday, October 13, 2009
4-Way Button: Click, Double-Click, Hold, Long Hold
How many ways can a button be clicked? [Anonymous] commented asking about double-clicking after my "Click for A, Press and Hold for B" post, and I finally got around to it, adding a long hold function too. Last night I tidied up the code and debugged obscure outlier cases, and the result is a simple 4-way button function which can report click, double-click, hold, and long hold events.
When used with a rotary input (pot, rotary encoder, jog-shuttle, etc), complex branching menus are easy to implement. Note that the long hold event always triggers a "normal" hold event first, while single- and double-click are completely independent (as well as being independent from the hold events).
I've posted code in the first two comments-- the tabs of my test sketch, with the second comment containing the checkButton() function. This seems like a good candidate for my first proper library; I would appreciate any help in getting this example sketch converted into an easily instantiated object, like AlphaBeta's Button library.
Thursday, September 10, 2009
Strobit Wireless Camera Trigger
The project page at Gcode has lots of information, there are photo sets on Flickr-- board development progress and some photos taken using prototypes-- and an Arduino Forum thread with a few questions answered. I continue to be impressed by the level of sophistication people have been putting into their Arduino-compatible boards.
Labels:
strobit gcode forum
Friday, August 21, 2009
Illuminato X Machina... WOW!
"...a motherboard prototype that uses separate modules, each of which has its own processor, memory and storage. Each square cell in this design serves as a mini-motherboard and network node; the cells can allocate power and decide to accept or reject incoming transmissions and programs independently. Together, they form a networked cluster with significantly greater power than the individual modules."The small board, cleverly sold alone or in 4-, 9- and 16-packs aims to be a different model for computing hardware, with power and data I/O on all four sides, and while it's hard to imagine applications, it's an impressive example of the power of open source hardware and clever design.
Labels:
Illuminato,
Illuminato X Machina,
liquidware
Sunday, July 19, 2009
PPAC Progress: UP!
I've been working on (mostly) minor tweaks to the alarm clock:- The can I had used to test mounting techniques served its purpose as a prototype, so I redid the mounting in a fresh can, with adjusted positioning of the LCD and (new) lit button, with use three screws per end cap instead of two. I scanned the LeSueur label and printed a copy to test the positioning of the LCD, button, and power/relay port cutouts.
- I over-tightened the plastic ring which opens the output valve of my 10-gallon air tank, leaving me with a sealed can at 105psi! I bought a 5-gallon tank as a replacement, figuring it would be fine for a full run, and was impressed by its lightness. I "fixed" the 10-gallon tank's valve by cutting off the plastic ring, so I can turn the open/close with a small wrench, so now have 15 gallons to pressurize.
- Testing the 5-gallon tank at 100psi, the plastic "open" safety valve popped a leak, so today I replaced all pre-solenoid valve hardware with brass-- no more leak!
- Since the emptying valve didn't get enough pressure from the inflated "pea" to open, I replaced it with a manual valve-- not as elegant, but the alarm is about inflation, not deflation.
- The alarm was still triggering when the alarm was "off" and the target time was reached, plus there were a few small bugs to work out.
- The maximum inflation time was set arbitrarily at 30s, so I added another click+hold "hidden" mode branched from the alarm mode selection so the max inflate time can be adjusted. It's also stored to (Arduino) EEPROM with other "system" parameters.
"Binary sketch size: 13566 bytes (of a 14336 byte maximum)"
I'm tweaking the program a but more, but it's late and I'm so happy with how far it has come! I plan to be woken up rudely in the morning...:D
Tuesday, June 16, 2009
LCD difficulties
After putting together a schematic in EAGLE for the shower control circuit, I tinkered a bit trying to get a scrounged Powertip PC1602-G character LCD working. Serial LCDs from SparkFun are easy to use but expensive, in addition to hogging the serial port and being available only in 16x2 and 20x4; I'd like to be able to use cheapo 8x2 or other displays.I soldered on a pin header and got to breadboarding it with an iDuino, but quickly discovered that the tutorials are pretty haphazard, and I wasn't able to get any output using the LiquidCrystal library in spite of quadruple-checking my schematic and breadboard connections.
I tried Limor's tutorial but got no result, and I think editing the library to set the pins is an odd (wrong?) way for a library to work. I even used the exact same pins-- no dice. I wonder if the scrounged LCDs I'm using have custom commands that makes them incompatible with the library-- I need to try a different LCD, and maybe use Massimo's raw example.
Update: In a comment, Al asked if the LCDs I was trying weren't HD44780-compatible at all and... oops, thats the problem! I got it working fine with an LCD scrounged from an old Brady Labelmaker, which contains an actual Toshiba HD44780.
Saturday, June 6, 2009
Xcode > Arduino?
After bookmarking melka's Xcode Arduino template the other night, it was funny to see it posted the next morning on the Make: blog-- all signs point to Xcode, so here I go. Not having experience with a full-featured IDE or "real" C++ development, it should be an interesting learning experience.The first thing I had to do was get the latest Xcode, 3.1.2, a 995.9MB download-- I installed 3.0 a while ago, but it complained when I tried to open melka's template. Got it installed, then went through melka's README and... everything worked!
I screwed up the first run through by renaming and moving the project. On the second try, I copied the unzipped "Arduino Base Template" to my desktop as "ArduinoBaseTemplate" and everything worked with the new template in Library/.../Project Templates/Arduino.
All is not wine and roses, though-- a test sketch that worked fine in the Arduino IDE gives me a lot of errors in Xcode, all related to the order I'm declaring things-- I generally define functions after my setup() and loop() calls, but Xcode gives me "was not declared in this scope" errors for all of them. It seems I do need to learn the basics of C++ to get this working. How to get a crash course in this stuff? Google came up with "C++ Language Tutorial" so, more to read...
Subscribe to:
Posts (Atom)