New Photon Based IoT PCBs

New IoTv2 PCBs

I’ve updated the printed circuit boards for my IoT projects. These boards are 5×5 cm and intended to be used in a variety of IoT applications. They include the following features:

  • Switch from linear voltage regulator to buck regulator.
    • The linear regulators used on my previous boards were getting quite warm as a result of converting the RVs +12 volts to +5 or +3.3v. I found some inexpensive variable voltage bucking regulators for about $1 each. These are marked “D-Sun”, readily available on Amazon.com, and they work well.
  • Provide direct pin-outs to LED driver boards.IoTv2 PCB with LED drivers
    • I’ve provided 4 sets of PWM pins that can interface directly with the Sparkfun 12959 MOSFET LED driver boards. I’ve positioned the pins such that standard header pins can be used to attach the boards instead of wires. I’ve gone back and forth about integrating the functionality directly, and finally concluded that the space used by the MOSFET and screw terminals was better pushed off onto small extension boards. Up to four of these can then be optionally added as needed. Sparkfun sells these for $4 each, so it’s sort of a no brainer. Putting them onboard would force me to moving to a larger 10×5 cm board, and only save a couple bucks.
  • Both 3.3v and 5v supplied
    • I’m using a 5v regulator to provide power to the Photon. It then has a 3.3v regulator for itself, and can provide 3.3v @ 100 mA to other sensors, etc. Since most of the Photons pins are 5v tolerant, this enables using both 3.3v and 5v sensors.
  • Provide groups of pins for ease of connecting other devices
    • To simplify adding additional sensors such as DHT11 temperature sensors, I’ve provided groups of pads that provide a GPIO, power, and ground. Some are 5v, and some are 3.3v. I was careful to ensure that the GPIOs provided with the 5v power groups are in fact 5v tolerant. These are great for things like PIR motion sensors, various switches, and so forth.

So after checking that the first batch of 10 boards work as intended, I’ve ordered another 10 and am in the process of replacing most of my existing controllers with these. While the Photon costs substantially more than the previous Arduino Pro Mini and RF24 radios, the ease of programming over the air combined with their robust design (5v tolerant pins, super stable operation) and included Particle.io support make these worth it!

I’m currently using my Echo and Dot to control these, but recently got AVS running on my Raspberry Pi and may throw that into the mix also.

If anyone is interested in using these boards in your own projects, post your request in the comments and I’ll provide links to the Eagle files so you can have boards made yourself. If you don’t mind waiting about 6 weeks, you can order these from itead.cc for $13 total for 10 boards. If you’re in a hurry, DHL shipping increases the total cost to about $26 total for 10 boards that arrive in less than 2 weeks. I ship with DHL for the first batch, then use the cheaper shipping to get more while I work with the first batch.

Note: I’ve now posted the Eagle files on Github.

Particle.io based IoT

Switch and PCBAt this point I’ve installed about a dozen Arduino Pro Mini based controllers in my RV. These are very inexpensive, about $2 each, but suffer from several limitations:

  1. Fairly slow
    • This is ok if all you need is something to read a switch and set a corresponding set of outputs, but becomes an issue as requirements grow.
  2. Require a direct FTDI cable connection to program or update
    • Arduino Pro Mini mounted to switchIn my usage case, I’m mounting these things above ceilings to control lights, and behind wall switches to read and broadcast switch state. This means every time I need to change or debug them, I have to open up the wall, which means removing the switch plate and switch or lamp fixture to get to them.
  3. Require direct physical access to resetSwitch plate removed and hanging from wall
    • Sometimes they just hang, or their associated circuitry hangs up, and it is necessary to “hard reset” them. They have a push button reset on them, but as mentioned above it isn’t easy to access them in my situation.

So for awhile now I’ve been contemplating converting my Arduino Pro Mini based designs to use the Particle.io Photon MCU instead. These parts are awesome:

  • Fast 32 bit CPU
  • Lots of memory
  • Built-in WiFi and antenna

