Programming BeeBest/Xiaomi A208

I found a BeeBest/Xiaomi? A208 walkie talkie at a shop near me for a very reasonable price. So I picked one up to give it a try. It seems to be a less-featured version of the fancy xiaomi radios that have bluetooth and digital features. This one seems to be just a 16 channel analog FM radio covering 400-470 at 5W.

Unfortunately, it would seem the programming must be done from Windows using a proprietary cable. Luckily for us, the programming cable appears to be a simple PL_2303 USB-TTL adapter and a micro USB plug!

Some searching around found this page, that has a diagram of the pinout.

This looks rather easily replicatable. as the NC pin is normally not connected in a Micro USB cable anyway.. I got an old cable, wired up the pins accordingly, and loaded up the software which you can get here:

https://www.ifengyu.com/statics/BeeBestSetup.zip

By the way! The software can be easily changed to english:

I made up a simple cable with a CH340G TTL adapter I had spare, turned on the radio, and it works!

Make sure you select the correct MODEL NUMBER and SERIAL PORT in the software.

You can change the language of the radio prompts to ENGLISH or OFF in the advanced settings pane.

Setting up a Hamshack Hotline Trunk in 3CX PBX

I have a 3CX PBX at home I use for a few things, and I also have a Cisco SPA504g that I use with HamShack Hotline.

I have a second extension setup on the SPA504g for my 3CX system, but I figured it might be a good idea to get the 3CX system to register to HH as a trunk as well! That way I can also make and receive HH calls from my phone and the amazing 3CX application.

I applied for a new trunk line via the HH Support Center, and received it the following morning.

They provided me with three pieces of information;
User: 30027 – This is the extension number assigned to my trunk (Try calling me!)
Password: aprettygoodpasswordwashere
IAX Host: hhap.wizworks.net

The IAX Host is the SIP server, and should accept a SIP Register on port 5060 with the authentication info above.

In the 3CX Management Console, I went to Trunks and clicked Add SIP Trunk.

I selected Generic as the country, and Generic VoIP Provider as the provider.
The Main Trunk Number should be the extension provided above.


I filled out the info where it needs to go, and set the destination for calls to the main trunk number to go straight to my extension, so Ill get them on my mobile or PC.

This SHOULD be all that’s required!
But alas, I am not that lucky today.

The trunk is failing to register.
If we switch over to the 3CX Event Log, we can see the failed registration attempt.

Its worth noting here, that while the log shows the user as 10001@hhap.wizworks.net, this is merely a graphical confusion, as 10001 is the internal number assigned to the trunk by 3CX, and not the actual user that it attempts to register with. 3CX Uses the SIP User ID we entered above to register, but I am still receiving a 403 Forbidden from the hhap.wizworks.net:5060 (which currently resolves to 45.32.49.98) server.

I thought this may be happening due to the second connection I already have from this address, the Cisco SPA504g handset, so I connected to my Unifi Controller and shutdown the PoE to the port the phone is connected to.

Once the phone went offline I tried registering again through 3CX, and this time it gives an error that the service is not available…

I have reached out to the HHOPS team to see if there is any issues currently with the hhap.wizworks.net server, and will update my post here when I hear back, or if I otherwise resolve the issue.

Update:

I heard back from HHOPS!

They gave a few suggestions, and I was able to get things up and running!

Rather than Generic SIP Provider I have used Asterisk as the type, and rather than 5060 for the port, I have used 4569.
It is now successfully registered and appears to be working!


To finalise, I have also setup an Outbound Rule for Hamshack Hotline, where calls to numbers with a length of 5 digits get routed out the new Hamshack Hotline trunk.

Cheap dummy load

Dummy loads are very simple devices, they are a resistor, with 50ohm impedance, and a heatsink to dissipate heat.

I picked up a 50w heatsink from rs components, for $4.80 delivered overnight.

Arrived this morning, attach an SO239 and good to go.

For short bursts of power I’ll be using this for, <5-25w while tuning down commercial radios to legal limit it should do.

But I’ll need to add a heatsink for anything more or anything sustained.

Designing an even cheaper isolated digital interface for amateur radios

A few months ago, the ACMA made changes to the amateur LCD that allowed foundation class licensees to operate digital modes.

