Embedded


Today I constructed another 2 boards, very easy to do all done in around 30 minutes.  This now brings the total to 3.

Applying the boards with solder paste by hand, manually placing the components, bake them in the toaster oven together.  This time I got the LEDs the right way around and the right amount of solder paste on everything, no bridges on the CPU pins and looks like the right amount of fillet on the RFM12B module, very little cleanup work required, it’s amazing how little solder paste is required.

Add another 5 minutes to hand solder on the SMA connectors and program the boot loader on each, voila all done in around 30 minutes.

Now I have a potential “Network” I will start testing the RF side of things.  Currently I’m using the 915MHz modules.

Today I got a chance to do some testing on the boards. 

State of play so far:

  1. Checked for shorts on power – OK
  2. Did a board level continuity test – everything as per schematic.
  3. Power at the correct levels and at the right places.
  4. Found that my USBASP programmer needs sw2 set and now all working, I can now read and set fuses etc.
  5. Arduino lillypad bootloader successfully loaded and working – Whoot!
  6. ASCII sketch loaded via Arduino development environment, serial port tested at 9600, all working.
  7. Jean claudes RFM12B Test Sketch loaded and working.  Can configure device and some random data is being read back from RFM12B, need a second board operational to fully test the RF side of things.

TODO:

  1. Build a second device now that the basic circuit is working and verified.
  2. Fully test RFM12B and wireless comms.
  3. Test I/O i.e. Analogue and Digital ports, LEDS  etc
  4. Customise boot loader to use onboard LEDS.
  5. Document all of the above for others on the project’s website.

All in all I’m pretty happy :)

The PCBs arrived last week, unfortunately not in time for the long weekend so I haven’t really had a change to do anything until today and from my initial observations I’m happy with the results.

RFM12B PCB

IMG_8691_crop

2.4GHz MRF24J40MA PCB

IMG_8693_cropped

Prototype PCB

IMG_8699_cropped

As I mentioned on the Strobit-general Google List and the SPOT-development Google list,  they seem to have multiplied from when I placed my order to when I received them,  I calculated I would get approx 12 back of each board, in the end I received 32 of each board, go figure…..so if anyone wants a couple of free blank PCB then contact me and I can send you some if you cover the postage costs.  Please use the contact form to let me know.

Hot Out of the Oven

Today I assembled the first one!  Didn’t take long at all due to the minimal component count.  If anything I need to add more solder paste to the RFM12B footprint, but seems to have taken.

RFM12B PCB Assembled

IMG_8706_crop

I’ve partially assembled the board, enough to give me basic functionality so I can do some tests, while the rest of my components I’ve ordered (SMA connectors etc) arrive.  Unfortunately my stash of 0603 capacitors were actually 0805 ones in disguise, so I’ve had to use these even though the footprints are for 0603.   In the photo you can see some of them installed on their side.   Same goes for my bead, I only had some 0805 in my stash but have 0603 on order, just couldn’t wait :)  

I’ve enabled all the solder jumpers so I don’t need to install the switch and the BAV diode for the time being.

Changes for next board revision:

A couple of things stand out with this board revision, nothing major but niggly enough to warrant changes or at least thinking about them.

Crystal Footprint – One thing so far, I’m kicking myself for not making the crystal footprint a HC-49 SMD, I thought about it before I send the files off for fabrication, instead I opted for the sleek 0503 ceramic smd crystal, problem is they are more expensive and not as easy to come by, so I’ve added this as a change for the next board revision.  In future I’ll stick with the stock standard low cost crystal HC-49C footprint.

Switch – Do I really need it?  The onboard switch seemed like a good idea at the time, but in reality do I really need it?  I’m glad I had the fore thought to add a solder jumper to bypass it. Honestly I will probably more than likely use a switch remotely (i.e. on the side of an enclosure) or on the battery pack itself rather than on the PCB.  I may just leave the ability to have a remote switch and remove the onboard footprint all together.

LDO regulator onboard? – I’m still up in the air about this one.  Initially I wanted to keep things as low cost as possible (and I still do), and then add additional functionality via the personality boards so keeping the core board to bare minimum components, as I have only intended these to run from battery or from USB, not from a wall wart or A/C plug pack.  I have added some reverse protection with the BAV Scotty diode, but this won’t protect the board if someone connects a 9vDC source.  Anyway I think  I will wait and see how I go with testing and community feed back.

Jean-Claude over at JeeLabs has been playing with the RFM12 and has noted some differences between the RFM12B and the RFM12.

