Skip to content

Commit be67067

Browse files
committed
Merge remote-tracking branch 'adafruit/main' into translate_header
2 parents 8ccb955 + 5c97689 commit be67067

File tree

12 files changed

+139
-13
lines changed

12 files changed

+139
-13
lines changed

conf.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,25 @@
3333

3434
tools_describe = str(pathlib.Path(__file__).parent / "tools/describe")
3535

36+
# Monkeypatch autoapi
37+
def _format_args(args_info, include_annotations=True, ignore_self=None):
38+
result = []
39+
40+
for i, (prefix, name, annotation, default) in enumerate(args_info):
41+
if i == 0 and ignore_self is not None and name == ignore_self:
42+
continue
43+
formatted = "{}{}{}{}".format(
44+
prefix or "",
45+
name or "",
46+
": {}".format(annotation) if annotation and include_annotations else "",
47+
(" = {}" if annotation else "={}").format(default) if default else "",
48+
)
49+
result.append(formatted)
50+
return ", ".join(result)
51+
52+
import autoapi.mappers.python.objects as objects
53+
objects._format_args = _format_args
54+
3655
# If extensions (or modules to document with autodoc) are in another directory,
3756
# add these directories to sys.path here. If the directory is relative to the
3857
# documentation root, use os.path.abspath to make it absolute, like shown here.

ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ CIRCUITPY_COUNTIO = 1
1919
CIRCUITPY_BUSDEVICE = 1
2020

2121
# Include these Python libraries in firmware.
22-
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_CircuitPlayground
22+
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_CircuitPlayground/frozen_cpx
2323
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_HID
2424
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_LIS3DH
2525
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel

ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ CIRCUITPY_KEYPAD = 0
1818
CIRCUITPY_ONEWIREIO = 0
1919

2020
# Include these Python libraries in firmware.
21-
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_CircuitPlayground
21+
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_CircuitPlayground/frozen_cpx
2222
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Crickit
2323
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_LIS3DH
2424
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Motor

ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ CIRCUITPY_BITMAPTOOLS = 0
2424
CIRCUITPY_PARALLELDISPLAY = 0
2525

2626
# Include these Python libraries in firmware.
27-
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_CircuitPlayground
27+
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_CircuitPlayground/frozen_cpx
2828
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_LIS3DH
2929
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
3030
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Thermistor

ports/espressif/common-hal/wifi/Radio.c

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,35 @@ mp_obj_t common_hal_wifi_radio_get_ipv4_dns(wifi_radio_obj_t *self) {
398398
return common_hal_ipaddress_new_ipv4address(self->dns_info.ip.u_addr.ip4.addr);
399399
}
400400

401+
void common_hal_wifi_radio_set_ipv4_dns(wifi_radio_obj_t *self, mp_obj_t ipv4_dns_addr) {
402+
esp_netif_dns_info_t dns_addr;
403+
ipaddress_ipaddress_to_esp_idf_ip4(ipv4_dns_addr, &dns_addr.ip.u_addr.ip4);
404+
esp_netif_set_dns_info(self->netif, ESP_NETIF_DNS_MAIN, &dns_addr);
405+
}
406+
407+
void common_hal_wifi_radio_start_dhcp_client(wifi_radio_obj_t *self) {
408+
esp_netif_dhcpc_start(self->netif);
409+
}
410+
411+
void common_hal_wifi_radio_stop_dhcp_client(wifi_radio_obj_t *self) {
412+
esp_netif_dhcpc_stop(self->netif);
413+
}
414+
415+
void common_hal_wifi_radio_set_ipv4_address(wifi_radio_obj_t *self, mp_obj_t ipv4, mp_obj_t netmask, mp_obj_t gateway, mp_obj_t ipv4_dns) {
416+
common_hal_wifi_radio_stop_dhcp_client(self); // Must stop DHCP to set a manual address
417+
418+
esp_netif_ip_info_t ip_info;
419+
ipaddress_ipaddress_to_esp_idf_ip4(ipv4, &ip_info.ip);
420+
ipaddress_ipaddress_to_esp_idf_ip4(netmask, &ip_info.netmask);
421+
ipaddress_ipaddress_to_esp_idf_ip4(gateway, &ip_info.gw);
422+
423+
esp_netif_set_ip_info(self->netif, &ip_info);
424+
425+
if (ipv4_dns != MP_OBJ_NULL) {
426+
common_hal_wifi_radio_set_ipv4_dns(self, ipv4_dns);
427+
}
428+
}
429+
401430
mp_int_t common_hal_wifi_radio_ping(wifi_radio_obj_t *self, mp_obj_t ip_address, mp_float_t timeout) {
402431
esp_ping_config_t ping_config = ESP_PING_DEFAULT_CONFIG();
403432
ipaddress_ipaddress_to_esp_idf(ip_address, &ping_config.target_addr);

ports/espressif/common-hal/wifi/__init__.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,16 @@ void ipaddress_ipaddress_to_esp_idf(mp_obj_t ip_address, ip_addr_t *esp_ip_addre
189189
IP_ADDR4(esp_ip_address, bytes[0], bytes[1], bytes[2], bytes[3]);
190190
}
191191

192+
void ipaddress_ipaddress_to_esp_idf_ip4(mp_obj_t ip_address, esp_ip4_addr_t *esp_ip_address) {
193+
if (!mp_obj_is_type(ip_address, &ipaddress_ipv4address_type)) {
194+
mp_raise_ValueError(translate("Only IPv4 addresses supported"));
195+
}
196+
mp_obj_t packed = common_hal_ipaddress_ipv4address_get_packed(ip_address);
197+
size_t len;
198+
const char *bytes = mp_obj_str_get_data(packed, &len);
199+
esp_netif_set_ip4_addr(esp_ip_address, bytes[0], bytes[1], bytes[2], bytes[3]);
200+
}
201+
192202
void common_hal_wifi_gc_collect(void) {
193203
common_hal_wifi_radio_gc_collect(&common_hal_wifi_radio_obj);
194204
}

ports/espressif/common-hal/wifi/__init__.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,11 @@
3030
#include "py/obj.h"
3131

3232
#include "lwip/api.h"
33+
#include "components/esp_wifi/include/esp_wifi.h"
3334

3435
void wifi_reset(void);
3536

3637
void ipaddress_ipaddress_to_esp_idf(mp_obj_t ip_address, ip_addr_t *esp_ip_address);
38+
void ipaddress_ipaddress_to_esp_idf_ip4(mp_obj_t ip_address, esp_ip4_addr_t *esp_ip_address);
3739

3840
#endif // MICROPY_INCLUDED_ESPRESSIF_COMMON_HAL_WIFI___INIT___H

ports/stm/common-hal/busio/SPI.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,10 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self,
206206
spi_clock_enable(1 << (self->sck->periph_index - 1));
207207
reserved_spi[self->sck->periph_index - 1] = true;
208208

209+
// Always start at 250khz which is what SD cards need. They are sensitive to
210+
// SPI bus noise before they are put into SPI mode.
211+
const uint32_t default_baudrate = 250000UL;
212+
209213
self->handle.Instance = SPIx;
210214
self->handle.Init.Mode = SPI_MODE_MASTER;
211215
// Direction change only required for RX-only, see RefMan RM0090:884
@@ -218,16 +222,16 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self,
218222
self->handle.Init.CLKPolarity = SPI_POLARITY_LOW;
219223
self->handle.Init.CLKPhase = SPI_PHASE_1EDGE;
220224
self->handle.Init.NSS = SPI_NSS_SOFT;
221-
self->handle.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_256;
225+
self->handle.Init.BaudRatePrescaler = stm32_baud_to_spi_div(default_baudrate, &self->prescaler, get_busclock(self->handle.Instance));
222226
self->handle.Init.FirstBit = SPI_FIRSTBIT_MSB;
223227
self->handle.Init.TIMode = SPI_TIMODE_DISABLE;
224228
self->handle.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
225229
self->handle.Init.CRCPolynomial = 10;
226230
if (HAL_SPI_Init(&self->handle) != HAL_OK) {
227231
mp_raise_ValueError(translate("SPI init error"));
228232
}
229-
self->baudrate = (get_busclock(SPIx) / 16);
230-
self->prescaler = 16;
233+
self->baudrate = default_baudrate;
234+
// self->prescaler = 16; // Initialised above by stm32_baud_to_spi_div
231235
self->half_duplex = half_duplex;
232236
self->polarity = 0;
233237
self->phase = 0;
@@ -381,7 +385,7 @@ bool common_hal_busio_spi_transfer(busio_spi_obj_t *self,
381385

382386
uint32_t common_hal_busio_spi_get_frequency(busio_spi_obj_t *self) {
383387
// returns actual frequency
384-
uint32_t result = HAL_RCC_GetPCLK2Freq() / self->prescaler;
388+
uint32_t result = get_busclock(self->handle.Instance) / self->prescaler;
385389
return result;
386390
}
387391

py/maketranslationdata.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,8 @@ def est_net_savings(s, occ):
230230
# words[] array.
231231

232232
scores = sorted(
233-
((s, -est_net_savings(s, occ)) for (s, occ) in counter.items()), key=lambda x: x[1]
233+
((s, -est_net_savings(s, occ)) for (s, occ) in counter.items() if occ > 1),
234+
key=lambda x: x[1],
234235
)
235236

236237
# Pick the one with the highest score. The score must be negative.

0 commit comments

Comments
 (0)