Gladys 4 - Arduino service development

@billona Thanks for your explanations! I understand better, it’s great all that you have done :slight_smile:

Oh well spotted, the table is missing from this modeling. I think there are some differences between the actual implementation and this « predictive » modeling that I did at the beginning. I don’t always make the effort to go back and re-export the modeling with each commit I admit ^^

I created a GitHub issue to remind myself to update the modeling:

https://github.com/GladysAssistant/gladys-4-docs/issues/13

Actually, what bothered me was the naming of « sub-service ». There are already services in Gladys, and it’s something else. I think you should rename it, for example « function_to_call ».

I like the idea of @benPi, if for example we did something very open, for example:

{
  "function_name": "send_433_code",
  "parameters": [
         12345
   ]
}

We would indeed have a generic .ino with generic functions coded in Gladys (and the user doesn’t know about it)

But in a second step (not now), we can add the possibility for the advanced user to modify the base .ino and add functions.

What do you think?

Look at the body of the response, the error message is in it.

This is probably a bug, I created a GitHub issue to investigate the issue:

Yes indeed, after that it’s mainly a question of vocabulary used but the idea behind these sub-services was exactly that :smile:
I will correct that during the day.

I really like the idea! I will first modify the .ino I was using in Gladys 3 and which seems to be a good base. We will then have a first generic code.

The problem is solved, I investigated a lot but it was worth it ^^

So small point:

In terms of the interface, here is the current rendering:

In terms of the DB, we then have:

I added the consideration of IR and 433 MHz codes, which are now stored in the DB, knowing that for Chacon outlets, I took the trouble to take into account 2 ON/OFF codes.
I am still improving the UI, but for me we are touching the end, so I started working a bit on the back, to create communications with the Arduino :wink:

Wow! That’s very very good all that :smiley: Well done for the work done!

Ok, so I would suggest renaming this sub-service thing everywhere, we can talk about « function » to call :slight_smile:

It’s very clean, very nice work :clap:

Awesome!

Frankly, super approach, we are getting to a super service for me :slight_smile: I really can’t wait to see that in Gladys!

Thanks a lot @pierre-gilles, it’s very nice to read that :smile:

Regarding the renaming of « sub-services » to « functions », it’s done.

Now I’m trying to set the types and categories of features for each function.

For example, in Gladys 3, for a device that had to emit an IR signal, I had a simple push button on which I just had to press to send the code to the Arduino. But I haven’t found the right config to do that in Gladys 4 yet. Could you guide me please?

It doesn’t exist yet :slight_smile: It just needs to be created!

Okay, I’ll look into it ^^

I’ve pushed some initial Arduino code that I will refine. However, this initial code allows for 433 MHz transmissions using the standardized JSON we presented earlier ^^ I will modify it to take into account the length of the code (default to 24), and then I will adapt the other functions :wink:

Another thing I’m currently looking for, I want to perform an action when the values of my device change, where can I manage that?

Take inspiration from other services, for example the Philips Hue code:

You need to expose a setValue function

Well, here it is! The function is exposed :smile:

Here are the first logs:

