Monday, November 26, 2012

smARtDUINO Arduino projects without the wires!

So I just backed this new project on  called smARtDUINO.
It's an Arduino compatible system that uses a couple of nice connectors to allow you to connect modules together to do prototyping without wires.

You snap the processor (there are a couple choices) onto a power module and snap that to a bus connector.
From there you can snap on LED's or switches, relays, GPS modules, all sorts of things.
Even to the point of connecting multiple processor cores to one unit!

It's really pretty cool, I can't wait to get my hands on my starter kit and see what I can do.

They even have a module that will allow me to connect the Digispark (see post below) to the system and a board that will give you the full Arduino pinout so you can use Arduino Shields with the smARtDUINO.

Update - January 2014: Finally after over a year of waiting (Estimated delivery was November 2012)  I got my smARtDUINO parts. This was the project that killed Kickstarter for me. I'll never back another project on Kickstarter for sure. And if I am ever fortunate enough to meet Dimitri Albino in person, I hope to kick him in the man parts. This creep took $157,571.00 dollars and made a lot of promises only to follow them up with a lot of excuses. There were claims of Fraud and Misrepresentation. My plan is to one day assemble something out of the parts and then dump it all in a blender and grind it into little pieces of yellow dust.
I'll do my experimenting using some other version of Arduino. For now the parts sit in my basement still in the bag. I lost all interest in fooling around with this garbage months ago.

Tuesday, August 28, 2012

Just how small can an Arduino get? Meet DigiSpark!

**** UPDATE ****
WOW, This dude raised $313,318.00 of the $5000.00 he had hoped to raise!

He got 5964 backers.

Erik Kettenburg has a project up on Kickstarter that looks really awesome and it certainly looks like he's getting his backing! With 12 days to go, he has raised over $195,000 (of a $5000 goal) with over 4000 backers (Me being one of them!).

The product he is working on is a micro-sized Arduino (about the size of a quarter) called the DigiSpark.
I love the logic of this product. It's small and cheap enough that you can actually build it into a project. One of the biggest problems most of us hackers and builders face is creating something and then having to tear it all apart again to get our prized Micro-controller back out and reuse it to build another experiment. I have a full sized Arduino Uno dedicated to my Coffee pot project that I only use 4 of the pins for. This little guy would be much better suited for that purpose (especially when I get the smaller relay shield).

And at under $10 each, I'm getting 3 to start off with (and 1 relay shield).

It will feature
  • Support for the Arduino IDE 1.0+ (OSX/Win/Linux)
  • Power via USB or External Source - 5v or 7-35v (automatic selection)
  • On-board 500ma 5V Regulator
  • Built-in USB (and serial debugging)
  • 6 I/O Pins (2 are used for USB only if your program actively communicates over USB, otherwise you can use all 6 even if you are programming via USB)
  • 8k Flash Memory (about 6k after bootloader)
  • I2C and SPI (vis USI)
  • PWM on 3 pins (more possible with Software PWM)
  • ADC on 4 pins
  • Power LED and Test/Status LED (on Pin0)
And of course it is totally Open-Source/Hardware.

Let's see, the coffee maker will get one, there's a TV remote control that I want to build, these would fit perfectly in an HO train car, my Radio controlled cars might get some smarts, maybe my helicopters too, uh-oh....I'm going to need to order more of these when they become available on the website in December!

Monday, August 27, 2012

SeeedStudio 2.8" TFT Touch Shield (touchscreen/LCD)

My Opinion/Review: DON'T BUY ONE!

As fun and as cool as this thing may seem, you don't want one.
Why is the SeeedStudio 2.8" Touch Shield a piece of Junk?
  1. Horrible Documentation
  2. Several bugs in the library itself.
  3. Horrible to use, does not support print, println, write or anything useful.
  4. Not an easy task to print variables.
  5. Takes all the pins except I/O and A4/A5.
  6. No Backlight control.
  7. No Clear Screen function.
  8. Touch screen is not very precise or sensitive.