Excited to get into this in the new year, I begun looking into digital interfaces for the radios I already have. There’s many different ways this can be done, from as simple as not using a cable and relying on microphones and speakers, creating a straight through cable from the PC mic input to the radio speaker output and visa versa, to expensive isolated interface boards custom made in the USA.

I wanted an isolated board, because I have enough trouble with interference and noise in my apartment already, so the first two were out (although I did make a straight through cable for my Baofeng UV-5R for SSTV on 2m/70cm).

So I turned to the expensive isolated interfaces.

There’s plenty to choose from l, with different feature levels and prices! From the $230USD RigBlaster, the $200AUD SignalLink USB, and even the cheapest of the bunch, the Easy-Digi coming in at $30-50AUD shipped with slow shipping…

Naturally being a cheap ass I wasn’t overly satisfied with these options..

Luckily though, the Easy-Digi, saved the day! It’s such a simple design, with a published schematic, that it’s not too hard to roll your own with a few changes!

I jumped into EasyEDA and learnt how to do a basic schematic, then designed the interface circuit for audio using two 600:600ohm isolation transformers, and a PTT circuit using a DB9 rs232 connector because it’s easy, although I plan to replace that with a USB-C connector and a ch340 rs232 IC in a later revision!

I used components that I either already have laying around, or can get easily from JayCar for the most part.

The connectors and transformers I ordered from China at about $4-5 for 10pcs each.

With the layout done, I generated a PCB, and moved components around into a rough layout I was happy with, and hit the autoroute button :^)

I forgot to label the PC side connectors for the first revision, but I imagine there will be plenty of other changes I make anyway.

I uploaded the gerbers to JLCPCB to produce a test run of the PCB, which I should have within 2 weeks with the cheap shipping :^)

So if everything goes according to plan, I cluding parts and PCB manufacturing for 10 boards, I’ll have spend about $30-35 total, and I should be able to sell some of the boards to friends for $5-10 each offsetting my costs even more !

Yaesu FT-1500m restoration

A few years ago I picked up a Yaesu FT-1500m 50w VHF transceiver for a small amount, it was in pretty bad shape when I got it so it was pretty cheap.

I ordered a new microphone right away but because the previous owner super glued the old one in, I was never able to replace it.

I had trouble finding exactly the correct 6p6c Jack to replace the ruined one too.

I checked many places online, many stores in Singapore sim Lim, and many in Tokyo akihabara, until I finally found one that appeared to be close enough to use!

The new one wasn’t a perfect fit, I had to shave the corner of it down a bit, and drill out a small part of the radio housing to accommodate it, as it sits much more inside the radio than the stock one, but the pinout and height of the jack itself work ok. They’re logically correct too, despite being upside down compared to the stock.

I removed the stock Jack by carefully cutting away i at it with flush cutters until there was just pins left, then I desoldered those one by one, and cleaned up with some braid.

Installed the new jack, but it had plastic PCB mount rather than metal mounts I could solder. I decided to add some copper wire for a little bit of extra mechanical support. I added some liquid electrical tape to attach the wire to the jack.

After that was all done, I was more or less finished with what I can do!

I replaced the manky old M5 bolts with clean new ones, and will give the unit a general cleanup!

Unfortunately the rubber buttons are beginning to disintegrate, so I’ll have to figure out something to do there.. I cannot locate a replacement for those :/

The volume potentiometer has seen better days but still functions perfectly. But I may replace it in the near future.

Yaesu FT-897D Battery Project

I decided to build a lithium battery for my Yaesu FT-897D because the official Yaesu Ni-Mh batteries are far too expensive to import here (Then you need the special charger too!)

At present when operating portable, I have been running a lithium battery external to the radio (often a higher voltage battery through a little power supply)

So I grabbed some battery packs made up of four 2200Mah 18650 cells each, three of these adds  up to 11.1v at 8.8Ah, this is plenty for my short trips !

I planned out how to fit them inside, and there’s more than plenty of space, see image ๐Ÿ™‚

My preliminary notes were:

The three packs are each four 18650 cells in parallel

Totalling up to 8.8Ah per pack at 3.7v

At full charge it will be at 12.6v and at empty about 9-10v

