Programming the Motorola GM300

Programming the Motorola GM300

I recently purchased a Motorola GM300 on eBay to use as a packet radio in my QTH. The GM300 is a famous classic Motorola radio that can support from 8 to 16 channels depending on the model, and offers a sought-after 16 pin accessory connector on its back, which makes it easy to connect it to modems.

The main issue when receiving one of these old radios, is that the only way to program them is to connect through their RJ45 microphone plug in front, and run a DOS utility that was last updated in 1995.

What makes matters worse is that those radios communicate using non-standard 965 and 7700 baud, for reasons explained at length in this article. And the DOS utility of Motorola did a lot of busy loop waits as part of its protocol implementation and breaks on most modern and fast machines. Needless to say, there is no way you can run it on a modern computer and make it work.

Below are two scope captures I did while I was trying to understand how the radio communicates – modern scopes make this so easy 🙂


scope_13 scope_14

USB cable

The first order of business for the GM300 was to build a USB cable to connect to it. There is a lot of discussions on Internet forums around the fact USB cables should be avoided, but this is, I think, mostly related to the fact a lot of cheap USB cables cannot properly support non standard baud rates leading to a ‘it doesn’t work’ kind of scenario.

From an electrical standpoint though, USB is ideal: the radio uses TTL levels, so a standard FTDI to TTL adapter, if you have one in your toolbox, will be a perfect fit.



The schematics for the adapter couldn’t be simpler:

GM300 simple adapter

GM300 simple adapter

As you can see, no diodes, no active component… I initially tried to be fancy and isolate TX and RX with a 1n4148 diode, but I never managed to make it work, until I just connected TX and RX and added a weak pull-up, which worked like a charm.

The RJ45 pin numbering starts at pin 1 on the left side when you look at the connector from the bottom (where you see the metal pins exposed, not the plastic tab).

Getting the RSS to work

There are two ways of programming the GM300 as of 2016: one is a Windows XP program called “Radio Doctor” which can be found on a Yahoo group. Not much to say about this one, it will connect to COM1 or COM2 and try to read/program a GM300. If you have access to an XP machine, this is an easy way to program the channels.

Note: did you catch the reference to COM1 or COM2 above? Make sure your FTDI adapter does show up as one of those on your machine, and if not, force it! Radio Doctor does not let you pick the COM port, so that’s an important detail.


Radio Doctor does not give you access to any of the accessory connector programming though, and you will need to use the Motorola GM300 “RSS” to do this. I am including it below, hoping that Motorola won’t have an issue with this – the last update of this program was 1995: gm300v.5 . Note the tiny 350KB size for a this fine piece of floppy disk era software!


The RSS will work fine on DosBOX, an MSDOS emulator that was written primarily for gaming. Please refer to the DosBOX manual for basic setup instructions.  As far as the Motorola RSS is concerned:

  • Configure your FTDI serial port as a “real port” in the config file of DosBOX. The config file is well commented.
  • Slow down DosBOX to about 190 “cycles” using ctrl-F11 / ctrl-F12 to simulate an old computer.

With the two point above, you should be able to setup the RSS and do a successful “comms test”, then read and program the radio.

Adding VMWare

In my own case, running on a Mac as my primary computer, I used a Windows XP image on VMWare, then DosBox on VMWare. Works perfectly fine!

Tau Labs power distribution board

Tau Labs Power Distribution Board

First of all, apologies for not being very active on this blog since the beginning of the year – I am way too busy with tons of projects going on, and too little time to write about them.

This is a short article about a small board I just designed for a Tau Labs quadcopter I am building. One of my 2015 new year resolutions was to slowly get back into UAV design work after a nearly 2 year hiatus, and so far I am sticking to that one. Which also explains my introduction in the previous paragraph!


TauLabs PDB 1.5



The quadcopter I built is based on the popular “ZMR250” carbon fiber frame that can be found on many Chinese sites (“Bang Good” or “Good Luck Buy”) for about $30. For that price, you are of course getting something a bit rough, but build quality is actually surprisingly OK.

One thing that is missing from those frames, though, is a proper power distribution board (PDB): while a PDB is not a hard requirement, it makes wiring a lot cleaner and the quad more reliable. And it is also a good place to put a current and voltage sensor, as well as a good quality power supply for the electronics.

