WeatherCam online

I hooked up an old analog camera I had laying around (one of the 15!) to an Axis 2400+ video server I bought off of ebay for $40.  A little script that runs every minute and copies a picture from zoneminder to my webhost account.  I added the picture as a widget to this website in the sidebar under the weather station doohickey.   Once I verify the picture quality in the daylight, I’ll add it the weather cams at wunderground.com.

Continue reading

Posted in Projects, Technology | Tagged , , , | Leave a comment

Kodi, Sling, Plex, MythTV Entertainment Options

In a more-complicated-than-need-be step to canceling our satellite TV service, I installed MythTV backend and Plex server on an old computer that was sitting around.  I started by installing mythbuntu because I’m already comfortable with using Ubuntu.  MythTV uses the inexpensive HDHomeRun tuner as a source for local TV channels from the antenna, and it also has all kinds of capabilities to get content and information from the Internet and your local video libraries.  Plex is service that not only finds and matches cover art and artist information to your existing content, but it has the magical ability to transcode your content on the fly when the client needs a different format.

 The piece of this project that really made the biggest difference was that Kodi, which can be a front end for MythTV (and much more) can be installed on an Amazon Fire Stick.  

Continue reading

Posted in Projects, Technology | Tagged , , , , , , , , | Comments Off on Kodi, Sling, Plex, MythTV Entertainment Options

Gardening and Permaculture posts at GalliStead.com

I created a new website GalliStead.com where I’ll make all future posts about gardening, permaculture, and aquaponics related projects and updates at our house. I hope to get fencing put in and have a few sheep or goats too. So subscribe to updates on that site if you want to see what’s going on with my gardening efforts.

Posted in Gardening, Links, Permaculture | Tagged , , , , , | Comments Off on Gardening and Permaculture posts at GalliStead.com

Long Range Vehicle Sensor Using Data Radios

Here is another fun project I just finished up.  My client wanted to be able to know if a vehicle (a train actually) is coming from a mile away.  We used a Banner radar sensor in retroreflective mode, a Banner DMX100 controller/radio, and a DX80 multihop radio.  The system can be expanded with additional repeaters if more range is needed.  I used power tool batteries because they are easy to replace, relatively inexpensive, and high quality.  Here is a short video showing a test I did in my neighborhood of the setup (without proper mounting hardware)

Posted in Industrial Automation | Tagged , , , | Comments Off on Long Range Vehicle Sensor Using Data Radios

Full Size Remote Control Boat

Here is a fun project I did for a client that needed a way to safely crash a boat for a test.  I used an inexpensive model RC transmitter and receiver, two robotics motor controllers, a linear actuator, a DC gear motor, distance sensor, sprockets and chain, and come custom brackets to make a 23 foot fishing boat remote controlled!  Since the boat was going to be crashed, I didn’t spend too much effort making things super nice, but it all worked well enough for their test.  Here is a quick video of the components and how they work:

 

 

Posted in Industrial Automation | Tagged , , , | Comments Off on Full Size Remote Control Boat

Pro Audio Cables – Typical Connections

I ran across this diagram of typical pro audio cables and their pin outs, so I’m saving it here:

Posted in How-To | Tagged , , | Comments Off on Pro Audio Cables – Typical Connections

Virtual Network Interface Shared with VMWare and VirtualBox

Here is how I set up a dummy (virtual) network interface on my linux (Mint/Ubuntu) host computer to create a local network that guest VMs in both VMWare and VirtualBox could access.  This network allows resources sharing among multiple guest VMs, no matter which platform they are running under, and the host computer.

$ sudo modprobe dummy
$ sudo ip link set name eth99 dev dummy0
$ sudo ip link set eth99 up
$ sudo ip link set eth99 arp on
$ sudo ip addr add 192.168.5.1/24 dev eth99

Now I have a new network interface that is up all the time, regardless if I have working wifi or a cable plugged in to my host computer.

Setting up the VirtualBox guest was easy:
– select ‘bridged’ and choose the name of the adapter (eth99)

VMWare Workstation required a couple of steps: Continue reading

Posted in Uncategorized | Comments Off on Virtual Network Interface Shared with VMWare and VirtualBox

How to: Linux Dual Boot on Dell 7710 with Windows 10, NVMe SSD, and UEFI

subtitle:  Linux doesn’t see Samsung SM951 M.2 PCIe NVMe SSD on Dell Precision 7710 laptop preloaded with Windows 10

Here are the steps I took to get LinuxMint 18 installed on a laptop with a NVMe SSD and UEFI while still retaining the original Windows 10 installation:

  1. Within windows drives management, shrink the OS partition and leave the remainder unused (to create room on the for Linux)
  2. Within windows, disable quick boot (in power settings) (causes corruption problems if you leave it on in a dual boot situation)
  3. Within the BIOS settings (F2 during startup):
    1. go to System Configuration, SATA operations, change from RAID ON to AHCI.  (This allows Linux to see the NVMe SSD, but breaks the windows boot process)
    2. disable secure boot
  4. Boot windows to safe mode, let it fix the problem, reboot and test windows boots normally.
  5. Insert bootable USB stick with Linux live CD, choose USB in startup menu (F12)
  6. Choose “something else” during install
    1. partition unused space as EXT4
    2. partition a linux swap space
    3. specify the new partition to be used for the root “/”, and select “format”
    4. it doesn’t matter what you select for “Device for Boot Loader Installation”, it will add it to the boot menu automagically

links to good information on this subject:

Posted in How-To | Tagged , , , , | Comments Off on How to: Linux Dual Boot on Dell 7710 with Windows 10, NVMe SSD, and UEFI

Convert Allen Bradley Logix 5000 Time to Unix Time (Epoch)

My favorite time format for time stamping events is to use Unix Time.  The AB Logix 5000 controllers offer time in a format that is similar, but requires some conversion.  Here is code for a RedLion device that does that conversion.

Screenshot from 2016-07-28 17:24:19

Continue reading

Posted in Industrial Automation | Tagged , , , , , , , | Comments Off on Convert Allen Bradley Logix 5000 Time to Unix Time (Epoch)

Convert Unsigned Integer to Float

I’m working with a RedLion device that treats integers as signed, and they don’t provide the function needed to convert an unsigned integer into a floating point.   Here is some code that will treat the 32 bit register as an unsigned integer and convert it to a double precision float.

Screenshot from 2016-07-28 14:40:53

//convert 32 bit unsigned integer to a float (returned as a string)
// Sparky Geek, LLC July 2016

// in signed integers, negative numbers are represented by the two's complement of the absolute value
// the task for this program is to undo this situation (just ignore the two's complement format)
// check to see of the MSB (AKA 'sign bit') is set 
// --- if it is, mask the MSB, read as a signed number, then add 2^31

int working;
cstring result;
int mask = 2147483647; //2^31-1, or 1 zero followed by 31 ones

if (uint_in < 0 ) // check to see if MSB is set
 { 
 working = uint_in & mask; //bitwise AND to only pay attention to the least significant 31 bits, filter out MSB
 IntToR64(tmp.TagA[0],working); //have to use tag, since we can't create a local array, convert to double precision float
 TextToR64("2147483648",tmp.TagB[0]); //convert 2^31 to double precision float
 AddR64(tmp.TagC[0],tmp.TagB[0],tmp.TagA[0]); //add the value 2^31 back in, since this is what we masked out earlier, store as a double precision float
 }
else
 IntToR64(tmp.TagC[0],uint_in); // if the MSB was zero, the function will work as it

result = AsTextR64(tmp.TagC[0]); //convert to string to pass back from program

return result;
Posted in Industrial Automation | Tagged , , , | 1 Comment