Pokeys_homecomp EncoderSearch / Encoder Arm Topic: Pos_Fb Following errors
- andypugh
-
- Offline
- Moderator
-
- Posts: 23297
- Thank you received: 4938
It might just be that "show pin" uses up a couple of mS of CPU timeI could try to remove 'show pin' and check if its realy that issue.
No, they are optional, for human legibility.Another thing, those arrows are they have a function? Does it make a difirents how you insert them? ( <= or => )
Halmeter (From the "Machine" menu in Axis) will show you the value of a HAL pin or parameter.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.
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.
- Erikcnc
-
- Offline
- Premium Member
-
- Posts: 153
- Thank you received: 0
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.
- andypugh
-
- Offline
- Moderator
-
- Posts: 23297
- Thank you received: 4938
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];
pin in float analog-scale-# [3];
Then change this
for(i=0;i<3;i++)ain(i)=dev->Pins[i+44].AnalogValue;
for(i=0;i<3;i++)ain(i)=(dev->Pins[i+44].AnalogValue * analog_scale(i)) /4096.0 ;
Please Log in or Create an account to join the conversation.
- Erikcnc
-
- Offline
- Premium Member
-
- Posts: 153
- Thank you received: 0
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.
- andypugh
-
- Offline
- Moderator
-
- Posts: 23297
- Thank you received: 4938
Please Log in or Create an account to join the conversation.
- xaxxes
- Offline
- New Member
-
- Posts: 5
- Thank you received: 0
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
Please Log in or Create an account to join the conversation.
- andypugh
-
- Offline
- Moderator
-
- Posts: 23297
- Thank you received: 4938
Please Log in or Create an account to join the conversation.
- xaxxes
- Offline
- New Member
-
- Posts: 5
- Thank you received: 0
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.
- andypugh
-
- Offline
- Moderator
-
- Posts: 23297
- Thank you received: 4938
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.
- KRAD-AT
-
- Offline
- Junior Member
-
- Posts: 28
- Thank you received: 1
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.