Proposal for improving documentation

05 Dec 2020 20:17 #191163 by zz912
When I started with LinuxCNC, I thought that HAL modules could only be programmed in Python. I don't know Python, so I didn't deal with creating my own HAL component. It was just by chance that I found out that it is possible to create HAL modules in C. C is the Arduino language.
I make a suggestion to improve the documentation.

I think it would be appropriate to extend the article at least to the definition of Userspace and RTspace.
For example, at least some suitable reference.

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

15 Dec 2020 09:23 - 22 Dec 2020 13:33 #192037 by zz912
Here could be added:
Source for parport:

Source for MESA:
#PWM Generator signal/setup
setp hm2_7i96.0.pwmgen.pwm_frequency 1500
setp hm2_7i96.0.pwmgen.00.output-type 1
# Set the spindle's top speed in RPM
setp hm2_7i96.0.pwmgen.00.scale 5000
setp hm2_7i96.0.pwmgen.00.enable true
net spindle-speed spindle.0.speed-out-abs => hm2_7i96.0.pwmgen.00.value

Last edit: 22 Dec 2020 13:33 by zz912. Reason: I had error in code.

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

16 Dec 2020 01:09 #192088 by BeagleBrainz
For the impatient jump to the end of the post. :P
For the ramblings of an old man who likes to shout at clouds please continue and I'll tell you about how we used turnips to fix Red Sixes. ( well when there wasn't a lump hammer & cold chisel in reach )

I never had any trouble finding how to create HAL comps in C.I guess I'm just a little more inquisitive, and usually go through all the headings for a particular topic. And to be honest "HAL Component Generator" would be a good heading to read if you were wanting to create your own HAL components.

And to be fair the docs aren't really meant to be a in depth tutorial\reference on Linux programming in general.

And to be perfectly honest Arduino programming is more akin to C++ (a subset of C++) than plain old C. The 2 example below demonstrate this in a very basic way.

Classic Arduino HelloWorld.
void setup() {
  // put your setup code here, to run once:
  Serial.println("Hello World!");

void loop() {
  // put your main code here, to run repeatedly:


HelloWorld from "C Programming With Arduino" By Warwick A Smith
#include <stdio.h>
#include "stdio_setup.h"

int main(void)

	printf("Hello, world!\r\n");

	while(1) {

Note that stdio_setup.h & the accompanying stdi_setup.c are supplied by the author.

Whilst the whole Arduino ecosystem has made microcontrollers & electronics more palatable to a larger audience, it also has the consequence of leaving many with a "one tool toolbox". Rather than throw a few logic gates together or (yes this is true) get a multimeter they turn to an Arduino.
I found a lot of the fun with microcontrollers was learning the assembly instructions associated with that particular chip and getting the most that I could out of it. You got a far better understanding from going that route.
And yes "back in the olden days" I did alot of win32 programming in assembly, not just apps but a device driver or 2 for Win 9x. At the time I found it easier than see as I could visualise the data moving around easier.

So after the long winded rambling of an old man, I hope you take 3 things, be a little bit more inquisitive, Arduino programming is a subset of C++ and finally, Arduino can make you a little lazy and not expose you to the whole picture.
The following user(s) said Thank You: Mike_Eitel, tommylight

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

Moderators: HansU
Time to create page: 0.148 seconds
Powered by Kunena Forum