Friday, March 17, 2017

A basic 900mhz network (client/server)

Hardware: Adafruit Feather 32u4 Radio (RFM69HCW), Raspberry Pi 3 Model B

I've been building a wireless/wired sensor setup which I thought I should document as a pretty handy basic design for almost any basic wireless project.

Essentially this is taking some of the Adafruit Feather 32u4 900mhz (915/868mhz actually) boards and associated radios to connect to various sensors, buttons, etc. and bring all of that back home to a server that eventually processes everything.  I could have done a very similar design with one of the Moteino boards.

Battery voltage check function on Arduino Feather 32u4

Hardware: Adafruit Feather 32u4 Radio (RFM69HCW)


The folks over at Adafruit have done a nice job with some aspects of documentation on these boards.  This is one of those items that they've documented well, but I find just annoying that they don't drop it in as a simple "best practice" kind of thing.

So here it is!

This is a function you can drop into your code anywhere and get results on the battery voltage on any of the Feather 32u4 devices.

Thursday, March 9, 2017

Connecting two Pis (or other boxes) directly via TCP/IP without a webserver

Hardware:  Two Raspberry Pi 3 Model B's


Software: 2017-01-11 Raspbian Jessie Lite (minimal) / Python


Sometimes you just need something simple.  

In fact, sometimes the layers of possibilities included with webservers and other high-level communications methods are not exactly a benefit.  In particular, when you're dealing with very basic inter-system communications that are more about keep-alive and simple status messages, larger libraries/methods sometimes come with more burdens than benefits.  This is where socket connections can be applied.

Monday, January 23, 2017

RFM69HCW/LowPowerLab SendWithRetry function

Hardware: Adafruit Feather 32u4 Radio (RFM69HCW)

Software:  Windows 10, Arduino Sketch App 1.6.11, LowPowerLab

One minor issue I ran into when testing with the ~900mhz RF radio chips the first time was getting the units to retry failed transmissions.  I had chosen to download/utilize the LowPowerLab RFM69 functions to enhance and simplify many of the radio communications methods.  

I initially made the assumption (as most would) that the examples which used sendWithRetry were essentially correct.  And while that is true-ish (in that they work) it is not true that they are showing you the full power of that function.

Sunday, January 22, 2017

Better way for beginners to sleep or delay on Arduino

Almost every single Arduino example includes a simple line similar to the following:
  • delay(1000)
It is primarily because folks seem to go with a simple one-line solution when focusing on other tasks.  But this continuously leads to the bad practice of beginners on using the Delay() function across the board for anytime they want to "sleep" for X seconds.  While there definitely are situations when you want to use this for the most part you just shouldn't.  Here are some times you would still use delay():

Tuesday, December 13, 2016

AdaFruit Feather 32u4 / RFM69HCW Setup

Hardware: Adafruit Feather 32u4 Radio (RFM69HCW)

Software:  Windows 10, Arduino Sketch App 1.6.11

The two Feather 32u4 units/batteries next to an oDroid C2

I picked up a couple of these to test for a long distance heartbeat style application to use in a more industrial/retail environment.  I'd done a bit of testing with some components and finally just stepped back and decided to test directly with a board off the shelf and then see if I wanted to dig down into something simpler.  I'm sure glad I did.

Tuesday, November 1, 2016

Raspberry Pi 3 cost-effective multi-unit build

Hardware: Raspberry Pi 3 Model B / SanDisk Ultra 8GB

At present, I am doing a workaround of a customer networking requirement and needed to spin up a good number of Raspberry Pi 3's to get around the issue (non-broadcast or hidden SSID).  Since I had to move quickly and wasn't able to order very large quantities, I needed some mid-range volume discounts to cover the increase in costs to cover the short-term technical issues.  I also needed to use a board that I knew would work.

Fortunately, Amazon and Alibaba have saved me once again.