Arduino Development Thread

Australia & New Zealand Homebrewing Forum

Help Support Australia & New Zealand Homebrewing Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Bonj great work! I'm sure many of us (including me) had the same skills to make exactly what we want like this. Are you intending to share your PCB designs and layouts?
 
All these systems look awesome, i'm definitely keen to start learning about arduino. What have people found is the best place to start for a total noob? I know vb and php but no other languages or much about the hardware side.
 
Bonj great work! I'm sure many of us (including me) had the same skills to make exactly what we want like this. Are you intending to share your PCB designs and layouts?
I can share the PCB design (although I had to make one small green wire modification due to me stuffing up the LCD contrast connection). You can see the PCB artwork on the build log page here (bigfathooker.com).

I think I will make another revision in the shape of a standard arduino shield. I have also been working on a custom arduino board with the same form factor as the official board, but with a number of changes which I think would better suit embedded environments (and make them cheaper per board).

  • Unassigned 2x3pin headers, with solder holes so you can wire them to whatever you like.
  • All through-hole components for easy soldering
  • 5V and Ground rails, so you can wire them to anything, including the unassigned headers (eg 5V,GND,Digital Pin for direct connection to a servo, or use the ISP example code and wire it up as an ISP programmer to program the arduino bootloader onto more microcontrollers).
  • Programming pins (JP1) for connection to a FTDI cable or breakout board (lowers the cost of each board for embedded projects because you're not paying for the FTDI chip more than once).
  • Standard ISP header for direct programming (bypasses the arduino bootloader).
  • Configurable power options.
    • Will accept a standard TO92 7805 regulator, or a more powerful TO220 package.
    • Ground plane provides heatsink to the TO220 package
    • Optional jumper to input direct 5V from another power supply or battery pack.
    • Power input wires have been given strain relief holes to relieve strain on the solder joints.
    • Power plane on bottom layer and ground plane on top layer create a decoupling capacitor which reduces noise.
  • Standard arduino form factor for shield compatibility.
  • All arduino pins have been broken out to extra solder holes.
  • Fully arduino IDE compatible if used with a bootloader flashed ATMEGA328/168
 
All these systems look awesome, i'm definitely keen to start learning about arduino. What have people found is the best place to start for a total noob? I know vb and php but no other languages or much about the hardware side.
Tim, the arduino IDE is based on C/C++, which you'll find is so close to PHP that you shouldn't have any issues. A good place to start would be to check out the official website and the tutorials there at arduino.cc. The library reference and forum there is pretty good for info too.
 
Looks good.

I should post some stuff on what I have been hacking on.

You know you can get a 3.2" TFT with touch screen on ebay for not much more than those 16x2 LCDs these days?

Are you going to have enough code space in an Arduino to do all that you want?
 
Thanks for the complements guys. I'm pretty happy with my progress.

You know you can get a 3.2" TFT with touch screen on ebay for not much more than those 16x2 LCDs these days?
I have a Nintendo DS screen and touchscreen here that my brother in law gave me, but no-one seems to know how to use them.... seems the screen is custom hardware. My interface is going to all be network controlled anyway, when I add the yet to be fabricated wifi expansion board. The LCD is really just a quick status screen. I got these LCDs from Hong Kong for around AUD$4.22 each, delivered. I have since ordered a couple more. Ebay auction here

Are you going to have enough code space in an Arduino to do all that you want?
Yeah, I should easily. This is really only automating the HERMS stepping, so I don't need much. It won't even fill the ATMEGA168's 16K space, let alone the 328.
 
I was told the decimal point looked a bit big and out of place, so changed the custom character used for it, and while I was at it, I modified the code to reduce the space it took up, which enabled me to add the C to the end.

digital_thermometer3.jpg
 
I was told the decimal point looked a bit big and out of place, so changed the custom character used for it, and while I was at it, I modified the code to reduce the space it took up, which enabled me to add the C to the end.

digital_thermometer3.jpg

hey bonj ,
LCD's have enough ram for 8 custom characters, can you do that with just the 8 or do you have to keep loading up different custom characters

cheers matho
 
hey bonj ,
LCD's have enough ram for 8 custom characters, can you do that with just the 8 or do you have to keep loading up different custom characters

cheers matho
I've done that with exactly 8 characters, metho
global variables declare the actual character bits at the top:
Code:
byte LT[8] =

{

  B00111,

  B01111,

  B11111,

  B11111,

  B11111,

  B11111,

  B11111,

  B11111

};



byte UB[8] =

{

  B11111,

  B11111,

  B11111,

  B00000,

  B00000,

  B00000,

  B00000,

  B00000

};



byte RT[8] =

{

  B11100,

  B11110,

  B11111,

  B11111,

  B11111,

  B11111,

  B11111,

  B11111

};



byte LL[8] =

{

  B11111,

  B11111,

  B11111,

  B11111,

  B11111,

  B11111,

  B01111,

  B00111

};



byte LB[8] =

{

  B00000,

  B00000,

  B00000,

  B00000,

  B00000,

  B11111,

  B11111,

  B11111

};



byte LR[8] =

{

  B11111,

  B11111,

  B11111,

  B11111,

  B11111,

  B11111,

  B11110,

  B11100

};



byte MB[8] =

{

  B11111,

  B11111,

  B11111,

  B00000,

  B00000,

  B00000,

  B11111,

  B11111

};



byte block[8] =

{

  B11111,

  B11111,

  B11111,

  B11111,

  B11111,

  B11111,

  B11111,

  B11111

};

And in the setup code, (arduino LiquidCrystal library), upload the custom characters:

Code:
  lcd.createChar(0,LT);

  lcd.createChar(1,UB);

  lcd.createChar(2,RT);

  lcd.createChar(3,LL);

  lcd.createChar(4,LB);

  lcd.createChar(5,LR);

  lcd.createChar(6,MB);

  lcd.createChar(7,block);

Then I use a switch case statement to choose which characters to put where for each number in the string.
 
So for a '0':
Code:
case '0':

		lcd.setCursor(charOrigin,0);

		lcd.write(0);  // call each segment to create

		lcd.write(1);  // top half of the number

		lcd.write(2);

		lcd.setCursor(charOrigin, 1); // set cursor to colum 0, line 1 (second row)

		lcd.write(3);  // call each segment to create

		lcd.write(4);  // bottom half of the number

		lcd.write(5);
 
wifi board for my HERMS controller.... made on an arduino shield form factor so it can be useful for other projects too.

btwifi_rv1_front.jpg
 
Sweet! Your board layouts are getting more complex, what software are you using?
 
Sweet! Your board layouts are getting more complex, what software are you using?
For the first board, I used Fritzing, which does an okay job for simple stuff, but is very slow as you add more components. For the above wifi board, I used Eagle, which smacks Fritzing right outta the ball park. I'm using the free version of Eagle, which is limited to 10cm X 10cm I think, and only 2 layers. But it's actually perfect for me since I'm really only working on arduino sized boards, and the fab house I use (seeedstudio fusion pcb service) only does 2 layer boards. They have the design rule and CAM export files for Eagle on their website so that makes things much easier. I did modify the CAM processor script to include the rest of Eagle's default silkscreen layers, as they seem to be a bit all over the place. I also modified the design rules because they say they do down to 6mil traces, but I've heard that it can be a bit unreliable, so I changed the minimum trace and space widths to 10mil to avoid any issues.

The artwork (minus some of the silkscreen to declutter the image):
btwifi.png


The back of the board:
btwifi_rv1_back.jpg
 
Bonj I might have to take your free software nerd credentials away... you should be using KiCad :)
 
