Uniden Remote Head Project

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,908
Location
N.E. Kansas
Need to fix the corner rssi and some oddball pages and finish all touch input areas. Then test and probably put in a couple small delays after page switch to prevent some buffer overruns.
 

eorange

♦RF Enabled Member♦
Joined
Aug 20, 2003
Messages
3,028
Location
Cleveland, OH
@mancow

Made good progress on my ads-b remote head. Main unit is on the left; remote head on the right. Main sends a nonstop stream of raw ads-b records via UDP datagrams to the remote head. I use a separate thread for sending the data to split the workload on the main. Note the little wifi symbol in the upper right of the main to indicate remote mode is on. Now I can take the remote head anywhere within range of my wifi to see traffic, and I power it via a battery pack. There is nearly zero latency between the main and the remote. My camera washes out the colors but the content is easily viewable across the room.

Unfortunately there's a problem with pygame and the touchscreen. I can't get the (x,y) position of the mouse (i.e. touch), because the libsdl library that pygame uses to get the (x,y) from the hardware is borked. That library only works with a Raspbian that is 4 versions ago, and that Raspbian isn't supported on anything newer than a Pi 2 (in addition to being so old). So I can only tell the screen was tapped, but I can't tell where. I'm looking at solutions outside of pygame to get the (x,y). This is the problem when relying on multiple stacks (Raspbian -> libsdl -> pygame -> application) as opposed to an integrated display like the Nextion.
IMG_20200105_210239098.jpg
 

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,908
Location
N.E. Kansas
That's awesome! I would like to build one.

I know how you feel. It's always something. I've spent the last few days trying to figure out a latency issue. When I push a button it takes a second to respond. If pushed in rapid succession a second later you can see it sends out a stack of commands in a row. This didn't happen with the previous build.
 

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,908
Location
N.E. Kansas
Trying to get time to finish this. With work and all it's difficult.
 
Last edited:

MA-radio-guy

Member
Joined
Mar 30, 2019
Messages
12
@mancow

Made good progress on my ads-b remote head. Main unit is on the left; remote head on the right. Main sends a nonstop stream of raw ads-b records via UDP datagrams to the remote head. I use a separate thread for sending the data to split the workload on the main. Note the little wifi symbol in the upper right of the main to indicate remote mode is on. Now I can take the remote head anywhere within range of my wifi to see traffic, and I power it via a battery pack. There is nearly zero latency between the main and the remote. My camera washes out the colors but the content is easily viewable across the room.

Unfortunately there's a problem with pygame and the touchscreen. I can't get the (x,y) position of the mouse (i.e. touch), because the libsdl library that pygame uses to get the (x,y) from the hardware is borked. That library only works with a Raspbian that is 4 versions ago, and that Raspbian isn't supported on anything newer than a Pi 2 (in addition to being so old). So I can only tell the screen was tapped, but I can't tell where. I'm looking at solutions outside of pygame to get the (x,y). This is the problem when relying on multiple stacks (Raspbian -> libsdl -> pygame -> application) as opposed to an integrated display like the Nextion.
View attachment 78843

I remember having a similar problem with the touchscreen and can't remember what I patched to fix it... let me dig around
 

eorange

♦RF Enabled Member♦
Joined
Aug 20, 2003
Messages
3,028
Location
Cleveland, OH
I remember having a similar problem with the touchscreen and can't remember what I patched to fix it... let me dig around
That would be great if you can find something. Just today I was messing around reading the raw data from the /touchscreen device, but couldn't correlate the data with where I touched the screen lol.
 

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,908
Location
N.E. Kansas
I got the touch delayed output issue resolved. I had to just immediately write what was coming from the display one character at a time instead of waiting for a whole command.
 

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,908
Location
N.E. Kansas
I went back to just using simple comma delimited parsing. The 100 nulls a comma in a name field but the display doesn't like that anyway and consists of as an end of line, ceasing any write of data in the line past it. I could work around it but it's not really worth it I guess.
 

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,908
Location
N.E. Kansas
I will post the nextion, teensy and some build instructions later today. They're are a few things that still need fixed but for the most part it's done.


79332
 

