Yaesu FT-857D digital CAT info S-Meter display.
This is an old webpage. Please visit the newer one
as well. :-)
Please read all of this page before attempting anything. I update it regularly.
I won't be held responsible if you break or ruin your equipment trying anything you read on my website.
Last updated on 30/04/2019 22:45pm
Now with added touch screen control if using an Arduino MEGA.
And now, dual VFO display.
I'd seen similar to my project for sale and thought , "How difficult could it be to build one for myself?"
All the info I needed was already on the internet, and in the rigs handbook.
It's just a matter of putting it all together and making use of the bits you want.
I used a 320 by 240 MCU_Friend LCD shield from Ebay. About £7, and a standard Arduino Uno.
I cut the black header pin connector on the underneath of the display and unsoldered A5, and one of the GND pins on one side, and the RX, TX pins on the other (they're not used by the LCD so are spare useable pins), I replaced the A5, RX and TX (D0,D1) pins with through board header pins. I didn't have any more to hand so used a right angle connector on the GND.
D10, D11, D12 and D13 aren't used either, but are connected to the SD card slot on the LCD if needed.(More later)
I cut my 'USB' CAT cable in half and put breadboard pins on the 3 wires from the rig end.
The Arduino uses these 3 wires from the rigs CAT port. RX,TX, and GND. 0V-5V levels are fine from the back of the rig.
You don't need RS232 or MAXxxx converters to connect the lines to the Arduino.
CAT cable wiring. The pins you see in the plug are the pins in the diagram.
NOT!! THE WIRING AT THE BACK.
If you try to upload a program to the Arduino whilst it is connected to the rig, it will fail,
so just uncouple the RX TX lines on the display when uploading.
First thing I tried was reading the frequency from the rig. So far so good.
Command requests are sent to the rig in 5 bytes, the actual command is in the 5th byte.
Replies to commands aren't always in a 5 byte format.
Be aware that HEX conversion might be needed in both ways of communication.
I did a google search for 'Arduino analogue meter code', found some, and modified it to suit my needs.
I wrote a routine to parse the frequency and mode info from the frequency request bytes.
The s-meter value is parsed from another byte read from the rig.
This is where things really start to slow down. The time lag on the screen updating the frequency and/or mode was about 1 sec.
Now that 'VFO A/B', 'Power', 'Squelch on/off' and 'Squelch/RFgain' are added, the time delay is more like 3-4 secs.
I also noticed that the 'func' menu options I added at the bottom don't update at all, unless, you long press the 'func' button on the rig to access the other menu, then long press it again to exit the menu. So, I thought I'd add the DNR DNF DBF registers seperately.
These turn red when either is turned on.
It was at this point that I thought perhaps I could just make a digital S-Meter with the display instead.
Voila ! Updates almost immediately, and is only connected to the rig by 2 wires from the 3.5mm jack under the front panel.
The centre pin is connected to A5 and the other to GND.
I decided to combine 'some bits' of both projects.
An external S-meter usually has the ability to show the voltage as well. So . .
After having a look at the layout of the Arduino, there are 6 in-circuit programming header pins available on the Arduino, so I bent the 5V, GND and D11 ones 90 degrees. A push button was put on the end of these with a 10K pull-up resistor. It can toggle the display now with a different screen showing a voltage related scale. The other 3 pins available include D12 and D13.
I also noticed at this point that A5 is also available on the other side of the Arduino (UNO), and can be accessed with a 90 degree header pin so no modifications to the LCD shield is needed for this pin.
The option to show signal/voltage etc is selectable under menu 60 for RX and 61 for TX.
Without altering the power supply to my rig, I can only guess the number scaling on the meter.
Mine always reads 13.8v, the guage shows this.
The next logical step would be to combine all the above toggled with the button.
Maybe just a screen with all the data on and no meter.
There's also still D10, D12 and D13 available too for more expansion possibilities.
Done away with the switch option and dispayed an actual meter image showing all directly on the LCD.
The image is stored on an SD card and uses the SD slot on the back of the screen.
I think, but not sure, that D10 - D13 are now still useable after the image has loaded.
That's it. Added VFO and Max TX power for that band.
Any more info just slows the whole display down too much for my liking.
Someone asked if was possible to show which part of the gauge
should be read depending on the menu settings of the rig. It is now . .
I've found out how to speed up the display update.
So i've combined all the features I'd programmed earlier.
Bigger screen ordered, so probably more features to add.
I've run out of space on the display, and all features are working fine ;-)
Bring on the bigger display to neaten it all up.
The new larger 480 x 320 screen.
Bought an Arduino Mega. After some fiddling about with SD libraries for the gauge display,
the rig now has some touch screen capabilities.
Currently, frequency up/down, with selectable touch step, VFa/b toggle, lock on/off, and ptt on/off are possible.
Plus a another approach to access the GND pin next to A5.
A5 on UNO only on this pin.
Now, 'nearly' every on screen item is touch screen controlable.
Frequency, step, mode, VFx, Lock, Dial speed, DSP, AGC and mode, MFx menu.
Before I add any further features, I may consider raising the price ;-)
All my Arduino .ino sketch files are available on Ebay or by contacting me directly. £10
I've started a Facebook group where buyers have access to all further updates,
or can have them via email if they request.
scat at m6yif co uk