2020-05-12T16:55:35+0200 <debug> scene.executeSingleAction.js:15 (SceneManager.executeSingleAction) Executing action of type device.set-value
2020-05-12T16:55:35+0200 <debug> device.setValue.js:15 (ArduinoManager.setValue) arduino: Changing value !! New value => 0
2020-05-12T16:55:35+0200 <debug> device.setValue.js:16 (ArduinoManager.setValue) { id: '9679f014-f5df-45aa-ad05-f0405f90038f',
  service_id: '683503cf-c265-480d-a410-6dede6301116',
  room_id: 'e3f0189d-e0a9-4c50-8089-d0bd5ea87301',
  name: 'test',
  selector: 'test',
  model: null,
  external_id: '852d2ed6-3afb-46f2-b879-8cf3bcb50189',
  should_poll: false,
  poll_frequency: null,
  createdAt: 2020-05-12T10:06:44.351Z,
  updatedAt: 2020-05-12T10:06:44.351Z,
  features:
   [ { id: '88bd694c-4748-4ce6-8afc-c0aeaed034c7',
       device_id: '9679f014-f5df-45aa-ad05-f0405f90038f',
       name: 'test',
       selector: 'test',
       external_id: '852d2ed6-3afb-46f2-b879-8cf3bcb50189',
       category: 'switch',
       type: 'binary',
       read_only: false,
       keep_history: false,
       has_feedback: false,
       unit: null,
       min: 0,
       max: 1,
       last_value: 1,
       last_value_string: null,
       last_value_changed: 2020-05-12T14:54:59.415Z,
       createdAt: 2020-05-12T10:06:44.410Z,
       updatedAt: 2020-05-12T14:52:19.804Z } ],
  params:
   [ { id: '9f8a3be3-214a-4010-a44d-7bf36c421504',
       device_id: '9679f014-f5df-45aa-ad05-f0405f90038f',
       name: 'DATA_PIN',
       value: '2',
       createdAt: 2020-05-12T10:06:44.429Z,
       updatedAt: 2020-05-12T10:06:44.429Z },
     { id: '78d63e83-2d83-4c5c-9f1f-d70bedc8e648',
       device_id: '9679f014-f5df-45aa-ad05-f0405f90038f',
       name: 'FUNCTION',
       value: 'emit_433',
       createdAt: 2020-05-12T10:06:44.430Z,
       updatedAt: 2020-05-12T10:06:44.430Z },
     { id: '1089f07e-76a0-41b3-a4ce-02c8b7958ebc',
       device_id: '9679f014-f5df-45aa-ad05-f0405f90038f',
       name: 'ARDUINO_LINKED',
       value: 'arduino-1',
       createdAt: 2020-05-12T10:06:44.432Z,
       updatedAt: 2020-05-12T10:06:44.432Z },
     { id: '29cafc77-660b-46e7-a8b4-cfcdf8325d5a',
       device_id: '9679f014-f5df-45aa-ad05-f0405f90038f',
       name: 'CODE',
       value: '0',
       createdAt: 2020-05-12T10:06:44.433Z,
       updatedAt: 2020-05-12T10:06:44.433Z },
     { id: '6af71eca-ca23-451e-8536-35892b362d72',
       device_id: '9679f014-f5df-45aa-ad05-f0405f90038f',
       name: 'CODE_ON',
       value: '0',
       createdAt: 2020-05-12T10:06:44.434Z,
       updatedAt: 2020-05-12T10:06:44.434Z },
     { id: 'd14269d8-03b8-41f9-aab8-2fc586c156b1',
       device_id: '9679f014-f5df-45aa-ad05-f0405f90038f',
       name: 'CODE_OFF',
       value: '0',
       createdAt: 2020-05-12T10:06:44.436Z,
       updatedAt: 2020-05-12T10:06:44.436Z },
     { id: '94258157-bc83-427a-8684-fe6e294ffabd',
       device_id: '9679f014-f5df-45aa-ad05-f0405f90038f',
       name: 'BIT_LENGTH',
       value: '24',
       createdAt: 2020-05-12T10:06:44.437Z,
       updatedAt: 2020-05-12T10:06:44.437Z } ],
  room:
   { id: 'e3f0189d-e0a9-4c50-8089-d0bd5ea87301',
     house_id: '9077ff85-438f-4a76-9493-caeb0650da15',
     name: 'Living room',
     selector: 'salon',
     createdAt: 2020-05-11T02:20:24.506Z,
     updatedAt: 2020-05-11T02:20:24.506Z },
  service:
   { id: '683503cf-c265-480d-a410-6dede6301116',
     pod_id: null,
     name: 'arduino',
     selector: 'arduino',
     version: '0.1.0',
     enabled: true,
     has_message_feature: false,
     createdAt: 2020-05-11T02:19:03.662Z,
     updatedAt: 2020-05-11T02:19:03.662Z } }