This last item is the biggie. I can update them remotely, meaning that I can leave the boards buried in a wall somewhere and still reprogram or reset them.

The thing that has made me reluctant to do so up until now has been the price. These parts are $19 each. That may not sound like much, but I plan on using a lot of controllers in my RV, probably on the order of 30 to 40. But then I stopped and did the math: 30 Photons at $19 each comes out to $570.

What? I’ve been using one Photon to bridge between the Pro Minis and the internet to allow Alexa to control them. Now I’m going to have each directly accessible, simplifying the overall design. So I’ve designed and built another PCB for the Photon.

Photon PCB

So far things are working great. I’ve redesigned the architecture to use a publish/subscribe model, which will allow the system to be expanded without having to reprogram existing units. And I’ve converted my Alexa code so my Echo talks directly to the boards using particle.io publish instead of functions calls. But that’s a topic for another post.

iTead Studio Shipping Experiment

The least expensive PCB manufacturer that I’ve found so far is iTead Studio. They currently will create ten 5cm x 5cm 2-sided printed circuit boards for $9.90. Yes, that’s less than a dollar each.

They offer 3 different shipping options, so I decided to order 3 batches of PCBs, each using a different option, to assess the difference. I’ve now received all 3 batches, so can report my findings.

  1. Batch 1: ten 5cm x 10cm boards ($14.90) shipped least expensive ($4).
    Total turn around time: 4 weeks.
  2. Batch 2: ten 5cm x 5cm boards ($9.90) shipped medium cost ($4.50).
    Total turn around time: 3 weeks.
  3. Batch 3: ten 5cm x 10cm boards ($14.90) shipped most expensive (DHL $18).
    Total turn around time: 6 days.

Note that this was done in December, so I would expect future shipments to be faster when not done around the holidays. The processing time by iTead was about 3 business days.

On my first order, I had forgotten to include any dimension information in the gerber files. I received an email from iTead explaining what was needed, and providing a couple simple options for how to fix it. I uploaded a file to their site that included the needed info, and the order proceeded without delay.

So based on my results, I’m going to order parts using DHL shipping when I need fast turn around, and use the middle option when I have a the time to wait. For merely a 50 cent difference, I see no reason to ever use the cheapest option.

I am very impressed with the high quality and very low cost, and expect to continue doing business with iTead Studio for a long time.

Replacing the Wall Switches

I’ve started replacing the lighting wall switches in my RV. Instead of hard-wiring the switches to the lights, I’m using radio connected Arduinos. The switches will appear to work the same, but what is really happening is that the switches are read by an Arduino, that then sends information over radio to another Arduino to control the LED light.

So why all the extra cost and complexity?

To begin with, the cost is not very much. The parts I’m working with amount to about $10 per board. As for the complexity, I have several objectives:

  • Enable dimming of the lights
  • Enable grouping of lights
  • Enable remote control

This last one is the exciting part. Once I get the internet connection working, I’ll be using my Amazon Echo to voice control the lights.

Wall switch with Arduino
Wall switches before using a PCB

So, where am I in this process? I had initially cobbled together a wall switch to remotely control ceiling lights over my desk.
As you can see in the picture, this was pretty fragile, with parts soldered directly to the switch pins. I had to resolder things after breaking things when installing it into the wall. This was part of my motivation for creating custom printed circuit boards.

Wall switch and PCB
Wall switch and PCB

In this photo you can see the new 5cm x 10cm PCB I created for mounting to the wall switches. On this board I’m not going to use any of the 4 LED driver circuits, so they are unpopulated.

 

 

PCB mounted to wall switch
PCB mounted to wall switch

And here you can see the new PCB mounted to the switch. The FTDI programmer is connected to the Arduino for programming. It will be disconnected when I install the board into the wall. The nice thing about this arrangement is that it simply mounts into the wall like any other light switch.

The small blue board on the right side is an HM-10 Bluetooth LE part. This provides BLE communication and Beacon capability. This was my first attempt at surface mount soldering. Total cost on this board, including PCB, was about $7.50.

