Uniden Remote Head Project

eorange

♦Insane Asylum Premium Member♦
Joined
Aug 20, 2003
Messages
2,941
Location
Cleveland, OH
Oh, it's going to be an enormous amount of work.
Yeah, unfortunately it probably will be. Playing with it to get familiar is a good idea. It would be worth it to build a tiny UI prototype just so you know how the thing behaves.
 

eorange

♦Insane Asylum Premium Member♦
Joined
Aug 20, 2003
Messages
2,941
Location
Cleveland, OH
@mancow Any idea what kind of display this is? Hopefully @jarvis_road will chime in.

 

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,880
Location
N.E. Kansas
I think he mentioned it in the Facebook uniden page but not sure. I just now realized it's a 7".
 
Last edited:

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,880
Location
N.E. Kansas
Ok, yea this is horrible. It has taken me a week to figure out how to write one line of text and just now I found out in the scattered documentation that I can't change any parameter except the text. I would have to write an entirely new text field over it to reverse the color.

These people need to ditch their IDE, buy Nextion and ditch Nextion's hardware. If I had the Nextion software and this device talking together life would be grand.

As it I'm not sure I have the patience for it. I mean you can't even reference custom object names in the code. You have to use the IDE generated ones like Strings1, Strings2. You can alias them in the graphical IDE but who cares about that since I can see them there. It's in the code that it matters. I would literally have to draw a map. These people are nuts.

I guess I'm back to looking at RFI mitigation ideas.
 

eorange

♦Insane Asylum Premium Member♦
Joined
Aug 20, 2003
Messages
2,941
Location
Cleveland, OH
I looked at some code samples on 4D Makers - Hackster.io and I see what you mean. Typically these displays have just a few UI elements for controlling output or displaying input, and that works. Not great for a full-featured UI that's more like an application.
 

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,880
Location
N.E. Kansas
I'm going to keep pecking at it for a bit to make sure. I'll try to write some dynamic text over some buttons and see how things react. I tried to cancel the Armadillo board order but it had already shipped. They confirmed it's an end of life product but said they still had quite a few in stock.

I keep looking at this nextion board wondering if there is any way at all to mitigate the RFI.
 

eorange

♦Insane Asylum Premium Member♦
Joined
Aug 20, 2003
Messages
2,941
Location
Cleveland, OH
The only thing I can think of is using some mu metal behind the display somehow, but that might create an oven which cooks the board.

I get the impression the Armadillo display is not a programmable object-level unit, but rather just a pixel display - is that right?
 

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,880
Location
N.E. Kansas
I don't the displays get too hot. I'm just not convinced that will do anything being I wrapped one entirely in copper foil to little effect.

I think the armadillo seems to be a display with a pi and custom OS all in one.
 

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,880
Location
N.E. Kansas
My thoughts on architecture choices. This is by no means exhaustive or comprehensive; these are introductory high-level concepts:

Microcontroller-based (Arduino & similar controllers)
Pro
  • No operating system overhead
  • Straightforward implementation
  • Better performance
Con
  • Less language support for helper libraries
  • Monolithic solution (i.e. 1 big file) impedes collaboration
  • Limited memory for software; could be an issue for complex solution
Operating System-based (Raspberry Pi)
Pro
  • Full Support for Python and similar languages = easier to develop & collaborate (github)
  • Virtually unlimited storage compared to microcontrollers (think logging, etc)
  • Easy hardware support (filesystems, wifi, BT)
Con
  • Operating system know-how (updates & patches, installing packages, file permissions)
  • Yanking power without graceful shutdown can cause problems
All that said, I agree the Armadillo is the next best step. The issue of smart displays (Nextion with the ability to do easily crank out UIs at the expense of RFI due to more processing on the board) vs dumb displays (simple bit-mapped which requires more code but requires less processing and therefore less RFI) is also a factor.

The only thing that is a potential gotcha for the Armadillo is touch-screen support at a programming level. IF you go with Python and IF you choose to use PyGame as your UI library...there's a longstanding issue where PyGame cannot accurately report the (x,y) of the touch. See this post by me: Uniden Remote Head Project

I'll have to check which version if PyGame I'm running, and if it's fixed in PyGame 2.0. That would be great.

PyGame is a solid library for graphics and games (collision detection, cameras, scrolling, etc), but honestly it's overkill for a remote head application. It would be nice if there was a simpler graphics library for Python that supported touchscreen, fonts, and simple graphics.
@eorange thanks for the pygame suggestion. It's really powerful.

Been playing with pygame a bit. It's funny how every single platform has the exact same issues. It's always a serial read that is the problem, from Arduino to pi/python. The python serial read kind of sucks really. It relies on the timeout with no way to flag for an EOL terminator without specifically writing a function for one. Turning down the serial timeout speeds it up to acceptable speed but to the detriment of other functions. Anyway, been messing with it on a pi 3b+ on the 7" touch screen. It works but there is much more to be done. It pukes if switching into menu or whatever due to the different lengths of parsed data it expects. I need to base it off the 010 display lines and all that but still at leat it's doing something. The rough button layout is a test to see how it handles text overwrite. It works better than 4DSystems in which their screen entities fight with each other if occupying the same space. This seems to be NFG in that regard.

