Age | Commit message (Collapse) | Author |
|
|
|
|
|
The CDC code presents itself as a virtual serial port. However, it also
sets the "bFunctionProtocol" value to 1, which means it supports
AT-commands, which is not actually the case. This might cause problems
with some software, such as ModemManager.
Originally, ModemManager would be very liberal with probing serial
devices, using a blacklist to prevent probing non-modems such as
Arduinos.
Since version 1.7.990, it has supported a "strict" mode where it tries to be
more restrained in what devices it probes. For CDC ACM devices, this
means it will only probe devices that claim to support AT-commands.
However, it also stopped applying the blacklist (intending to eventually
remove the blacklist), meaning it would again probe Arduinos.
This new strict policy is not the upstream default, but is enabled in
Debian (since Buster) and Ubuntu (since bionic 18.04.2).
The proper way to fix this, is to not claim AT comand support in the USB
device descriptor, which is what this commit does. The Arduino will
still show up as a virtual serial port, just not be probed by
ModemManager in strict mode.
For the commit that introduced the strict mode in ModemManager, see
https://cgit.freedesktop.org/ModemManager/ModemManager/commit/src?id=ee570d44dc117dc69f23e83313dd877f76c5e3e0
|
|
Remove historic Arduino 0012 workaround in SoftwareSerial
|
|
|
|
|
|
It looks so lonely on its own line!
|
|
|
|
Documentation
|
|
|
|
|
|
|
|
|
|
The "hold and then release" reset process is what Arduino recommends but it never worked for me, the double reset is much more reliable.
|
|
Much better than in/out, since using the controller's perspective meant the inverted "in/out" was confusing
|
|
Unsigned 'available' API
|
|
This function never returns an error (-1), and the number of bytes available will never be a negative number.
|
|
Logical reordering, no functional change
|
|
|
|
|
|
These are all of the USB-capable boards in the boards.txt file, all using the 32U4.
|
|
|
|
The Arduino core is licensed, collectively, under the GNU Lesser General Public License, version 2.1. Individual files may be licensed more permissively. See https://www.arduino.cc/en/main/FAQ.
|
|
XInput
|
|
|
|
Returns true if the device USB is configured. Although will still return true if the device has been configured and the USB data pins disconnected...
|
|
No reason not to take advantage of this feature, although with the interrupt in place I doubt it will be useful.
|
|
|
|
Using the OUT endpoint interrupt
|
|
|
|
Better to set these where intended so they can be easily overridden if need be.
|
|
|
|
|
|
Easier for the AVR to deal with the memory if the in/out numbers aren't paired.
|
|
|
|
|
|
This will compile but will NOT enumerate properly without a config descriptor. You've been warned...
|
|
Avoids unused variable warning if USB is enabled but pluggable USB is not
|
|
Allows sketches using Serial to compile but discards all data
|
|
Unused if pluggable USB is not enabled. Should submit a PR to fix this in the main repo...
|
|
Not compatible with XInput, which requires a static descriptor
|
|
Can't be used since PluggableHID and XInput are mutually exclusive
|
|
Distinguish at a glance from the 'normal' boards in the IDE
|
|
Forking
|
|
Removes boards from boards.txt, bootloaders for those boards, and variants for those boards. As none of these boards support USB there's no reason to keep them around.
|
|
|
|
|
|
|
|
Required to separate this board set from the built-in AVR core
|
|
Putting the parameter names in these commonly used prototypes makes syntax help like VS Code's Intellisense work 99% more useful. Without them, it doesn't give you the names of the parameters and you have to remember the semantics yourself. :(
|