2020-05-12T16:55:35+0200 <debug> device.setValue.js:17 (ArduinoManager.setValue) { id: '88bd694c-4748-4ce6-8afc-c0aeaed034c7',
  device_id: '9679f014-f5df-45aa-ad05-f0405f90038f',
  name: 'test',
  selector: 'test',
  external_id: '852d2ed6-3afb-46f2-b879-8cf3bcb50189',
  category: 'switch',
  type: 'binary',
  read_only: false,
  keep_history: false,
  has_feedback: false,
  unit: null,
  min: 0,
  max: 1,
  last_value: 1,
  last_value_string: null,
  last_value_changed: 2020-05-12T14:54:59.415Z,
  createdAt: 2020-05-12T10:06:44.410Z,
  updatedAt: 2020-05-12T14:52:19.804Z }
2020-05-12T16:55:35+0200 <debug> device.saveState.js:16 (DeviceManager.saveState) device.saveState of deviceFeature test
2020-05-12T16:55:35+0200 <debug> gateway.forwardWebsockets.js:14 (Gateway.forwardWebsockets) Gateway: not connected. Prevent forwarding event.
2020-05-12T16:55:35+0200 <debug> scene.checkTrigger.js:12 (SceneManager.checkTrigger) Trigger: new event checkTrigger "device.new-state"

In my setValue, I retrieve the Arduino path, create the JSON, and call the send function. I’m not far from finishing all this, and once we get there, the « emission » part will be « finished ». Just need to optimize and take care of the « reception » part :smile:

For info, as we agreed, here is the JSON standard I started with:

{
	"function": "emit_433",
	"parameters": {
		"code": "4464676",
		"bit_length": "24",
		"data_pin": "4"
	}
}

{
	"function": "emit_433_chacon",
	"parameters": {
		"code": "1536116369",
		"data_pin": "4"
	}
}

{
	"function": "emit_ir",
	"parameters": {
		"code": "0xF720DF",
		"data_pin": "3"
	}
}

Well done! :slight_smile:

Could you rename « function » to « function_name »? « function » is a reserved keyword in node.js, I’m afraid it might cause some mysterious bugs in certain cases and linting issues…

Otherwise, it’s really great :clap:

No problem, it’s renamed :wink:

I think that by tomorrow the broadcast will finally be handled :stuck_out_tongue:

Well, here it is: Gladys can now send messages to the Arduino!!! :tada:

Here’s a short video of my setup:

VID_259860813_020103_334

Now I’m moving on to optimizing the code and improving the features.

If you’d like to test my code, all feedback is welcome :smile:

Hi @billona!!

Many congratulations on this dev which is very interesting and should be of great simplicity. I only use Arduino in networks, but if you’re interested, I can do some tests if it can help you. Can you give us a list of the desired tests:

  • Type of Arduino card - on my side I have Nano, Uno, Mega, Yun, Due and I think others that I don’t remember - all this in Chinese, Italian, others… 5 different brands.
  • The references of the 433 that you have tested to start on the right foot and those you want us to test - same I must have 5 or 6 brands.
  • Anything else?

Excellent! :slight_smile: Well done!

Thank you very much :slightly_smiling_face:

@Terdious Thank you for testing. :smile:

What I need is to verify the proper functioning of adding any card. By the way, when adding, the usb path will be followed by the manufacturer. A list of manufacturers of your clones would therefore be welcome so that I can add any clones that I have not yet put in my list. This list will later be used to control that the path provided is indeed an Arduino card.

For the 433, I just used simple modules that I bought on Amazon for a song. I don’t really have a reference to provide, but it’s classic.

If you have what it takes, it would be great to test the IR devices. If you just have a normal LED and not IR, it will do the job anyway, all you need is a resistor and an LED in series, and connect the power supply of your circuit to the data pin that will send the data. If it works, the LED should light up and turn off quickly.

For reception, there’s no need to try. I haven’t done that part yet. I will take care of it very soon.

Thank you again for your tests, I look forward to being able to observe the operation of my work in others than myself :smile:

I’ll do all that for you before the end of the weekend!!^^

Hello,

I am looking to create « push » buttons for the dashboard, a bit in the style of Gladys 3:

I started shaping my JSX:

Here is the result:

I can’t find the right reference to change the right switch into a kind of push button. Everything works, the devices react as they should, but it bothers me a bit from an aesthetic point of view… Do you have any ideas to suggest?

Thank you very much :smile:

1 issue encountered on the front end but not reproducible afterwards:
When creating the 1st Board, if the page is not refreshed, when you create a new one, the card appears to the right of the 1st card, with a line above it.

Note: I tested creating 5 cards so far, it’s functional

[details="Board details: "]

  1. Arduino UNO Board - Official Made in Italy
  • Display in Gladys: /dev/ttyACM0 - Arduino (www.arduino.cc)
  • USB Info RaspPi:
[ 2592.111144] usb 1-1.4: new full-speed USB device number 4 using xhci_hcd
[ 2592.256294] usb 1-1.4: New USB device found, idVendor=2341, idProduct=0043, bcdDevice= 0.01
[ 2592.256310] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 2592.256323] usb 1-1.4: Manufacturer: Arduino (www.arduino.cc)
[ 2592.256336] usb 1-1.4: SerialNumber: 55736313637351C0A0F1
[ 2592.261205] cdc_acm 1-1.4:1.0: ttyACM0: USB ACM device
  1. Arduino UNO Board - Non-Official Made in China - KEYESTUDIO with integrated Ethernet Shield W5500
  • Display in Gladys: /dev/ttyACM1 - Arduino (www.arduino.cc)
  • USB Info RaspPi:
[ 6496.436872] usb 1-1.1: new full-speed USB device number 11 using xhci_hcd
[ 6496.581980] usb 1-1.1: New USB device found, idVendor=2341, idProduct=0043, bcdDevice= 0.01
[ 6496.581996] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 6496.582010] usb 1-1.1: Manufacturer: Arduino (www.arduino.cc)
[ 6496.582022] usb 1-1.1: SerialNumber: 85733323939351F00140
[ 6496.588884] cdc_acm 1-1.1:1.0: ttyACM1: USB ACM device
  1. Arduino Nano Board - Atmel MEGA328P Made in ? - Original soldered pins (I don’t know if official - blue color)
  • Display in Gladys: /dev/ttyUSB0 - 1a86
  • USB Info RaspPi:
[ 4435.781031] usb 1-1.3: new full-speed USB device number 5 using xhci_hcd
[ 4435.917404] usb 1-1.3: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.54
[ 4435.917420] usb 1-1.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 4435.917433] usb 1-1.3: Product: USB2.0-Serial
[ 4435.987155] usbcore: registered new interface driver usbserial_generic
[ 4435.987215] usbserial: USB Serial support registered for generic
[ 4435.989478] usbcore: registered new interface driver ch341
[ 4435.989548] usbserial: USB Serial support registered for ch341-uart
[ 4435.989623] ch341 1-1.3:1.0: ch341-uart converter detected
[ 4435.998363] usb 1-1.3: ch341-uart converter now attached to ttyUSB0
  1. Arduino Nano Board - Atmel MEGA328P Made in ? - Non-soldered pins (I don’t know if official - blue color)
  • Display in Gladys: /dev/ttyUSB0 - 1a86
  • USB Info RaspPi:
[ 6048.560858] usb 1-1.3: new full-speed USB device number 8 using xhci_hcd
[ 6048.697505] usb 1-1.3: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.54
[ 6048.697522] usb 1-1.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 6048.697539] usb 1-1.3: Product: USB2.0-Serial
[ 6048.706180] ch341 1-1.3:1.0: ch341-uart converter detected
[ 6048.710929] usb 1-1.3: ch341-uart converter now attached to ttyUSB0
  1. Arduino Due Board - Said to be Official Made in Italy - Blue color - Back writing different from the green board
  • No model to select from the list
  • Display in Gladys: /dev/ttyACM1 - Arduino (www.arduino.cc)
  • USB Info RaspPi:
[ 4661.867320] usb 1-1.1: new full-speed USB device number 6 using xhci_hcd
[ 4662.010994] usb 1-1.1: New USB device found, idVendor=2341, idProduct=003d, bcdDevice= 0.01
[ 4662.011010] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 4662.011024] usb 1-1.1: Product: Arduino Due Prog. Port
[ 4662.011036] usb 1-1.1: Manufacturer: Arduino (www.arduino.cc)
[ 4662.011048] usb 1-1.1: SerialNumber: 5583931343835151F1F0
[ 4662.018512] cdc_acm 1-1.1:1.0: ttyACM1: USB ACM device
  1. Arduino Due Board - Official Made in Italy - Green color
  • No model to select from the list
  • Display in Gladys: /dev/ttyACM0 - Arduino LLC
  • USB Info RaspPi:
[ 6187.282745] usb 1-1.1: new high-speed USB device number 9 using xhci_hcd
[ 6187.413680] usb 1-1.1: New USB device found, idVendor=2341, idProduct=003e, bcdDevice= 1.00
[ 6187.413697] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 6187.413710] usb 1-1.1: Product: Arduino Due
[ 6187.413723] usb 1-1.1: Manufacturer: Arduino LLC
[ 6187.421444] cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device
  1. Arduino MEGA2560 R3 Board - Made in Italy - ELEGOO brand
  • Display in Gladys: /dev/ttyACM0 - Arduino (www.arduino.cc)
  • USB Info RaspPi:
[ 6302.164314] usb 1-1.4: new full-speed USB device number 10 using xhci_hcd
[ 6302.307683] usb 1-1.4: New USB device found, idVendor=2341, idProduct=0010, bcdDevice= 0.01
[ 6302.307700] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 6302.307713] usb 1-1.4: Product: Arduino Mega 2560
[ 6302.307726] usb 1-1.4: Manufacturer: Arduino (www.arduino.cc)
[ 6302.307738] usb 1-1.4: SerialNumber: 55632313738351B02001
[ 6302.312512] cdc_acm 1-1.4:1.0: ttyACM0: USB ACM device
  1. Arduino Leonardo ETH R3 Board - Official Made in Italy
  • Display in Gladys: /dev/ttyACM0 - Arduino Srl
  • USB Info RaspPi:
[ 7789.586093] usb 1-1.1: new full-speed USB device number 14 using xhci_hcd
[ 7789.724706] usb 1-1.1: New USB device found, idVendor=2a03, idProduct=8040, bcdDevice= 1.00
[ 7789.724723] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 7789.724736] usb 1-1.1: Product: Ethernet 2
[ 7789.724749] usb 1-1.1: Manufacturer: Arduino Srl
[ 7789.729608] cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device
[ 7789.738335] input: Arduino Srl Ethernet 2       Mouse as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.1/1-1.1:1.2/0003:2A03:8040.0001/input/input0
[ 7789.738705] input: Arduino Srl Ethernet 2       Keyboard as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.1/1-1.1:1.2/0003:2A03:8040.0001/input/input1
[ 7789.806282] hid-generic 0003:2A03:8040.0001: input,hidraw0: USB HID v1.01 Mouse [Arduino Srl Ethernet 2      ] on usb-0000:01:00.0-1.1/input2
  1. Arduino YUN Board - Made in Taiwan - Blue color - Model:DHQAR-W03
  • Display in Gladys: /dev/ttyACM0 - Arduino Srl
  • USB Info RaspPi:
