Commit Graph
284 Commits
Author SHA1 Message Date
Earle F. Philhower, III bedfbda372 Clear PIO FIFOs when updating Tone and Servos (#206)
The PIO programs that generate tone() and Servo() use the TX FIFO to
receive updates to the period/duty cycle.

The original code would push into the FIFO (potentially blocking the
app if the FIFO was full) and generate at least one cycle of every
value written into the control.  Basically, the output would
lag the changes by 1 cycle or more (which could be 20ms+ on Servo).

Fix this by clearing any old, ungrabbed values from the FIFO before
sending a new one to the program.  Instead of a FIFO, there is
effectively now just a control register and updates will be immediate.

Update the Siren.ino example with delays because now the tone() calls
will not block and run 10x+ faster.
2021-06-11 12:27:48 -07:00
Earle F. Philhower, III 9fbf6ab35d Clean up Arduino.h header, remove duplicates (#205)
Many functions are defined inside the api/Common.h, so remove them from
the Arduino.h header to have them appear only once.

Fix up the abs() macro to avoid macro problems, add round()
2021-06-11 12:23:23 -07:00
Earle F. Philhower, III 793496da98 Set GPIO digital output on digitalWrite (#203)
Fixes #202
1.8.1
2021-06-10 07:58:09 -07:00
Earle F. Philhower, III 81cbf8357d Update README.md 2021-06-08 08:39:58 -07:00
Earle F. Philhower, III 55a260e4e8 Update README.md 2021-06-08 08:35:32 -07:00
Earle F. Philhower, III 5c71564844 Add PIOASM online tool link, thanks @jake653! (#197) 2021-06-08 08:34:53 -07:00
Earle F. Philhower, III bf4f0454e1 Update README.md 2021-06-08 08:02:07 -07:00
Earle F. Philhower, III 33b9e915d9 Add new boards to package.json 2021-06-08 07:02:25 -07:00
Earle F. Philhower, III 77712f5904 Add SparkFun ProMicro RP2040 (#196)
It's still OOS, so hookup taken from their schematics.
2021-06-08 06:55:13 -07:00
Earle F. Philhower, III c02388dfbe Update README.md 2021-06-07 15:12:03 -07:00
Earle F. Philhower, III 56dae62b8e Add back Featherwing CI test (#195) 2021-06-07 13:54:25 -07:00
Earle F. Philhower, III 53b52a975a Update README.md 2021-06-07 07:10:41 -07:00
Earle F. Philhower, III f87ccacdb1 Upgrade to GCC 10.3. Fix OpenOCD packaging (#194)
GCC 10.2 has a bug which causes Windows to rebuild every library on every
compile, instead of caching the first results.

Upgrade to GCC 10.3 which has this fixed.

Add proper OpenOCD executables for non-Linux x86_64 archs.
1.8.0
2021-06-06 22:43:26 -07:00
Limor "Ladyada" Friedandhathach d2a2fcb89d Add a new board - the Adafruit Macropad w/RP2040 (#191)
* add two variant files

* add trinkey and stemma friend

* add fast SPI transfer using pico-sdk blocks

* update makeboards.py for new variants

- STEMMA Friend RP2040
- Trinkey RP2040 QT

* run astyle on SPI library

* fix auto -> ssize type

* astyled

* woops ssizet != sizet!

* a nice day for a new board definition! this is a macropad with 12 keys, oled and rotary encoder

Co-authored-by: hathach <thach@tinyusb.org>
1.7.1
2021-06-06 12:53:06 -07:00
Earle F. Philhower, III c65c4bfb4e Allow continuous tone frequency changes (#186)
Fixes #121
Supersedes #185

Redo the PIO program to allow the tone generator on a pin to be updated
without interruption, at waveform boundaries.  This allows for things like
sirens or slurs to be implemented simply.

Use an alarm, not the PIO hardware, to manage time-limited tones().

Add a simple siren example.
1.7.0
2021-06-04 02:45:13 -07:00
Ha Thach 6431b8157b Add tone music example (#185) 2021-06-04 02:39:04 -07:00
per1234 7d1e83b416 Use optimal bundled library names (#183)
When multiple libraries contain files matching an #include directive in the program, the Arduino build system must pick
one to use for compilation. Multiple factors are used in order to make an intelligent determination of which library is
best.

In order to enhance this determination, the closeness of match between the library.properties name value and the
filename in the #include directive is being added as one of those factors. This new factor is referred to as
"Library Name Priority".

Unfortunately, this change can result in platform bundled libraries which had previously been correctly correctly chosen
no longer being given priority over their equivalent standalone libraries, which may be incompatible or not optimized
for the platform's boards.

This priority inversion only occurs when all the following conditions are true:

- There is a standalone library installed which provides a header filename collision.
- The platform bundled library is architecture optimized (e.g., architectures=esp32).
- The standalone library is architecture compatible (architectures=*).
- The standalone library has equal "Folder Name Priority".
- The standalone library has better "Library Name Priority" (e.g., name=SD vs name=SD(ESP32) for a library with primary
  header file SD.h.

The fix is to simply give the platform bundled library a perfect "Library Name Priority".

Some platform bundled libraries were given a modified name as a workaround to a bug in the Arduino IDE's Library Manager
which caused Library Manager to always show the library as updatable under specific circumstances. That bug was fixed in
Arduino IDE 1.8.6, ~3 years ago.
2021-05-31 07:32:20 -07:00
Earle F. Philhower, III fd685aac82 PANIC on attempting an invalid setXXX pin (#182)
Fixes #169

Trying to change pinout while running, or to an illegal configuration,
will now immediately panic() with an error message.  Such an attempt
is a pretty big problem since pinouts are hardware related/static.

Prior code would fail silently and return false, but nobody checked
the setXXX return values, anyway.
2021-05-29 10:50:13 -07:00
Earle F. Philhower, III 79539d7d8d Re-add pico-sdk/extra submodules to release ZIP (#181) 1.6.2 2021-05-28 19:55:09 -07:00
Earle F. Philhower, III 457e763466 Update release-to-publish.yml 1.6.1 2021-05-28 19:39:29 -07:00
Earle F. Philhower, III 0da71844fd Install PyGitHub before publishing 2021-05-28 19:29:57 -07:00
Earle F. Philhower, III 1fd0b0404d Add TinyUSB include to all libs (#180)
Fixes #167

For Serial when selecting TinyUSB.  Can't include in the core because Arduino IDE
will not link in libraries called from the core.  Instead, add the header to all
the standard libraries in the hope it will still catch some user cases where they
use these libraries.

See https://github.com/earlephilhower/arduino-pico/issues/167#issuecomment-848622174
2021-05-28 19:23:19 -07:00
Earle F. Philhower, III d0f3e89954 Create README describing release publish process (#179) 2021-05-28 19:12:28 -07:00
Earle F. Philhower, III 9c95c4d7ab CI to update JSON when releases are published (#178) 2021-05-28 19:04:12 -07:00
Earle F. Philhower, III 7e0eefe802 Typo fix in CI script 2021-05-28 15:14:04 -07:00
Earle F. Philhower, III 5d7ff8e628 Fix release tagging 2021-05-28 15:11:44 -07:00
Earle F. Philhower, III 83163797c6 Update tag-to-draft-release.yml 2021-05-28 15:00:02 -07:00
Earle F. Philhower, III 6393eac4f8 Try and fix multiline comment on release build 2021-05-28 14:45:02 -07:00
Earle F. Philhower, III 376e4770f3 Update build_boards_manager_package.sh 2021-05-28 14:28:48 -07:00
Earle F. Philhower, III c91b0ae605 Add'l release cleanup 2021-05-28 14:12:37 -07:00
Earle F. Philhower, III b14c49ad5d Fix log generation in CI package stage 2021-05-28 14:07:11 -07:00
Earle F. Philhower, III 88485e56f5 More CI packaging work 2021-05-28 13:50:29 -07:00
Earle F. Philhower, III e339e4f51c Clean up build release script 2021-05-28 13:41:30 -07:00
Earle F. Philhower, III a6307afadd Update tag-to-draft-release.yml 2021-05-28 13:34:30 -07:00
Earle F. Philhower, III 436bf0fe41 Update upload_release.py 2021-05-28 13:24:30 -07:00
Earle F. Philhower, III e72975af68 Update tag-to-draft-release.yml 2021-05-28 13:20:18 -07:00
Earle F. Philhower, III 099b7034d4 Update tag-to-draft-release.yml 2021-05-28 13:19:41 -07:00
Earle F. Philhower, III 5173d2668e Use CI to build draft releases on a tag push (#177)
Ensure no stray files get sucked into the release ZIP by using a clean CI
image to build the package and JSON file.  Auto-populate the draft with
the git commits since the last release.
2021-05-28 13:15:09 -07:00
Earle F. Philhower, III ab02801d76 Check in Arduino API directory to avoid symlink (#176)
Fixes #171

Under Windows, it is very hard to make a symlink and by default git won't
make one to the Arduino API directory, causing annoying build errors.

Avoid the issue by duplicating the ArduinoAPI directory explicitly and using
CI to verify that there are no differences between the two.
2021-05-28 08:50:48 -07:00
Earle F. Philhower, III e0d33e2536 Try to mount Pico drive if not already present (#175)
Fixes #27

As @vslinuxdotnet discovered, sometimes the Pico firmware update emulated USB
stick does not get automounted under Linux.  Add logic to attempt to use
standard tools to mount it to the uploader, only tried if no drives are
detected normally.
1.6.0
2021-05-27 13:07:55 -07:00
Earle F. Philhower, III 657464f134 Display offending lines in Style CI failure (#174) 2021-05-26 18:40:28 -07:00
Brian Slesinsky 799e3a03f5 Docs: larify pin assignments for i2c (#173) 2021-05-26 18:25:48 -07:00
Earle F. Philhower, III 6d11ec6e70 Update README.md 2021-05-26 18:12:50 -07:00
Limor "Ladyada" Fried 860b43b342 Two board variant definitions and a high speed SPI transfer function (#172) 2021-05-26 18:09:49 -07:00
Earle F. Philhower, III 35260c1f0f Add baud rate to main Serial.begin() (#170) 2021-05-26 02:45:18 -07:00
Brian Slesinsky a1c9dfe84d Add TinyUSB usage note. (#168) 2021-05-26 02:17:42 -07:00
Earle F. Philhower, III 8016a932f3 Add astyle format, boards.txt, and package check (#166)
Miscellaneous CI checks for code style, boards.txt update, and that all
referenced packages are available.
2021-05-24 15:01:03 -07:00
Earle F. Philhower, III fd4f7bbf0b Add TinyUSB examples to CI (#163) 2021-05-23 09:29:44 -07:00
Earle F. Philhower, III 77eae66cb1 Add Win and Mac build to CI (#159) 2021-05-22 03:42:22 -07:00
Earle F. Philhower, III eb6750d7d4 Add Arduino examples to CI (#158)
* Add Arduino examples to CI
* Remove bad example sketches
2021-05-22 03:24:56 -07:00