Arduino Nano Lights

John Backo answers the question:  “What are those lights on the nano anyway? And do I need them?”

There are usually 4 LEDs on the nano. They are usually in a row and labeled “RX TX PWR L”.

The RX and TX lights are connected to the lines that connect both the USB interface and the ATMega628P. They connect to TX0 and RX0. They are very useful as their flashing shows that communication is taking place during an upload. Likewise, if RX flashes once and then not again during an upload, there is a communications problem. Usually they are red and green; some may be orange. Messing with them will probably mess up RX0 and TX0. It is best to leave them alone. They are always out (low) with no serial communication to the chip. If they stay on, something is wrong…

PWR refers to a direct connection to the voltage regulated 5v line. It is NOT connected to the input voltage, whatever that may be. It is an indication that the board has power either from Vin or USB. That is all it does. It is usually red though I have seen many orange lights. It is useful, but it could be eliminated, I guess.

L is connected to D13. It is a good light and should not be disconnected. If the ATMega has a bootloader (which it should in a nano) this will flash three times when the reset button is pushed and released. That is not guaranteed because earlier versions of the bootloader did not show themselves through D13. And if the ubiquitous Blink program is loaded, it will falsh D13. That alone makes it a good light to retain. It is your “diagnostic visual indicator”.


MAX9812 Mic Pre-Amp conclusions

David N8DAH has been testing the MAX9812L Mic Pre-amp module on his BITx40.  In theory this should improve the gain and signal quality.

David says “So far its working ok at best I sound a bit robotish.”

“I am TXing at around 20w with my amp. I took the audio out through a 10uf dc blocking cap to the bitx40 mic in.  I powered the board from a 9v just for testing.  R136 is about 1/4. If you use a pre-amp you should adjust this lower or you will cause one heck of a noise on tx.  I am not yelling or shouting to get audio out now but not sure I like the audio in any case.

This is without the pre-amp … with the audio files from Michigan to Milford PA websdr

This is with the pre-amp …

David has decided he “might just stick with the slight yell to get the audio out. I like the idea of not having to shout but do not like the audio from this version of preamp”.

Others may think differently.  Mike ZL1AXG thought his “more robot-like” voice was more intelligible because it was more “punchy”.

Jeff AD6RH says:

“I used another mic housing with a DPDT switch and wired it so voltage is supplied only when PTT is engaged. I am using a CR2032 3v button cell. It seems to work fine, but I have not compared the stock vs. preamp mic with anyone on the air yet. It definitely has more average power on the watt meter. I can hear some peaks come thru the speaker when transmitting. I may try installing a pot to dial back the gain.”


Nextion Display

Fred W4JLE writes that he has just discovered the NEXTION display and he has begun using it on his BitX.

He says “what makes it really neat is the software that can be downloaded from the manufacturer’s site. It takes all the pain out of graphics programming. I have replaced the UNO with an STM32 as in addition to the normal stuff I have added a GPS module.”

The display shows time/location/grid square data as well as using the 1PPS in the GPS module to do a continuous correction to the SI5351a oscillator. The higher resolution allows calculating the SWR etc. with much finer gradations.

Fred says he will be adding a filter board from a CODAN that will allow all band operation which he purchased for $12.00 on eBay.

Fred’s concluding comment is that it is “Amazing what is available to the homebrewer today!”.

We are eagerly awaiting a link to his sketch and to see photos of his uBITx!


BITx40 Software

For those wanting to upgrade the stock BITx40 the favoured option is to use the software developed by Allard PE1NW.  This is a well worked over piece of software and is used by 100’s if not 1000’s of BITx40 owners.

Allard’s firmware options can be found here:


You need to choose between his Bitx40 and Bitx40-raduino-v2 branches. Both take some minor hardware mods which Allard has documented extremely well.   His version 2 drives the BFO from the si5351 on the Raduino
instead of using the stock analog crystal oscillator for the BFO.


AGC for uBITx controlled by I2C via Software

Nick VK4PLN admits he has tried just two AGC approaches on BITx rigs: the VK3YE AGC (which is shall we say very illuminating) and the ADAFRUIT TPA2016 I2C module.

Nick found the VK3YE solution messed with the audio quality, made it all scratchy, and still didnt handle local 100w stations well …

Now after playing with the TPA for a few days he is very happy with the results.  Audio has good depth and AGC is responsive, and the unit also gives a nice increase in gain.

One trick for others who want to implement this,  is that you will need to add some code to the Adafruit library to implement the enableNoiseGate(false); function.    We need to turn the NoiseGate off or else the AGC will not ramp up with only background noise and you will not hear anything until a loud signal comes on.  [EDITOR notes that this could be used as a kind of SQUELCH function].