Attachments

  • 20200120_011935.jpg
    20200120_011935.jpg
    72 KB · Views: 293
  • 20200120_112027.jpg
    20200120_112027.jpg
    43.9 KB · Views: 316
  • 20200120_012019.jpg
    20200120_012019.jpg
    101.4 KB · Views: 314
  • 20200120_011808.jpg
    20200120_011808.jpg
    94.2 KB · Views: 314
  • 20200120_011918.jpg
    20200120_011918.jpg
    89.5 KB · Views: 277

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,908
Location
N.E. Kansas
Parts needed:
Nextion NX4827K043 Enhanced HMI display. Itead link. Nextion Enhanced NX4827K043 - Generic 4.3'' HMI Touch Display
Nextion programming adapter or (simple USB to TTL adapter) Foca Max -- 5V2A Output USB to TTL serial converter board or a generic such as this from Amazon DSD Tech USB to TTL Serial Adapter with FTDI FT232RL Chip Compatible with Windows 10, 8, 7 and Mac OS X: Amazon.ca: Electronics
PJRC Teensy 3.6 microcontroller. Read about it and get it here or at Microcenter. PJRC Store
Arduino IDE downloaded and installed. Get it here. Arduino - Donate
Teensyloader Arduino add on program (loads the Teensy), get it from https://www.pjrc.com/teensy/td_149/TeensyduinoInstall.exe
Nextion HMI IDE software. Get it from https://nextion.tech/download/nextion-setup-v059.exe

Install all software. Open the HMI file with the Nextion software. Connect the display using the adapter set to 3.3v. Find the comport in the software and select the highest baud rate. Upload the HMI file to the display. You can use a microsd card as well but I will explain that later, or just read up about it at the itead site.

Connect the Teensy using a micro USB cable to your PC. Open the Arduino ino file. Select the Teensy 3.6 as the board type, and appropriate port assigned. In tools in the Arduino software select Optimization: Fastest + pure code with LTO.
Compile and upload to the Teensy. If it fights you push the button on the Teensy to force bootload it. It takes a brief second and that's it. You should hear the drivers load and unload. You should be able to see some debug print commands if you have the serial monitor open as well such as page switch names if controlling the radio directly.

Connect the wires as shown. Provide power using the male USB to a PC or usb power bank or whatever you have.
Connect the radio to the female USB port using a micro/mini usb depending on radio type.

If all goes well it should fire up, detect what rado type it is, what display mode it is and begin displaying content.

I will likely post some preprogrammed/connected setups over in the fore sale section for those who won't or can't do it for themselves.

79361
 
Last edited:

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,908
Location
N.E. Kansas
Oh, I also tested a generic USB/232 adapter with the Teensy board. It worked.

That means...... yes..... BCDx96/x96XT/x36hp support is possible. There should be plenty of display memory available for an all in one auto sensing device ;)

I took it out for the first time today on a 3 hour road trip. It ran the whole time off of a 3/4 full little mophie cell phone battery bank.
Things to know and that need fixed up:
The top right corner of the main screen where the RSSI colored bar exists is a hidden touch menu. Touch it and it opens a page with a brightness slider. After using the slider I'm not impressed with it. It is not very responsive and I still need it to remember its position somehow. Also, I found that 90% of it is really useless. The real dimming occurrs at 10% or less. In the image below, driving at night it was very comfortable right at my field of view on the dash at 7% brightness. I will likely eliminate it from the menu and hidden menu pages in exhange for 100% 10, 7, 4% buttons.
Trunk analzyer bars are not working. I am working on a vertical progress bar solution for them due to their convoluted way to displaying them.

If the device is unresponsive try cycling radio power. For some reason after 3-4 times of plugging one of these radio into a USB device the radio stops responding to USB and needs power reset. It seems to happen with ethernet as well in a similar fashion with Proscan at times. Really only an issue if the radio is kept on and the device is installed a few times. Most people will power it all off at the same time and never encounter the issue. It's something to do with the Uniden firmware.

79371
 
Last edited:

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,908
Location
N.E. Kansas
It's the Nextion 4.3 enhanced. I just put one of those cheap black plastic plate and frame things on it from Amazon with standoffs at the corners to make more room internally.

The housing has been the biggest challenge so far. Nothing exists that fits a display with attached pc board that extends beyond the display. I'm in communication with one company about a solution but it's going slow. Hopefully they can be had in small orders reasonably.
 
Last edited:
Top