Due to the tremendous difficulties and complexities associated with getting the TI CC26xx software and related hardware documentation sorted out, and lack of useful, relevant example code or reference architectures, it became clear that a different approach was in order.  More details can be found in our Antenna Design Slack Channel here.

As a result, the latest design now incorporates a different Bluetooth Low-Energy (BLE) MCU. This one is made by Atmel, now owned by Microchip, a leading producer of Arduino and many other microcontrollers.

What we see below is the Atmel Samb11 BLE “XPlained Pro” development and debugging board.  I have found Atmel’s products to be reasonably well-documented, coherent and complete enough to proceed with a design. Moreover, the software approach makes everything so much easier and less time-consuming.  Take a closer look at the area lightly highlighted by the red rectangle near the bottom middle of this drawing below (click on the image to zoom in).

What we have there is the ATSAMB11-MR510CA wireless MCU and antenna module.  We will be using a similar module  ATSAMB11-MR210CA, which is the same without the hardware encryption acceleration that we do not require (a bit less expensive). This little board will be soldered onto our main board, similar to what we see done here for the evaluation unit.  The small white component on bottom right of that board is the 2.5 Ghz antenna!  This is a very slick device that will make the prototype devices much faster and easier to produce, for a few bucks more (vs. having to develop and debug the 2.5 Ghz radio initially – that can come later in higher production quantities).

Below you will find the revised design, which includes the RF Switch, RF Harvest, Frequency Prescaler and power conditioning circuits, followed by the wireless MCU design.  Please post comments or feedback on the design.

At the top we see the RF Switch, a 1-coil latching relay. This relay’s driver coil is tied to 12 VDC via 50 ohm pull-up resistors. U2 is a Darlington transistor array. Channel 1 receives a logic high (3V) from the MCU GPIO 22, and drives the 1C collector towards ground, setting the relay.  This logic high will last no longer than 10 milliseconds, more than long enough to switch the relay.  Channel 2 receives a logic high from MCU GPIO 23 when a reset is called for in a similar manner.  U2 translates the 3V logic into a 12V relay driver.

On the lower left side, two connections to the RF Harvesting wire are attached. This RF Harvest wire is used to gather RF energy from the antenna wire segments attached to the J-Box using a combination of inductance and capacitance. As the harvested RF energy enters the PCB, a Lightning Surge Protector protects against static discharges caused by nearby lightning from time to time, protecting the components which follow. Two 12V zener diodes are placed back to protect against over-voltage from large RF fields; e.g., full legal limit power. These diodes clamp the incoming signal to plus and minus 12 volts peak-to-peak, creating a square wave when overload signals are harvested. At this point, the harvested RF signal splits and flows down two paths, one for RF detection and frequency counting and the other for RF rectification into DC that powers all the circuits (there is no battery, everything is powered by the RF power collected during transmit).

The RF Power Harvesting circuit rectifies the incoming signal, storing it first in C3, the primary energy storage for 12 VDC.  D5 regulates the voltage around 12 VDC, providing VCC12 which is used to power the RF relay and the rest of the circuitry.  From there, the current flows through D1 and charges C2, the secondary storage capacitor, which provides the input voltage for U3, a low-dropout voltage regulator that supplies 3 VDC for the remaining logic. Based upon testing, C3 is capable of operating the RF relay (12 VDC @ 16.7 ma.) up to 5 times before being discharged fully, more than enough for this application. C2 provides stored energy to power the remaining low-power circuits, which sleep most of the time and when fully active, draw no more than 10 ma for brief periods (only when transmitting BLE via the 2.5 Ghz antenna, which is typically not required).  Nominal operating currents are just a few milliamps before the MCU goes back into a sleep state, whereby it draws around 1.1 microamps.

U5 takes a small sample of the harvested RF signal and converts it into a square wave, which is fed into U4, a PIC12F675 microcontroller’s clock pin. U4 runs a small program which divides its clock frequency by 1,000, thereby converting the RF signal from megahertz into kilohertz.  This prescaled signal is then passed onto U1, the J-Box controller, where it: a) wakes the sleeping MCU up each time RF transmit signals are detected, and b) feeds an internal counter, which is sampled periodically to calculate the RF signal’s frequency.  That frequency is then used to determine whether to switch the RF relay in or out, based upon this J-Box’s position in the antenna.

The above schematic depicts the wireless MCU and how it will be configured.  AO_GPIO_O arrives as “Wakeup/RFCtr” from the prescaler circuit as a Khz signal (when fed with Mhz RF), the leading edge of which will awaken U1, the wireless MCU, from a sleeping state. From that point forward, the MCU will begin counting the incoming prescaled signal transitions to determine the RF frequency.  Y1 provides a 32.768 Khz time base that drives the MCU (it has internal capacitors).  U2 is a SERIAL_HEADER providing pinout for connecting to a USB to serial port converter (or other serial interface).  JTAG1 is a 10-pin debugger connector, which is required to initially program the MCU and debug it.  The other jacks J1-J3 provide access to the GPIO pins, for potential future usage of this board for other purposes beyond the J-Box use case (e.g., wireless antenna switch, other IoT use cases, or simply experimentation).

Here’s how it will operate.  U1 provides overall J-Box control for the Software-defined Antenna.  This MCU is pre-programmed with the J-Box control program, which oversees J-Box operation and provides status information via the 2.5 Ghz BLE (bluetooth low energy) antenna. Each J-Box acts as a master node, advertising itself periodically for clients who may wish to connect. Clients include any BLE compatible device capable of operating over the BLE protocol, which is just about any wireless  device these days, including iPhones, iPad, Android phones and tablets, BLE enabled PC’s, BLE-enabled Arduino, Raspberry Pi or other BLE-enabled IoT devices.  In the future, J-Box Controllers will also be capable of accepting and applying software updates over the air (not available in early versions).

The J-Box Controller operates as follows.

When RF transmit occurs, the RF Harvest circuit collects RF energy, which drives:
1) energy harvesting circuit that powers the J-Box
2) detects RF signal is present
3) wakes up the MCU from lowest-power sleep state
4) MCU measures frequency of RF signal
5) detects RF signal stopped
6) MCU determines whether to open/close relay

Future functions
7) MCU advertises itself for up to 30 seconds in case a client wants to connect to it
8) If no client connects, MCU goes back to sleep.
9) if a client connected, MCU provides status information (capacitor voltages, relay state, etc.) and can be updated or reconfigured.

Please post comments or feedback on the design.