http://jeelab.equi4.com/2009/05/06/rfm12-vs-rfm12b-revisited/

PCB designs were finally sent off to Gold Phoenix yesterday, a bit of a delay as I had been wanting to complete a couple of other designs to fill up the panel before sending off.  Three different designs, Strobit RFM12B core, Experimental 2.4Ghz core and a prototype personality (think arduino prototype type shield) have now been merged using gerber merge into a 10” x 14.5” panel.  Hopefully they should be back early next week.

image

As one does while in bed at 3am and unable to sleep, I was thinking of the Strobit Triggr (which is probably why I couldn’t get to sleep in the first place) an idea presented itself for Arduino type shields (in particular Strobit Triggr personality boards) where they could be given some real personality.

Currently Arduino shields provide the hardware interface to the world for the base Arduino board.  On the Arduino resides the code that provide the functionality i.e the personality, in the form of a sketch.  The sketch and the shield have a one to one mapping, i.e. a sketch for one shield will not work with another shield type and visa-a-versa.  So whenever a shield is changed, the base Arduino boards needs re-programming with a new sketch to give it it’s personality from the host PC/MAC this provides the new functionality associated with the shield.

The idea is for the shields to have onboard flash memory that contains the actual Arduino sketch associated with it.  When the Arduino is powered up, it then checks for this flash first, if present then it proceeds to load  from here, reprogramming itself with the new code, reboots and now has the functionality associated with the shield.  If there is no flash available (a shield with no personality e.g. current shields) then the Arduino proceeds to load as per normal.

This way you could easily swap a shield/personality board without having to reprogram the Arduino, it keeps the functionality of the shield with the shield, thus giving shields a personality.

Some more components added to the Strobit Eagle3d Library.  Can be found here.

Sparkfun SMA PCB Edge

SMA_FEMALE_PCB3.5mm Phone Jack SMD

PJ326

Ok not quite finished, but almost there!  I’ve had to make a few minor changes.  I’m glad I’ve taken the time to learn and play around with Eagle 3D, it had highlighted some potential clearance problems.  Rather than rush things I’ve decided to take a bit of time modelling than fork out my $$$ and get some prototypes made only to find these problems down the track and could have avoided.  Granted Modelling is not a silver bullet, and I guess I could be here forever, but now I’m a lot happier.

Changes:

  • Moved SMA antenna connector back from front edge of the PCB as it was hanging over slightly.  This connector is optional at assembly.  The pad can be used to solder on a wire antenna instead.
  • Changed switched power side on the switch, The switched side of the On/Off switch was very close to ground plane coming under the switch so had the potential to short, now is nice and clear.  I’ve also added some more ground plane clearance around the switch contacts just to be on the safe side.
  • Added solder jumpers for LEDS, probably don’t want these enabled if a personality board is on, but it gives you the option to use them or not, and re-use the I/O if required.
  • Moved vias and tracks away from standoffs.

Todo:

  • I think I really need to isolate the 2 power sources from each other, i.e. the Power from the USB and VBAT, so I’m looking at putting in a BAT54C barrier diode.  Just need to research it a bit more.
  • Still don’t know what to do with the ICSP connector.  I will probably leave it there with the option of putting it on at assembly.  I’m pretty sure that it will clear any personality board with a bit of care.  Modelling the personality board is my next step.

triggr-010

Strobit Eagle3D Library now available for download….see Eagle3D Page

HopeRF 433Mhz / 915Mhz

triggr-010

Experimental 2.4GHZ

triggr-020

I’ve been playing around with Googles sketchup over the weekend and have created some components, one the RFM12B module and a basic camera hotshoe to scale.  It’s been a great little exercise in learning both Alibre and Sketchup as I’ve been wanting to get some 3D modelling practice, I’m finding that it’s easier to create things in Alibre and then export them to Sketchup.  Alibre does not support texture mappings in the drawing or export to POV, but Sketchup does it brilliantly, while on the other hand, Alibre’s3D modelling is very easy to use.

Currently the workflow is:  Model in Alibre –> textures in Sketchup – > POV Rendering– > Eagle3D Components.

Keep an eye out for more to come.  I’ve started a Stobit Collection in Googles 3D warehouse  for use with this project and will be adding to it as I go.   I’ll be putting the Eagle3D component files that I’ve created online shortly.

I’ve been playing around with Eagle3D on and off (like most things more off than on lately).  Eagle3D in a nutshell is a bunch of scripts to generates povray files.  Povray is then used to render a realistic representation of the PCB file with all components included. 

