LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)

More
2 years 2 months ago #307373 by meister
by the way, if you were wondering why there are such strange pin names at the top of the quadencoder:
Code:
{ "type": "quadencoder", "pins": { "a": { "pin": "SHIFT_INPUT[2]" }, "b": { "pin": "SHIFT_INPUT[3]" } }, "signals": { "position": { "function": "jog.wheel_y" } } },

these are 'virtual' pins that are created when an expansion plugin is loaded:
Code:
{ "type": "shiftreg", "pins": { "out": { "pin": "PMOD:P1" }, "in": { "pin": "PMOD:P2" }, "sclk": { "pin": "PMOD:P3" }, "load": { "pin": "PMOD:P4" } }, "name": "shift", "speed": 5000000 },

the expansion pins can be used in the same way as real pins in the configuration, except that they are limited to one direction.

Otherwise you can use them in pretty much any other plugin
even PWM or stepper if they don't need to be ultra fast
The following user(s) said Thank You: Mecanix

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

More
2 years 2 months ago #307374 by Mecanix
I was shy to ask where those shift arrays came from. So glad you've explained.

I hope for lightnings, thunder, heavy rain and a dozen typhoons all of Sunday. I'll cave under and get it done. Thanks a-mil again Oliver.
The following user(s) said Thank You: meister

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

More
2 years 2 months ago - 2 years 2 months ago #307490 by Mecanix
Happy Sunday, everyone! 

Got my MPG functional in RIO. Everything works; encoder counts, selection knobs, led, fairly happy about that. Not entirely sure what else I need on that motion control board, probably nothing. And so time to finalize the routing and send out a prototype PCB to test with!! Not that the breadboard set-up doesn't work, it's just a hazardous messland all over my benchtop // flying wires much lol \\

Last edit: 2 years 2 months ago by Mecanix.
The following user(s) said Thank You: meister

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

More
2 years 2 months ago - 2 years 2 months ago #307491 by Mecanix
Additionally. If you are designing a Motion Control Board and want to ensure 110% isolation between the domains, the "go-to" part is the ISO7760DBQR (imho). Tested that all of today. Will endure a lightning, two typhoons, and a russian EMP bomb (granted all that are tiny!!). Others; the part's INs/OUTs are HIGH impedance and so no need to pollute the entire board with pullup resistors. 5V-to-3V3 translation at 25Mhz == PASS. Solid square wave with little to no under/overshoot.

The ISO7760 part was specifically engineered for system automation and motor controls, therefore you can officially ditch those half-useless ancient and medieval 'optocouplers' ;)

e.g. 
Last edit: 2 years 2 months ago by Mecanix.
The following user(s) said Thank You: kostas, tommylight, meister

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

More
2 years 2 months ago #307498 by meister

Happy Sunday, everyone! 

Got my MPG functional in RIO. Everything works; encoder counts, selection knobs, led, fairly happy about that. Not entirely sure what else I need on that motion control board, probably nothing.
...
 
cool, did you change anything in the hal for this, or did everything work via config ?
if you had to do something to the hal please let me know, then I'll see how I can integrate it


I wasn't completely idle today either :)

very experimental and only of limited use,
but this example works:
Code:
        {             "type": "wled",             "pins": {                 "data": {                     "pin": "WLED:DATA"                 }             },             "signals": {                 "0_green": {                     "net": "(halui.machine.is-on and !halui.mode.is-auto and !axisui.error) or halui.program.is-paused", .....

You'll have to find out for yourself what's so special about it,
I only say HAL of hell :P
 
The following user(s) said Thank You: Mecanix

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

More
2 years 2 months ago #307499 by meister
did i already mention that i have a script to visualise the HAL ?

Code:
python3 riocore/files/hal2graphviz.py Output/OctoBot/LinuxCNC/rio.ini  && display /tmp/hal-graph.svg

 
The following user(s) said Thank You: kostas, Mecanix

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

Time to create page: 1.592 seconds
Powered by Kunena Forum