Also the speaker output is NOT grounded, you need to isolate your SPEAKER jack so that the – ve line from the TPA2016 is direct to the speaker with no chassis grounding…   Output from the amplifier can’t be fed into another amplifier.

The Best part in Nick’s opinion is that all of the AGC related settings are customisable if you want.  If not, just use the voice settings from the datasheet.   Nick says the defaults work great!

Stereo 2.8W Class D Audio Amplifier – I2C Control AGC – TPA2016

Nick says he will post the code to the list along with a few pics… This extra info should appear here shortly.


And the board installed in Nick’s uBITx can be seen below.  It looks a real tidy build!


Nik has now shared his software:

VK4PLN’s AGC Code. Adafruit TPA2016
Add call to setupTPA2016(); to main code setup() in ubitx_20 after initOscillators();

#include <Wire.h>
#include “Adafruit_TPA2016.h”

Adafruit_TPA2016 audioamp = Adafruit_TPA2016();

void setupTPA2016() {

// See Datasheet page 22 for value -> dBV conversion table
// Serial.println(“Right off, Left On,”);
audioamp.enableChannel(false, true);

// Noise Gate Threshold: Below this value, the AGC holds the gain to prevent breathing effects.
//Select the threshold of the noise gate (1,4,10,20mV) (0-3)
// Serial.println(“Noise Gate Threshold,”);
//Disable NoiseGate, we want to hear everything, even weak signals….

// Fixed Gain: The normal gain of the device when the AGC is inactive.
// The fixed gain is also the initial gain when the device comes out of shutdown mode or when the AGC is disabled.
// value 6 seems to work ok… based on datasheet. Where gain is from -28 (dB) to 30 (dB)
// Serial.println(“Setting Fixed Gain”);
audioamp.setGain(-12); //-27 is ok? -12 is too high local stations arnt clipped…

// Compression Ratio: The relation between input and output voltage.
// AGC can be TPA2016_AGC_OFF (no AGC) or
// TPA2016_AGC_2 (1:2 compression)
// TPA2016_AGC_4 (1:4 compression) * Datasheet – Voice
// TPA2016_AGC_8 (1:8 compression)
// Serial.println(“Setting AGC Compression”);

// Limiter Level: The value that sets the maximum allowed output amplitude.
// Serial.println(“Setting Limit Level”);
// or turn off with
audioamp.setLimitLevel(30); // range from 0 (-6.5dBv) to 31 (9dBV) (8.5dBv(30) as per datasheet)

//Maximum Gain: The gain at the lower end of the compression region
// Serial.println(“Setting AGC Max Gain (18-30db – (0-12)”);

* For voice systems the attack time should be in the 2-ms region, with a hang time of about 0.3 sec,
* followed by a gradual recovery time of up to 1 sec.

// See Datasheet page 23 for value -> ms conversion table
// Serial.println(“Setting AGC Attack (0.1-6.7ms – (0-63))”);

// See Datasheet page 24 for value -> ms conversion table
// Serial.println(“Setting AGC Hold (0.0137-0.8631ms – (1-63))”);

// See Datasheet page 24 for value -> ms conversion table
// Serial.println(“Setting AGC Release (0.0137-0.8631ms – (0-63))”);


Also, need to add this new function to Adafuit library after the existing enableChannel function:

// Turn on/off Noise Gate
void Adafruit_TPA2016::enableNoiseGate(boolean ng) {

uint8_t setup = read8(TPA2016_SETUP);
if (ng)
setup &= ~TPA2016_SETUP_NOISEGATE;

write8(TPA2016_SETUP, setup);

And the line for the header file:

void enableNoiseGate(boolean ng);

in .h file:
void setNoiseGateThreshold(uint8_t thresh);

in .cpp file

void Adafruit_TPA2016::setNoiseGateThreshold(uint8_t thresh){ //Added by VK4PLN
if (thresh > 3) return; // max threshold is 3 (20mV)
uint8_t agc = read8(TPA2016_AGCLIMIT);
  agc &= ~(0x20);  // mask off bottom 5 bits
  agc |= thresh;        // set the limit level.
  write8(TPA2016_AGCLIMIT, agc);

Warning: Some uBitx kits shipping with incorrect female connectors

KF2510 headers in uBITx

There are two 8 pin wiring male headers in the kit – one on the main uBITx board and the other on the Raduino.  Today, Arvo KD9HLC started assembling the wiring on his kit.  He found that the female plugs didn’t match the headers on the board.  After a bit of head scratching and further investigation he found that the female header plugs with flying leads only had 7 pins!

It is likely that other kit purchasers may have the same issue.

These headers are of KF2510 type, widely used in China and are very affordable.  Sets of 50 male/female pairs of 2, 3, 4 and 5 pins are available for about US$3 ex China if you can wait.  And 8 pin females can be found on the various Chinese merchant sites as well.   However, these headers are a bit harder to source in the US.   In NZ and Australia they can be sourced from Jaycar.

THe uBITx kits come with  2 x 8 pin, 1 x 3 pin, 1 x 2 pin wiring harnesses with KF2510 female plugs.   The Raduino unit connects to the main board with a 16 point pre-soldered header.

HINT:   You can substitute ordinary Dupont header strips or single female pins.  They won’t be polarised, so you will need to be careful making connections.


Pelican and Ammo box style enclosures

Wishbone_aaa spotted in his  workshop a Harbor Freight plastic ammo box that looks like it will do the job. With the lid open, the box is 6 inches deep,9 3/4 wide and 4 1/2inches high. Price $6.99


Meanwhile, Ken, N2VIP suggests that Harbor Freight’s ‘pelican-style’ case is also nice:

BITx40 – Essential Mods

Fantastic BITx40 build from Glenn VK3YY

Jerry KE7ER notes that the schematics on the website for the Bitx40 are final but not necessarily correct.  He then goes on to talk about some of the variances and essential hacks.

This website is dedicated to the uBITx.   However, so that everybody who also has a BITx40 doesn’t miss out entirely on the occasional “gold nugget”,  some interesting articles about the BITx40 may appear from time to time on this website.   Jerry’s comments on the variation between the published circuit diagram and the actual board currently in production meets the “gold nugget” standard.

Differences between the BITx40 Board as manufactured  and the manufacturer’s Circuit Diagram

  • The two modulator diodes D15,D16 plus balancing pot R106 got replaced by a BAT54s dual schottky:
  • All those BC849’s?  Have always been MMBT3904’s.
  • L5 and C103 of the BFO are missing, the BFO is at just about the right frequency if the crystals are matched without any adjustment.  Usually.
  • L4 in the VFO is not stuffed on the board, meaning the analog VFO doesn’t oscillate.  The VFO comes instead from the si5351 PLL chip on the Raduino through the Bitx40 connector labeled “DDS1” in the schematic.
  • T6-4 is tied to C142 and R144, U3-3 is tied only to the 12v rail labeled “TX”, schematic does not show that clearly.
  • RV1-2 is not connected to U3, the schematic drawing is just a little tight there.

    Otherwise, Jerry thinks that the schematics on HF Signals are correct, reflecting what is currently being shipped.   Nothing has changed in Bitx40v3 boards shipped since Dec of 2016.

Changes that should ideally be made to the BITx40 Board

He then goes on to note that he thinks there are a few things that perhaps should change:

  • D7 and C130 should be across the coil of relay K1,  D8 and C164 are correctly across the coil of K2
  • R141 is currently a 1/4 Watt 10 ohm resistor, should be 1/2 Watt as have been reports of it burning out.
  • The surface mount MMBT3904 at Q13 could be replaced with a through-hole version of the same part, the 2n3904, as it must dissipate a fair bit of power during transmit.  Even with the radio off but hooked up to an antenna, a nearby QRO transmitter or electrical storm can blow Q13.

Essential mods

And finally Jerry suggests the following as essential mods for all purchasers:

Note that he suggested adding an incandescent lamp, which can be quite effective:

uBITX Mic Audio

Dave WI6R thinks that the rig only needs slightly more gain than the existing Mic PreAmp and that adjusting values to add gain is really all that is needed.  He doesn’t think it needs 40 dB of extra gain.

He has resurrected a Mic Pre-amp design used 50 years ago in the SBE SB-33 SF-1 solid state rig that first used bilateral amplifiers.   Bilateral amplifiers are used, of course, in the BITx transceivers.
This design had plenty of gain and worked with a Dynamic Mic with significantly lower output than any of the typical Electret-Condenser Microphones used today.   Also note that the Mic PreAmp was powered only when the rig was in TX and a simple diode was used to shut off the Mic PreAmp in RX with the same TX voltage.
Dave used this rig in the ’60s and doesn’t recall any “pop” when going from RX to TX or vice-versa. The “Signal Splitter” was used to isolate the TX and RX Audio.

Raj, VU2ZAP responded suggesting that simply decreasing the value of R63 would give you more gain!