So far pygame hasn't thrown any touch screen x/y errors at me like you mentioned eorange. I can touch the button and it works fine. It's a bit delayed more than I would like and expect from a full SOC but that again seem to be due to the serial blocking issues.



overwrite.PNG
 
Last edited:

eorange

♦Insane Asylum Premium Member♦
Joined
Aug 20, 2003
Messages
2,941
Location
Cleveland, OH
@mancow Good to hear! Yeah, pygame is a pretty good library. I haven't done serial using python yet. My python code for my ads-b scanner and remote uses UDP sockets for all comms. But I know what you mean; the only serial library I've used that's solid is the one in the .NET framework. Everything else always seems to have a compromise.

The nice thing about working with a library like PyGame is you can create function libraries (better yet, classes) to simplify your display.

Good progress and glad you're touchscreen code is working. So refresh my memory....this is the Armadillo? Can you tell me which version of the Raspbian OS you're using, and, which version of PyGame? I'd really like to finish my ads-b remote but I'm stuck with no touchscreen support.
 

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,880
Location
N.E. Kansas
@mancow Good to hear! Yeah, pygame is a pretty good library. I haven't done serial using python yet. My python code for my ads-b scanner and remote uses UDP sockets for all comms. But I know what you mean; the only serial library I've used that's solid is the one in the .NET framework. Everything else always seems to have a compromise.

The nice thing about working with a library like PyGame is you can create function libraries (better yet, classes) to simplify your display.

Good progress and glad you're touchscreen code is working. So refresh my memory....this is the Armadillo? Can you tell me which version of the Raspbian OS you're using, and, which version of PyGame? I'd really like to finish my ads-b remote but I'm stuck with no touchscreen support.
It's on a regular pi with raspbian and a 7" display. I haven't tried it on the armadillo yet. It uses a Debian based OS but hopefully will work the same.
 

eorange

♦Insane Asylum Premium Member♦
Joined
Aug 20, 2003
Messages
2,941
Location
Cleveland, OH
Which display?

I'll provide you with the commands (later) that will show what I'm looking for. Thanks.
 

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,880
Location
N.E. Kansas
Ok, what commands do you want me to run to tell you what you need to know? Everything is pretty much vanilla from what I can tell. BTW, had some good progress tonight modding the font to make the custom glyphs for RSSI etc... I'm using the free JetBrains Mono spaced font so it all lines up nicely.
 

eorange

♦Insane Asylum Premium Member♦
Joined
Aug 20, 2003
Messages
2,941
Location
Cleveland, OH
Ah yes, that display. I kinda forgot about that one as I've been focusing on the Adafruit displays that are the same size as the Pi and plug right on. Maybe I'll look at this one for my remote head. It's bigger anyway which is a plus.

Ok, 3 questions. These will help me figure out the gap with PyGame not supporting touch on my display.

1. What version of Raspbian are you running? Issue this command:
cat /etc/os-release

2. What version of PyGame are you running? PyGame is managed by pip, which is the python package installer. There are a couple versions of pip. Issue these commands in succession until you get a result:
pip3 show pygame pip2 show pygame pip show pygame
3. Does your Pi boot to the graphical desktop, or does it boot to the command line? I am pretty sure this might be the difference. I installed the command-line only version of Raspbian; the desktop version has the proper touch drivers.
 

mancow

Member
Database Admin
Joined
Feb 19, 2003
Messages
6,880
Location
N.E. Kansas
Ah yes, that display. I kinda forgot about that one as I've been focusing on the Adafruit displays that are the same size as the Pi and plug right on. Maybe I'll look at this one for my remote head. It's bigger anyway which is a plus.

Ok, 3 questions. These will help me figure out the gap with PyGame not supporting touch on my display.

1. What version of Raspbian are you running? Issue this command:
cat /etc/os-release

2. What version of PyGame are you running? PyGame is managed by pip, which is the python package installer. There are a couple versions of pip. Issue these commands in succession until you get a result:
pip3 show pygame pip2 show pygame pip show pygame
3. Does your Pi boot to the graphical desktop, or does it boot to the command line? I am pretty sure this might be the difference. I installed the command-line only version of Raspbian; the desktop version has the proper touch drivers.
1;
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

2;
Name: pygame
Version: 1.9.4.post1
Summary: Python Game Development
Home-page: https://www.pygame.org
Author: Pete Shinners, Rene Dudfield, Marcus von Appen, Bob Pendleton, others...
Author-email: pygame@seul.org
License: LGPL
Location: /usr/lib/python3/dist-packages
Requires:
Required-by:

3;
Yes it boots to the desktop.

I bet you are correct about booting to the full desktop.
 
Top