Uniden Remote Head Project

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,904
Location
N.E. Kansas
It was the last one too. The hotel bar was closed but it's a good thing since I really did need to get up and interact with others despite not wanting to.

Anyway, I bought a power inverter for the laptop and worked on it from the back seat on the ride back home and I think I have it working now. I'm sure there will be something that will come up that I didn't think of but for now it's displaying everything perfectly. I put the 300 ms timer in the usb read buffer function which calmed it down and stabilized it. It seems to work fine there and everything runs smooth with no more timeouts or radio overrun issues causing delays. It's visually as responsive as the display.

I need to move all the variables for the display lines out to make them public so they can be read by other functions and then start working on the actual display interaction such as button events and pushing the data to the display. Also need to work on the icons that are represented by the non display characters that the terminal converts to command notations. I'm just happy the base data handling and parsing seems stable now.
giphy.gif



77097
 
Last edited:

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,904
Location
N.E. Kansas
Not the prettiest thing ever but it works and is good enough to stick in the ride and get the job done. The buttons work and I put touch areas on the System Dept Channel lines so it works like a HomePatrol. That will be nice when mobile so I can just touch the channel to stop it. I have a 0 and STS on there still which are just for debug purposes.

I picked up another Teensy board at Microcenter today and ordered a lexan housing kit. Hopefully it will be ready for the Jeep soon. Once I get all the nagging little details worked out I would like to work up some decent looking buttons and maybe put rotary encoders on the side for actual knobs. Also need to tweak the font so it displays the RSSI graph and other special icons appropriately.

bruNU6d.jpg
 
Last edited:

tsapers

Member
Joined
Aug 25, 2011
Messages
68
Nice work. I built a remote head (Arduino/LCD) for my BC780 and more recently an ADS-B decoder using a Pi3 and TFT display (see my avatar).

The overlay is a nice feature and it's good use of the display's real estate.

I'll throw this out there...when something interesting happens on my ADS-B decoder, I call the Twitter API so I'm alerted no matter where I am.

Are you using Pygame?

Dont want to hijack this thread, but anyone have something similar for 346xt or 15x scanners?
 

eorange

♦RF Enabled Member♦
Joined
Aug 20, 2003
Messages
3,028
Location
Cleveland, OH
Not the prettiest thing ever but it works and is good enough to stick in the ride and get the job done. The buttons work and I put touch areas on the System Dept Channel lines so it works like a HomePatrol. That will be nice when mobile so I can just touch the channel to stop it. I have a 0 and STS on there still which are just for debug purposes.

I picked up another Teensy board at Microcenter today and ordered a lexan housing kit. Hopefully it will be ready for the Jeep soon. Once I get all the nagging little details worked out I would like to work up some decent looking buttons and maybe put rotary encoders on the side for actual knobs. Also need to tweak the font so it displays the RSSI graph and other special icons appropriately.
Looking good! I know you mentioned you had some timing issues with reading the data which you've probably fixed by now. But I ran into the same thing when reading BC780 data over the RS-232 serial port. I had to play with buffer sizes and timeouts. It's definitely unlike any other serial protocol I've had to work with, but I got it working. For anyone who's interested -> ReadResponse()

 

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,904
Location
N.E. Kansas
Looking good! I know you mentioned you had some timing issues with reading the data which you've probably fixed by now. But I ran into the same thing when reading BC780 data over the RS-232 serial port. I had to play with buffer sizes and timeouts. It's definitely unlike any other serial protocol I've had to work with, but I got it working. For anyone who's interested -> ReadResponse()

Thanks I'll definitely take a look.

It seems stable at about 200 ms. The problem is balancing the timing with the display's ability to draw it all. If I go too fast I get display buffer overruns. I managed to run out of display memory and can't make one for trunk analyzer but I'm thinking of either adapting an existing page as dual purpose or going a different route.

Using pages and only writing when display fields differ saves a lot of bandwidth but eats the memory.

I might just do an on the fly create text field command for each field for a couple of less used page layouts. That way I can reuse one blank page.

As it is now detail, simple, menu and close call are working.

Another issue has been icons and certain text fields. They use a modified font to create the up and down arrows, the func F, to Scan, FMN/FM etc..

I had to modify some characters or just draw images of them.
 

eorange

♦RF Enabled Member♦
Joined
Aug 20, 2003
Messages
3,028
Location
Cleveland, OH
My sweet spot was 500ms for serial buffering. It was total trial and error. I don't have display performance problems on my BC780 remote head because it was just a 4x20 LCD.

With your display...any chance it supports double buffering? This is where you write to your display in offline memory, and then a single subsequent operation repaints the display with the contents of that offline memory. It's used to boost performance. My ADS-B decoder is rPi based and uses a display (see avatar), and I used double buffering just because it was supported in pygame.

You made a lot of good progress, keep going!
 

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,904
Location
N.E. Kansas
That reminds me of the u8glib2 graphics library method that paints half the display stores the other paints that loads the other back and forth. I don't believe the display can do that unless I turned off everything and used the raw command format and handled it all with something like u8glib2.

But it's doing okay now and it is super smooth in appearance matching the updates of the radio with almost no perceptible delays. The biggest hangup is the use of the touch buttons and squeezing out a serial transmission in between all that display activity. If you try to use the up or down channel to fast it can hang a bit.
 

eorange

♦RF Enabled Member♦
Joined
Aug 20, 2003
Messages
3,028
Location
Cleveland, OH
Good to hear. I've learned to live with "perfect is the enemy of good enough" on these types of hobby projects. Given what you can do with cheap hardware...it's pretty cool no matter what.

The rPi is nice but that comes with all the linux overhead, which is why I actually prefer the Arduino if possible. I've been thinking about trying an ARM board as mentioned earlier in this thread...I used to do embedded development for a while so that's kinda up my alley.
 

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,904
Location
N.E. Kansas
So true. If I can't duplicate everything exactly I become frustrated.

My next biggest hurdle is a housing. Apparently nobody uses 5" displays for anything. I had hoped to find something like an empty thermostat housing or baby monitor but haven't had any luck bring the simple lexan cut out type things that don't cover the sides.
 

Stupidfatkid

Member
Joined
Apr 26, 2004
Messages
170
Location
Kansas
Looking good! I know you mentioned you had some timing issues with reading the data which you've probably fixed by now. But I ran into the same thing when reading BC780 data over the RS-232 serial port. I had to play with buffer sizes and timeouts. It's definitely unlike any other serial protocol I've had to work with, but I got it working. For anyone who's interested -> ReadResponse()


I created a remote display app for the 780 back in 2006. I remember struggling with the RS-232 as well. It is strange. Never felt I nailed it, but got it working enough.

 

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,904
Location
N.E. Kansas
I forgot about that. Weird to hear KCMO EDACS again. Do you recall what the font was?
I haven't yet found one that matches exactly what they are using, then again maybe that is different from the SDS series font but it looks similar.
 
Last edited:

Stupidfatkid

Member
Joined
Apr 26, 2004
Messages
170
Location
Kansas
I forgot about that. Weird to hear KCMO EDACS again. Do you recall what the font was?
I haven't yet found one that matches exactly what they are using, then again maybe that is different from the SDS series font but it looks similar.

I could probably tell you if I could find the VS project files, but all that stuff is long gone.
 

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,904
Location
N.E. Kansas
I had been debugging against the display. I don't know why I hadn't been using the simulator connected live to the device all this time. It's much faster and easier.

77649
 
Top