EPISODE · Aug 6, 2021 · 2H 12M
Deep Dive w/Scott: More 7.0.0 Fixes
from Adafruit Industries · host Adafruit Industries
Join Scott today as he answers questions, talks about fixing for CircuitPython 7.0.0 and dives deep into system on a chip datasheet diagrams. Scott is sponsored by Adafruit to work on CircuitPython. Support them by purchasing hardware from https://adafruit.com Chat with Scott and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Next week is on Friday. 0:00:00 Hellos 0:02:50 Morpheus240 esp32-s2 board. at this point its more of a copy something else process 0:05:45 housekeeping hello everyone 0:09:09 Does circuitpython run on esp8266 or 32? ( also transition into BLE workflow ) 0:13:10 BLE work team members 0:14:14 Which BLE devices do you expect to support? 0:15:38 What about on OTA (over the air update) devices? 0:17:02 Can the boards you are programming today access the internet? 0:17:36 reddit / AMA - https://www.reddit.com/r/Python/comments/oyrqp0/welcome_to_a_joint_ama_with_some_of_the/ 0:19:00 Would micropython run into GIL like issues? (GIL: Global Interpreter Lock) 0:21:24 go over the MP_STATE_VM stuff and when to use it instead of global variable declaration... the context being your review comment on the atexit PR #5077 - https://github.com/adafruit/circuitpython/pull/5077/files 0:24:20 “what is memory allocation” BSS: (start at zero )/ data: / heap: malloc / realloc , stack: 0:29:15 Fish / OhMyZsh / OhMyFish? 0:30:20 Circuit Python can not defrag 0:31:30 import / long lived packing more densely / generational garbage collection - https://en.wikipedia.org/wiki/Garbage_collection_(computer_science) 0:32:40 reference counting / determining when memory is not used 0:33:35 MP/CP mark and sweep / garbage collection 0:35:40 Does Python have garbage collection? 0:36:50 also look in MP_STATE 0:38:00 ( future desire - look at rust to get memory protection ) - https://en.wikipedia.org/wiki/Rust_(programming_language) 0:39:30 “Python - learn things as you need them” 0:40:15 Globals don’t get “marked” 0:42:25 gc_collect_start 0:45:07 bug from last week PyOCD ( UF2 bootloader broken if greater than 512K) 0:47:00 NRF boot loader issue issue Adafruit_nRF52_Bootloader 213 ( use 0.6.1 ) 0:50:06 binutils update to get bug fixes too ( linker output bogus debug data) 0:52:35 Have you used Wokwi? It's a web based simulator with a really nice gui showing circuits. It's at https://wokwi.com/ 0:54:00 Difference between simulators and ‘real’ hardware devices 0:55:45 Simulators may provide opportunities for automated regression testing 0:57:30 Monico editor ? 0:58:00 Rosie test tool in previous editor + cat on shredder distraction 1:00:30 Can you put a fitbit on your cat and be notified when he has a seizure..? 1:01:55 using scale under the litterbox to weigh the cats 1:05:30 corrupts auto-reload, and other things on Circuit Playground Express 3890 SAMD21 tucks per event Pull #5100 - https://github.com/adafruit/circuitpython/issues/3890 1:12:00 review SAM D21 block diagram - http://ww1.microchip.com/downloads/en/DeviceDoc/SAM_D21_DA1_Family_DataSheet_DS40001882F.pdf 1:16:23 Advanced Microcontroller Bus Architecture - https://en.wikipedia.org/wiki/Advanced_Microcontroller_Bus_Architecture 1:17:20 “need to understand the whole system, not just the CPU” 1:19:50 peripherals 1:20:40 Can RAM in micro controllers be accessed similar to PEEK and POKE in C64 Basic? 1:21:15 memory mapped peripherals DMA - Direct Memory Access 1:23:58 Events / Interrupts / NVIC Nested Vector Interrupt Controller 1:28:05 Can time trigger an interrupt? 1:28:50 Convert events into interrupts 1:29:35 How long does the interrupt take to fire and load into state/what's the resolution of it? 1:31:50 Generators vs Users creating and consuming events or interrupts. 1:33:00 Event Detected - convert an event into an interrupt ( PR #5100 ) 1:34:16 PR 5100 code files 1:38:20 decoding interrupt event 1:40:05 NTP to set a RTC and then compared the RTC to NTP 24 hours later and found out the RTC was gaining 7 secs/day 1:41:00 The volatile keyword 1:42:53 RP2040 block diagram - https://datasheets.raspberrypi.org/rp2040/rp2040-datasheet.pdf 1:49:40 SAM D51 block diagram - https://www.microchip.com/content/dam/mchp/documents/MCU32/ProductDocuments/DataSheets/SAM_D5x_E5x_Family_Data_Sheet_DS60001507G.pdf 1:54:25 Can you use DMA between Neopixels and i2c on any CP targets ? 1:55:35 NeoPixels can have their data ‘exploded’ to improve timing 1:56:45 Are these Micro Controllers optimized for bus length between CPU and RAM? Or are there other items that have a higher priority for bus speed? 1:57:33 SAM D Memory mapping overview 1:58:48 Cypress (now Infineon) PSoC chips 1:59:24 NXP Simplified Block Diagram - https://www.nxp.com/docs/en/data-sheet/IMXRT1010CEC.pdf 2:00:50 Cortex-M7 Platform diagram ( from reference manual ) 2:03:30 STM32H7B0xB block diagram - https://www.st.com/resource/en/datasheet/stm32h7b0ib.pdf 2:10:45 wrap up 2:12:45 Have a great weekend - c u next friday
What this episode covers
Join Scott today as he answers questions, talks about fixing for CircuitPython 7.0.0 and dives deep into system on a chip datasheet diagrams. Scott is sponsored by Adafruit to work on CircuitPython. Support them by purchasing hardware from https://adafruit.com Chat with Scott and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Next week is on Friday. 0:00:00 Hellos 0:02:50 Morpheus240 esp32-s2 board. at this point its more of a copy something else process 0:05:45 housekeeping hello everyone 0:09:09 Does circuitpython run on esp8266 or 32? ( also transition into BLE workflow ) 0:13:10 BLE work team members 0:14:14 Which BLE devices do you expect to support? 0:15:38 What about on OTA (over the air update) devices? 0:17:02 Can the boards you are programming today access the internet? 0:17:36 reddit / AMA - https://www.reddit.com/r/Python/comments/oyrqp0/welcome_to_a_joint_ama_with_some_of_the/ 0:19:00 Would micropython run into GIL like issues? (GIL: Global Interpreter Lock) 0:21:24 go over the MP_STATE_VM stuff and when to use it instead of global variable declaration... the context being your review comment on the atexit PR #5077 - https://github.com/adafruit/circuitpython/pull/5077/files 0:24:20 “what is memory allocation” BSS: (start at zero )/ data: / heap: malloc / realloc , stack: 0:29:15 Fish / OhMyZsh / OhMyFish? 0:30:20 Circuit Python can not defrag 0:31:30 import / long lived packing more densely / generational garbage collection - https://en.wikipedia.org/wiki/Garbage_collection_(computer_science) 0:32:40 reference counting / determining when memory is not used 0:33:35 MP/CP mark and sweep / garbage collection 0:35:40 Does Python have garbage collection? 0:36:50 also look in MP_STATE 0:38:00 ( future desire - look at rust to get memory protection ) - https://en.wikipedia.org/wiki/Rust_(programming_language) 0:39:30 “Python - learn things as you need them” 0:40:15 Globals don’t get “marked” 0:42:25 gc_collect_start 0:45:07 bug from last week PyOCD ( UF2 bootloader broken if greater than 512K) 0:47:00 NRF boot loader issue issue Adafruit_nRF52_Bootloader 213 ( use 0.6.1 ) 0:50:06 binutils update to get bug fixes too ( linker output bogus debug data) 0:52:35 Have you used Wokwi? It's a web based simulator with a really nice gui showing circuits. It's at https://wokwi.com/ 0:54:00 Difference between simulators and ‘real’ hardware devices 0:55:45 Simulators may provide opportunities for automated regression testing 0:57:30 Monico editor ? 0:58:00 Rosie test tool in previous editor + cat on shredder distraction 1:00:30 Can you put a fitbit on your cat and be notified when he has a seizure..? 1:01:55 using scale under the litterbox to weigh the cats 1:05:30 corrupts auto-reload, and other things on Circuit Playground Express 3890 SAMD21 tucks per event Pull #5100 - https://github.com/adafruit/circuitpython/issues/3890 1:12:00 review SAM D21 block diagram - http://ww1.microchip.com/downloads/en/DeviceDoc/SAM_D21_DA1_Family_DataSheet_DS40001882F.pdf 1:16:23 Advanced Microcontroller Bus Architecture - https://en.wikipedia.org/wiki/Advanced_Microcontroller_Bus_Architecture 1:17:20 “need to understand the whole system, not just the CPU” 1:19:50 peripherals 1:20:40 Can RAM in micro controllers be accessed similar to PEEK and POKE in C64 Basic? 1:21:15 memory mapped peripherals DMA - Direct Memory Access 1:23:58 Events / Interrupts / NVIC Nested Vector Interrupt Controller 1:28:05 Can time trigger an interrupt? 1:28:50 Convert events into interrupts 1:29:35 How long does the interrupt take to fire and load into state/what's the resolution of it? 1:31:50 Generators vs Users creating and consuming events or interrupts. 1:33:00 Event Detected - convert an event into an interrupt ( PR #5100 ) 1:34:16 PR 5100 code files 1:38:20 decoding interrupt event 1:40:05 NTP to set a RTC and then compared the RTC to NTP 24 hours later and found out the RTC was gaining 7 secs/day 1:41:00 The volatile keyword 1:42:53 RP2040 block diagram - https://datasheets.raspberrypi.org/rp2040/rp2040-datasheet.pdf 1:49:40 SAM D51 block diagram - https://www.microchip.com/content/dam/mchp/documents/MCU32/ProductDocuments/DataSheets/SAM_D5x_E5x_Family_Data_Sheet_DS60001507G.pdf 1:54:25 Can you use DMA between Neopixels and i2c on any CP targets ? 1:55:35 NeoPixels can have their data ‘exploded’ to improve timing 1:56:45 Are these Micro Controllers optimized for bus length between CPU and RAM? Or are there other items that have a higher priority for bus speed? 1:57:33 SAM D Memory mapping overview 1:58:48 Cypress (now Infineon) PSoC chips 1:59:24 NXP Simplified Block Diagram - https://www.nxp.com/docs/en/data-sheet/IMXRT1010CEC.pdf 2:00:50 Cortex-M7 Platform diagram ( from reference manual ) 2:03:30 STM32H7B0xB block diagram - https://www.st.com/resource/en/datasheet/stm32h7b0ib.pdf 2:10:45 wrap up 2:12:45 Have a great weekend - c u next friday
NOW PLAYING
Deep Dive w/Scott: More 7.0.0 Fixes
No transcript for this episode yet
Similar Episodes
Apr 21, 2026 ·73m
Apr 18, 2026 ·14m
Apr 18, 2026 ·95m
Apr 15, 2026 ·55m
Apr 13, 2026 ·68m
Apr 11, 2026 ·59m