Saturday, April 25, 2020

oDroid C2 CUPS Print Server - Samsung SCX - Ubuntu 18.04 Minimal

Since we're stuck working from home, my wife and I are getting more serious about our "home office" layouts.  One thing I'd had on my "to do" list for awhile was configuring up some non-network printers to be shared via the network.  While some of this was easily solved by simply having them near another computer (impossible not to be near a computer in MY office), for other areas another solution was needed.

I had some Raspberry Pi 3b's and oDroid C2's left over from a project awhile back, so I flipped a mental coin, picked up the board that was marginally closer to me and went about setting up a print server on the oDroid C2.  However, there are similar configurations of course for the RPi.

Sunday, July 16, 2017

Arduino Loader Project

Hardware: Raspberry Pi 3 B, Adafruit Feather 32u4, 10,000 mAh extended cell battery, 3 button membrane

Software: Windows 10, Platformio 3.4.0, mpg321, Rasbian Jessie Lite, Python 2.7.9

I needed to create a method for "less-trained" staff to reload Arduino boards in the field.  I considered doing something with Android but immediately had several users ask "what about iPhones?!"  So I decided that I'd just build a unit to allow for a more controlled environment.

The result is a handheld Raspberry Pi that the techs can walk around with 


Sunday, April 2, 2017

Arduino Interrupt on Button Press

Hardware: Adafruit Feather 32u4 Radio (RFM69HCW)

Software: Arduino IDE 1.8.1.0 / Windows 10

I can't properly describe how I feel about the documentation on "interrupts" on Arduino.  Even if you don't get into "pin change interrupts" (i.e. NOT THE SAME THING!!!)  it still isn't straightforward.  Add in the fact that the reason you might be looking to handle an external interrupt is because you probably want to put the unit to sleep and now the levels of complexity are notably higher.

I have implemented a fairly simple solution to get past the issues commonly encountered and included it below.  This all revolves around a board going to sleep indefinitely and then waking up on a button press.

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.