The problem I’ve always come up against when using Eagle3D is missing components.  I first looked at this tutorial – http://felixchenier.homelinux.com/doku.php?id=pcb:eagle3dnewpart, however I took one look at how to make library components and thought no way, I don’t really want to generate a 3D component by long hand.

As an example this is the Experimental 2.4GHz version of triggr PCB rendered with default output from Eagle3D, you can see how many components its missing (indicated by the red cylinders), you will also notice that its also picked up the wrong component in the top left of the board, this should be a right angle header, and it’s not correctly aligned.

triggr-020

Well I spent a couple of hours last night playing with Eagle3D to see if I could a) learn to create custom library components using Googles free sketchup program to create a part then export to Eagle3D, and b) to get a better understanding how components are selected and put on the board in the correct orientation.

I finally had success in exporting a sketchup component to use in Eagle3D.  I imported an already existing component for the MRF24J40MA RF module from sketchup and incorporated it into Eagle3D as a part library.  Here is the result.  A lot better wouldn’t you agree?

triggr-020

Here is how I did it in a sparkling new tutorial….Using Google Sketchup to create Eagle3D components

Ok here is the 1st basic trigger personality board.

Features:

  • x4 LEDs for visual indication.
  • x2 Push Button Switches, one tied to input for manual triggering/testing, the second independent, could be used for channel or function selection, both could used in conjunction with LEDS for advanced function selection.
  • 1 Strobe output. 400V Max (so will work with older type strobes)
  • 1 protected TTL trigger input. 
  • Small prototype area.
  • Low profile, All large components are mounted underneath.

Still a little cleaning up required but basic functionality is there.

Still TO DO:

  • Change MOC3023 to SMD footprint, I don’t really want the possibility of a large strobe voltage right where a thumb might be.

Basic Triggr Personality PCB

image

I know I’m a bit slack in updates on the blog.  If you haven’t noticed I now have a twitter account  http://www.twitter.com/madeinoz so you can follow what I’m doing when it’s not getting updated here.

However since the blog is way over due for an update here is what’s been happening in a nutshell.

Strobit Trigger:

I have finally gotten off my butt and done a redesign (hah and you thought the project had died a slow death, it may have stalled slowed, but certainly not dead!)

Features worthy of note in the new design (in no particular order):

  • 3V design, will run from x2 AA Alkaline or single CR123A 3V battery.
  • Fairly compact board, 30mm x 70mm. (without battery)  slightly lalonger on 2.4ghz design due to antenna.
  • Onboard on/off switch to save batteries when not in use.
  • FTDI 3.3v breakout cable port for connecting to either RS232 or USB using the FTDI cable.
  • Onboard ISCP port for programming.
  • Personality daughter boards.  Will allow users to create their own hardware modules, i.e. sound trigger, light trigger, LCD UI, or whatever they like etc
  • Atmega168V processor, low cost, low voltage design = longer battery life.
  • Can run Arduino bootloader, so developers have access to Arduino development libraries.
  • I’ve designed 2 different boards.  One using the RFM12B module at either 433Mhz or 915Mhz.  The second board I’m going to try a 2.4GHZ design using Microchips FCC certified MRF24J40MA 802.15.4 module, this is purely experimental so I don’t have any testing done yet, but I have some of these modules and would like to try them out, also being FCC certified will be an added benefit.  (not to mention I’ll be using these for a mesh sensor network project I have planned around the house)
  • RFM12B board design has external SMA antenna.
  • Base PCB board designs are done and I’m fairly happy with them so far, I’m just finishing a basic personality modules which I can used for testing and maybe another one so I can make up the  max designs I can have on a single panelized board (may as well get the most designs I can get fabricated when I send it off to GoldPheonix).  I’ve done some initial Eagle3D runs to get an idea of the boards and so I can post them on the blog, but I really need to learn how to create components in Eagle3D as it leaves unknown components blank, i.e. the RF modules and therefore looks incomplete.  (anyone that can help me here please contact me)

Still To Do:

  • Panelize boards
  • Send to GoldPheonix for PCB fabrication.
  • Assemble and test.

I’ve also been playing with learning Alibre, a fantastic 3D design package (they have a free version) so I can get some ideas for building enclosures design for these boards.

RFM12B PCB

image

MRF24J40MA PCB

image

For those interested I found an RFM12 library for the Arduino  http://jeelab.equi4.com/2009/02/10/rfm12b-library-for-arduino/

« Previous PageNext Page »

Switch to our mobile site