[ 7940.058376] usb 1-1.1: new full-speed USB device number 15 using xhci_hcd
[ 7940.197677] usb 1-1.1: New USB device found, idVendor=2a03, idProduct=8041, bcdDevice= 1.00
[ 7940.197693] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 7940.197706] usb 1-1.1: Product: Arduino Yun
[ 7940.197718] usb 1-1.1: Manufacturer: Arduino Srl
[ 7940.204521] cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device
[ 7940.213499] input: Arduino Srl Arduino Yun Mouse as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.1/1-1.1:1.2/0003:2A03:8041.0002/input/input2
[ 7940.214002] input: Arduino Srl Arduino Yun Keyboard as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.1/1-1.1:1.2/0003:2A03:8041.0002/input/input3
[ 7940.278763] hid-generic 0003:2A03:8041.0002: input,hidraw0: USB HID v1.01 Mouse [Arduino Srl Arduino Yun] on usb-0000:01:00.0-1.1/input2
  1. MEGA2560 R3 + ESP8266 USB-TTL Board - Made in ? - WeMOS brand
  • No model to select from the list
  • Display in Gladys: /dev/ttyUSB0 - 1a86
  • USB Info RaspPi:
[ 8163.951667] usb 1-1.1: new full-speed USB device number 16 using xhci_hcd
[ 8164.088047] usb 1-1.1: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.54
[ 8164.088063] usb 1-1.1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 8164.088076] usb 1-1.1: Product: USB2.0-Serial
[ 8164.094804] ch341 1-1.1:1.0: ch341-uart converter detected
[ 8164.099488] usb 1-1.1: ch341-uart converter now attached to ttyUSB0
```11) Arduino Mega ADK R3 Board - Officially Made in Italy
- No model to select from the list
- Display in Gladys: /dev/ttyACM0 - Arduino Srl
- USB Info RaspPi:

[ 7609.393255] usb 1-1.4: new full-speed USB device number 13 using xhci_hcd
[ 7609.536653] usb 1-1.4: New USB device found, idVendor=2a03, idProduct=0044, bcdDevice= 0.01
[ 7609.536670] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 7609.536684] usb 1-1.4: Product: Arduino Mega ADK
[ 7609.536696] usb 1-1.4: Manufacturer: Arduino Srl
[ 7609.536708] usb 1-1.4: SerialNumber: 55338343539351016102
[ 7609.541494] cdc_acm 1-1.4:1.0: ttyACM0: USB ACM device


12) ESP8266 LoL1n New NodeMcu v3 Board - Made in Italy - WeMOS Brand
- No model to select from the list
- Display in Gladys: /dev/ttyUSB0 - 1a86
- USB Info RaspPi:

[ 6671.399170] usb 1-1.1: new full-speed USB device number 12 using xhci_hcd
[ 6671.535528] usb 1-1.1: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.54
[ 6671.535544] usb 1-1.1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 6671.535557] usb 1-1.1: Product: USB2.0-Serial
[ 6671.542288] ch341 1-1.1:1.0: ch341-uart converter detected
[ 6671.546969] usb 1-1.1: ch341-uart converter now attached to ttyUSB0


That's all for the cards I currently have. I will continue this weekend.

Wow, I didn’t expect you to have so many Arduinos :scream: That’s awesome!

I’ll add the manufacturers to plan for the automatic detection of boards later on.

I’m not sure I understand. Correct me if I’m wrong: when you create your device on the Arduino Devices page, without refreshing, when you create a second box, this box appears to the right of the first one but with an extra line?

In any case, I’ll check the code, maybe between two coffees I inserted a small error :sweat_smile:

Small announcement while I’m at it: since the IR management library I use in my code is modified to allow changing the sending pin at will, I’m looking into the possibility of being able to upload the code directly via Gladys.

That way, for the average user, no additional manipulation: they plug in their Arduino, create it in Gladys, and click a « Upload » button that will take care of the job for them :wink:

I found this module that seems very good for that:

https://www.npmjs.com/package/avrgirl-arduino

Hihi!! I’ve tested a lot ^^ So I’ll do the tests with all of them. I know I regularly encountered library issues with Arduino Due, not always compatible with the base libs.

That’s exactly it!! But on the « Arduino Configuration » page, not on the « Devices » page.

That would be great for Mr. or Mrs. Average!! Great find ^^

PS: I’ll edit my post above to hide all the refs to avoid cluttering everything.

Great for the detail, I’m retrieving the IDs for the UDEV rules :+1: