Commit graph

1455 commits

Author SHA1 Message Date
Limor "Ladyada" Fried
775fb76cb8
Merge branch 'earlephilhower:master' into master 2025-06-15 16:20:49 -04:00
ladyada
af1374cb18 fix pins for rev C 2025-06-15 14:05:16 -04:00
Earle F. Philhower, III
f07079bb7d
Remove dead debug code in PIOProgram (#2992) 2025-06-12 11:15:12 -07:00
Earle F. Philhower, III
e7a23550ce
Update to GCC 14.3, Newlib 4.5.0 (#2975)
Moves to just released GCC 14.3

Moves to full-fat printf/scanf because Newlib no longer supports all the
calls libstdc++ requires with the older, smaller, nano-formatted-io option.

Moves to latest SDK develop branch with important float acceleration fixes
for the RP2350, among other updates.

Moves to latest pioasm, picotool develop branches

* SDK was refactored, update the includes
* Rebuild PicoSDK and BearSSL libs
* Update certs in BSSL validation example
* Don't spell check the certs!
* Updated tools with full fat++ newlib printf/scanf
2025-06-12 10:54:37 -07:00
Earle F. Philhower, III
0beb2d4ae8
Add SDIO PIN definitions for Adafruit Metro RP2040 (#2989)
Fixes #2985
2025-06-12 08:16:55 -07:00
ladyada
e5efb8b764 fix missing peripherals, this is for rev C 2025-06-01 15:29:48 -04:00
Maximilian Gerhardt
4de3ea94a9
Cleanly install PlatformIO platform from scratch (#2982)
Prevents weird update errors stemming from an already installed platform
(cached), then updating some files in it manually and then pio pkg updating it.
2025-06-01 08:08:45 -07:00
Maximilian Gerhardt
68f1da5f94
Mark all boards as picosdk compatible in PlatformIO board definition (#2980) 2025-05-31 12:19:21 -07:00
Earle F. Philhower, III
948e9bfd22
Clear any existing IP before sending a DHCP request (#2979)
Fixes #2978
2025-05-31 11:20:14 -07:00
Earle F. Philhower, III
73bd6a0891
Send DHCP request on ::begin even if lease exists (#2977)
When a link comes up, we were only sending a DHCP request if the existing
netif's ipaddress was 0.  When a DHCP lease is acquired at first that IP
is changed to the given address, and if we do another ::begin we wouldn't
dhcp_start to send a new request and use the old one (until its lease
expired).

In the case of network changing (i.e. WiFiMulti on different nets or
moving an Ethernet cable to another router) that old address would not
be valid.

Track if an IP address has been manually set and use that to determine
if DHCP needs to be re-requested instead of looking at the old netif's
ipaddress.

Fixes #2974
2025-05-31 09:19:42 -07:00
ladyada
ecd662640f Merge branch 'master' of github.com:adafruit/arduino-pico 2025-05-24 15:05:34 -04:00
ladyada
0f211d1aa5 fix button names 2025-05-24 15:05:29 -04:00
Earle F. Philhower, III
f3df355663
Fix BSTstackLib service UUID reporting to client (#2968)
Fixes #2967
2025-05-22 12:34:26 -07:00
Earle F. Philhower, III
7dcfe4d483 Update version 2025-05-22 08:19:51 -07:00
Lorandil
3df1392a1b
Added 'TwoWire::setBufferSize()' to Wire library (#2962)
'setBufferSize()' allows to modify the receive buffer size (inspired by the ESP32 code)
2025-05-21 13:57:35 -07:00
Limor "Ladyada" Fried
9043412c5f
Merge branch 'earlephilhower:master' into master 2025-05-18 15:20:50 -04:00
Earle F. Philhower, III
7c51742522
Add PSRAM option for Adafruit Metro RP2350 (#2961)
Fixes #2960
2025-05-16 08:34:01 -07:00
Earle F. Philhower, III
08353deb88 Ignore libpico build dirs for git 2025-05-14 15:00:03 -07:00
Earle F. Philhower, III
d5e844b2bd
Panic on stack protector crash instead of exit (#2955)
Newlib has a stack protector fail handler which write(2)s a
message to STDERR which doesn't work here.  Override with a
call to panic().

Tell GCC to protect all functions for stack protection instead of
ones that it heuristically decides need protection.  Slower but
safer, and only when stack protection is enabled.
2025-05-14 07:38:25 -07:00
Ricardo Marques
de7f1a7e83
Fixed generic PIN_LED and SPI0 Pin assignment on WIZnet W55RP20-EVB-Pico. (#2956)
* Update pins_arduino.h

Changed PIN_LED to match USERLED on PCB. Removed unavailable pins from SPI0 connection.

* Update pins_arduino.h

Uncommented SPI0 pins and reassigned them over GPIO 2,3,4,5.
2025-05-13 17:18:04 -07:00
jeroenzwan
19b14898ea
Add target platform for compiling (#2939)
* add target platform for compiling

* added target specification for riscv

---------

Co-authored-by: jeroen <jeroen.zwanepol@tective.nl>
2025-05-09 07:57:50 -07:00
Jan-Philipp
304e9ce2d1
Make Arduino IDE ask for OTA password (#2938) 2025-05-07 09:03:29 -07:00
Earle F. Philhower, III
2bc00bef57
Fix ADCInput masking (#2937)
Fixes #2935

The PICO_2350A patch flipped the logic of the ADCInput bitmask calcs
causing the 2040 and 2350A to use bitmasks for the 2350B (i.e. wrong
GPIOs) and vice versa.
2025-05-05 09:16:29 -07:00
Earle F. Philhower, III
47c2cd2b0b Update version 2025-05-02 08:59:52 -07:00
Ahmed ARIF
59614a99c8
optimize parity calculations in SerialPIO (#2932) (#2933)
use bit manipulation technique from http://www.graphics.stanford.edu/~seander/bithacks.html#ParityParallel for parity calculation

Co-authored-by: Ahmed ARIF <contact@eotics.com>
2025-05-01 14:06:52 -07:00
Earle F. Philhower, III
227d71ed18
Fix RP2350B SPI RX pin list (#2931)
Fixes #2930
2025-04-29 16:29:45 -07:00
Earle F. Philhower, III
5e74bbbbb2
Rewrite SerialPIO receive path, ensure proper edge (#2929)
The SerialPIO(SoftwareSerial) receive path was convoluted and required
a lot of work on the host to get the actual data out.  It also wasn't
always sampling on the proper edge leading to errors whenever clocks
or hold times shifted slightly.

Rewrite the SerialPIO RX path to explicitily wait for start bit,
pause 1/2 bit time, then idle for a full bit time for all bits.
Takes more PIO instruction memory but works flawlessly even with
mismatched clocks.

Tested with a loopback from HW UART to SW UART with a 5% clock
mismatch @ 19200 baud without reception errors, whereas the
original code would fail with less than a 0.5% variation.

Fixes #2928

````

SoftwareSerial s(15, -1);
void setup() {
  Serial1.setTX(0);
  Serial1.begin(19200 + 1920/2, SERIAL_8N1);
  s.begin(19200, SERIAL_8N1);
}

void loop() {
  Serial.println("---");
  Serial1.write("Had we but world enough and time", 32);
  uint32_t now = millis();
  while (millis() - now < 500) {
    while (s.available()) {
      auto c = s.read();
      Serial.printf("%02x '%c'\n", c, c);
    }
  }
}
````
2025-04-29 13:39:34 -07:00
Earle F. Philhower, III
8d58a9207f
Update LittleFS and Adafruit USB libraries (#2919)
Only very minor changes to the submodules were noted.  Should not have
any effect on this core.
2025-04-18 18:00:56 -07:00
Earle F. Philhower, III
bc5b2c24ff
Fix rp2040.getCycleCount() from core1 (#2915)
Fixes #2914

There are 2 systick units, one per core.  Set up and start core1's
systick unit and track each core's epoch separately.

Document a method of preserving 100% user-only code on core1
and add a core1_disable_systick boolean flag that works like the
separate stack one.
2025-04-18 09:16:36 -07:00
Wai Weng
40b9d5b07e
Add pin definitions for I2C1 on Cytron IRIV (#2916)
Co-authored-by: Kong Wai Weng <waiweng@cytron.io>
2025-04-18 08:59:23 -07:00
Earle F. Philhower, III
07ea22d877
Generate PWMAudio pacer frequencies for 176/276MHz (#2913)
Overclock settings changed, need to update the precalculated pacer
fractions for PWMAudio.
2025-04-17 08:21:14 -07:00
Earle F. Philhower, III
253e946dcb
Update tools README.md 2025-04-17 07:04:26 -07:00
Earle F. Philhower, III
60d28d6c92
Add PIO.h header verification to CI (#2911)
* Add PIO.h header verification to CI

Ensure all PIO .pio.h headers match the .pio sources in the tree

* Install all tools for Style check

* Clean up mismatched PIO headers

No functional changes, but the PDM pdm.pio file did not init a data pin
while the pdm.pio.h (the one actually used in the core) did.  Correct to
match.

* No need for submodules in the style check
2025-04-16 14:56:31 -07:00
Earle F. Philhower, III
e8bd9daa82 Update version 2025-04-16 13:22:14 -07:00
Earle F. Philhower, III
9747990c16
Fix remaining PICO_RP2350B reference (#2910)
Minor fix to #2898
2025-04-16 08:28:53 -07:00
Liz
299f8e28f2
Merge branch 'earlephilhower:master' into master 2025-04-15 13:08:44 -04:00
Liz
6e48cffd62
add adafruit fruit jam and feather rp2350 adalogger (#2907)
* add new RP2350 Metro!

* lol

* fruity!

* Define HSTX pins on Adafruit boards with HSTX or DVI connectors

* fixname

* update rp2350b for fruit jam

* add rp2350 adalogger (#9)

adding rp2350 adalogger

* update psram in makeboards

* Update adafruit_fruitjam.json

---------

Co-authored-by: ladyada <limor@ladyada.net>
Co-authored-by: Jeff Epler <jepler@gmail.com>
2025-04-15 10:03:21 -07:00
Liz
123ae0ff8b Update adafruit_fruitjam.json 2025-04-15 12:44:51 -04:00
Liz
0420446529 update psram in makeboards 2025-04-15 12:22:11 -04:00
Limor "Ladyada" Fried
88c717d420
Merge pull request #10 from adafruit/rp2350_adalogger
adding rp2350 adalogger
2025-04-15 11:27:54 -04:00
Earle F. Philhower, III
9ac7892bd6
Update W55RP20 example for proper CS pin (#2906)
Fixes #2903
2025-04-15 08:17:47 -07:00
Liz
407bdc93f4
add rp2350 adalogger (#9)
adding rp2350 adalogger
2025-04-15 11:08:13 -04:00
Liz
91f8872a63 update rp2350b for fruit jam 2025-04-15 10:54:57 -04:00
Liz
d938633048
Merge branch 'earlephilhower:master' into rp2350_adalogger 2025-04-15 10:49:30 -04:00
Earle F. Philhower, III
073094fe0e
Update adc.rst for RP2350B 2025-04-15 07:39:17 -07:00
Earle F. Philhower, III
2a46bcfc0f
Update contrib.rst
Update the PICO_RP2350A macro usage
2025-04-14 11:41:20 -07:00
Earle F. Philhower, III
e05dd50d62
Convert to SDK RP2350A/B determination (#2898)
* Convert to SDK RP2350A/B determination

Fixes #2878

The SDK uses `defined(PICO_RP2350) && !PICO_RP2350A` to indicate an RP2350B
chip, not the define PICO_RP2350B.

Match the SDK's usage by converting from `defined(PICO_RP2350B)` to
`defined(PICO_RP2350) && !PICO_RP2350A` and update the chip variants
accordingly.

* Need to explicitly override PICO_RP2350A for all

The *SDK*'s board definition file hardcodes a PICO_RP2350A value for
all boards, but we use the same board file for both A and B variants.
Override the SDK board definition in the variant definition file.

* Generic RP2350 needs 2-stage PICO_RP2350A setting

Also ensure SDK board definition included before pins_arduino.h for
clearing up redefinition errors.

* Factor out undef PICO_RP2350A

* Update Arduino.h
2025-04-08 16:02:54 -07:00
Earle F. Philhower, III
54885d79e0
Add explicit using arduino::IPAddress to headers (#2894)
Fix issue with WiFiNINA includes.  Fixes #2887
2025-04-07 10:17:03 -07:00
ladyada
cc96a13bed fixname 2025-03-20 13:19:38 -04:00
Limor "Ladyada" Fried
e24489b69d
Merge branch 'earlephilhower:master' into master 2025-03-20 13:16:16 -04:00