Header Image

 

Geek Stuff

Some background

 Originally designed in 2005 as a control system for the K7MI contest station, with over 20 antennas on four towers, it quickly became apparent that the traditional method of antenna selection was going to be very unwieldy. The ShackLAN macro system was developed as an elegant solution to the switching issues and also provided the ability to remotely control the entire switching system. The ShackLAN network uses RS-485 as the physical layer and is not related to, nor compatible with, Ethernet networks. A RS-485 based network uses differential voltages, unlike RS-232 which is ground referenced,  and has high noise immunity. The network runs at 115,200 baud and uses an in-house 9-bit protocol compatible with the vast majority of microcontrollers but is not directly compatible with a computer serial port. RS-485 is widely used in industrial applications. For those interested, more information can be found at  https://en.wikipedia.org/wiki/RS-485.

The macro concept

The ShackLAN macro system is designed for larger stations with multiple switches feeding many antennas on multiple towers. The ShackLAN macro system is based on "virtual antennas" per band. The antenna switches are intelligent and are responsible for translating the virtual antenna selections to physical antennas. The virtual antenna concept is what gives the ShackLAN system the power and flexibility to handle small stations with only a few antennas to large stations with dozens of antennas on multiple towers. Instead of having the control software tell each switch which antenna to select and the relay controllers which relays to energize, all the configuration information is contained in each switch or relay controller. This greatly simplifies the command system, reduces network traffic and gives unparalled flexibility. When using multiple operating positions, each with their own computer or control point, there is no need to have each computer have its own configuration data. It also provides control of all antennas, stacks, 4-squares, etc from each operating position. When operating Control Center in macro mode,  each button, or antenna selection, in the Main and RX Antenna panels is a virtual antenna. For example, assume you configured Macro #2 on 20M to be a 20M antenna fixed on Europe connected to port 5 on a switch at tower #2 and this switch is in turn fed from another switch located in the shack. Instead of sending individual commands to each switch, Control Center will simply broadcast that a certain radio wants to use the Europe antenna. The switches look this up in their configuration and select the appropriate ports. The same message packet may also be used by multiple RC-16 relay controllers.  With this macro system, it is actually possible to replace your stack and 4-square controllers with one or more RC-16 relay controllers and setup macros to control the stack selection or 4-square direction.

The hardware

All of the ShackLan devices are designed around Atmel AVR series microcontrollers, primarily the ATmega324 (ATmega164 in later units) and the ATxmega64A3. The 64A3 controller provides up to 7 serial port connections and makes possible the advanced features of out products that have internal band decoders as well as the popular CR-5 CAT Router. All circuit boards are designed in-house and trace routing is done manually for noise consideration. No auto-routers are used although it is available in the CAD package. All CAD work is done using Altium Designer.

The firmware

This is the part that will surprise most geeks reading this. All firmware used in the ShackLan products is written in Pascal. C was briefly considered but due to is poor performance on string handling (inherent with null terminate strings) and other issues it was discarded in favor of Pascal. The aerospace and military industries primarily use a language called ADA which is strongly based on Pascal. C just has too many security issues. That does not mean hacking but rather other issues inherent in the language. Does buffer overflow vulnerabilities sound familiar? A custom in-house compiler written especially for the AVR microcontrollers is used for all firmware. Comparisons done between the Pascal code using our compiler and similar code written in C showed interesting results. In every test the Pascal code resulted in smaller machine code, less memory use and faster execution. 

As a wise man once said, "The best language to use is the one that gets you to the bottom line in the least amount of time."

The software Apps

As you might have guessed by now all the PC apps for out products are written in Pascal. Earlier apps were created within the Delphi development system but due to the direction Embarcadero is taking Delphi we are migrating all our apps to use Lazarus which is a free Pascal development system. This also allows us to compile the apps for Windows, Linux and Raspberry Pi. This is not possible with Delphi.

Lastly, this website is created and maintained using Microsoft Expression Web 4.

The mechanics

All circuit boards are assembled in-house. SMD (surface mount devices) are placed using a desktop Pick-and-Place machine. Thru-hole components are hand soldered. All solder used has a water soluble flux to make cleaning the boards easy without using any solvents. We do not use any surface mount connectors as they are too easy to break off the board if any stress in placed on them from attached cables or other mishaps.

All machining is done in-house with a desktop CNC milling machine. Mist cooling of the cutters is used so no oils or solvents are used in the machining process. CAM design is done using BobCad and the resulting G-code files are then edited for the most efficient machining.

Labeling on all the devices is done using a 40 watt infrared CNC laser. The labeling is permanent and will not wear off like ink from silk screening can do with lots of use.