Pokeys

More
07 Dec 2018 14:15 #122004 by andypugh
Replied by andypugh on topic Pokeys

I could try to remove 'show pin' and check if its realy that issue.

It might just be that "show pin" uses up a couple of mS of CPU time

Another thing, those arrows are they have a function? Does it make a difirents how you insert them? ( <= or => )

No, they are optional, for human legibility.


About those potentiometers, i set them as analog input with the pokeys software.
I have to check how i can see values insted of I/0 dots.

Halmeter (From the "Machine" menu in Axis) will show you the value of a HAL pin or parameter.
You can keep choosing the option and open several.

Other GUIs get it in other ways, except for Touchy where you need to open a terminal and type "halcmd loadusr halmeter" (and that works on all GUIs and none)#

Please Log in or Create an account to join the conversation.

More
10 Dec 2018 11:56 #122133 by Erikcnc
Replied by Erikcnc on topic Pokeys
So i checkt if there was a value i can read.
The issue is that the pin i use (45, 46, and 47) are bit type. So, i see that they are constand TRUE.

I set these pins in Pokeys software as analog.

In linuxcnc they have to be a FLOAT type output. How can i change this?

Please Log in or Create an account to join the conversation.

More
10 Dec 2018 12:18 - 10 Dec 2018 12:20 #122134 by andypugh
Replied by andypugh on topic Pokeys
You should see some pins called "ain"
pin out unsigned ain-# [3];

something like pokeys.0.ain-0
They are unsigned int rather than float, to convert to float you would need to convert to float then scale them.

If I was doing it I would modify the HAL component to output scaled float.

change the line above to
pin out float ain-# [3];
And add
pin in float analog-scale-# [3];

Then change this
for(i=0;i<3;i++)ain(i)=dev->Pins[i+44].AnalogValue;
to
for(i=0;i<3;i++)ain(i)=(dev->Pins[i+44].AnalogValue * analog_scale(i)) /4096.0 ;
Last edit: 10 Dec 2018 12:20 by andypugh.
The following user(s) said Thank You: KCJ

Please Log in or Create an account to join the conversation.

More
23 Jan 2019 20:05 #124681 by Erikcnc
Replied by Erikcnc on topic Pokeys
Hi Andy,

After some other projects i would like to give this another try.
so, i understanding that the comp file should look like this.
component pokeys "PoKeys IO driver, by Mit Zot";

option userspace yes;


pin out bit in-# [55];
pin out fload ain-# [3];
pin out bit err;
pin in unsigned devSerial;
pin out bit alive;
pin in float analog-scale-# [3];

license "GPL";
;;

#include "PoKeysLib.h"
#include <unistd.h>   /* UNIX standard function definitions */

sPoKeysDevice * dev=0;
int i=0;

void user_mainloop(void) 
{ 
   
    while(0xb){
       FOR_ALL_INSTS() {

	 while(dev == NULL)dev = PK_ConnectToDeviceWSerial(devSerial, 38163);  //waits for usb device
	
	
	 alive=1; 
	 if ((PK_DigitalIOGet(dev) == PK_OK) && (PK_AnalogIOGet(dev) == PK_OK)){  //gets IO data and checks return value 
		err=0;
		for(i=0;i<54;i++)in(i)=!dev->Pins[i].DigitalValueGet;           //just transfers values
		for(i=0;i<3;i++)ain(i)=dev->Pins[i+44].AnalogValue * analog_scale(i)) /4096.0 ;
	 }
         else{             		  //on connection error
		PK_DisconnectDevice(dev);
		dev=NULL;  		  //tries to reconnect
		err=1;
		for(i=0;i<54;i++)in(i)=0;
		for(i=0;i<3;i++)ain(i)=0;
	 }
	 alive=0;
	usleep(40000); 
        }
    }

    exit(0);
}

does this looks correct?

Please Log in or Create an account to join the conversation.

More
24 Jan 2019 01:17 #124704 by andypugh
Replied by andypugh on topic Pokeys
It's been a long time. Just try it, does it work? If not, what is the error message?

Please Log in or Create an account to join the conversation.

More
22 Oct 2019 17:48 - 23 Oct 2019 02:29 #148549 by xaxxes
Replied by xaxxes on topic Pokeys
Hello.
I've modified the pokeys.comp from the first post to use the pins as outputs (for LEDs). With LinuxCNC I can set the outputs HIGH and LOW but the output on the PoKeys-board (PoKeys56U) does not work. (With the PoKey software for windows the output works fine.)