For this reason, I decided to design exactly that, using the very popular 36mm square format that we all know and love.

PDB Specs

Mounting under the frame

As mentioned above, this Power Distribution Board does the following:

  • Pads for up to 8 motors (double-sided)
  • Built-in current and voltage sensor (G/V/I pins at the bottom)
  • Built-in 5V 3A switching BEC, with high quality capacitors/inductor and very low ripple current. (pins on the upper left, “+” marked next to positive 5V output.

In its default configuration, the Voltage sensor is setup to measure 0 to 17V. It can be built with a current sensor that can measure up to 40A, or one that can mesure with up to 20A with better accuracy.

The PDB was tested with 4 12A ESCs on my ZMR250 with absolutely no overheating.

Current measurement accuracy

One figure that rarely gets mentioned on PDBs or current sensors, is their accuracy – though this is actually super important! The main reason is that there is no cheap way I know of to create a current sensor that will be accurate at both low and high current draws. My PDB is no exception: you can expect more than 95% accuracy on current measurement above 10A on the 40A version, and 95% accuracy above 3A on the 20A version – the sensor is usually pessimistic, so you know actual energy spent is a bit lower. Under 10A though, accuracy degrades fairly fast, and the sensor won’t really measure current draw under 1A with any sort of accuracy. Again, this is exactly the same as 99% of all sensors you can find on the market.

In real life though, since current draw on a multicopter will usually be well above 10A while you are flying, this is not an issue. But if you are thinking of using the current sensor for measuring standby current draw, this is probably not the right device.


Wiring of the PDB should be fairly self-explanatory, but just in case, here is a nice diagram to make sure there is no ambiguity – please give me feedback if you think it is not clear enough!


Wiring of TL PDB 1.5

Configuring on TauLabs

You should connect the PDB voltage and current measurement pins to the Analog inputs of your flight controller. This PDB was tested on Sparky, Sparky2 and BrainFPV and will not output more than 3.3V under normal use.

The voltage measurement bridge gives you 188mV/V , and is very precise.

The current measurement output gives your 62 mV/A in 40A configuration, and 135mV/A in 20A configuration, and as mentioned above, is precise above 3A in 20A mode. You can also work on the offset to get better readings at lower current consumption.

Connect the BEC output as shown above

Connect the BEC output as shown above is live!

Wizkers-logo is live!

This is the first week of 2015, and the next step in a project I started almost two years ago: today, I am releasing “Wizkers“, a full Javascript/HTML5 Open Source framework that provides data visualization, logging and data upload to any instrument or device that produces data.

Wizkers CPM Count

What makes Wizkers different? First of all, it is designed to be super easy to use: any computer running Google Chrome can be up and running in a matter of minutes using the Chrome Packaged app version of Wizkers, which we call “Mouse Wizkers”. But you are not limited to running inside of Chrome: Wizkers works just as well as a server on hardware as small as a Beaglebone Black or as virtual as an Amazon Web Services EC2 instance!

Second, Wizkers provides a much needed missing link between Internet Of Things data services and the actual devices that produce data, by enabling complete local control, logging and visualization, while still letting you forward data to whatever backend you want.

Last, Wizkers is designed in a very modular manner, which makes it possible to support new instruments and devices with as little work as possible. If you have designed a device that produces data, and want to give it a great interface, look no further!

Wizkers is already being deployed by quite a few testers, including professional users, and I am very excited to see where 2015 will take us!

State of the project

Wizkers can be considered to be in advanced beta state. The documentation is a work in progress, as is customary, and will improve over time. So while you can expect a few rough edges, dive in and give us feedback, and help us make Wizkers better!

Wizkers support about half of dozen devices, as varied as Ham radio transceivers or Geiger counters. we encourage you to visit our site,, and get better acquainted with this project.

And by all means, please get in touch with any remark, comment, or question you may have!

Beaglebone Black audio cape


I received the new Beaglebone audio cape from CircuitCo this week, and wanted to share my experience, since documentation for this board is really not very good (Edit on the 21st of June: …but getting better all the time!). Hope this will be useful for you!

The BBB Audio Cape version B1

This is a revision of the audio cape which uses far fewer components – the card looks empty – and is based on an AC3104I chip, the  TLV320AIC3104. It is now, as of June 2014, starting to become available through boardzoo, though shipping from that site is ridiculously expensive even in the US!

This audio cape simply adds a DAC and an ADC to the built-in audio capabilities of the Beaglebone. This means that the resulting “sound card” is split between native Beaglebone capabilities and the add-ons chips on the cape. OK, there is a little bit more to it such as signal processing, mixing and so on, but at a high level, this is really what it is. Just so you know…

Peanut Balun

Peanut Balun

Peanut Balun

… or rather UNUN: just built a tiny ‘peanut balun’ based on the design that can be found on their site: this is a 9:1 transformer that makes it easier to drive an end-fed wire at the end of a coax. Add a 30′ or so wire, and in my experience, this makes a really easy to drive and good antenna.

My friend Nick, N6NSA, found a great combination of parts – in particular this tiny box – that made it possible to build pretty much the smallest possible 100W balun, nicknamed the ‘peanut’ balun. Because it is so small, assembling it is a bit of a challenge, but with patience, you can get really nice results, as shown below:

A pure javascript audio waterfall / panadapter

Updated 2014.04.25: a new version of the waterfall display is available, give me feedback! Link in the article. A new updated article will follow.

Waterfalls: not the river kind, but the audio kind. Also known as sonograms, those are 2D+1 representations of the spectrum of a signal: the X axis usually represents the frequency, the Y axis the time (or the other way around), and the power of each frequency is drawn on a color gradient.

In the ham radio world, waterfalls are a great way to visualise part of the frequency spectrum. Depending on the type of radio you have – SDR or not, really – , you can either display a fairly wide part of the spectrum, or just a few kilohertz. But in any case, this visualisation will give you a new way of understanding what is going on around you, RF-wise.

KX3 Extended temperature compensation

During a lot of digital mode QSOs in the beginning of 2013, I regularly got feedback from the other party that my signal seemed to be drifting slightly. PSK31 having a very narrow bandwidth, even a small transceiver drift can be an issue during a QSO. This is usually partially hidden thanks to AFC on the receiver side, but good hams never fail to notice the problem and kindly point it out – at any rate, I was grateful several people did, since it is not always easy to spot this by yourself.

The Elecraft KX3 is a transceiver which uses a Silabs Si570 oscillator. While this is a good quality frequency source, it also drifts significantly depending on its internal temperature. It is part of the design of the chip, which contains a temperature sensor to compensate for this in software. The KX3 therefore is able to compensate for this drift by using an internal table.

Unfortunately, the drift compensation table is specific to individual units, and populating it requires connecting the radio to a known and very stable frequency source, and go over the whole oscillator temperature range. Doing this in factory is not practical as this requires way too long.

Heat Sink for the KX3

Heat Sink for the KX3

Just received the Heatsink I had ordered from Fred Meier, VE7FMN ( fsmeier with “” behind the “@” sign). Very impressed after a quick test, I was able to sustain a long PSK31 QSO on 20m at 10W with PA.I temperature hovering around 43°C. I could not do 10W on PSK31 previously for more than 30 seconds at a time before heating HI TEMP.

Seiki 4K 39″ display

Screen Shot 2014-02-28 at 09.50.59This is the latest large addition to my home office: a shiny new Seiki SE39UY04 39 inch – 100cm – display for my Mac, with 4k resolution: 4k in this instance means a massive 3840×2160 pixels. Talk about large.

Two noteworthy things: first of all pixel density works out really well with this screen size: it is very similar to my mac’s 15inch display, which means that text is super readable, an essential factor for a display especially if you sit in front of it a significant number of hours each day.

Second, this display is pretty much the best bargain you can find: I bought it on Amazon for $399. Compare this with your average large Dell monitor that will set you back $800, and it is easy to understand why it is so popular at the moment on Amazon!

One of the reasons why this display is cheap, is that it is not sold as a computer monitor, but as a TV: it has a TV tuner built in and most of its settings are really TV oriented, not computer oriented. But with a little bit of work, you will get excellent results as a computer monitor!