If you want an LCD display for your Arduino, I would look elsewhere.
This one will frustrate you!

Thursday, August 23, 2012

Is the DSO Nano a No No?

So I finally broke down and bought myself a Pocket Oscilloscope!
Maybe soon I'll learn what I'm supposed to do with it, but in the mean time it looks really cool.

I bought the e-Design DSO201 aka DSO Nano.  DSO Stands for Digital Storage Oscilloscope.

Built in what had to once be a MP3 player shell, it uses an ARM Cortex-M3 32bit processor and sports a 320x240 display.  The one I purchased I believe is the second version of the first model. It has the newer better Probe (1x/10x) and a miniature BNC connector as opposed to the original that used a headphone jack and some very cheap probe/clips.

Now, my Nano supposedly had the newest software/firmware on it, but I couldn't make heads or tails of it. When I was researching the DSO Nano I found out that everyone hates the way it comes and everyone changes it use BenF's version (I don't know who BenF is, but hey, everyone else does). So the first day I have my new toy and I'm already messing with it and hoping I don't brick it.

I found out that this version of the DSO Nano also has a different bootstrap then the first one also, that made updating the software/firmware a bit of a trick, but after searching the web for awhile, I found BenF 3.53 Library and 3.64 App in the required HEX format and now everything is working well (you can download those files here).

To update this model you have to plug in your DSO to your PC. Hold the "-" button (down on the pad) and turn the power on. You should get a screen that tells you to copy the HEX files over. Don't drag both files over at once, copy over 1 file, it will disappear as the DSO dismounts and remounts itself, then copy the next file over, the process should repeat. If you see a .err file, then something went wrong. Now unplug the DSO switch it off and back on again.

So far I have used it to :
  1. Watch the pulses my Arduino sends to a servo (cool to see PWM as it happens).
  2. Check out the levels in a little 555 circuit that I put together just to test the DSO.
  3. Diagnose a problem with a power supply for a printer.
Is it the most powerful thing ever? No, and it doesn't pretend to be. But it does work well for the price!
I can't wait to learn more about oscilloscopes so I can make better use of it.

  • Cheap! At under $100, every Hacker/Prototyper/Tinkerer should have one!
  • Fits in your pocket so it will certainly fit in your Computer bag or parts box.
  • Rechargeable, no batteries to keep up with.
  • SD card slot so you can compare previous readings (Thats the "S" in DSO ).
  • Easy to use (if you know how to use an oscilloscope).
  • With the 10x probe on the NANO you CAN measure US Household AC current (110v/115v/120v).
  • It's opensource so you can hack it if you want.
  • Original firmware/software SUCKS, you must get BenF or something better.
  •  Support from anyone other than the community is scarce at best.
There is a newer version available now, the DSO Nano V2 is pretty much the same oscilloscope in a newer box. It is the same hardware and runs the same software as the V1, it's just in a new box. Personally I like the V1 package more.

There is also the very new and much improved DSO Nano QUAD sports 4 channels but of course costs much more.

Friday, June 8, 2012

Phil-up, The Coffee Maker Reservoir Filler Upper!

So my wonderful Wife bought me this AWESOME Hamilton Beach Single Serve Scoop Coffee Maker because I really like making my coffee one cup at a time but I refuse to pay for those dumb little pre-filled plastic cups those other guys want you to use.

Now the only problem I had was trying not to make a mess when filling it with water before each use. It's located in a tight spot so having to pull it out each time and push it back was getting old. I thought about connecting a water line and a small valve that I could just turn on and off to fill the reservoir, but that would require me watching the thing fill, and that wastes time. I needed to use technology to do this for me.

But how?

My first thought was to get a 555 timer chip and just make a timer circuit that would let water in for X amount of time. But that wasn't good enough, current water pressure (is my wife taking a shower while the washer is running?) could affect that. I needed better.

  1. I needed something that could be able to see if there was already water in the reservoir.
  2. I needed to insure it was filled to the proper level each time.
  3. I needed a way to indicate the status of the water level in the coffee maker.

Solution? Arduino!

I had just gotten into the whole Arduino thing and hadn't quite figured out what to really do with one.
I knew what they could do, I just didn't know what I wanted to do that would actually be a permanent use for one of these handy micro-controllers. This was my perfect first project. It had a purpose that was measurable and I could actually create something usable. And I would be able to prove to my wife that these little circuit boards I had been spending money on did something!

I hooked up a 24v water valve (similar the kind used for in-ground sprinkler systems) to to the water line running to the sink in my bar and use it to control the water flow. I would suggest using an Ice Maker line and while you are at it insert an inline water filter.

I am controlling the valve with a relay shield mounted on the Arduino. I used a simple two wire moisture sensor method to determine when the reservoir was filled. I went with a 10kΩ resistor since I was measuring water not dirt.

Currently I'm using the Seeed Studio Relay Shield for Arduino which is serious overkill. It has 4 relays capable of 120 volts of which I am only using one (at 24 volts). Soon I will swap it out for a SainSmart 2 channel Signal Relay or something similar.

I added an LED to signal if the reservoir is empty, filled or being filled (solid lit when filled, blinking while filling, off if empty)

The best part was that none of this required any modification of the coffee maker. The one I own has a small hole in the back just above the Max Fill line (guess what for) that was already the right size to allow the water supply line and moisture sensor wires to fit right in. But you could make this work with just about any coffee maker.

After everything was tested and working, I mounted the Arduino and relay shield up under the bar where it was safe from being splashed and mounted the button and LED into a panel behind the bar.

Now I just walk up and press the button. By the time I have coffee in the filter cup and put it back in the maker, it's full and ready to brew!


// Code to fill the water reservoir on my Coffee machine.
// Will upon pressing of button, engage relay to allow power to water control valve.
// Water will flow until moisture sensor reads reservoir is filled.
// LED will blink during fill cycle and blink rapidly when reservoir is full.
// Relay will not engage if reservoir is already full.

const int relayPin = 6;       // assign pin for relay
const int LEDpin = 13;        // LED on Pin 13
const int buttonPin = 2;      // the number of the pushbutton pin
int moistureSensor = 0;       // pin 0
int moisture_val;             // 0 = empty !0 = full
int buttonState = 0;          // for reading the pushbutton status

boolean filled = false;       // Presume empty on startup

void setup() {
  // define modes for pins
  pinMode(buttonPin, INPUT);
  digitalWrite(LEDpin,LOW);    // Start off with LED off

void loop() {
  moisture_val=analogRead(moistureSensor); // check to see if reservoir is already filled
  if (moisture_val > 0) {
    digitalWrite(LEDpin, HIGH); // if it is, turn on the LED
    filled = true;              // and set the flag
  } else {
    filled = false;            // if not reset the filled status
    digitalWrite(LEDpin, LOW); // and make sure the LED is off

  buttonState = digitalRead(buttonPin); // did someone push the button?
  if (buttonState == HIGH) {            //button is pushed
    moisture_val=analogRead(moistureSensor); // check if full
    if (moisture_val > 0) {    // has water reached the sensor?
      filled = true;           // if so, set the flag
    } else {
      filled = false;          // otherwise, ensure flag is cleared

    if (!filled) {             // if it's not already filled
      digitalWrite(relayPin,HIGH); // power on relay to power on valve
      digitalWrite(LEDpin,HIGH); // turn on LED

      while (!filled){ // still not filled?
        digitalWrite(LEDpin,LOW); // turn off LED
        delay(500); // wait a tick
        moisture_val=analogRead(moistureSensor); // check water level
        if (moisture_val > 0) {   // Are we full yet?
          filled = true;          // if so, set flag
          digitalWrite(relayPin, LOW); // turn off relay, close valve        
        } // endif moisture_val

        digitalWrite(LEDpin, HIGH); // Turn LED on (blink)
        // Will repeat until Filled is true and fall out of loop
        // leaving LED on.
      } // endwhile !filled
    } //endif !filled
  } //endif buttonstate
} // endloop