Graphical display from serial port data

Tinker123

New Member
Anyone know of a windows program that will take serial data from the Picaxe and display it in a polar format (like a radar PPI scope) or something that will display a contour plot? I would like to graphically display the area contours scanned with an ultrasonic module. Thanks
 

J G

Active member
It would be a bit of work, but you could write a python script to receive serial data using the python serial library and then display it using the matplotlib library.
Otherwise I have used a picaxe to send csv formatted data, then copied and pasted this into a text file and opened this in a spreadsheet program where all analysis and graphing may be done later. Not realtime and a bit very tedious, but doesn't require any special software and is simple to implement on both the computer and picaxe.
 

erco

Senior Member
"Another company" did this clever project which uses the serial debug terminal to give a radar-like display. Could be ported over to Picaxe.

 

Buzby

Senior Member
That 'other company' project would be a doddle to do with PICAXE, if the PE Terminal worked like it's supposed to.

The PE6 document states with regard to the terminal, 'Control characters can be optionally used to navigate about the receive box'.
( See page 16, https://picaxe.com/docs/pe6.pdf )

As it is, the PE6 Terminal can't even support 'backspace' properly.
( See https://picaxeforum.co.uk/threads/pe6-terminal-control-character-behaviour.31898/#post-331268 )

We were told all those years ago that one of the reasons for the introduction of PE6 would be because it would be easier for Rev-Ed to add new functionality. It would be really cool to have an 'option switch' in PE to allow the use of a 3rd party terminal instead of the limited PE6 Terminal.

If the PE6 Terminal worked as it should, the solution to the OP's question could be all within PICAXE, with no need for any other apps.

Cheers,

Buzby
 

bag57pipe

New Member
I'm not sure if it helps, but for the do it yourself approach there is a PC version of MM basic (free & same as the micromite / maximite) it allows acces to the pc serial port it could possibly be programmed as a terminal/plotter. I only mention it as we all understand basic, some third party all singing all dancing 250mb Windows apps can be a lifetimes work just to get working!
 

WhiteSpace

Well-known member
In case it helps, 10 days ago I set up a SerTXD command to send x and y coordinates calculated from a scanning laser TOF sensor (see thread here: https://picaxeforum.co.uk/threads/scanning-tof10120-with-output-to-oled.32283/ ) and separated by a comma. It was very easy to import it from the serial window into an excel sheet and then use the graph function (as a scatter diagram) to turn those x and y coordinates into a plot, to see what was going on. As @J G says, not real time, but took only a few seconds to do.
 

Bill.b

Senior Member
This was a project I looked into back in 2012

I used PLX-DAQ serial to excel freeby to generate real time graphs.
this application was for a radar scanner using a SFR005 ultrasonic unit.

hope this may help

picaxe 18m2
servo connected to b.0 (pin 6)
SFR005 output connected to b.3 (pin 9)

Code:
#picaxe 18m2
#No_Data
pause 1000
setfreq m8

symbol servoCount = b0
symbol counter1 = b1 'counter
symbol asciihd = b2
symbol asciiten = b3
symbol asciiunit = b4
Symbol range = w10 'front range sensor register
Symbol trig = b.3 'front range sensor ADC input
Symbol SERVO1 = b.0 'Pan servo output


Symbol SERVO1_MIDDLE = 145
servo servo1,SERVO1_MIDDLE
main:
gosub scan1
goto main
scan1:
for counter1 = 1 to 80
servoCount = counter1+40
ServoPos SERVO1,servoCount
pulsout trig,2 ' produces about 20uS pulse (must be minimum of 10uS)
pulsin trig,1,range ' measures the range in 10uS steps
pause 10 ' SRF005 mandatory 10mS recharge period after ranging completes
let range = range * 10 /29 ' multiply by 10 then divide by 29 (8meg)
bintoascii range,asciihd,asciiten,asciiunit
sertxd ("DATA,",asciihd,asciiten,asciiunit,13,10)
pause 200
next counter1
sertxd ("CLEARDATA,",13,10)
return
this is the excel screen

scan.jpg

regards Bill
 

erco

Senior Member
Now you boys have me wondering if PE5's (I can't be the only one...?) serial terminal could be useful for some simple graphical displays, like a sideways oscilloscope.

 

J G

Active member
Something like putty, minicom or maybe realterm have support for escape sequences that allow connected devices to move the cursor around and change colours. Just have to remember to close the port before programming or weird crypic errors while programming may appear :)
 

Buzby

Senior Member
Most terminal apps ( I use RealTerm or Terraterm ) emulate the VT100 type protocols, which include the ESC sequences which can position the cursor anywhere on the screen.

I've used these before to enable a PICAXE to draw a set of independant tables of data on a screen. Because the PICAXE could send the X,Y coordinates each table could be updated seperately, no need to draw the whole screen again. Code like "hserout 0,(esc,"[",#vROW,";",#vCOL,"H",b3,b2,b1,b0)"

As J G says in post#10, it gets messy if you only have one serial port, as you need to keep changing the port between PE or the terminal app. Much easier to use a 2nd serial port for the terminal, and use 'hserout' or 'serout' to drive it.
 

geezer88

Senior Member
This has been a good discussion, and got me to thinking about larger displays for some Picaxe projects. Our local thrift shop always has old PC displays of various sizes for $15 to $30. These typically are older, and come equipped with VGA ports. I would love to find a VT100 to VGA converter so I could easily do text based displays on a larger screen.

So far I have not been successful. Anyone else have better luck buying or building their own?

tom
 

AllyCat

Senior Member
Hi,
Now you boys have me wondering if PE5's (I can't be the only one...?) serial terminal could be useful for some simple graphical displays,