Bonj I might have to take your free software nerd credentials away... you should be using KiCad :)
:lol: I have KiCad installed. Like Eagle it's not very intuitive but unlike Eagle, and a common problem with free software, is that the documentation is a little sparse. Plus I've already invested my time in learning Eagle, and it does what I want... I also feel the need to support commercial vendors that release Linux versions of their software. There should be more of them.

We all find what works for us... Vi vs Emacs, KDE vs Gnome, etc... It's great to have that choice :)
 
I don't think I'll have it on the main kegorator in the house. Simply because there are 6 kegs in that one, and it would be a bit of a pain to manage, let alone the cost of multiple flow meters, solenoids etc.
More I was thinking about it for the party setup :p

Doc


were can you get flow meters? i've had a little look online but there are no australian suppliers?

Want to do this project for our work kegorator. see's who's the biggest piss head!
 
were can you get flow meters? i've had a little look online but there are no australian suppliers?

Want to do this project for our work kegorator. see's who's the biggest piss head!
Aussie supplier (I know a couple of people that have ordered from them and have been happy): http://littlebirdelectronics.com/products/water-flow-sensor
Overseas supplier (I have had my PCBs fabricated through them, but haven't ordered any of their parts): http://www.seeedstudio.com/depot/g12-water...l?cPath=144_151
Aussie supplier (slow shipping, but otherwise reasonably priced): http://www.futurlec.com.au/Flow_Sensor.jsp
 
Back
Top