I added the follwing lines:
pin in bit out-# [55];
for(i=0;i<55;i++)dev->Pins.DigitalValueSet=out(i);
PK_DigitalIOSet(dev);

pokeys.comp
component pokeys "PoKeys IO driver, by Mit Zot";

option userspace yes;


pin out bit in-# [55];
pin out unsigned ain-# [3];
pin out bit err;
pin in bit out-# [55];
pin in unsigned devSerial;
pin out bit alive;

license "GPL";
;;

#include "PoKeysLib.h"
#include <unistd.h>   /* UNIX standard function definitions */

sPoKeysDevice * dev=0;
int i=0;

void user_mainloop(void) 
{ 
   
    while(0xb){
       FOR_ALL_INSTS() {

	 while(dev == NULL)dev = PK_ConnectToDeviceWSerial(devSerial, 2000);  //waits for usb device
	
	
	 alive=1; 
	 if ((PK_DigitalIOGet(dev) == PK_OK) && (PK_AnalogIOGet(dev) == PK_OK)){  //gets IO data and checks return value 
		err=0;
		for(i=0;i<54;i++)in(i)=!dev->Pins[i].DigitalValueGet;           //just transfers values
		for(i=0;i<54;i++)dev->Pins[i].DigitalValueSet=out(i);     
		PK_DigitalIOSet(dev);
		for(i=0;i<3;i++)ain(i)=dev->Pins[i+44].AnalogValue;
	 }
         else{             		  //on connection error
		PK_DisconnectDevice(dev);
		dev=NULL;  		  //tries to reconnect
		err=1;
		for(i=0;i<54;i++)in(i)=0;
		for(i=0;i<3;i++)ain(i)=0;
	 }
	 alive=0;
	usleep(40000); 
        }
    }

    exit(0);
}

What is wrong/missing?
thanks
Last edit: 23 Oct 2019 02:29 by xaxxes.

Please Log in or Create an account to join the conversation.

More
26 Oct 2019 22:37 #148854 by andypugh
Replied by andypugh on topic Pokeys
Did it compile with no errors?

Please Log in or Create an account to join the conversation.

More
27 Oct 2019 10:50 #148868 by xaxxes
Replied by xaxxes on topic Pokeys
Hi. I get one error. But this error i also get with the pokeys.comp from the first post

error:
In file included from ./pokeys.comp:16:0:
./PoKeysLib.h:65:0: warning: ignoring #pragma warning  [-Wunknown-pragmas]
 #pragma warning(disable:4996)

Thank you

Please Log in or Create an account to join the conversation.

More
29 Oct 2019 15:51 #149059 by andypugh
Replied by andypugh on topic Pokeys
That's just a warning, so doesn't explain the problem.

At this point I think I would be adding "printf" statements in the setup code, just to be sure that I really am running the code I am compiling...

Please Log in or Create an account to join the conversation.

More
05 Apr 2020 12:12 #162762 by KRAD-AT
Hello,

I am trying to get a pokeys 57e to work as my bob.
I have set up a linux mint with a master branch of linuxcnc and i am tryling to make the component for pokeys.
I am following the instructions in the first post of this topic and it works including the halcompile.

But the next step does not work:
gcc -Wall  -Os -g -I. -I/usr/include/libusb-1.0 -I/usr/include -L/usr/lib/ -L/usr/lib/arm-linux-gnueabihf/ -lPoKeys -lusb-1.0 -I/usr/realtime-3.4-9-rtai-686-pae/include -I. -I/usr/realtime-3.4-9-rtai-686-pae/include -I/usr/include/i386-linux-gnu -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range -mhard-float -DRTAI=3 -fno-fast-math -mieee-fp -fno-unsafe-math-optimizations -DRTAPI -D_GNU_SOURCE -Drealtime -D__MODULE__ -I/usr/include/linuxcnc -Wframe-larger-than=2560 -URTAPI -U__MODULE__ -DULAPI -Os  -o pokeys ./pokeys.c -Wl,-rpath,/lib -L/lib -llinuxcnchal

I have no Idea what to do next. Can anyone help me?

Thank you!


Attachments:

Please Log in or Create an account to join the conversation.

Time to create page: 0.224 seconds
Powered by Kunena Forum