I have measured how much power the radio draws, and on monitoring it draws around 8w, on transmitting around 18w (at 10w TX power, go figure) so thatโ€™s only 1-2 amps, super easy for these lithium batteries.

I’m just waiting for my BMS to arrive from China (battery management system)

As that has over current protection, over charge protection, over discharge protection and short circuit protection for the batteries

Then I’ll use some padded sticky foam to mount them in such a way they’ll get ventilation from the existing fans and good to go!

Gallery below! 

 

Setting up RTL-SDR in 2017

Years back I discovered RTL-SDR, that used very cheap USB TV tuners to run Software Defined Radio applications.

Back then I found it super easy to setup,

 

You just download ‘SDR#’ and run the installer, then you’re good to go!

More recently though, AirSpy selling their own SDR products, I recall having more difficulty setting it all up..

 

So let’s give it a shot here today.

Heading over to the AirSpy downloads page

I downloaded the ‘Windows SDR Software Package’ which seems to be similar to the old version, containing SDR#, ADSB Spy etc.
This downloaded a familiar looking sdrsharp-x86.zip file

Extracting this zip gives a familiar folder structure, with an install-rtlsdr.bat file, perhaps it hasn’t changed much after all? Not sure why I seemed to have so much problems last time…
I fired up Zadig as admin after it had downloaded and selected Options > List All Devices so that I could find my RTL device.

And with that its time to launch SDRSharp.exe !

The first thing ill do is pop into the options gear up the top there and change the device to RTL-SDR (USB). Then back into options and ensure the correct device is selected and the RG Gain is turned up a little.

And with that, we’re in!

It all seems to be working fine. I did a frequency correction of 3ppm and got it centered on a carrier wave.
Im now able to use this to identify which frequencies are in use around 500mhz so that I can fix up some wireless microphones that are complaining about interference!

 

It was much easier than last time. Not sure why I had so much trouble….

ARNSW Trash and Treasure

This morning I went to the ARNSW Trash and Treasure event!

It’s pretty much a small hamfest!

This is the second time I’ve been to it, it was a bit smaller this time but there was still plenty of stuff. 

It was held at the ARNSW building in Dural

Antenna towers !

There was heaps of oscilloscopes this time, with many costing a mere $10-30!!

There was even this single channel scope with a GIANT display:



The first thing I spied when I was walking around was a small block of foam with 12 nixie tubes on it, it was sitting with a bunch of other vintage tubes. 

I’m a huge fan of nixie tubes so I went straight for my wallet to make sure they were safely mine! Haha
The list price was $120 but I talked it down to $60 for the lot. 

I also picked up a few random metal project boxes that… Seemed to be constructed into things. 

Only one of them was labelled so the other two were real mystery boxes !

Nobody was able to tell me what they were, but I see huge potential in rebuilding them into something else. 
I’m particularly fond of the one with the front handles!!

When I was home I opened up the two unknown ones to find them pretty much empty shells. 

The perfect playground for whatever I turn them into. 


I was also lucky enough to pick up some variable capacitors, which I’ve been chasing for a while. I don’t yet know the value of what I grabbed but it’s certainly closer to what I need than nothing !

I want to use it when building a magnetic loop HF antenna. 

I also picked up a rather nice dial with an easily configurable scale. You just cut out and slide it in. 

Overall it was a pretty successful morning ! 

I spent significantly less than I expected and came home with some pretty nice treasure!

Bonus picture:

Spot the long wire antenna:

Radio Testing!

I went on a mission today to get my HF antenna working with my Uncle’s help!

We started out testing a ‘mini g5vr junior’ off ebay, it was about $50, and… not great.

Its only about 15m at its widest (both elements!)

We couldn’t even get it to tune on any band.

So back to the drawing board, or more the cutting board, we butchered the mini antenna and used its copper wire to repair the G5RVย I already had!

With the two elements from the mini one soldered on, I was still about 40cm short of the correct length, so I cut 45cm of solid core ethernet, stripped the ends and twisted them together, and then soldered that in the mix!

with the two elements the correct lengths (or close enough)

we popped down the road to the park and strung the antenna between two trees about 50m apart from each other, using some rope to reach the trees.

The antenna was only 2-3 meters off the ground, so not ideal, but it was great hearing voices coming through the radio again!