Is there any way to make the serial terminal full screen? I'd settle for bigger.
One of the reasons I've "graduated" to PE6 (sometimes) is its superior Terminal Emulator (relatively speaking). The PE5 Emulator can't even send or receive Control Codes, can't be changed in size, nor allow a return to the PE window without being closed. :(

Conversely, the complete PE6 Emulator Window can be dragged in size or made full screen; on my laptop that's 144 characters wide, but still only 12 rows high. It can send Control Codes, but I believe only with the "Global" (ASCII / Raw) option, and the "Transmit Buffer" seems to hold at least 500 characters! However, it does appear to be basically just a (simple) "Teleprinter" Emulator, rather than (say) VT100, which limits its "Graphics" capability, even for "ASCII Art". Nor are there any User-Definable characters for/or "Block Graphics" or Line-drawing, etc..

So even a "2004" LCD/OLED might give a more flexible display, or an SSD1306 OLED driver (128 x 64) if you can tolerate its tiny size.

Cheers, Alan.
 

Flenser

Senior Member
I would love to find a VT100 to VGA converter so I could easily do text based displays on a larger screen.
A google search came up with a couple of different projects that do this but the one that seems most commonly referred to is: Geoff's Projects - ASCII Video Terminal
The full full project includes support for a PS/2 keyboard and the option of using USB for the serial input but if you scroll down to the section "Single Chip Controller" he provides a very simple single-chip circuit that appears to do exactly what geezer88 is thinking of.
The PIC32 chip he uses is in a DIP package and so convenient to wire up on a protoboard and the software is available to download from his project page but the trap is that you will need a PIC32 programmer.

The whole kit is available on Tindie Geoff's VT100 Terminal Kit but expensive at US$52 + US$40 shipping.

You can get the programmed PIC32 from the Silicon Chip magazine where Geoff's project was published PIC32MX270F256B-I/SP programmed for the ASCII Video Terminal [2410714A.HEX] for AU$15. I don't know what the shipping cost is.

If you have a PIC32 programmer then the price from element13 in Australia for 1 of the PIC32MX270F256B-I/SP chip SiliconChip are selling is AU$6.31 and for the PIC32MX250F128B-I/SP used in the original project is AU$6.06 so, depending upon what you have to pay for postage, it could be a pretty cheap way to build the VT100 to VGA converter geezer88 is after.

UPDATE: I downloaded the software and the PIC32 chip has a bootloader so if you can connect it to a USB socket or cable then the zip file includes a Microchip provided windows app to program the chip over USB using the bootloader. DISCLAIMER: I have not tested this so try it at your own risk.

UPDATE #2: I got too excited. There is no reference of a bootloader in the PIC32MX250F128B datasheet and the bootloader appears to be something that was programmed by SiliconChip as a part of the kit.
- The PIC32 hex file downloaded from the SiliconChip web site ASCII Video Terminal firmware v1.3 (2410714B).zip is named Terminal_V1.3_plus_Bootloader.hex and the README.txt file has these instructions:
"This firmware is intended to be loaded onto the ASCII Video Terminal by a PIC32 programmer such as the PICKit 3
It includes Ver 1.0 of the firmware plus the bootloader which will enable future upgrades without a programmer."
- You won't be able to use the PIC32 hex file downloaded from the site Geoff's Projects - ASCII Video Terminal. It is named Terminal_V1.3_UPGRADE.hex and requires the bootloader to already be programmed into the PIC32 in order to do the upgrade.
 
Last edited:

Buzby

Senior Member
I've just found this on Youtube ...

It looks like it can emulate ANSI terminals, but in this demo he rather annoyingly skips over them !.

At a cost of about £10 it looks like a viable solution to low cost displays using old VGA monitors.

Cheers,

Buzby
 

Flenser

Senior Member
My first update to my post #16 was wrong. You will need to use a programmer if you want to use blank PIC32's to build one of these and I've updated my post with this info.
 
Top