Second batch of PCBs received

I finally received my second batch of printed circuit boards from ITead Studios. Delivery time was about 3 weeks. The total cost including shipping was $14.50 for ten 5cm x 5cm 2-sided boards! This is just amazing.

2nd Printed Circuit Board

The quality of the boards is very good. In the image above you can see that I’ve mounted most of the parts. These took me about 30 minutes to hand solder to the board. Starting from the left, going clockwise, they are:

  • 3.3v power regulator using an LD1117v33 and some capacitors
  • nRF24l01 radio
  • Arduino Pro Mini 3.3v
  • 3 x 30N06 power mosfet 12v LED drivers.

The unoccupied squares on the right were intended for screw terminals, but I picked the wrong size Eagle part template, so they don’t fit. I could easily update the Eagle files and order new boards, but I have decided to simply solder the wires for now. I’ll fix the problem once I use up the current batch of boards and need to order more.

These boards are small enough that they can fit through the 3″ hole in the ceiling used to mount the recessed LED lights that I’m using.

Total cost for this board and parts is under $10 each. I populated all 3 LED drivers, but only need to populate the number needed on each board going forward, reducing the cost by about a buck each.

First batch of custom Printed Circuit Boards received!

Yesterday I received my first batch of custom printed circuit boards. Printed circuit boards arriving in a box These are actually the 3rd set of boards that I have ordered, but I paid for premium shipping for them. The first 2 orders were made almost a week before these, and haven’t arrived yet. I’m testing to see how long the various shipping methods take. I’ll post the results once all 3 shipments arrive.

These boards mount directly behind the 4-switch wall switches used in my RV. Each can support up to 4 PWM LED driver circuits plus bluetooth and RF24 radios.

I plan on installing a few of these during my holiday time off.

Designing Printed Circuit Boards with Eagle

It never ceases to amaze me how much of a nerd I am. I absolutely love computerized, electronic technology. I don’t mean playing with things like Xbox or owning the lastest stereo equipment. I mean playing with the stuff that is used to create today’s leading edge products.
As mentioned previously, I’ve been playing with Arduinos, and recently teaching others about them. But now I’m ready to really expand their use in my RV.
I currently have 5 Arduinos installed in my RV, all communicating using inexpensive RF24 radios (nRF24L01). I’m still shocked at how low cost these things are. Total cost for each is about $7. At that price, I want to put one on just about every light and switch in my RV.
The ones I’ve built so far were put together using small breadboards. This works ok for fast prototyping, and is fun and easy, but they probably won’t hold up very well as we’re bouncing down the road (I mentioned that this is an RV, right?)
So I’ve started looking at more robust solutions. This typically means using printed circuit boards. Many years ago I made my own PCBs, either by dry transfer decals or etch resistant pen. But it’s really hard work, yielded only fair results, and isn’t easy to duplicate. Photo-resist techniques were available, but expensive and fairly touch also.
But today things are different. After doing some research this weekend, I’ve discovered that really great results can be achieved very inexpensively. Software is available free for designing circuit boards, and mail-order PCB manufacturing has become ridiculously cheap. The down side is that there is a pretty steep learning curve to doing this.
So that’s what I’ve been doing this weekend; installing and learning to use the free version of Eagle software. This software is used by the professionals, for example those great folks at SparkFun and Adafruit. And that’s where I found some great tutorials on how to use it. And the kind folks at Eagle support student and hobbyist activities by providing a free version for them. They only ask that we purchase a license if/when we start doing professional work with it. How cool is that?
The Eagle software is then used to create what is called “gerber” files. Gerber files can then be sent to a PCB shop for production.
The cost to do this? It depends on the size of the board made. But so far, my circuits ideas have been fairly small because I intend to use lots of small, simple units instead of fewer more complicated circuits. So I expect that any of my designs will fit onto a 5cm x 5cm board. These will cost me about $10 for 10 at iTead Studios. Yes, that’s about $1 each.
I can’t wait to get my designs onto PCBs!