It tunes on some bands, but not others.

I think im done messing around, and ill just buy a new G5RV and not let my parents near it (theyre the reason the one I have now is broken, they didnt even keep the half they snapped off :((((( so much copper just thrown away…)

The park is a good candidate, seems low noise there (compared to elsewhere, I still miss my perk in the mountains though!)

There is two trees with nice high branches I am eyeing off, about 10-15 meters off the ground, and ~70m apart.

If I can string it up between there, and set up camp in the middle of the two, with a little picnic table and some food, I think I could have a fun few hours!

Here is some pictures of the final setup, and a youtube video showing some sweet morse and voice coming through

Antenna Testing

https://www.youtube.com/watch?v=hTuyhu393Eg

73

HamShield Motion Sensor

I am in need of a motion sensor for something, and I have this HamShield that I got from KickStarter recently.

 

heres some code I have mashed together that *MIGHT* make the radio send an SSTV image when motion is triggered..

 

I have to rest it and refine it first! its just mashed code from examples!

[su_expand more_text=”Code:” less_text=”Close Code.”]/* Morse Code Beacon Test beacon will transmit and wait 30 seconds. Beacon will check to see if the channel is clear before it will transmit. */ // Include the HamSheild #include #define PWM_PIN 3 #define RESET_PIN A3 #define SWITCH_PIN 2 // Create a new instance of our HamSheild class, called ‘radio’ HamShield radio; int calibrationTime = 30; boolean sensorActive = false; boolean previousSensorState = false; int pirPin = 4; //the digital pin connected to the PIR sensor’s output // Run our start up things here void setup() { // NOTE: if not using PWM out, it should be held low to avoid tx noise pinMode(PWM_PIN, OUTPUT); digitalWrite(PWM_PIN, LOW); pinMode(pirPin, INPUT); digitalWrite(pirPin, LOW); // prep the switch pinMode(SWITCH_PIN, INPUT_PULLUP); // set up the reset control pin pinMode(RESET_PIN, OUTPUT); digitalWrite(RESET_PIN, HIGH); // Set up the serial port at 9600 Baud Serial.begin(9600); // Send a quick serial string Serial.println(“HamShield FM Beacon Example Sketch”); // Query the HamShield for status information Serial.print(“Radio status: “); int result = radio.testConnection(); Serial.println(result,DEC); // Tell the HamShield to start up radio.initialize(); radio.setRfPower(0); // Configure the HamShield to transmit and recieve on 446.000MHz radio.frequency(145570); Serial.println(“Radio Configured.”); Serial.println(“Sensor Calibration in Progress”); Serial.println(“——————————“); for(int i = 0; i < calibrationTime; i++){ Serial.print(“.”); } Serial.println(“”); Serial.println(“Sensor Calibration Completed”); Serial.println(“Sensor Reading Active”); delay(50); sensorActive = false; previousSensorState = false; } void loop() { // takes the pin value and saves it to the sensorActive boolean value if(digitalRead(pirPin) == HIGH) { sensorActive = true; radio.setModeTransmit(); // Turn on the transmitter delay(250); // Wait a moment radio.SSTVTestPattern(MARTIN1); // send a MARTIN1 test pattern delay(250); radio.setModeReceive(); // Turn off the transmitter } if(digitalRead(pirPin) == LOW) { sensorActive = false; delay(250); } // performs action if the state of the sensor changes // since this is a loop, here is now it works: // if the sensor pin goes HIGH (on) after it being LOW (off), the sensorActive value changes from the previousSensorState value. // it then turns on the LED. when the pin goes LOW (off) it will do the same thing but opposite values. // it also prints status to serial. it will print the time of triggering by providing the number of seconds that have passed since the program started. if(sensorActive != previousSensorState) { if(sensorActive == true) { previousSensorState = sensorActive; Serial.println(“—“); Serial.print(“Motion Detected At: “); Serial.print(millis()/1000); Serial.println(” Seconds”); delay(50); } if(sensorActive == false) { previousSensorState = sensorActive; Serial.println(“—“); Serial.print(“Motion Stopped At: “); Serial.print(millis()/1000); Serial.println(” Seconds”); delay(50); } } } [/su_expand]