POPULARITY
Join Alec and Kattni for a quick introduction to the CircuitPython Development Sprint. It's a Q&A covering questions that folks interested in joining the sprints might have. Join on the Adafruit Discord by going to adafru.it/discord to sign up. The sprint is being held in the #circuitpython-dev channel.
This week we talk about CircuitPython with Adafruit's Kattni Rembor and Scott Shawcroft. The suggested first board is CircuitPlayground Express with LEDs, sensors, and buttons. CircuitPython is also available for many other boards including the BLE Feather (NRF52832). For a basic introduction take a look at What is CircuitPython and see some example scripts. To dig a little deeper, check out the many resources in Awesome CircuitPython. The whole thing is open source so you can see their code. If you are thinking about contributing (or just want some fun chats), get in touch on the CircuitPython channel of the Adafruit Discord server: adafru.it/discord Many of the language's design choices favor ease-of-use over ready-for-production. Imagine teaching an intro to programming class without worrying what computers will be used or how to get compilers installed on everyone's machines before time runs out. One final note: Kattni did a project that gave us the show title: Piano in the Key of Lime. After we finished recording, Chris asked her why she didn't add a kiwi fruit to her mix… Kattni explained she had limes and they were small. Chris only wanted a different fruit so she could rename it Piano in the Kiwi of Lime. It is always sad when we stop recording too early.
00:40 Kattni's journey, originally told at PyOhio 2019: https://www.youtube.com/watch?v=-bBHXimlfPQ and first project: https://learn.adafruit.com/circuit-playground-express-piano-in-the-key-of-lime) 6:00 Adafruit Discord: http://adafru.it/discord 7:45 Mentoring 9:55 Community discussion 12:50 CircuitPython 2022 goals 16:00 CircuitPython tagline: Code + Community = CircuitPython 17:50 Learn Guides 22:40 Turn the Tables 23:40 Which microcontroller to start your next project?
Join Scott as he answers questions and continues work on the USB Host API. Support Adafruit by purchasing hardware from https://adafruit.com Chat with me and a lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific. Typically goes for two hours or more. Questions are welcome. Next week is on Friday and is the second to last deep dive from me for a while. All notes are available on GitHub with links into the videos. Thanks to @askpatrickw and @dcd for making and maintaining the notes. https://github.com/adafruit/deep-dive-notes/ 0:00 Getting started and hellos 1:15 Cats in view (both Vin and Spook ) 3:10 Housekeeping 4:36 Discord adafru.it/discord 5:36 Next week also on Friday, then 2 more before 7:20 Questions 8:30 foamyguy's plans for deep dives 10:37 USB Host / BLE stuff checked in / CP 7.2 release plan 12:00 Desktop / CP issues resolved on github 13:12 Click in ESP speaker 13:31 LED brightness crash issue/pr 6054 15:12 Dan's fix for CP deep sleep / USB enumeration / 5 second delay concern (in 7.2) 18:00 Pressing ‘any' key fixed on espressive 18:25 Is there a way we can hook into that? I have VBUS sense on my S3 boards, so I can bypass that is not VBUS is present. ( see pr 6051) 19:23 What about if I want BLE after sleeping? 20:05 for the nrf52, there is a register you can check to see if VUSB is on… 20:37 improved use of git describe https://git-scm.com/docs/git-describe 21:26 the new performance stuff from micropython (fast path & lookup cache) gives a 19% performance boost in the most contrived example - compared with 7.2.0-alpha.2, a loop that just accesses a member of an object -- more deets in my latest comment on the 1.18 merge PR. 22:20 1.19 will lead to CP 8.0 22:40 6038 merge pr - should be coming shortly 23:25 7.2 will be stable in a week or two 25:15 USB OTG ( on the go ) often available if ‘native usb' 26:25 nRF52840 USB 2.0 / product brief 29:14 pio asm - format from c, converted to 30:57 USB ‘device' explicitly called out in the nrf52840 datasheet - not a host 31:32 checking nrf 5340 32:02 S3 can to OTG 35:55 USB Host 36:50 Tiny USB also supported by Adafruit 37:25 https://github.com/sdima1357/esp32_usb_soft_host 37:40 Helper library support for Dual USB - pico PIO USB Repo https://github.com/sekigon-gonnoc/Pico-PIO-USB/ 38:55 USB stack licensing - triggered switch to Tiny USB ( tightly coupled with CP ok here :-) ) 41:15 Once we have USB host - what does it look like in CP (pyton API side ) 42:10 i.MX RT1060 teensy 4 (evk ) 43:00 wish the dev board had better labels 44:25 https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/i-mx-rt1060-evaluation-kit:MIMXRT1060-EVK 45:00 2 usb port with embedded physical interface high speed 47:00 FPGA topics - cortex a53 and a72 - what about a9 / next to xilinx 49:00 https://www.xilinx.com/products/silicon-devices/soc/zynq-7000.html 50:53 github SymbiFlow Project X-Ray 52:05 How does the Intel adoption of Risc-V afect the FPGA progression? 53:32 fabless / efabless.com open shuttle program 55:00 Open source fpga with dual core A9 with 2 USB blocks - like imx 57:47 wish pc companies would open up all their older components to allow hardware changes without major hacks and overhauls 58:00 AMD's acquisition of Xilinx may have some effect on FPGAs as well. 59:50 Digikey detour 410-351-10 isb-otg Zybo Z7 Board Reference Manualhttps://www.digikey.com/en/products/detail/digilent-inc/410-351-10/7652757 1:03:45 https://gowinsemi.com/en/support/devkits_detail/39 The GOWIN FPGA in the board has a USB PHY. 1:05:25 hoping I can use the ST dualsynopsys-usb-otg with CP host and device 1:05:50 Dialog https://www.dialog-semiconductor.com/products/greenpak/low-power-low-cost-forgefpga 1:06:15 support for hosts in tiny usb - see “only.txt” in tinyusb github 1:15:00 USB protocol https://www.youtube.com/watch?v=wdgULBpRoXk&ab_channel=BenEater 1:16:18 usb32-s3 tech ref manual 1:17:32 Would it be smart to implement Python classes that represent HID devices at the high level? 1:18:12 usb 2.0 bus topology 1:30:51 … gap - usb host continued 1:33:50 USB host for automation of CP testing 1:39:55 usb host endpoint in and out ( and buffers ) and bidirectional control 1:42:15 ellisys and beagle tools mentioned 1:43:15 rp2040 with wifi for $15 - rp2040 for pio - S3 if you don't need PIO 1:45:58 HID Host over BLE? wait - my brain hurts - you mean connecting a BLE keyboard to a circuit python BLE board? 1:55:40 async usb host versions? 1:56:45 examples / useful for testing / import usb_host 2:00:00 https://www.wacom.com/en-us/products/pen-tablets/wacom-intuos 2:00:42 2 weeks left with Scott 2:01:35 CP dev channel on discord 2:02:15 https://github.com/adafruit/deep-dive-notes 2:02:41 pet the cats - have a great weekend 2:03:19 end of stream
Join Scott as he continues bluetooth low energy (BLE) GATT client code on the ESP32-S3. Chat on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific. Next week is on Friday. All notes are available on GitHub with links into the videos. Thanks to @askpatrickw and @dcd for making and maintaining the notes. https://github.com/adafruit/deep-dive-notes/ 0:00 Cat cam in main window 1:00 hello 3:50 introduction and housekeeping 4:40 introduce Vin and Spook 6:55 linkedin and restream streams as well 7:20 https://github.com/adafruit/deep-dive-notes 8:29 did you ever cover how the compiler works in CP on one of these deep dives? 10:40 Did you see that Zephyr now has support for RP2040? 11:03 Linker was for the actual linking of the CP core (and just general knowledge). The compiler for more how the internal Python compiler works 12:02 Smokey Brights / https://www.smokeybrights.com/ 12:50 https://docs.micropython.org/en/latest/develop/compiler.html 13:40 # 5881Thank you for an example how to use DeviceInfoService for connections 15:55 continue CP 2022 discussion 18:22 Axel - 19:00 crashes that happen after several days are very hard to debug 19:13 Does Adafruit have any plans to support a 5 GHz wifi chip? Espressif c6 20:25 kattni's #circuitpython2022 22:30 https://blog.adafruit.com/2022/02/01/the-circuitpython-community-a-round-up-and-a-look-forward-to-2022/ 28:15 “it takes a village” 32:45 thank you Kattni for reminding us that CircuitPython requires its community 33:05 PlatformIO? 33:40 How does the CP2022 resolve? Are you going to publish a manifesto or something? 37:06 Does anyone know about a driver for Windows to make a Bluetooth COM-Port to the adafruit_ble.services.nordic UARTService accessible 37:50 Kattni will be my first guest on Paul Cutler's CP podcast, too, which will give a chance for people to hear her March 1st - 39:35 BlueTooth - review last week / broadcast and observer roles 43:28 next step - initiating the connection 45:04 BatteryService 46:45 Declarative form of python used 47:22 BLE - GAP advertising 47:39 GATT - use to build this library upon 48:35 github BLE example uart examples (client ) 50:55 Can you point me to a CP joystick hid example that uses analog inputs for pi pico? 57:00 what makes up a service 59:30 where is serial_number? 1:00:20 Bluetooth.com specifications and more BLE service api and espressif/common-hal/bleio/Connetion.c 1:09:10 Nimble callbacks *_cb / FreeRTOS 1:12:35 Discover by UUID will be faster 1:13:05 Discover all characteristics 1:15:35 nRF 52840 with BLE 1:16:09 esp s3 board - client board 1:17:14 nimble screen - demo 1:18:35 and example code - Unhandled connection event 12 1:19:20 uart.read(4) is not reading - how does it work… 1:20:00 NUX Nordic Uart Service 1:21:08 passing up the lower level services 1:22:20 StreamIn and StreamOut 1:24:35 Characteristics_buffer - native 1:28:00 This is a deep dive ( notify vs indicate ) 1:28:41 two ways to write ( write and write without response ) 1:30:30 then there is the security stuff 1:32:10 how do we go about building circuitpython uf2 files for missing boards? https://learn.adafruit.com/building-circuitpython and https://learn.adafruit.com/how-to-add-a-new-board-to-circuitpython 1:37:35 “there's no software engineering problem that can't be solved with another layer of abstraction.” - ( in the right place ) 1:39:02 implementation for nRF version 1:39:48 *GATTS - server, and *GATTC client 1:40:39 adding event handler in constructor, need to add to espressif version also 1:42:28 need an event handler system 1:42:40 this is all BLE workflow stuff you're working on now right, not just "standard BLE" support for S3? 1:45:10 HVX is short for “Handle Value Notification or Indication” 1:47:30 CP joystick hid example that uses analog inputs for pi pico? https://learn.adafruit.com/customizing-usb-devices-in-circuitpython/hid-devices and https://learn.adafruit.com/getting-started-with-raspberry-pi-pico-circuitpython/potentiometer-and-pwm-led and of course - reach out on discord https://adafru.it/discord 1:50:15 again - take the the nRF code, and change it for the espressif version 1:52:40 we need two callbacks here for espressif and review ble_gap.h 1:56:12 could be more complicated due to non-consecutive buffers 1:57:22 Has there been any discussion of doing BLE Mesh support 1:59:06 Need to figure out how to split apart the om buffer os_mbuf 2:01:44 "Apache Mynewt offers the world's first fully open-source Bluetooth Low Energy (BLE) or Bluetooth Smart stack fully compliant with Bluetooth 5 specifications with support for Bluetooth Mesh. It is called NimBLE." https://mynewt.apache.org/latest/network/index.html# 2:02:00 Check out the git repos 2:03:03 circuit-python dev channel 2:03:59 Next week on Friday 2:04:19 Pet the cat 2:05:02 have a great weekend
Join Scott as he wraps up #CircuitPython2022 and then talks all about BLE on the ESP32-S3. Support Adafruit by purchasing hardware from https://adafruit.com Chat with folks on the Adafruit Discord at https://adafru.it/discord. All notes are available on GitHub with links into the videos. Thanks to @askpatrickw and @dcd for making and maintaining the notes. 0:00 Getting Started 3:30 Hello/welcome'/ housekeeping 6:00 python to navigate a bad router web interface (using the module "mechanize") to "auto-reboot it" via command line 6:30 AMD 5950X - compile code in the blink of an eye, 7:25 Cat Cam - Spook in the window 8:11 Where we left off - CP 2022 10:21 FoamyGuy 2022 blog 12:09 Android App mention - Glider for iOS - starting FileGlider for android! 12:51 Out during March - FoamyGuy taking the slot tentatively 13:55 KeithTheEE - Projects / home automation / time, datetime, and RTC, multicore JIT, scientific and ulab 16:35 when will the floppy disk support be finished for c.p? 17:14 Floppyio draft pull request pr 5852 18:30 https://numba.pydata.org/ 18:55 Is there a way to get the BLE datetime in Circuit Python / BLE current time services 20:40 deshipu -PWM SAMD bug 22:41 cool watch project 23:20 improvements to automated testing and regression is important 24:50 mdroberts1243 - background support for communication 27:13 Molecularist - wish for more audio in support / Teensy Audo Library ? 31:19 https://learn.adafruit.com/building-circuitpython 31:43 book recommendations? 32:31 learn guide - https://learn.adafruit.com/choose-your-circuitpython-board 33:02 Tammy's CP 2022 thoughts / Dependency Managment tools / Twitch https://twitch.tv/tammymakesthings 35:42 Design a CP board / KiCad 6 looks good 36:09 Show and Tell on Wednesday 36:58 Cortex microcontroller books - ARM Cortex M3 and M4 reference 38:00 USB complete 39:40 Monday next week ( last day of the month deadline for CP 2022 thoughts ) 40: 20 Phils Lab has a Kicad tutorial on udemy 41:10 Will ampy be supported for ESP32S3 workflow? 42:40 for nrf52840, with few exceptions (crystal, reset, SWD and ADC) any GPIO can do anything. 45:19 File transfer over I2C? 45:40 good book on ESP32C3 ? 45:51 audio code tour github 53:05 switch to github code search ( cs.github.com ) repo adafruit/circutpyton audio_dma_setup_playback 55:03 ESP32 by Erik Bartmann? 55:42 Feather Kicad parts 57:05 github pull requests is:pr author:tannewt pr 5927 58:42 BLE scanning working 59:33 Server support ( after connection ) 1:00:43 https://punchthrough.com/how-gap-and-gatt-work/ 1:02:40 Broadcastnet learn guide ( Bluetooth LE Sensor Nodes to Raspberry Pi WiFi Bridge ) 1:04:34 BLE keyboards Q: split keyboard 1:06:33 BTF-LIGHTING WS2812B 1:07:03 ESP32 can do BLE - 4.0 - not extended advertising 1:08:14 Apple AirTags 1:09:50 can do extended data advertising - 1:10:20 BroadcastNet 1:12:40 code.py (nimble) github Adafruit_CircuitPython_BLE_BroadcastNet 1:14:40 Deep Sleep wakeup - always on for 5 seconds ( issue filed ) 1:15:30 Download fresh bundle - extract *blinka_bridge.py copy to Circuitpy drive 1:18:00 iPhone model with Ultra Wideband 1:18:55 rename code.py, and install new code.py workflow 1:19:45 being careful with secrets file 1:20:34 requests vs adafruit_requests as requests 1:21:03 SQLite database on Circuit Python hardware directly? // look in micropython // not in CP yet 1:23:30 S3 mini - build appropriate binary for PS-RAM less version 1:30:57 install libraries on other CP 1:31:23 - “NotImplementedError” - cpu temperature 1:32:30 incrementing sequences numbers to detect missing data 1:32:50 found it - but it crashed… 1:35:49 look at CPU temperature code 1:36:17 maybe the S3 can't read the CPU temperature 1:37:20 visit esp32.com topics -looks like the IDF doesn't support cpu-temperature yet https://github.com/espressif/esp-idf/blob/master/docs/en/api-reference/peripherals/temp_sensor.rst 1:40:28 turn on BLE debugging 1:41:12 unsupported scan event 1:43:05 timeout for the scan isn't defined? 1:43:31 look in shared bindings for timeout 1:44:44 if flashing doesn't work - check serial 1:45:25 Neopixel problem in discord 1:46:49 2 scans completed “Scan done” vs. “scan done” / scan timeout 0 1:48:18 Nimble API code 0 means use stack default timeout 1:49:25 duration_ms “forever” - int32max 1:54:35 wrap it with a while loop so in never exits 1:55:40 safe mode - what happened ? 1:56:22 How do I figure out what devices can listen for these advertisements? What version of bl do they need to have? 1:57:16 assertions has to do with printing out exception exception 1:57:59 check nimble error - recently added check_nimble_error / CHECK_NIMBLE_ERROR 1:59:05 see a lot of labs using 1:59:25 use nrfconnect on my phone 1:59:53 assertion may be a separate error - would be great to see a backtrace! 2:00:30 calling it / wrap up 2:01:30 join discord 2:02:45 Cat Cam 2:03:35 end of stream
Join Scott as he recaps other folks' #CircuitPython2022, discusses ongoing ESP32-S3 work and answers questions folks have. Support Adafruit by purchasing hardware from https://adafruit.com Chat on the Adafruit Discord at https://adafru.it/discord. All notes are available on GitHub with links into the videos. Thanks to @askpatrickw and @dcd for making and maintaining the notes: https://github.com/adafruit/deep-dive-notes/ 0:00 Getting Started 1:00 hellos to all 3:00 cat cam 3:40 Hello/housekeeping 7:00 github notes https://github.com/adafruit/deep-dive-notes/ archive 9:09 CP 2022 - send emails - get blogged 10:07 Kevin - display io 11:25 Q: when debugging with print statements, is there a way to include the statement line number in the print string? 11:45 Question: does circuit python have the ability yet to play simultaneous audio? E.g. via 2 wav files or foreground / background. Maybe through mixer 12:58 Desktop - github - why is issue 5881 is "longterm"? https://github.com/adafruit/circuitpython/issues/5881 (BLE ) 14:45 github BLE Adafruit_CircuitPython_BLE 17:25 desired: want to disconnect the undesired centrals! / examine the source code 19:30 Various issues involved - connection central vs. peripheral 20:55 github Adafruit_CircuitPython_BLE issues / look into device info service 22:30 back to the 2 wave files 23:53 Q:working with the analog in features on a QT pi 2040 and when I tied the pin I was reading from to ground on the board it was giving me a value other than zero, around 160. Is this normal? 24:45 Q: built latest CPY for S3 - doesn't boot on any of my S3 boards. Known issue? copy firmware.uf2 over, seems ok, re-starts, never mounts. No error on UART0 output. 25:48 back to CP 2022 - graphical widgets 28:22 unpythonic.net 31:05 github gist / broadcom / midi 32:09 forums / 33:00 blog comment - 33:34 BlueMicro / skip forward to CircuitPython 2022 / seesaw / i2c peripherals / keyboards / very deep sleep 36:00 - RISC-V vs. ARM Core… 36:45 Awesome CircuitPython called Popular Projects Enabled by CircuitPython 37:44 forums / overclocking / platform knowledge 39:00 SPI peripheral 39:25 forums / CP.org login / my adafruit page ? 40:00 intuitive flash file system / handle secrets storage 40:53 limited multicore access 41:20 Q: if any of your viewers could please, please, take up i2c peripheral support for the rp2040 I would be grateful! 41:57 I2C peripheral thoughts - copy API 42:55 integrate learn guides with what user purchased 44:00 Unified event system 44:33 some comments on youtube re: CP 2022 45:20 github gist 46:50 Lego collaboration? 47:35 Python threading 48:20 considerations when setting priority 48:53 adafruit blog 50:30 Multicore 52:07 ulab extension 54:30 new CP podcast coming 55:20 I played with the Micropython multicore a few months ago and it wasn't stable 55:39 dafruit_requests and adafruit_minimqtt would be nice to be threaded / asyncio 56:15 AIOHTTP Async IO for networking 58:30 Does Wippersnapper use mqtt? 59:10 be more sciency 1:00:20 2022 will be different with weeks off from Deep Dives 1:01:49 switching gears to ESP-land 1:02:00 Adding BLE to ESP 1:03:30 How many cores are on the ESP32-S3 ? 1:05:11 tannewt esp_ble branch 1:06:49 beyond compare / sublime merge ( git manipulation tools ) 1:07:35 How much power does the ESP32-S3 use with BLE (no WIFI)? 1:10:10 Are there any examples in CP doing double buffering aka glitch free bucket logging ? Maybe via M2M ? 1:10:35 how well does the nordic power tool work with measuring other processors power usage? 1:12:09 also the JouleScope 1:12:55 any information if there are nRF52840 successors on the horizon with more RAM memory? 1:13:17 NRF 5340 1:15:00 Zepher support not in Circuit Python 1:15:18 rf 9160 1:15:39 dual M-33 1:16:30 https://www.youtube.com/watch?v=JFDiqPHw3Vc&ab_channel=AndreasSpiess 1:16:49 The second core is basically just a built in HCI adapter so if you can get the IPC to work on bare metal, you don't need Zephyr. 1:17:50 Bluedroid and Nimble ( grew up alongside Zepher ) 1:18:25 github nrf5340 apache mynewt nimble 1:20:11 back to esp_ble branch 1:23:20 start with scanning, advertising .. 1:25:08 talk over core issues 1:25:40 Pull requests 1:26:19 pr 5902 1:30:12 pr 5899 1:31:06 pr 5860 1:31:25 pr 5884 1:32:32 pr 5885 - first CP multicore bug fixed by tannewt 1:36:30 pr 3892 ESP NeoPIxel fixes / resetting pins 1:40:20 lower power when pins are ‘pulled' vs. floating 1:42:20 looking for the low power pin state pdf https://www.st.com/resource/en/application_note/an4899-stm32-microcontroller-gpio-configuration-for-hardware-settings-and-lowpower-consumption-stmicroelectronics.pdf 1:45:06 pr 5894 1:45:50 C3_writeable ports/esprif make BOARD=espressif_ep32s3_devkitc_1_n8r2 1:51:30 ESP32-S2-DEVKITC-1 on digikey 2:04:53 wrap up - follow on discord https://github.com/adafruit/deep-dive-notes 2:06:59 pet the cat 2:07:03 Have a great weekend ( timecodes may have drifted by 30 seconds or so )
Join Scott as he discusses #CircuitPython2022, answers questions and chats with ladyada. Support Scott and Adafruit by purchasing hardware from https://adafruit.com Chat with me and a lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific. Next week is on Friday. All notes are available on GitHub with links into the videos. Thanks to @askpatrickw and @dcd for making and maintaining the notes: https://github.com/adafruit/deep-dive-notes/ 0:00 Getting Started 3:44 welcome 4:30 camera product mode - microprocessors running circuitpyton 9:17 CP 2022 planning review / introduction 12:30 First blog https://blog.adafruit.com/tag/circuitpython2022/ 14:10 Plans for time off in April - maybe Aug-Oct 16:50 Initially BLE on ESP work 17:00 https://blog.adafruit.com/2022/01/13/scotts-circuitpython2022-tannewt/ 22:39 difference from Arduino, difference from ESP? 23:50 Reading out display data in hardware testing. 25:00 BitmapSaver library can save a screenshot. Then CPython code running on a PC can use PIL to compare it with "known good" copies of the image. 24:42 updates in UF2 repo for display 26:55 Python easy to read? 28:05 Arduino Leonardo-type board with built in Bluetooth. I want to build a Bluetooth Macropad, but I can't find any documentation that helps me. Do you know where can I go to find this? 29:38 USB Host / would love Pi 400 self contained 30:55 Async Networking 31:13 Testing 31:24 tracking “regressions” - things that used to work - github issues labels 33:4Are regressions board or port specific, or are they general regressions 34::52 hoping non-iDevices will get some love for BLE workflows. I've been unable to get code.circuitpython.org working on neither Android or PC 35:22 Android and iOS updates to older apps 36:30 Maybe the community can identify "Port Champions" (or maybe the chip mfgers can step in here) 37:45 Automation and testing 38:41 Rosie-ci in adafruit github 39:42 sommersoft RosiePi repo https://github.com/physaCI 40:43 ,,, using Python to develop API for the ESP family of hardware? 41:40 Is there anything that Gerry does other people could easily replicate for testing? 42:22 What is the timeline for ESP32-S3 gets Arduino support https://github.com/espressif/arduino-esp32/issues/5594#issuecomment-1001514885 43:00 RPi CP baremetal question for you: are Pi3 and/or Pi400 on the map? 45:00 Any pointers/examples of OTA update of CP devices? 46:42 thoughts on simulated hardware for testing 47:44 P400's C port works for gadget mode I think 49:07 This would only replicate what CP “thinks” is displayed on the screen. What about knowing if there is a bus error like we saw on this?: 49:40 not a priority, but any more thoughts on allowing either FS access to the OTA partitions if folks want, or a way to disable OTA to reclaim more flash space for those that want? 50:27 OTA update process 51:30 is OTA exclusive to ESP? 52:29 IDF support ( table posted to discord at 2:48 PST ) 53:15 switch to desktop / learn guide / Circuitpyton-on-raspberry-pi-bare-metal-no-os 55:50 github repo pull requests pr 5858 56:35 pr 5662 58:45 Do you have a ESP32-S3-DevKitC-1-N8R8 yet? I got one but it has Octal PSRAM so builds online don't work yet. Hope it becomes a build target. 1:03:20 downloading the latest CP 1:04:26 Authy two factor authentication demo! 1:05:20 wifi on the S3 https://github.com/espressif/arduino-esp32/issues/5594#issuecomment-1001514885 1:06:00 Cat woke up :-) 1:07:00 split out target specific configs pr 5853 1:08:18 make board menuconfig 1:09:44 switch cp to core 1 on S3 pr 5860 1:11:00 Blinka mascot 1:11:50 grokked - slang for understood 1:12:39 Lady Ada dialed in 1:16:40 grok, ping, foobar, and other lang 1:18:37 Lady Ada on screen 1:19:17 HDMI output from microcontrollers 1:20:30 HDMI on pico 1:23:00 https://github.com/Wren6991/PicoDVI 1:25:00 retro look 640x480 by doubling 320x240 1:25:40 use rPi, since FPGAs are unavailable 1:27:00 composite video 1:29:20 PS2 keyboards 1:29:50 BRAM = Block Ram 1:30:00 ML on Raspberry pi 4 - demos and learn guides 1:31:20 TensorFlow vs TensorFlow Lite 1:32:30 ML is statistics in Disguise 1:37:08 Lady Ada signed off 1:38:30 Access to high res camera on raspberry pi ? 1:39:20 Add floppy IO - pr 5832 1:40:22 not getting past the rainbow screen - perhaps GDB could help 1:42:20 caught up on discord 1:43:30 Touch TFT - can we remove it ? 1:53:00 Minute with NimBLE ( espressif.com ) 1:59:00 WiFi workflow discussion - web REPL 2:00:00 difference between sockets and ports 2:02:50 Deep Dives notes auto publish in a few hours 2:03:16 housekeeping wrap-up - next week deep dive on S3 2:04:10 2pm Friday next week 2:04:43 Pet the cat 2:05:23 thanks again
I'm sponsored by Adafruit to work on CircuitPython. Support them, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. Next week will be on Friday as well. 0:00 Getting started and hellos 0:04:44 It is 2 01 - welcome and Housekeeping 0:08:27 Circuit Python 2022 introduction - long term direction 0:09:30 documented purchasable kits for kids/teens (see learn guides, adaboxes, shopping gift guides) 0:13:21 What is the underlying OS in Circuit Python ( ESP IDF build on Free RTOS) 0:14:40 Does CP ( Circuit Python ) on Arduino 0:15:08 Is the Raspberry Pi 2W SD card image working if you flash it from scratch? 0:16:10 Pull requests #5800 (initial Pi Zero support) https://github.com/adafruit/circuitpython/pull/5800 0:17:36 ESP-32 (not supported) see ESP-32 S2 and S3 0:18:15 conferences ? ( deep dive notes ) 0:20:40 search available for deep dive notes ) 0:21:35 CP advantages ( over Uno ) 0:23:02 join discord here https://adafru.it/discord 0:23:20 CP repl - compared to auto reload 0:24:31 wrap up recap - ( add Piunora and Zero ) 0:25:23 Open issues 0:26:12 Broadcom support corrupts SDCard #5706 https://github.com/adafruit/circuitpython/pull/5706 0:27:35 SD Card emulator? 0:29:07 Neopixel support on PWM capable pins #5727 https://github.com/adafruit/circuitpython/pull/5727 0:29:55 Upcoming - S3 support 0:30:25 4x64 Led Matrix using Matrix_Portal_Animated_Gif 0:33:00 no keyboard on the Pi400 because it require to be USB host? 0:33:25 Pi vs Pi Accessories 0:35:22 Wifi on the Pi - MicroPython support 0:35:35 S3 interest in BLE workflow 0:36:40 What do I do with this old Pi 0:37:13 What do you prefer in terms of IDE or text editor? 0:39:30 Where do I start if I want to get involved in contributing to CP ? https://circuitpython.org/contributing 0:41:14 Legaslative non-work topic(s) right to repair, broadband 0:42:12 Circuit Python 2021 0:42:35 Did you get into the QMK config tool output thing? ( not yet) 0:43:44 twitch - best board to get started with CP 0:45:50 Pico at the top of the Downloads page since the beginning! 0:46:10 Low power 0:46:55 BLE WiFi provisioning 0:47:20 Should the old ESP32 regain support now that there is a BLE workflow? (hope so) 0:48:45 is it possible to run (execute) another .py file before code.py? ( boot.py runs before USB is active ) 0:51:18 Circuitpython 2022 - look at 2021 0:51:55 is that HDMI? how do you change the resolution on RPi? 0:58:00 tiny logic analyzer project… 1:05:30 how to run something besides code.py 1:12:13 Are there any plans to support different pictures/graphics types (PNG, JPG, SVG) other than BMP? in CP? 1:15:50 Could auto parse settings.toml at boot and pass as environment variable 1:17:15 TOML toms markup language 1:26:40 TOML has comments 1:27:00 Would there be a way to have one RP2040 firmware and have board variations that do not require their own firmware? Like a config file or something small that just include the variation between board? 1:33:00 Bryans rules for good documentation 1:34:41 CP 2022 kickoff post / 2021 at https://blog.adafruit.com/2021/01/15/tannewts-focus-for-circuitpython2021/ 1:42:15 - the chip shortage causes CP to be flexible 1:44:02 Round LED screen ? 1:48:56 Love to hear your thoughts on CP 2022 - email circuitpython2022@adafruit.com Or https://blog.adafruit.com/2022/01/01/circuitpython-in-2022-circuitpython2022-circuitpython/ 1:52:35 https://wa-law.org/ 1:54:30 slack for repair.org https://www.repair.org/ 1:55:05 I'd like to see the option to choose "CPY" with and without OTA partitioning... I get asked all the time why my boards that have 4MB of flash only have 900k available in the FS in CPY. 1:59:44 calling it a day - next week CP 2022 2:00:53 MP (will be very soon) uf2 friendly. so just drag MP onto UF2 like CPY! No more stomping CPY with MPY ! 2:01:30 Cat cam 2:02:02 Visit the Adafruit shop online - http://www.adafruit.com ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Join Scott as he adds NeoPixel support to CircuitPython on the Raspberry Pi and answers questions. This is the last Deep Dive of the year. Visit the Adafruit shop online - http://www.adafruit.com 0:00 Getting started and hellos 3:28 Housekeeping 6:24 Is the flash needed less on those CP targets without USB ? 7:28 sleep update 11:00 Hi Scott - got a ? on the nrf52 bootloader and where/who should set the bootloader config regarding the CRC check and setting the bit for "app valid" bit in the bootloader config register of the nrf52xxx Should it be done at the bootloader and set it to assume a good app? or should it be done at the application level where the crc might be computed and flashed at the same time as the application. Perhaps Thach would know more… 21:47 Pi Zero 34:38 NeoPixel on RPi 41:37 Firmware Debugging and Development Tools for projects and contributing to CircuitPython https://www.adafruit.com/explore/firmware-debugging-and-development 52:58 Back to neopixel 1:16:33 Where does the Neopixel code live in CircuitPython? 1:20:20 Start implementing Neopixel for the CircuitPython RaspberryPi port 1:30:19 Q: I can't build today's CircuitPython latest. Scott: A good place to followup is in the #circuitpython-dev channel on Adafruit Discord or open an issue in GitHub. 1:30:52 Back to implementing Neopixel 1:40:36 What speed should data be sent to the FIFO and how is that controlled? 1:42:22 Let's see if it builds and works! What could go wrong? 1:44:35 Oops. First a code.py that uses the Neopixel needs to be on the Raspberry Pi 1:46:16 Setting up Salea Logic analyzer for neopixel to monitor the Raspberry Pi 1:47:16 It didn't work, debugging 1:48:03 Todbot: That neopixel analyzer is pretty cool! 1:49:30 print debugging in CircuitPython 1:54:40 Q: Will CP for RPi understand HMD_cvt and HDMI_drive in config.txt so I can configure a 5 inch HDMI LCD from Waveshare? 1:55:26 Back to the broadcom data sheet and debugging continues 1:57:24 Wrapping up and Goodbye for 2021. Next Deep Dive is tentatively on 7 January 2022. Happy New Year! 2:01:40 Kitteh ! ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Scott recaps work on the Raspberry Pi running CircuitPython and then continues working on SD card support. Visit the Adafruit shop online - http://www.adafruit.com Chat with me and a lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Next week is on Friday at 2pm Pacific. 0:00 Getting Started 09:32 Housekeeping 13:00 Raspberry Pi Zero 2 W discussion 19:50 raspberry pi .org vs. .com 20:51 Dune and DOS 21:49 USB Host and Tiny USB 23:07 Edit code on a Pi over BLE 23:38 working on Pi 400 steps to figure out 24:14 Pi-DOS project mention 26:00 Glasses come off / glasses setup 27:00 Pi Zero - epic for CP with .5 GB RAM 29:00 Zero 2 is the ultimate board for CP!!! 29:50 Review last week's status - 30:00 Now Tac has High Speed working 31:08 Last week - HDMI was very slow - investigate caches off/on 31:38 Not caching “enough” 32:48 Scrolling demo, much faster than last week, caching on for everything 33:42 Tweek resolution 34:00 “what is CP” 35:15 Still Broadcom chip 36:14 Flash speed vs. run from RAM 37:37 once I get the SD card working, there will be some re-organization for all the boards 38:20 experiment with screen resolutions, to demo refresh performance 40:17 640x480 REPL - pretty quick 42:00 1080p seems blurry 43:10 Are there any plans to make this a simpler process, eg moving it to a Java IDE? Suggested https://codewith.mu/ 45:10 check out visual studion circuitpython plugin 47:11 Python 3.10 has deprecated “distutils”. Spent my day on that for Yocto Project. It's nice to not need to worry with CP 48:00 rebooted to ‘lower' resolution 48:30 flash wear discussion Nand flash, Nor flash, flash protocol 49:36 Should you have some knowledge of Python before learning Circuit Python? 50:00 Pi4 is ARM64....so theoretically you could port CPY to the M1 chip 50:32 core of CP is just like Python 50:57 SD Cards technical proprietary, but … 51:27 Why use bare-metal CP over blinka ( ease of setup, just does one thing ) 52:20 Implementation 53:11 adafruit_sdcard.py - SPI 1, 4 or 8 bits at a time 54:15 here is a lot of IO stuff that you couldn't do under a Linux kernel like bitbanging is quite hard/limited in a non realtime OS 55:16 raspi3-tutorial / 0B_readsector / sd.c 56:39 habits that lead to more reusable code :-) 57:04 declaring 5 global variables on one line with no comments 57:37 SBD generated structs vs. 58:05 multiple things on one line - suggest using curly braces freely 59:00 initializing some but not all variables ( on one line ) 59:26 ‘weird' globals 59:39 q:is there a native async library in circuitpython? I found a library called "asynccp" it works for me now but it would be better to use the native way. 1:01:04 use single letter variables sparingly 1:02:06 perhaps run it through a formatter 1:02:18 “I still don't know what this code does” :-) 1:02:55 consider naming style for global variables 1:03:15 ‘circle' reference gighub rsta2/circle - well commented 1:04:10 check out the license 1:06:04 sdcard.org PDFs 1:06:44 Scott's Pi Zero arrives on Monday! 1:08:11 640x480 HDMI raspberry pi bare metal REPL demo - last piece is SD card reading in CP - connect to USB mass storage 1:09:40 goal: read SD card over USB 1:10:29 Exception levels - switch from EL2 to EL1 ( os exception level ) CP is running EL1 1:12:00 Waiting for high speed to be merged into tiny USB 1:12:40 HDMI output used for display IO 1:14:40 Looking at board.c in CP ports/broadcom/boards/PI4 1:15:15 sdioio API 1:15:35 “with this big chonky font, CP needs to implement CBM ASCII to get cool map-building "letters"” 1:15:42 detour - fantasy console - mimic but modernize 1:16:34 nerd fonts project (nerdfonts.com) 1:18:00 Does circuitpython use Unicode strings? 1:18:14 Twitter emojis opensourced twitter/twemoji 1:19:44 displayio doesn't display it yet - though emoji variable names do 1:24:30 in cpython you can only use unicode characters in variable names if the belong to the "letter" class, so you can do accented characters, or Chinese, or Hebrew, but not emoji 1:25:37 back to sdioio/SDCard.c 1:27:54 second argument to SD send command - refer to adafruit_sdcard.py 1:30:50 SD Specs - commands , and back to adafruit_sdcard.py 1:39:03 bztsrc/raspi3-tutorial 0B_readsector/sd.c sd_cmd() / 32-bit commands vs BCM2835 ARM Peripherals.docx 1:41:21 Q: been experimenting with the sdcard module on circuitpython but it stops the code if there is no card in the reader 1:42:36 consider the response type ( number of bits ) 1:43:54 sdioio/SDCard.h 1:45:03 sdcard.org Part1_Physical_Layer_Simplified_Specification_Ver800.pdf r2 response codes 1:48:57 autogenerated SVD generated file bcm2711_ipa.h 1:52:45 sdcard.org Design Guide « Whitepaper » is a pretty cool resource. https://www.sdcard.org/cms/wp-content/uploads/2020/11/SD_Express_Design_Guide.pdf 2:04:00 CM4 Appendix B - ordering codes ( wireless, eMMC, RAM ) 2:06:15 Wrap up - next week Pi Zero on Friday 2:09:35 have a great weekend
Join Scott as he shows all of the CircuitPython on Raspberry Pi 4 progress! After, we dive deep into enabling caches to speed things up. Questions are welcome. Next week is on Friday. Support Adafruit, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and a lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Thanks to David for notes. 0:00 Hellos 0:01:30 a little behind :-) 0:04:12 housekeeping 0:09:25 review progress from last week 0:10:06 broadcom peripherals on github 0:11:00 CMSIS 0:12:00 backtrace / openocd / gdb target external 0:13:00 broadcom-peripherals cortex-a-gdb.py 0:15:00 ExceptionUnwinder / add_saved_register / match boot.S 0:16:40 Micropython vs. circuitpython object representations (mpconfig.h) lines 73... 0:18:30 MICROPY_OBJ_REPR_D was for 64 bit pointers on a 32 bit system 0:19:11 use MICROPY_OBJ_REPR_A ( line 64) 0:20:00 next task - add HDMI - see rpi4-osdev part5-framebuffer 0:21:15 getting the GPU framebuffer / mailbox call 0:23:22 Cortex A programmer's guide pdf DEN0024A_v8_architecthure_PG.pdf 0:27:46 Raspberry Pi 4 - 2GB HDMI display with HDMI to USB adapter 0:31:33 program image into rpi 0:32:18 CP display ( and REPL ) on rpi HDMI - scroll appears slow - probably due to no caches activated 0:35:57 import board to get GPIO18-21 0:37:44 Question: Pi Pico / trying to make a MIDI sequencer but I can't get a precise ppqn (Pulses Per Quarter Note) clock using time.monotonic_ns. I heard we can't use timer interrupts with circuitpython. What should I do? 0:39:00 back to scrolling 0:43:35 Tak (sp) got USB working - 0:44:20 CP talking over USB! 0:46:33 tiny USB branch 0:48:32 committing ports/broadcom 0:49:00 oops - git reset hard :-( 0:50:12 EMMC2 mapping 0:52:00 needed more USB endpoints ( zero not adequate ) 0:53:18 ARM Cortex A cache chapter in DEN0024A_v8_architecture_PG.pdf 0:57:20 Other sharing of cache ( CPU, GPU, USB, frame buffer, etc ) 1:00:40 time.monotonic / No long integer support 1:02:00 def t() to test cpu performance based on time monotonic 1:03:20 storage not working yet - need to copy/paste from terminal 1:04:10 Instruction vs. Data caching, Flash / RAM 1:04:55 Need to split up RAM into a ‘flash' area of RAM and a separate ‘RAM area 1:05:57 link.ld memory SECTIONS map 1:07:00 copy stuff from common.template.ld READONLY 1.5M, NORMAL 1022M 1:22:11 recompile and test … 1:26:46 it still works 1:28:00 set up the MAIR register ( and mmu.h ) 1:32:00 see page 3563 ( of 8696 ) of DDIO487G_b_armv8_arm.pdf 1:34:10 mmu.c setup_mmu_flat_map() 1:45:00 add MM_DESCRIPTOR_OUTER_SHAREABLE and INNER to mmu.h and mmu.c 1:48:30 look at all those bits in SCTLR_EL2 1:51:00 set “I” bit 12, and “C” bit 1:52:00 summarizing current status 1:54:50 Is the plan to have the raspberry pi show up as a mass storage device like other cp boards? 1:56:30 recompile, and try “something” out 1:57:00 As I understand it, that's the reason for using the P4 (or Pi Zero), as they support setting a USB port to a mode...the USB-C port on the Pi4, the 2nd port on the Zero 1:57:40 Interesting I'm excited to see what Circuit python can do on a pi board. I was curious how well they would behave as a mass storage drive since they're much closer to being a full fledged pc than other cp devices. 1:57:50 Doesn't look like it worked - ( getting the rainbow test pattern ) 1:59:06 try just the instruction cache? 2:01:40 obviously we have some more optimizations to do, including the TLB 2:02:20 How is the storage etc working now? do you have an emmc model and use the usbboot thing to copy it over? Or? 2:02:40 Is it still recommended for beginners to start with CircuitPython6? I've been finding some of the sensor examples provided don't work with CircuitPython7, as the calls/functions/etc have changed. 2:03:40 So big question...if I submit a PR that allows booty.py as code.py alternative if in Pirate language mode, will it be accepted? 2:04:10 eMMC and SDcard would behave the same, nothing to do there technically 2:05:00 Related question, is it possible for the community to offer pull requests to update those examples? Would that be best done on the particular sensors Github page? Which then would filter to learn.ada 2:05:59 Sooo running CP from a MultiGB SD Card will just work on the RPI? 2:06:50 Wrap-up - remember the US daylight time zone change happening soon - still at 2PM local Follow along at https://github.com/tannewt/circuitpython/tree/rpi 2:09:30 pet the cat Visit the Adafruit shop online - http://www.adafruit.com ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Join Scott as he works on bringing CircuitPython to the Raspberry Pi. Work on USB has stalled so he's taking a break by working on getting CircuitPython working over UART. Chat with Scott and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. Next week is on Friday. 0:00 Getting started 0:03:25 Hello everyone / Housekeeping 0:05:51 Today - working on Arm Cortex A as bare metal micro (raspberry pi 4) 0:06:37 last week: interrupts / tiny usb 0:07:29 Exception Levels. EL3, EL2 (hypervisor), EL1 (OS), EL0 (applications) 0:09:13 Last week - EL2 hypervisor bits needed to be set 0:10:47 Looked into ARM architecture reference manual HCR_EL2 (64 bit register) 0:12:39 TGE bit Trap General Exception 0:16:19 D1.13 asynchronous exception type, routing, masking and priorities 0:18:09 Non-secure mode, SCR, TDE “C - interrupt remains pending” TGE bit set to 1 0:19:44 the magic bit that needed to be set in broadcom peripherals repo 0:21:00 NVM3722 ARM and AUX_IRQhandler 0:23:25 Pointer boxing ( using ‘extra' bits in 64 bit pointer ) 0:24:10 Open OCD, Gdb, and uart screens 0:25:06 CP repl on Rasbperry Pi 0:25:33 print(“hello world”) hangs / next week HDMI output, but first fix this bug 0:28:21 ARM exception decoding using cortex-a.py arm8a-exception 0:29:40 pointer greater than 32 bits - probably a problem 0:30:30 Memory mapping ( only the first ‘gig' of memory mapped ) 0:37:19 question: can a zero 1.3 use with any lcd??? 0:40:55 aapcs arm call stack research / Procedure call standard for the Arm Architecture 0:43:51 decode failing - irq_entry and irq_exit call stack creation 0:45:20 Frame pointer 0:50:58 ARM ABI 0:53:40 Microsoft arm arch 64 ABI documentation - very similar 0:54:54 experiment with h=”hello world” 0:55:58 gdb) info frame 1:02:25 typical C function call 1:05:28 exceptions should save the ‘callers' state 1:06:13 ‘101' review of memory ( heap and stack ) 1:25:00 disassemble mp_obj_print_helper to look at use of frame pointer 1:28:00 back to github libunwind 1:34:35 Unwinding frames in python 1:35:10 CP uses PIO for neopixels on RP2040 1:37:52 aarch64-unwind.h 1:41:10 does it come down to the exception entry code needing to update frame pointer (x29) to be stored on the stack to a GDB "correct" value, rather than storing the previous frame pointer value when exception occurs? 1:51:20 Digikey has a small number of the LED glasses and nRF driver boards available 1:54:00 stack-unwind-samples 1:56:10 greyed out command completion from fish shell 1:59:08 code is compiled for 64 bit ARM 2:00:43 oh, my fish extension - otherwise it's pretty standard .fishrc (omf and bobthefish) 2:02:44 looking at github rsta2/circle for examples 2:03:51 exception stub 2:04:32 edc/bass to use bash utilities in fish shell 2:05:12 circle irq handler - might like what we want “exceptionstub64.S” 2:16:23 trying out the experiment - it's worse :-( 2:18:55 wrap up - shop at adafruit.com or digikey.com if not in stock 2:20:47 wake the cat - and catch the links at github tannewt rpi branch 2:21:55 bye spook Visit the Adafruit shop online - http://www.adafruit.com ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Scott covers progress on the Cortex A work for Raspberry Pi. He's been working on expanding the system view description (SVD) files and learning all about the Generic Interrupt Controller (GIC400 / GICv2). He'll also answer any questions folks have. Visit the Adafruit shop online - http://www.adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. 0:00 Getting started 0:02:00 Hello and Housekeeping 0:04:42 Unexpected Makers Feather S2 - https://unexpectedmaker.com/ 0:05:30 Today's topic deep dive Raspberry Pi 0:06:30 Educational/Work Background summary 0:10:20 Getting started in Board Design - KiCad, Oshpark - https://www.kicad.org/ 0:12:00 Working on google maps, reasons for leaving 0:13:35 What was the most important thing learned at Google? 0:14:45 Getting started with surface mount 0:16:15 Flux and soldering, Pin Headers - https://www.adafruit.com/product/2830 0:20:30 Adafruit Collin's Lab soldering videos - https://www.youtube.com/playlist?list=PLjF7R1fz_OOXyxiYQWEX4OZga9c7jrw5q 0:21:05 Hand soldering, vs. SMD for dotstars 0:22:17 Looking at the ‘new' Pi Development board 40-Pin / external JTAG / SWD adapter - https://oshpark.com/shared_projects/fBq76nP9 0:24:22 Raspberry Pi CM4 0:25:37 USB to UART external board 0:26:45 External connector and chickadee logo ( on oshpark ) 0:29:35 Oshpark, PCB shopper (dot com) 0:31:00 Chickadee.tech web page and After Dark theme 0:32:12 Two weeks of progress on RPi 0:32:32 Troubleshooting 4 layer boards 0:33:25 adafruit/samd-peripherals github page - SAMD21 / SAMD51 0:33:52 adafruit / Broadcom peripherals page - https://github.com/adafruit/broadcom-peripherals 0:35:55 Recap system on chips ( SAM D21 block diagram ) 0:38:00 .SVD ( arm ) vs flash.xml ? 0:38:46 Memory Mapped I/O and Product (memory) Mapping 0:40:40 SVD file used for debugging and generate C code 0:42:00 RPi Desktop/workspace setup explained 0:44:00 Debug output and open OCD 0:44:35 Gdbstub PyCortexMDebug - https://github.com/bnahill/PyCortexMDebug 0:46:30 “svd” commands 0:50:24 Using KDE console terminal for tiling “management” 0:51:00 IRQ's and interrupts 0:53:24 Need USB Interrupts to get TinyUSB to work 0:54:00 PPI vs SPI 0:57:28 Would interrupts drive support to multicore 0:58:55 Do we need delays to support interrupts? (no) 1:00:50 Can you have delays in an interrupt? ( don't want to ) 1:02:10 SVDcon (sp) converted table 1:02:39 Python generated jinja macros (svd tool) 1:07:50 GPIO alternate functions - moving to get interrupts working 1:08:40 USB initialization need to be powered on ( see vcmailbox ? ) 1:09:40 How does the interrupt handler work - assembly code 1:10:10 saving and restoring state in interrupts (macro) 1:11:30 handling invalid interrupt entries 1:12:25 CPU exception top level code 1:13:14 handle IRQ 1:14:15 svd USB_OTG_GLOBAL / examine the registers 1:17:02 next thing down the line, the interrupt controller 1:20:30 Lady Ada on the screen! 1:32:23 - after some good advice, goodbye 1:35:20 ARM provided svd conv (sp) 1:38:52 GIC 400 1:40:53 the GIC 400 overview diagram 1:43:20 Interrupt “1023” magic number - in a spurious interrupt 1:46:42 Interrupt handling state machine diagram Figure 3-1 1:47:55 Distributor register descriptions - GICD_ITARGETS 1:49:00 Old show notes - https://github.com/adafruit/deep-dive-notes/ 1:51:16 Reviewing interrupt priority fields 1:54:20 interrupts are all zero 1:55:00 Try setting priority to one, as an experiment 1:57:00 restart with new code - gdb says in fifo-read 1:58:34 Wrap-up 1:59:25 Next week next Friday 2:00:09 cat-cam ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Join Scott as he continues his quest to get TinyUSB running on the Raspberry Pi 4 and answers questions folks have. Support Adafruit, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. No stream next week! Latest code is here: https://github.com/tannewt/tinyusb/tree/rpi 0:00 Getting started 0:01:30 audio debrief from last week 0:03:28 housekeeping 0:08:00 First time watching your live stream. What are we learning today? 0:09:10 Cortex A / MMU 0:10:20 If you learn original python on a pc, is it then easy to go from there to circuit python? 0:11:10 qemu further progress 0:13:40 board init() 0:15:30 unaligned access 0:17:30 What model of Pi will this run on? And will it be ARM32 or 64? 0:19:10 if you run CP on metal RPI4, is there the need for 32 bits? 0:21:15 local setup on desk 0:22:30 OSH Park Pi Development v1 project to eliminate all the wires above 0:25:00 https://github.com/chickadee-tech/pi-developer 0:25:45 catch the exceptions in boot.s 0:27:40 load VBAR_EL1 with virtual vector table address 0:29:00 arm stub switches from EL3? to EL2 0:29:40 4-way split terminal tinyusb, serial, gdb 0:32:22 cortex-a.py (in gdb) 0:32:47 ARM Cortex-A Programmers Guide for ARMv8-A pdf (MMU overview) 0:34:15 TTBR0_EL0 (EL2) 0:35:10 Arm architecture reference DDIO487G_b_armv8_arm.pdf 0:35:51 ESR_EL2 register 0:38:42 cortex-a.py - decode exception code 0:40:15 Python pattern matching in python 3.10 (match switch) 0:41:45 What other information can we extract from the exception 0:42:25 FAR ( fault address register? ) / extend the decoding 0:50:45 ashw.io/blog/arm64-pgtable-tool - and youtube video 0:54:00 decoding virtual address ( from BruceS ) 0:56:20 pi4 address map from bcm2711-peripherals(1).pdf 0:58:00 setup_mmu_flat_map() in mmu.c 1:00:10 Level 1 access flag fault 1:02:00 Translation fault level 1 1:03:30 access flag fault level 1 1:06:20 Long-descriptor level 1 and level 2 descriptor formats 1:10:00 github ashwio/arm64-pgtable-tool python code 1:14:10 “The Access flag” , ok, add the MM_DESCRIPTOR_ACCESS_FLAG 1:17:10 got a little further - maybe try it out on the hardware (instead of qemu) 1:22:30 decode the Data Abort further - translation fault level 1 1:27:50 we have uart output! 1:29:00 summary - flags in translation table needed to get access flag set to 1 1:39:00 dcd_init() 1:39:58 What side projects are you looking forward to diving deeper into in the coming weeks? 1:42:00 Did you ever ask adafruit to manufacture your old board? 1:44:04 UPS truck arrived - (new iPhone? ) Be right back 1:45:58 back - unboxing 1:51:45 recap - MMU / fixed table lookup / added access flag / used python to decode information about access fault / uart output 1:53:00 next steps 1:53:54 wrap up 1:55:50 - see you in two week Visit the Adafruit shop online - http://www.adafruit.com ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Join Scott as he explores bare metal programming a Raspberry Pi to try and get TinyUSB going on one. He'll also answer any questions folks have. Chat with Scott and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. Next week will be on Friday. 0:00 Getting started & mic trouble 0:07:27 Hello 0:08:32 housekeeping 0:11:30 Diving in to Tiny USB and CP on raspberry Pi ( see show and tell ) 0:13:40 desktop setup CM-4 compute module setup 0:15:00 Jeff Geerling (sp)for examples of GPU(s) on pcie header 0:15:50 Macropad shortcuts 0:16:40 Development workflow, serial, gdb, source code 0:17:47 what about peripherals 0:19:50 Biggest advantage - HDMI 0:21:32 CrowdSupply Piunora https://www.crowdsupply.com/diodes-delight/piunora 0:24:25 sometimes / rpi4-osdev bare metal github documentation https://github.com/isometimes/rpi4-osdev 0:26:35 boochow micropython-raspberrypi - https://github.com/boochow/micropython-raspberrypi 0:27:40 hathach/tinyusb 0:28:00 could you have 4 instances of CP across the 4 cores run independent of each other? 0:28:30 CP on virtualized HW. wow... that's going in a new direction! 0:28:40 other links / useful tabs ( maybe @tannewt can save all his tabs :-) ) https://github.com/s-matyukevich/raspberry-pi-os/blob/master/docs/lesson03/rpi-os.md https://github.com/isometimes/rpi4-osdev https://pinout.xyz/pinout/jtag# https://github.com/torvalds/linux/blob/1d597682d3e669ec7021aa33d088ed3d136a5149/drivers/usb/dwc2/params.c https://www.raspberrypi.org/documentation/computers/config_txt.html#enable_jtag_gpio https://github.com/hathach/tinyusb/blob/master/docs/contributing/porting.rst https://github.com/raspberrypi/linux/blob/rpi-5.10.y/arch/arm/boot/dts/bcm2711.dtsi 0:20:00 interrupts 0:31:15 code startup ( multi core start up ) 0:31:41 stack pointer 0:32:40 code from tinyusb 0:33:40 shrinking the code to get it all building 0:34:49 rPi USB licensed from synopsys 0:36:05 board_init in family.c from tiny usb / blink LED 0:36:53 uart prints / debugging 0:38:00 rebuild to get to “hello to gdb” / OpenOCD 0:39:49 it takes 7 seconds for the gpu to boot 0:41:02 start with jlink - since uart output didn't work 0:41:49 set breakpoint at board_init 0:42:35 now there is garbage on the stack 0:44:23 exception vector table base address 0:46:00 set more of the system registers 0:48:12 two different rpi interrupt controllers 0:51:30 gdb jump start 0:52:30 read about Exception classed (D1.10.4) 0:54:20 Decode the ESR ESR_EL2 0x200_0000 1:03:10 check if there is interrupt pending *0xf300b20b 1:05:19 // print() and add an infinite loop 1:05:55 don't trust the debugger yet 1:06:45 link to https://github.com/rsta2/circle ( while waiting for rebuild ) 1:09:00 blink and hello to gdb2 print worked 1:09:30 look at Circle ( from rsta2 ) initialization armstub/armstub8.S - from u-boot 1:12:30 concern about taking GPL code 1:13:25 tweek NOP and print 1:16:45 how is the stack backtrace initialized? 1:21:55 Stack overflow - what is the current execution mode 1:23:24 try qemu simulation 1:24:20 there isn't a pi4 board definition, maybe a similar pi3 - see stackexchange type=raspi3 1:25:40 cpu kicks on with qemu 1:26:15 Is there a virtual jlink for qemu? 1:27:17 QEMU Raspberry Pi 3 support ( github ) 1:27:44 debug linux kernel with gdb and qemu ( stackoverflow ) 1:26:10 same place in qemu / gdb emulation ( in board init ) 1:30:19 qemu uart ( stackoverflow ) 1:30:40 The Arm Docs are quite handy sometimes like https://developer.arm.com/documentation/den0013/d/Boot-Code/Booting-a-bare-metal-system?lang=en 1:37:42 - how to reset qemu ? 1:40:00 qemu pc log ( stackexchange ) QEMU/Monitor 1:46:45 qemu's documentation ( gitlab.io/qemu ) 1:56:52 quit qemu ( mon stop ? ) Found Ctrl-A X when running with -nographic https://superuser.com/questions/1087859/how-to-quit-the-qemu-monitor-when-not-using-a-gui 2:00:00 stackoverflow documentation on tracing / profiling in qemu 2:07:10 tracing QEMU guest execution ( wordpress ) 2:10:00 what does qemu trace ( stackoverflow ) 2:15:15 wrap up 2:16:33 does the STM32 circuit python work? 2:17:18 cat cam See Deep Dive Repo for an index archive of previous deep dives: https://github.com/adafruit/deep-dive-notes Visit the Adafruit shop online - http://www.adafruit.com ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
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
CircuitPython developers Kattni, Jeff and Dan come together to talk all things CircuitPython and keyboards. The gang will bring projects they helped develop, explain how they work, and show a live demo or two. Learn about many of the ways you can use CircuitPython with different styles and types of keyboards and other inputs like controllers. Join them on the Adafruit Discord in the #livebroadcastchat channel to have your questions answered about what they're working on, and the new features coming in CircuitPython 7.
Join Scott as he answers audience questions and squashes bugs for CircuitPython 7.0.0. Scott is sponsored by Adafruit to work on CircuitPython. Support them, and by extension Scott, 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. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. Next week will be on Friday as well. 0:00 Getting started 0:05:00 - what made it into CP 7.0 0:07:52 housekeeping 0:11:02 2 x Arduino Nano RP2040 Connect, BLE device to device. As soon as the BLE obj on the Central is active it appears the RGB led cannot be controlled ( not CP ) 013:36 keyboardio 0:16:31 CP 7.0 - pull request review and issues 0:20:30 If Native CP on the Pi was a thing, would we get real multi-core support? And would that gain multi-core support on the Pico? 0:23:55 trying to do a pull from main, get the issue with ports/raspberrypi/sdk/lib/tinyusb has moved to some new point in time. what's the best way to get it all straight 0:24:50 “git status” always 0:25:22 RP2040 flash size fix 0:29:44 ScanEntry.matches fix 0:31:00 Don't blink blue…. 0:32:11 Fix crash when UART construct fails 0:34:00 only push main to S3 0:34:20 Remove OSError(0) and old network modules 0:35:18 nrf52840 build not booting 0:35:40 refactor pulseout to no take PWMOut 0:36:00 Ctrl-C is not interrupting deep sleep 0:37:36 start with pulseout_switch ( git commands ) 0:40:34 source code in sublime 0:45:17 in terms of microcontroller support, do you think we're coming to the point where the SAMD21 is just too small to be productive for future CircuitPython releases? 0:46:30 practical metrics on RAM usage in 6 versus 7 0:47:50 finding adafruit schematics - NEOSENSE_SWITCH 0:52:00 overhead camera) 0:54:00 oh look - it works :-) 0:54:25 Adafruit board) Circuit playground bluefruit revisions rev (G) 0:58:23 board.c - reset_board - turning off power switch 1:00:01 Is there a description of the different board revisions? I have a Circuit Playground Bluefruit Rev D and I'm not seeing anything here: https://github.com/adafruit/Adafruit-Circuit-Playground-Bluefruit-PCB 1:00:00 review the product page description 1:02:43 board init and board_deinit ( supervisor/port.c ) 1:08:30 back to the schematic - 1:11:59 make and test one more time - perfect! 1:13:27 not to Atmel SAMD 1:18:32 Serial/by-id in linux /dev/ as argument to tio 1:21:19 git commit support multiple status neopixels fix #5039 1:23:20 Should be Blue for Bluetototh? 1:24:35 Refactor pulseout 1:26:20 monitor CI ( continuous integration ) in the background 1:26:50 CP 6.3 readthedocs / pulseio.pulseout 1:28:00 pull/3279/files pull request 1:32:40 - not quite backwards compatible 1:33:50 need to test a bunch of ports 1:35:54 fetch the test program from other board 1:37:34 connect new board 1:38:30 there are other things in CP 7.0 that will be changes 1:39:20 would love people to make the CI faster 1:41:11 this test was even more accurate 1:42:40 STM32f405_express feather boot loader 1:43:40 that PR had a bug in it - need to fix that - add a default value for the count 1:47:15 pulseout_switch testing after git rebase 1:47:50 return to the learn guide for STM32F405 - Enabling DFU bootloader mode 1:48:40 dfu-util command ( in fish history! ) 1:49:15 dfu vs. uf2 for updates 1:50:07 is there support for stm32 in tinyuf2 1:50:58 now we are in safe mode - again tio /dev/serial/by-id provides value! 1:53:10 this is the problem with having the source code on the device :-) 1:55:40 - back to the Logic 2 - see that the deinit didn't work 1:57:05 plug for discotool 2:04:08 save code.py 2:08:18 wrapping up / rambling :-) 2:11:21 have a great one… ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Join Scott and guest @jim_mussared (@jimmo on GitHub) as they talk about MicroPython and debugging the native emitter. Scott is sponsored by Adafruit to work on CircuitPython. Support them, and by extension Scott, by purchasing hardware from https://adafruit.com Jim is sponsored by George Robotics to work on MicroPython. Sponsor them on GitHub: https://github.com/sponsors/micropython See https://github.com/micropython/micropython and http://micropython.org/ for more information about MicroPython. Chat with Scott, Jim and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. Next week should be on Friday. Links: * https://github.com/jimmo * https://github.com/micropython/micropython/issues/7523 * https://devblogs.microsoft.com/oldnewthing/20210531-00/?p=105265 * https://github.com/sponsors/micropython * https://store.micropython.org/ Thanks to @dcd for timecodes. 0:00 Getting started after technical issues 0:03:43 Welcome Jim @jim_mussared 0:07:44 Black box with blinky lights on the wall 0:08:50 http://megaprocessor.com/ 0:12:00 - black screen - ( obs transition / rearrange screen) 0:15:16 Jim's desktop 0:17:00 @micropython.native decorator - compile to native thumb code in RAM 0:20:00 freezing code moves it to flash 0:21:55 import mic0ropython discussion - to catch code not portable to cpython 0:23:00 const variables, and _ prefixed variables 0:25:23 thumb code ( ARM and thumb ( native cortex machine code ) ) 0:26:55 ISA - (RISC-V api ) 0:30:20 instruction lookahead - deep pipelining 0:31:15 Spectre / speculative look ahead / security issues 0:32:25 Jim's secret agenda for the deep dive - native emitter for RISC-V (esp32) 0:34:20 CP needs BLE if not native USB 0:35:35 micropython.native code incorrect execution 0:36:10 mpr - micropython remote “mpr run” 0:36:50 mpr mount - access to remote REPL 0:37:40 CP-like workflow over serial (esp32) 0:38:35 @micropython.viper - optimization by skipping the python object overhead 0:40:10 MP type hints - normally ignored 0:40:45 type hints as IDE help 0:41:20 If you have repeating numbers like your 255s and 0s, is it a bad idea to make them consts? Are they already treated like consts internally? 0:43:44 disassemble (alias blaze = ‘make -j 16' / on linux port ) 0:47:00 microcpython -v -v -v to disassemble to micropython VM bytecode - walk through the byte code 0:51:15 - 3 stacks to discuss later 0:53:30 mp binary op internals 0:55:40 what is an emitter - lexical analysis , parse into tree, emit code from parse tree ( byte code, emit native code, or emit viper code ) 0:57:50 byte code emitter emitbc.c 0:58:59 compile.c calls emitter, or emitnative.c 1:01:30 Is .native and .viper just at a method level? Class level too? 1:02:50 native ‘everything' by saving the python to a code 1:08:00 continue in emit native 1:10:10 what if we use a local variable? 1:11:34 gdb ./micropython ( oops - rebuild first ) 1:13:35 mp_obj_t ( the most useful point of this deep dive ) 1:15:20 type tagging ( see mpconfig.h ) 1:16:45 some builds of CP don't support long integers 1:18:35 . is there anything else than micropython that emit micropython bytecode? Like at one point everyone was making JVM bytecode even not being java 1:20:05 everything is a 32 bit integer - ( or a pointer to an object ) 1:21:10 Why (3) is really 1 and 0x1ff 1:22:25 gdb backtrace doesn't work with native emitter 1:23:10 anybody doing "hand written" bytecode to do something smart or super optimised? 1:25:00 Write part of the core in the python 1:27:55 looking at the native code generated in a file 1:29:49 Is there a byte code to python "decompiler"? 1:30:30 debug the debugging code 1:32:03 objdump to disassemble the generated code (x86-64 code) 1:34:50 rbp is pointer to func table - ( there is no linker) 1:41:03 viper generation 1:45:40 emit_native_jump_helper 1:47:08 3 different stacks ( processor, MP function stack, emitter stack (while emitting ) 1:49:00 optimization 1:51:50 - another optimization - keep variables in registers 1:53:50 - clobber EAX 1:55:40 RISC-V ISA/calling conventions ( ABI - binary interface ) 1:57:30 one character fix ( use EDI instead of EAX ) 1:58:52 Write a test to verify the fix 1:59:45 fixed on thumb code 2:00:00 MP issue https://github.com/micropython/micropython/issues/7523 Thanks to Jim and https://store.micropython.org/ 2:08:00 wrap up! 2:08:30 - final frame :-) ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Talk Python To Me - Python conversations for passionate developers
When you think about embedded programming, does it bring low-level languages and tools to mind? Maybe Embedded C or even Assembly language? Thanks to the groundbreaking work by Damien George back in 2014 to create MicroPython, Python is one of the very solid choices for building tiny programmable devices. On this episode, we welcome back Damien George from MicroPython along with Scott Shawcroft from CircuitPython and Adafruit. We'll talk about how these two frameworks are solving similar problems with slightly different philosophies. More importantly, they are working closely to bring MicroPython and CircuitPython more in sync. Links from the show Scott on Twitter: @tannewt Damien's Site: dpgeorge.net CircuitPython: circuitpython.org MicroPython: micropython.org Upstream MicroPython Versions Merged Into CircuitPython: adafruitdaily.com Boards (MicroPython): store.micropython.org Boards (CircuitPython): adafruit.com MicroPython Forums: forum.micropython.org Become a sponsor to MicroPython: github.com Adafruit Discord: adafru.it Download CircuitPython: circuitpython.org CircuitPython Source: github.com Scott's Live Stream: youtube.com Watch this Recording: youtube.com Episode transcripts: talkpython.fm Sponsors Sentry Error Monitoring, Code TALKPYTHON Linode AssemblyAI Talk Python Training
Join me (Scott) as I answer questions and works on webserial and Javascript. I'm sponsored by Adafruit to work on CircuitPython. Support them, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. Next week will be on Friday as well. 0:00 Getting started 0:07:15 housekeeping 0:09:25 What would be the most expensive board? 0:12:20 Does CP slow down the microcontroller. 0:13:36 explain Circuit Playground Express pinout ‘legend' https://cdn-learn.adafruit.com/assets/assets/000/047/156/original/circuit_playground_Adafruit_Circuit_Playground_Express_Pinout.png?1507829017 0:27:04 is there a way to change Io that has specific functions like using a crossbar or IOMUX in the SAMD outside of bootloader settings? 0:29:04 Dive into SAMD hal busio i2c 0:32:00 ~ CP ‘bootloader' 0:32:43 CP essentials guide i2c - list all combinations if I2C 0:34:31 CP bug#4638: I2C_STEMMA vs STEMMA_I2C? ( how does board.i2c work? ) 0:37:24 looking at old CP issues list 0:39:50 Is it time for a ‘native' display driver for the microbit? 0:41:18 PewPew display ( pewpew10 ) 0:43:06 pewpep10 issue 4979 / youtube PewPew 10 with CP - idea: debug interrupts with logic analyzer 0:46:24 microbit update - microphone LED on bootup / discovery / “ello” 0:48:58 the first build of CP that doesn't have USB! 0:51:02 code.circuitpython.org WebBluetooth 0:53:55 plug podcast talk-python-with-me CircuitPython and MicroPython - Talk Python Live Stream 0:57:30 Connect web-serial to USB-serial 0:58:40 Javascript people doing cool things! 1:03:15 Web Serial API 1:05:35 Adafruit code reviews / transition to pull requests to support continuous integration 1:09:40 request serial port serial.getPorts() 1:11:18 Readable / Writable stream 1:13:56 multiple serial ports from the same device 1:14:30 has anyone used a CP board to manage LED strips? I have a couple govee rgb strips that have an IOS app, but would like to control them without the app. 1:16:55 web usb spec https://web.dev/usb/ 1:20:20 switchToSerial(device) 1:24:10 example has a bit more context around the while readable - https://wicg.github.io/serial/#close-method 1:26:30 console.log is so nice - debugging switchToSerial device.open() 1:30:55 How many reviewers does CP have? ( 5 or 6 ) 1:33:20 that looks promising! ( getting data from the particle sensor ) 1:35:40 Difference between “var” and “let” 1:37:40 “It's alive” - text decoder displaying data! 1:47:20 have to say your are in an async function if you “await” 1:50:05 code running again - summarize limitations 1:51:11 check in the terrible code - as it is https://github.com/circuitpython/web-editor 1:54:13 wrapping up ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Join Scott as he answers questions and works on https://code.circuitpython.org which talks to CP devices over WebBluetooth. I'm sponsored by Adafruit to work on CircuitPython. Support them, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. Thanks to David (dcd) for taking timecodes. 0:00 Getting Started 0:04:00 Hello everyone 0:08:56 Intro to bluetooth 0:09:57 WebBLE - spoiler (android phone/ experimental API) 0:11:27 Makerdiary serial console web device CLI 0:12:47 chrome::/inspect/#devices ( mirror phone screen web page ) 0:14:54 repl is working 0:17:47 code.circuitpython.org 0:19:01 prompt to start advertising yellow / fast blue / solid blue - broadcast publicly 0:19:52 pair serpi / bond 0:21:38 debugging output on the right 0:22:27 edit code in web page - using emoji as variable names! 0:24:41 “editing code from phone” 0:25:29 What would be the difference with linux? 0:26:16 Could something like this be replicated using ble cli tools in linux? 0:27:00 Adafruit_CircuitPython_BLE_File_Transfer repo 0:27:45 circuitpython/web-editor repo 0:28:00 adafruit/ble-file-transfer-js 0:29:00 works in Chrome then it should work in Deno ... As that's V8 under the hood and they are making their JavaScript isomorphic. (Works in browser, works in Deno.) 0:30:00 - CP save button - use timer instead 0:30:45 codemirror.net/6 editor 0:31:40 https://deno.land/ 0:32:59 Does code mirror handle python/ stubs? 0:34:10 use absolute latest CP from amazon and NRF 8240(Sp) 0:35:21 nice to add autocomplete 0:35:45 now, to test it on the Micro:bit v2 0:36:40 device disconnects after writes 0:37:10 some code outthere to user antlr with Monaco, since antlr can generate parsers in many languages including JS and TS 0:37:30 there is a python parser in codemirror 0:37:52 microbit V2 0:39:15 that's how you know you are in a deep dive - when alpha 3 is too old 0:40:45 new git microbitv2 repo 0:42:10 CircuitPython Online Editor 0:42:45 JS question - how to show a file directory 0:44:00 microbit v2 cpu nRF52833 0:47:00 CIRCUITPY_CREATOR / CREATION_ID 0:47:18 searching for microbit v2 schematic from tech.microbit.org/hardware/schematic 0:50:20 schematic displays MicroBit_V2.0.0_S_schematic.PDF 0:51:40 Where can I find documentation on Adafruit_PIOasm? - readthedocs.io pioasm latest 0:55:11 edit the pinouts on Expansion connector 0:57:14 how microbit references the pins and map them to CP internal names 0:57:40 and buttons - to match board creators documentation 0:58:59 microbit documentation 1:00:25 Edge connector pins 1:02:15 If the MicroBit v2 doesn't expose USB, how does one install CircuitPython onto it? Does it have a Bluetooth-enabled bootloader? 1:04:43 make -j 32 BOARD=microbit_v2 ( fix errors ) 1:09:10 this is the first time we built CP Non-usb BLE only device 1:11:20 how to send data over laser.. Is PWM the way to go? 1:13:30 resolve linker undefined symbols 1:15:45 this is the birth of USB-less CP 1:22:35 always a good idea to do a make clean and try again when experiencing CP build problems 1:26:30 Serial_write_substring undefined 1:28:00 you can't raise an exception from boot py / goes to boot.out 1:36:00 - it's too big :-( 1:39:00 review the configuration flags 1:41:45 play the make it fit game - turn off POW3 1:43:20 Is your USB / BT a subset of something else? So you can access it through another doorway? 1:43:48 - got 500 bytes back 1:45:48 look what does the “simmel” do -Os 1:46:45 nrf52833 flash size (- 512KB Flash ) 1:47:50 Refer to the linker file template common.lk 1:50:30 What is that magic optimization and why would it not always be enabled? 1:53:40 What is soft device ( binary blob from nordic ) 1:55:40 using S140 SoftDevices https:nordicsemi.com/products/nrf52833 1:58:00 Consider peripheral only / what is S113 size 2:00:00 Soft device memory resource map 2:02:35 softdevice provided by Dynastream ( thisisant.com ) 2:04:37 S140 release notes 2:07:57 end by trying out the binary 2:08:13 not sure if downloading the hex file did anything 2:09:14 next step - connect a debugger 2:10:45 microbit will take some more work 2:11:45 wrap up 2:13:48 -bye all ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Join Scott as he answers questions and gives updates on the state of BLE workflow. Visit the Adafruit shop online - http://www.adafruit.com I'm sponsored by Adafruit to work on CircuitPython. Support them, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. Thanks to David (dcd) for the timecodes. 0:00 Getting started and hellos 4:10 housekeeping 7:50 time code sync 8:56 The Display_Shapes library does not have an arc function. Do you know a good way to draw arcs? 9:30 Adafruit mailbag ( Kitty Paw https://www.adafruit.com/product/4972 ) 10:50 TinyUSB 12:40 E-Ink clock https://www.adafruit.com/product/5023 19:04 MacroPad and keys 26:37 MacroPad assembly 43:50 Scott's keypad collection box 57:00 powered up the MacroPad 58:47 build CircuitPython for the MacroPad 1:03:00 git submodules in submodules 1:11:05 reset Macropad to boot loader 1:17:00 Demo the Macropad code 1:18:53 Transition to BLE workflow 1:25:00 Off topic... But I noticed the ability to customise USB endpoints in CP7. Any chance of allowing an SD card to be mounted as a (2nd) USB MSC drive? 1:29:00 phone dropping the connection and just not reestablishing it? Or is the CP device not advertising? 1:31:00 glider app scanning 1:32:25 oh, no - it's in “safe mode” 1:35:39 debug in safe mode hints 1:44:16 disable the usb device 1:58:57 BLE connected to glider app 2:00:20 display version of code running 2:01:10 Talk to the clock with android 2:04:00 wrap up ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Join Scott today as he answers questions and continues working on the BLE workflow code in CircuitPython. Scott is sponsored by Adafruit to work on CircuitPython. Support them, and by extension me, by purchasing hardware from https://adafruit.com Chat with him and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. Next week is on Friday Links https://wiki.pine64.org/index.php/PineTime https://github.com/adafruit/Adafruit_CircuitPython_BLE_File_Transfer 0:00 Getting started 6:10 Housekeeping 0:20:20 ESP32-S2 SPI display speed updates 0:11:09 Would you consider yourself an IOT/Embedded Systems Engineer? 0:12:33 Sublime text editor 0:13:10 Is there a way to import lib folder modules from the REPL? 0:13:53 How come red breaking is common? 0:14:15 implement a TCP stack in rust 0:15:08 Could there be an "editor" in the REPL to modify a python file from the "console"? 0:16:18 REPL - import error 0:17:38 Fiber Deserts http://fiber-deserts.net/ and https://datasette.io/ 0:22:10 Google Cloud Run 0:23:38 Is there an Adafruit BLE file system protocol out there by now? Or how have you solved the issue of managing BLE device storage? 0:25:20 video demos (https://github.com/antonio-openroad ) 30:23 supervisor/shared/bluetooth.c 0:35:22 CircuitPython on a LIDAR lite v4 / nRF52 + an FPGA for the sensor timing stuff 0:35:35 nRF5340 0:38:05 BlueNRG-1 by ST being replaced by the STM32WB 0:40:00 return to CP bluetooth.c 0:45:20 no - we have not started an android glider :-) 0:46:08 mirror android screen 0:50:45 NRF dongle 0:54:19 BLE on esp32 0:55:44 new version of bluetooth.c 1:02:36 hint: in gdb use “break reset_into_safe_mode” 1:07:09 Bluetooth specs core specifications 5.2 ( to look up BLE advertising ) 1:14:25 As prototypers, do we have to be careful what we push over BLE ? 1:16:05 After you setup a connection and you're in an encrypted channel, are you allowed to send a BLE ADT packet to say that "Actually, I can also do these things. 1:22:05 how to clear bonding 1:22:40 Ubertooth One - 1:22:59 Phone NRF app or dongle 1:24:30 Can you use advertisements to simulate something like an espnow mesh? 1:27:56 ble the rest of the time 1:40:00 Breaking Adapter.c 1:45:00 IDE/editors for programming 1:48:00 Verbose BLE 1:52:00 Have you ever tried a weird keyboard layout like dvorak? 1:54:00 Is BLE turned off? 2:00:00 Wrap up
Join Scott as he answers questions, discusses the end of the MicroPython merge and revisits the status LED revamp. I’m sponsored by Adafruit to work on CircuitPython. Support them, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. Next week is on Friday. 0:00 Getting started and hellos 4:40 adafruit jobs ( before housekeeping - not sure if youtube handles it ok ) 7:20 Housekeeping 10:23 what Scott is doing next week - Pycon.org ( virtual 14th & 15th) 14:43 Melborne micropython meetup https://melbournemicropythonmeetup.github.io/ 16:40 Merge pull request for 1.13 is out 19:00 1.10, 1.11, 1.12 merged already 19:51 1.14 & 1.15 yesterday 21:35 1.11 & 1.12 cherry picks lost git history (1.13 brings in the history) 23:23 vaccination hesitancy 27:05 advantages of using Circuit Python 29:04 circuitpython-essentials 35:03 dynamic cpu frequency scaling 36:55 python helper tool for micropython merges PR #4725 38:39 TinyLogicFriend #137 sigrokproject kmatch 42:43 Dan’s USB changes Dynamic USB descriptors #4689 (in CP 7.0) 47:01 USB endpoint summary / usb audio? 49:30 Circuitpy_eraser #4722 discussion 51:45 how to enter safe mode from hardware 53:42 board without status LED issue 54:40 safe mode LED? 57:12 uf2 - flip configuration bit? 58:30 replying to pr #4722 1:01:05 Status leds (RGB and/or single color) 1:04:40 eventually CP will be within 100 commits from MP 1:05:16 simplify the status LED flash pattern commit (from 3 weeks ago ) 1:11:17 pewpew_m4 speaker as status LED? (we should do that) 1:12:30 can reset into safemode 1:13:30 check out turning off the neopixel ( break into deep dive ) nrf status_leds.c 1:19:10 fixed and demonstrated with neopixel disabled! 1:20:00 review the simplify_status_led code changes 1:28:45 boot loader blinks unchanged ( tinyuf2 ) 1:29:15 any way to slow down a crash/reset loop 1:32:15 crash reset loop continue 1:36:28 any differences between connected to computer or powerbank ( no-safe mode is the same ) 1:39:30 Amend previous commit / push simplify_status_led 1:40:30 How much space did we win? (checking nrf feather, QT Py, and trinket_m0) 1:42:30 -Os flags when compiling ‘sometimes’ 1:51:30 Piunora Raspberry Pi CM4 crowd supply project getting close 1:52:44 Start BLE workflow next week / convert to native 1:57:50 Scott’s R.C.W law project on GitLab 1:59:40 public broadband utility bills 2:06:55 AT&T definition of ‘broadband’ 56K 2:11:00 efforts to port to other states 2:16:37 Wrap up (4:13pm PDT) 2:18:30 pet the cat :-) ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Join Scott today as he answers questions from the chat and works on the MicroPython 1.13 merge. Scott is sponsored by Adafruit to work on CircuitPython. Support them, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. 0:00 Getting started and hellos 5:00 housekeeping 5:50 NeoTrinkey 11:00 trying to load circuit python on my new metro esp32-s2, but the firmware doesn't seem to update since I don't see it mount 13:39 pick up where scott left off… 13:59 Oxide Computer exploit 15:56 Micropython & CircuitPython relationship 16:20 Micropython 8 years old - happy birthday! (April-29) 19:43 adafruit readme on github 20:03 BNO055 project see forums.adafruit.com 21:56 Interrupts/threading MP vs.CP 24:59 - memory related usage 27:25 CircuitPython libs just work cross platform, like using a LoRa RF modem on a RasPi with Blinka. 28:45 Can CircuitPython run on the Adafruit Feather boards? - see circuitpython.org/downloads 29:33 learning regular Python helps learning CircuitPython 31:27 Merge 1.12 completed - pull request 32:10 Thanks Jeff E. 32:35 anyone been able to get circuitpython working on a soft FPGA RISC-V? 33:33 Dan’s pull request for USB stuff! 34:18 - status update ?.merge MP 1.10 ….1.15 into ( CP 7.0 ) 38:40 Sublime merge process description 39:48 VS Code 41:48 forking... making a copy and modding from there, and merging you bring in changes from a newer version of what you forked from? 42:49 pycharm ? 43:35 contributing to github guide 43:57 expanding on 1.12 pull request 45:45 merging… 54:04 meld is free tool similar features 56:15 MP_ERROR_TEXT 57:50 using beyond compare right now to compare two 8GB binary files. 59:23 Source Tree, Visual Studio 1:04:30 Is there an Adafruit BMP280 eagle library? - need to check product… 1:07:20 GC collect - assign 0 to support collecting 1:09:20 under 200 files to merge left 1:14:50 assign 0, then gc vs. del for freeing memory 1:17:09 using del() to unimport 1:17:64 Does CircuitPython run any hardware CI to make sure there are no regressions on supported boards? 1:19:35 pairheap - we probably want it :-) 1:26:00 we don’t use mod microsocket 1:28:15 Jeff found places where we don’t have tests… 1:29:12 mp thread 1:31:00 frzqstr.py 1:32:44 in the py folder! 1:36:45 CP has more support in ‘struct’ and turn off non-standard stuff 1:42:35 py/compile.c # emit bytecode 1:45:35 walrus operator? PN_annassign 1:48:50 native mpy files? … emitbc.c # emit bytecode 1:52:25 yes - it’s nice to merge each milestone 1:54:32 py/gc.c 1:57:16 CP has f-string support, MP doesn’t 1:59:59 CP gets full version from github 2:00:30 py/malloc.c 2:02:15 “after I’m done with this, it is not going to compile, that’s now how it works” 2:06:07 py/modstruct.c ( we don’t use it I think ) 2:07:10 two spots where we want to say circuitpython… 2:09:12 some things that don’t belong in the py folder… 2:11:50 community broadband… 2:14:25 FCC interested in learning users broadband speeds https://broadbandmap.fcc.gov/#/ 2:16:57 py/obj.h (is a big file) 2:19:31 a while ago they changed the capitalizations of things…. 2:28:31 six to go 2:32:30 py/objmodule.c - 99 left 2:34:20 wrap up / thanks
Today Scott answers questions, talsk about merging in newer versions of MicroPython code into CircuitPython and his open law project, wa-law.org. Visit the Adafruit shop online - http://www.adafruit.com I’m sponsored by Adafruit to work on CircuitPython. Support them, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. Next week will be on Friday. 0:00 Getting started 5:15 Housekeeping 8:04 hellos 9:03 CircuitPython intro… 9:16 clap 10:05 Micropython updates / release notes for 6.2.0 based on Jun 2018 Micropython! 11:34 Talk of CP 7.0 - mpy version revisit 11:40 Will circup know what mpy to take based on version of the board? (yes) 15:10 How will the learn guide new zip thing behave? 16:25 Plan for multiple merges from MP to CP 17:25 MP v1.10 merged in S3 18:20 Merge conflict battles… 19:20 Damien's doing faster release cycles now as well - since 1.13, so CP Is going to really want to stay updated more often going forward. 20:45 Sublime Merge 22:01 plans to support the Arduino Portenta? 22:45 Are each of the 1.1x going to be tested, or we only care about the last one? 26:15 anything particular you're looking for in the merge reviews? looked through the 1.11 PR, and built it for the RP2040. 28:28 The changelog will be crazy… 29:20 the merge process explained 32:15 Maybe we can get community to run automation on different boards … 32:40 Arduino Portenta dual core M7/M4 33:48 Does the toolchain allow for a code builder front end ?(edited) 35:08 How often is this done? 36:40 Micropython release notes 37:45 Is there a difference in merging the change from MP into CP... and redoing the change from CP into the last MP? (does that make sense) 39:30 v1.10 40:16 CP translation considerations ( new strings?) 42:30 MP (native/machine code) emitters 43:22 thought CircuitPython already supported underscores in numeric literals. On 6.2.0 on QT Py, I can do a = 1_000_000; print(a) and it's a number 43:57 v1.11 45:50 mpy-cross & mpy-tool 45:52 will testing with .py possibly give different results from testing with .mpy? 48:22 v1.12 51:25 littlefs (vs. FAT ) 56:56 What on chip peripherals are used for a Neo pixel ? One channel of a timer ? 58:20 v1.13 1:06:39 Was there a time where people were saying that using foo and bar make IT less accessible and it is not good for STEM and being open? Is that still the opinion? 1:07:03 With threading an interrupts couldn't we just write them in a c code block to use that inside circuit python? 1:09:12 v1.14 1:12:00 Could you rename the cp Ports folder do eliminate all these naming conflicts ? 1:15:20 v1.15 1:22:07 v1.11 merge failing checks… 1:24:20 git worktree 1:26:23 Is there a specific CPython version that you target compatibility with? (2.7, 3.9, etc) 1:27:45 fixing atmel-samd build error (openbook_m4) 1:35:04 Git commit --amend and cherry picking… 1:37:00 Are you getting the diff between MP's v1.x and v1.(x+1), and then cherry-picking that? 1:38:25 So how are you bringing in the per-release changes from MP? 1:40:55 Scott’s ‘other project’ / use git to store laws / HB1336 - 2021-22 1:52:40 Uniform Electronic Legal Access 1:53:55 RCW (current state) 1:55:00 wa-log.org 1:56:50 adoc (asciidoc) vs markdown 2:04:56 Gitlab allows adding users 2:11:06 Bills and terms of service agreements are things I wish I could track history of it better 2:11:30 completely different question from the topic. why adafruit nrf52840 still using softdevice 6.1.1 stack instead of 7.2.0(because of different memory layout)? 2:14:12 (4:10pm) wrap up 2:15:30 - headset off (4:12 pm) ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
In the video I answer questions folks have, discuss GitHub Actions, discuss the new project bundles, talk about BLE file transfer progress. Next week will be on Friday. I’m sponsored by Adafruit to work on CircuitPython. Support them, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. Visit the Adafruit shop online - http://www.adafruit.com 0:00 Getting started and hellos 0:07:05 microlab 0:08:06 adafruit benefits / support 0:11:23 housekeeping 0:18:33 Learn Guides / “project bundle”Zip file downloads - soon to be on Circup (sp) 0:23:11 200 boards that support CP milestone 0:25:51 Filter ‘thing’ support matrix on readthedocs.io 0:31:14 obfuscation techniques if you want to make Python code unreadable 0:32:14 - filter on ‘alarm’ 0:26:44 downloads page has filters too 0:34:21 github actions, 1,500 repositories / github.com/circuitpython 0:37:14 TinyML for *python? 0:41:44 CI Monitor / problem matchers 0:44:25 installing micropython on rp2040 feather ( broken link … ) 0:47:43 add a sentence (to CI) to say that if you need help from a human, come on discord etc? 0:49:06 BlueFruit ideas - phone/tablet focus 0:51:12 BLE_File_Transfer pull request 0:53:59 demo - about 5-6KBs - larger block about 11KBs 1:03:17 talk about how CP gets onto these devices that are BLE only? Will that a per chip mfg process 1:04:59 TinyML file transfer mention 1:06:19 Python Struct is ‘awesome’ / PR out there now 1:08:44 wrapped up: how's the BLE going? 1:09:48 Remove LED line number blinks 1:14:59 Android on the road map ? 1:17:19 LED is a problem for low power 1:24:04 on error - run this file (mentioned) 1:25:19 new branch / connect jlink to feather 1:30:59 attempt to connect via gdb ( rebuild with DEBUG=1 to connect ) 2:03:54 first compile 2:06:28 last question call 2:06:44 set time between blinks configuration request 2:14:49 save mode blink 2:18:14 Safe mode ‘trick’ - fake it 2:21:12 Factor the blink-off delay out 2:24:12 ‘review’ the changes - and commit tannewt simplify_status_led 2:27:54 We can see Scott! 2:28:59 next week Friday 2:29:46 off stream ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Today we celebrate one year of deep dives, answer questions, discuss the BLE file transfer code and ladyada drops by to show her latest designs. Visit the Adafruit shop online - http://www.adafruit.com I’m sponsored by Adafruit to work on CircuitPython. Support them, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. Next week will be on Friday. 0:00 Getting started and hellos 5:57 housekeeping 8:54 anniversary 11:55 I am trying to write, compile and build in C++ for the RPi Pico. Do you have an advice for a source to increase my knowledge of C++ ? 14:18 hellow scoot , ever heard about low energy packets ,piconets in bluetooth,? they are uses for Wpan wireless personal area networks mostly for devices,wearables but rarely also for implantable devices 21;27 Open hardware summit 48:00 Could you please link in the Audio sessions you did previously? 49:47 Will CPY 7.x be merged with MPY 1.14 (or later) 52:41 what are the major milestones for that merge to take place? 57:26 ESP32-C6 1:06:06 Q: I don't remember with 100% certainty, but did you share a resource on getting up to speed, or at least familiar, with BLE, protocols, etc? 1:11:52 onto ble 1:50:12 Ladyada shows off her latest "stix" designs. 2:17:22 Chat catch up after LadyAda and then goodbyes ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Today I'll answer questions and discuss the work to get a BLE workflow going in CircuitPython. I’m sponsored by Adafruit to work on CircuitPython. Support them, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. Next week will be on Friday and will be the 1 year anniversary! 0:00 Getting started after technical difficulties 4:04 hello and thanks to 009 for the gpu clue 7:04 q: just started my first BLE project that i showed on S&T. i'm confused what the BLE components i need to setup some kind of "clear/reset connections and repair from scratch" button to make my board useable across devices without having to manually disconnect before reconnecting 9:19 core modules ble erase_bonding… 9:59 working on a digital thermometer for an old bmw that would obviously show the engine's temp. I want to use an stm32. 15:04 BLE - Bluetooth Low Energy 17:51 Circuit Playground Bluefruit - Bluetooth Low Energy 20:14 what applications would you recommend BLE for? 25:49 Bonding 29:45 I know you can SEND data with the Micro:bit BLE, but can you program it from mobile through BLE?? 30:14 Serial/UART over BLE is not "super standard" as opposed to Serial on Bluetooth. There is a circuit python LIB that does the Nordic way. But you cannot change the UUID for another copy of serial. 30:49 BLE workflow - discovery 35:59 for devices that allow multiple devices to connect (like a mouse that toggles between machines) do you need a separate BLE chip for each device? 37:04 Is this workflow tied to BLE or is it standard for regular (older) bluetooth as well? 37:24 The number of pairs, bonds, or connected? 40:19 I want to make a BLE keyboard that I can quickly switch between my phone, desktop, laptop, and RPi. So, what's the most bonds possible? 42:14 what security things should be we aware of when working w/ BLE? 46:24 Desktop / “where scott is at”... 46:54 Packet buffer fixes #4535 48:34 Don't the packets have sequence numbers? 49:21 Fix central pairing #4522 51:45 Proof of concept code for CP future behavior 52:28 I noticed a 7.0.0 tag has appeared in the CPY repo. wonder what that will bring 54:09 So it is not going to be in the "kernel" but in "library"? Or it is a mockup in "userland"? 54:39 Adafruit_CircuitPython_BLE_Creation / Creation IDs on github 58:04 instance id? ( NO ) 1:02:48 Creator IDs, how are you allocating them? So 0x1234_xxxx could be registered by one person/organisation? 1:03:56 Examples ( advertisement / scan? ) 1:05:04 File Transfer 1:06:54 The BLE SIG is in Kirkland, WA if you want to chat with them. I might have some contacts. 1:07:09 There is/was that file transfer solution over the REPL for micropython. Can you reuse that? 1:07:55 Do you envision the BLE file transfer protocol requiring the storage to be mounted writable from boot.py on the CircuitPython device? 1:09:54 ampy == That was the recommendation for micropython… ( “No - don’t like it”) 1:10:14 This might be old information... but at one point iOS didn't support serial over bluetooth. (Ham radio control apps used this). Has that changed ? 1:11:04 What is BLE range on CPB/Micro:bit (estimate) 1:12:29 Does BLE keyboard use scan codes or ASCII? ( Same as USB ) 1:13:46 BLE file transfer library 1:14:34 BLE number set 1:17:34 I'm going to need a way for my keyboard to know whether the device it's talking to is in Dvorak or US mode. 1:20:09 Flow Control 1:21:49 demo 1:23:09 In "Bluefruit Connect" you have packet based protocol, over serial with function like picking a color or sending image... you could expand that. 1:24:53 Is the bug that it's starting to corrupt the file system, but not finishing the job? Or that it's corrupting the filesystem at all? 1:25:19 Maybe that "Bluefruit Connect" and protocol and serial was there for old way to connect serial co-pro to old stuff, before nRF52 support. 1:25:55 - Demo …( using tio on arch linux ) 1:28:59 - Ryzen 16-core - speedier than a raspberry pi 4 1:31:39 - simulating the file system in a dictionary 1:33:32 book recommendations for ble ? 1:35:01 Blinka "server side" thing, to control a PiZero? Is that possible or we hit a limitation of BLE on the Blinka side? ( To have the BLE workflow for a Pi. ) 1:35:36 https://www.amazon.com/Make-Bluetooth-Projects-Raspberry-Smartphones/dp/1457187094 for Sander Vesik's question. 1:38:41 Any news about the "convergence" with BLE on micropython? /Both MP and CP were developing separately at the same time. / Low level, so blinka can build on top... to make it CP like. 1:45:34 outline for OHS 1:48:23 Soooo at 15 minutes is it a shallow dive ? 1:48:49 plan for next weeks - don’t block Trevor 1:50:12 wrap up
Today I answer any questions folks have, show the flash changes for RP2040, most other ports, show off the iMX RT dev boards from NXP and discuss the iMX RT flash changes. Visit the Adafruit shop online - http://www.adafruit.com I’m sponsored by Adafruit to work on CircuitPython. Support them, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. Next week will be on Friday. The week after on Friday I’ll be speaking at the Open Hardware Summit in the morning and then streaming the 1 year anniversary in the afternoon at the normal time. SMD boxes: https://www.amazon.com/dp/B008GDSGTK/ https://www.amazon.com/dp/B078RFCQSG 0:00 Getting started and hellos 04:11 Housekeeping 09:42 digikey order 20:41 designing a pcb? 24:19 How to configure the UART receive interrupt in Circuitpython? 26:17 USB host is supported on the Teensy 4.1, plan to support in CP? 27:28 What is the intended purpose of the Seesaw? 30:11 What are/would be the major milestones to get a BT-only experience working on a CP device? 38:35 HCI 39:24 So would REPL be part of the initial BT/BLE workflow, or a later enhacement? 41:24 Can we do BT gateaway chinese wall with BT on the AirLift and BT on the NRF52840? 43:04 Switching platforms - iMX unboxing 53:51 Doesn't the Teensy have a proprietary part? Like the bootloader? And it is supported. Where other iMX board are "raw"? So what will be the difference for CP support? 1:19:35 check on flash PR 1:29:50 How to add a flash chip to nvm.toml 2:08:51 wrap-up ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Today I answer questions and wrap up the RP2040 flash configuration changes. Visit the Adafruit shop online - http://www.adafruit.com I’m sponsored by Adafruit to work on CircuitPython. Support them, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Next week will be on Thursday! Typically goes for two hours or more. Questions are welcome. 0:00 Getting Started and Hellos 06:42 housekeeping (2:00 PM pdt ) 08:50 Sandy MacDonald (from Pimoroni) first live stream on the Keybow 2040. 10:35 Mailbag Compute Module board and module 12:56 bluetooth work coming… 14:05 Hacktober fest T-shirt 15:53 New Soldering iron 17:54 Detour - Logic Pro 16 / Logic 2 / Feather + SPI flash 19:40 simple parallel support - wrapping up pull request for spi flash… 21:34 asking about “the state of CircuitPython on Zephyr” and I realized I never heard the two in the same sentence. 24:09 DSLogic is a solid and cheaper alternative for a logic analyser … Saleae is awesome kit. 25:39 SPI Flash is local version ‘plug-in’ for the Logic 2 0.9.0 30:06 code review - including gen_stage2.py ( toml ) 41:39 continued review stage2.c.jinja 49:05 Dual Mode considerations… 50:08 continue review with rp2040 internal_flash.c 53:19 check out the code / testing… 56:40 flash data sheets… 1:02:10 How consistent are these [flash] commands? Is there a standard? Luke WrenThere are *many* standards :) 1:09:00 Learn guide / Building CircuitPython 1:09:30 Limor was talking about erasing the flash taking a long time in manufacturing (might have been on Desk of LA). This Flash has a "chip erase" command that is quicker than doing it block by block. 1:11:00 Isn't the most recent CircuitPython build info here: https://github.com/adafruit/circuitpython/blob/main/BUILDING.md 1:14:40 Dev Requirements for python 1:16:30 continue verifying that adding the Jinja, hyufman, typer, polib and TOML dependencies is ok 1:17:39 requirements-dev.txt / BUILDING.md 1:19:05 Is there a separate build process/etc for just the Blinka libraries? Does this impact them? 1:22:25 verify the CI dependencies ( build.yml ) 1:30:00 Is there a TOML parser for CircuitPython or is it "just python" 1:30:54 open the pull request - CI does the testing :-) 1:31:30 Are there other languages like circut python? Like circut C++ or circut JS? 1:34:59 Wrap up - Next week on Thursday 1:36:36 3:30PM PDT ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
I’m sponsored by Adafruit to work on CircuitPython. Support them, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. Next week is on Friday. If you are outside the US, double check the time because the US is changing this weekend. Time change in USA 0:00 Getting things going 03:09 hello 06:56 housekeeping 11:25 How do you keep the cats away from the workstation and hot irons? 12:40 how far is circuitpython's implementation of asynchronous I/O scheduler (uasyncio)? 14:44 Is there a time you'd pick the STM32F405 Feather over the SAMD51 feather? They seem similarly capable, but Adafruit seems all-in on the SAMD51 16:10 there was no feather airlift so ordered 1 on digikey which has not even shipped yet Ordered another airlift yesterday from adafruit when it came back in stock so which one will show up first? 18:05 Feather RP2040 flash speed fix 18:34 OSHPark USBmicromod/v1 19:29 Are you using debug-edge in anything? Know anyone else who is using it? 24:58 SMT assembly at OSH Park ( no ) 25:11 how does OSH's flex pcb compare to the flex PCB on the neopixel/dotstar strips 26:41 Overhead / RP2040 feathers… flash socket 34:30 How big flash chip we can use with Metro/Feather M4 express? I tried mounting 64Mb but circuitpython didn't support it!!! 35:37 nvm.TOML improvements 38:43 Salea Logic Pro 16 work 40:52 Is there a good small library for ingesting uart stuff, and parsing into variables, in CP ? (for multi headed use cases) 41:19 back to the logic analyzer…. Examining the clock speed up during the boot process 51:10 Luke mentions RXDLY see boot2_w25q80.S for reference 55:46 Well it delays your sampling to the point in time where you launch the next clock transition which should still give you plenty of hold time because your data hold will be equal to round trip delay so RX_SAMPLE_DLY = 1 should be fine for BAUDR = 2 ha, I bet the second read is the hardfault vector fetch 58:35 - works one time when new software is installed, but not on power up 1:00:30 is there a good source to understand how PIO was implemented? Its not part of the M0 "platform", right? So I'm assuming it’s something uniquely developed for the RP2040 1:01:30 updating firmware again…. 1:06:09 Lady Ada drops in1 1:07:14 ItsyBitsy RP2040 prototype ( launching with 4MB flash? ) Discussion of Flash speed 1:17:30 - Luke added “there is more timing to play with -- for boot2_w25q80 we also disable input schmitt to get good setup timing. Have run the winbond devices at their max 133 MHz SCK reliably” (with RP2040 running a bit off-label :-) ) 1:21:11 ‘quad enable bit non-volatile’ frustration / warning…. 1:38:40 - catch desk of ladyada on Sunday! 1:39:15 bye LadyAda 1:39:30 Does this relate to the QT-Py flash? 1:40:02 so is there a volatile QSPI enable also? 1:41:25 Can Micro Python libraries work on Circuit Python? 1:42:06 Schmidt Trigger idea from Luke … 1:44:02 how do you get those cool colors and such in your terminal prompt?? 1:44:20 Scott’s quick build machine -j32 1:48:45 commit code before moving back to C… 1:52:40 Did you get the Pomona clip working from last week? 1:53:30 What are you not allowed to tell us ? 1:55:15 is that 2 x 5 SWD header difficult to solder on? 1:56:55 how many times is a decent test for reliability in this sort of case? 1:59:25 rebase code 2:00:30 responding to spam calls .. 2:01:00 pull request 2:02:30 why are you using Mac? and why not Linux? 2:03:29 so what do you use to capture the camera feeds? 2:05:14 wrap up 2:06:28 sign off 4:07pm... ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. I’m sponsored by Adafruit to work on CircuitPython. Support them, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. Next week will be on Friday again. The week after will be on Thursday. 0:00 Getting started. Saying hi 8:05 Plan 10:30 Handed off 6.0.0 to Dan along with 12:42 deep sleep work. 29:31 portenta 32:00 open book 33:33 instant boot - not quite - on bare metal on RPi 39:00 ( something heads up to order… ) 40:30 Have been improving ESP32SPI and Requests. 44:19 MiniMqqt not tested yet on featherS2 47:13 weather display and requests on matrix portal 25:10 Distracted by the election. 1:01:08 Want to make an EInk Portal project today. 1:10:38 MagTag powered up 1:10:57 PR- rename product 1:12:44 Sony Z-V1 camera highlight… 1:14:20 MagTag features 1:22:00 first ‘make’ 1:27:00 programming the magtag complete 1:31:29 push and request review 1:32:25 update github workflow for magtag 1:37:20 discuss disabling autoreload 1:41:44 code - wifi weather 1:43:34 download latest adafruit request 1:48:59 using openweathermap.org api with disposable key 1:52:20 retrieved weather information 2:03:03 last call for questions …. 2:04:00 electioncal future… 2:05:55 there are bugs stil ( in the weather python test )l …. 2:07:25 wrap up 2:09:15 pet the cat Visit the Adafruit shop online - http://www.adafruit.com ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
I’m sponsored by Adafruit to work on CircuitPython. Support them, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. Next week’s stream will be on Friday. The US changes time this weekend so double check next week’s time again if you are outside the US. https://everytimezone.com/?t=5fa49200,4ec 0:00 Getting going, saying hellos and housekeeping 12:57 Plan 15:00 Is there anything like displayio.release_displays() that allows us to release only a single display install of all of them? 17:30 RaspberryPi bare metal thoughts 32:43 Grayscale support is checked in. Will be in 6.1.x 42:24 6.0 update 50:58 CI for electronics 59:08 Update `sleepio` status 1:17:54 `recv` debugging and PR creation 1:29:55 UF2 1:37:19 back to receive 1:52:56 NTP and adding UDP support Visit the Adafruit shop online - http://www.adafruit.com ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. I’m sponsored by Adafruit to work on CircuitPython. Support them, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. Next week is on Friday! Note that the US hasn’t changed daylight savings time yet. If you are outside the US double check the time here: https://everytimezone.com/?t=5f9b5780,4ec 0:00 Getting going and chit chat 11:17 Housekeeping 16:01 Plan Overview 17:56 cricket questions 18:40 Electronics youtube recommendations 20:24 prototype 25:58 Metro S2 is in the store! https://www.adafruit.com/product/4775 34:54 Let’s talk pinouts. Maybe SparkFun m.2 unboxing. 43:15 unboxing 58:00 MicroMod: https://www.sparkfun.com/micromod 1:19:59 RPi4 compute module: https://www.adafruit.com/product/4782 1:30:10 Circuit Python 6 status 1:35:10 New grayscale display: https://www.adafruit.com/product/4777 1:45:54 adding displayio 1:54:52 dive into the code 2:00:00 abstraction of 2 colors question… 2:02:10 Wikipedia - HSL & HSV 2:12:30 ESP-32 SPI issues…. 2:16:00 begin wrap up Visit the Adafruit shop online - http://www.adafruit.com ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Typically goes for two hours or more. Questions are welcome. I’m sponsored by Adafruit to work on CircuitPython. Support them, and by extension me, by purchasing hardware from https://adafruit.com Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. Next week’s stream is on Friday. 0:00 Getting everything going 2:00 Housekeeping 8:05 Plan 9:17 6.0.0-rc.0 is out! Please help us test. https://github.com/adafruit/circuitpython/releases 17:45 UF2 on ESP32-S2 18:00 LED filter purple / yellow / green states of the RGB LED Red light indicates UF2-Boot 20:00 Free RTOS 21:00 Partition Layout - Purple - Stage 2 boot loader… (decides between ota_0 and ota_1) 24:00 - download latest CP from s3 ( absolute latest ) 27:00 new product idea - feather sized LED acrylic 4 versions of boot loaders 29:00 Uf2-esp32s branch /generalize-bootloader 31:00 PIN_NEOPIXEL in board_led_state 35:29 RTS, CTS in UART 41:07 Arduino libraries in CircuitPython https://wiki.seeedstudio.com/ArduPy/ 42:43 More release talk 45:20 https://medium.com/bhdynamics/dynossat-edu-newspace-at-your-reach-9c2f88ca52e6 49:45 - getting the cp 6.0 release onto circuitpython-org 51:20 - ( but first - check the release notes and the green CI ) 1:05:00 - checking on release 1:06:40 - blog and forum posts announce release ( use convert*releasenotes*md tool ) 1:12:05 blog post ( blog.adafruit.com ) ( copy html and URL ) 1:15:00 tweet - https://twitter.com/adafruit/status/1317226793473085440 1:31:52 Suggestion for starting point/tutorials to learn how to start translating over from arduino sensors to python, so I can pitch in to the circuitpython effort? I am an enterprise dev using C#, js, etc https://learn.adafruit.com/creating-and-sharing-a-circuitpython-library https://learn.adafruit.com/circuitpython-essentials/ https://www.youtube.com/watch?v=DdB3QS4_QQU https://www.adafruit.com/product/4777 52:55 RTOS - https://zephyrproject.org/ 1:01:57 - super-loop in circuitpython See CP main.c for (;;) { } 1:18:50 https://jaycarlson.net/embedded-linux/ 1:26:13 Go Runtime on bare metal ? 1:27:20 Recently close pull requests ( see above in the plan ) 1:32:34 - getting started topics Read the docs - latest drivers ( all adafruit products ) Circuitpython community bundle ( non adafruit supported stuff ) Creating and sharing a circuit python library Transition from arduino Circuit python essentials guide Youtube pybay 2019 circuitpython ( may be in recent newsletter ) Accelerating driver development with circuitpython - Bryan Siepert Adafruit register Join discord #help with circuitpython, #circuitpython ( more development ) revistaSG on twitter https://twitter.com/mesheryio/status/1317116337123098624 1:39:23 More sleepio API work 1:42:49 hibernate / sleep #2796 Light sleep - everything is still on, but cpu is not clocked 1:48:19 - sleep until alarm ( till someone presses a button ) #2795 Deep sleep / hibernate - turn power off to parts of the chip ( loose ram and cpu state ) 1:44:52 sleep until alarm 1:45:54 - out of stack space ( c-stack vs. python stack - maximum recursion limit ) 1:54:01 Deep Diving into shared bindings alarm/__init__.h Compare between microdev1 and tannewt’s further work https://github.com/microDev1/circuitpython/compare/sleepCPY...tannewt:sleepio 1:56:55 IMXRT1011 - what do the buttons do? ( pet peeve ) Start by thinking about how you are going to use it! Google docs spreadsheet MCU Sleep Alarms - deep sleep research E.g. can USB wake uProc from deep sleep 2:04:34 - SAM D5x/E5X Family Data Sheet Sleep Mode entry and exit table 2:10:01 Continued discussion of API design approaches 2:11:01 discussion of line 42 - flashing the error LED, and impact on power 2:12:45 gui library question - displayio - the core of the display work in CP FoamyGuy display layouts / json - https://github.com/FoamyGuy/circuitpython_display_layouts 2:15:09 Wrap up Visit the Adafruit shop online - http://www.adafruit.com ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Deep Dive happens every week. Normally Fridays at 2pm Pacific but occasionally shifted to Thursday at 2pm. Next week's is on THURSDAY! Chat with me and lot of others on the Adafruit Discord at https://adafru.it/discord. 00:00 Setup and Getting going Particle sensing / air quality 11:35 Topics 13:30 Fixed digitalio issues for upcoming Metro ESP32S2 18:53 Released Beta 1. Please check it out and file issues 21:30 Been working imx flash as a break from ESP32-S2 22:00 Common mistake of not updating submodules after changing branches and then committing the change. 35:20 Check email and code reviews. Working in Public: https://www.amazon.com/Working-Public-Making-Maintenance-Software/dp/0578675862 1:06:39 Onto the forum. 1:57:08 https://github.com/adafruit/circuitpython/pull/3505 2:10:10 https://github.com/adafruit/circuitpython/issues/1084#issuecomment-702627327 2:14:29 https://github.com/adafruit/circuitpython/pull/3501 2:23:08 https://github.com/adafruit/Adafruit_CircuitPython_Register/pull/35#discussion_r498447585 2:31:40 Wrap up Visit the Adafruit shop online - http://www.adafruit.com ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
This week we talk about CircuitPython (@CircuitPython) with @adafruit’s Kattni Rembor (@kattni) and Scott Shawcroft (@tannewt). The suggested first board is CircuitPlayground Express with LEDs, sensors, and buttons. CircuitPython is also available for many other boards including the BLE Feather (NRF52832). For a basic introduction take a look at What is CircuitPython and see some example scripts. To dig a little deeper, check out the many resources in Awesome CircuitPython. The whole thing is open source so you can see their code. If you are thinking about contributing (or just want some fun chats), get in touch on the CircuitPython channel of the Adafruit Discord server: adafru.it/discord Many of the language’s design choices favor ease-of-use over ready-for-production. Imagine teaching an intro to programming class without worrying what computers will be used or how to get compilers installed on everyone’s machines before time runs out. One final note: Kattni did a project that gave us the show title: Piano in the Key of Lime. After we finished recording, Chris asked her why she didn’t add a kiwi fruit to her mix… Kattni explained she had limes and they were small. Chris only wanted a different fruit so she could rename it Piano in the Kiwi of Lime. It is always sad when we stop recording too early.
Designing a parametrically driven mounting plate for the Adafruit PyPortal. Download Design Files: https://learn.adafruit.com/pyportal-wall-mount Get Adafruit PyPortal https://adafru.it/4116 Shop for parts for your own DIY projects http://adafru.it/ Join the Adafruit Discord http://adafru.it/discord 3D Printing Projects Playlist: https://www.youtube.com/playlist?list=PLjF7R1fz_OOWD2dJNRIN46uhMCWvNOlbG 3D Hangout Show Playlist: https://www.youtube.com/playlist?list=PLjF7R1fz_OOVgpmWevin2slopw_A3-A8Y Layer by Layer CAD Tutorials Playlist: https://www.youtube.com/playlist?list=PLjF7R1fz_OOVsMp6nKnpjsXSQ45nxfORb Timelapse Tuesday Playlist: https://www.youtube.com/playlist?list=PLjF7R1fz_OOVagy3CktXsAAs4b153xpp_ ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe Join our weekly Show & Tell on G+ Hangouts On Air: http://adafru.it/showtell New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
In this tutorial we'll take a look at how to export projects with linked components. Adafruit CAD Models on GitHub https://github.com/adafruit/Adafruit_CAD_Parts Shop for parts for your own DIY projects http://adafru.it/3dprinting Join the Adafruit Discord http://adafru.it/discord Vote on this at Fusion 360 Idea Station https://forums.autodesk.com/t5/fusion-360-ideastation/allow-quot-save-as-quot-to-local-hard-drive-when-design-has/idi-p/8175994 More workarounds for saving locally https://blog.adafruit.com/2018/07/29/workaround-for-saving-fusion-360-projects-with-linked-components/ Adafruit Discount for Educators https://www.adafruit.com/educators 3D Printing Projects Playlist: https://www.youtube.com/playlist?list=PLjF7R1fz_OOWD2dJNRIN46uhMCWvNOlbG 3D Hangout Show Playlist: https://www.youtube.com/playlist?list=PLjF7R1fz_OOVgpmWevin2slopw_A3-A8Y Layer by Layer CAD Tutorials Playlist: https://www.youtube.com/playlist?list=PLjF7R1fz_OOVsMp6nKnpjsXSQ45nxfORb Timelapse Tuesday Playlist: https://www.youtube.com/playlist?list=PLjF7R1fz_OOVagy3CktXsAAs4b153xpp_ ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe Join our weekly Show & Tell on G+ Hangouts On Air: http://adafru.it/showtell New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Multistreaming with https://restream.io/ Visit the Adafruit shop online - http://www.adafruit.com Join the Adafruit Discord http://adafru.it/discord ----------------------------------------- Visit the Adafruit shop online - http://www.adafruit.com Subscribe to Adafruit on YouTube: http://adafru.it/subscribe Join our weekly Show & Tell on G+ Hangouts On Air: http://adafru.it/showtell Watch our latest project videos: http://adafru.it/latest New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ Music by bartlebeats: http://soundcloud.com/bartlebeats -----------------------------------------
Multistreaming with https://restream.io/ Visit the Adafruit shop online - http://www.adafruit.com Join the Adafruit Discord http://adafru.it/discord ----------------------------------------- Visit the Adafruit shop online - http://www.adafruit.com Subscribe to Adafruit on YouTube: http://adafru.it/subscribe Join our weekly Show & Tell on G+ Hangouts On Air: http://adafru.it/showtell Watch our latest project videos: http://adafru.it/latest New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ Music by bartlebeats: http://soundcloud.com/bartlebeats -----------------------------------------
Multistreaming with https://restream.io/ Visit the Adafruit shop online - http://www.adafruit.com Join the Adafruit Discord http://adafru.it/discord ----------------------------------------- Visit the Adafruit shop online - http://www.adafruit.com Subscribe to Adafruit on YouTube: http://adafru.it/subscribe Join our weekly Show & Tell on G+ Hangouts On Air: http://adafru.it/showtell Watch our latest project videos: http://adafru.it/latest New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ Music by bartlebeats: http://soundcloud.com/bartlebeats -----------------------------------------
Multistreaming with https://restream.io/ Visit the Adafruit shop online - http://www.adafruit.com Join the Adafruit Discord http://adafru.it/discord ----------------------------------------- Visit the Adafruit shop online - http://www.adafruit.com Subscribe to Adafruit on YouTube: http://adafru.it/subscribe Join our weekly Show & Tell on G+ Hangouts On Air: http://adafru.it/showtell Watch our latest project videos: http://adafru.it/latest New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ Music by bartlebeats: http://soundcloud.com/bartlebeats -----------------------------------------
Multistreaming with https://restream.io/ Visit the Adafruit shop online - http://www.adafruit.com Join the Adafruit Discord http://adafru.it/discord ----------------------------------------- Visit the Adafruit shop online - http://www.adafruit.com Subscribe to Adafruit on YouTube: http://adafru.it/subscribe Join our weekly Show & Tell on G+ Hangouts On Air: http://adafru.it/showtell Watch our latest project videos: http://adafru.it/latest New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ Music by bartlebeats: http://soundcloud.com/bartlebeats -----------------------------------------
Multistreaming with https://restream.io/ Visit the Adafruit shop online - http://www.adafruit.com Join the Adafruit Discord http://adafru.it/discord ----------------------------------------- Visit the Adafruit shop online - http://www.adafruit.com Subscribe to Adafruit on YouTube: http://adafru.it/subscribe Join our weekly Show & Tell on G+ Hangouts On Air: http://adafru.it/showtell Watch our latest project videos: http://adafru.it/latest New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ Music by bartlebeats: http://soundcloud.com/bartlebeats -----------------------------------------
Join the Adafruit Discord http://adafru.it/discord https://www.adafruit.com/adabox005 You've consumed four AdaBoxes - the equivalent of a delicious, nutritious, meal of DIY electronics. And now it's time for dessert. Pour yourself some coffee - or if you don't drink coffee a nice cold glass of milk - for it is finally time for Pi. ----------------------------------------- Visit the Adafruit shop online - http://www.adafruit.com Subscribe to Adafruit on YouTube: http://adafru.it/subscribe Join our weekly Show & Tell on G+ Hangouts On Air: http://adafru.it/showtell Watch our latest project videos: http://adafru.it/latest New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ Music by bartlebeats: http://soundcloud.com/bartlebeats ----------------------------------------- Multistreaming with https://restream.io/
This week, John builds a spooky digital Haunted Portrait, using the Raspberry Pi Zero and other goodies from the Adabox 005 kit! Join the Adafruit Discord http://adafru.it/discord ----------------------------------------- Visit the Adafruit shop online - http://www.adafruit.com Subscribe to Adafruit on YouTube: http://adafru.it/subscribe Join our weekly Show & Tell on G+ Hangouts On Air: http://adafru.it/showtell Watch our latest project videos: http://adafru.it/latest New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ Music by bartlebeats: http://soundcloud.com/bartlebeats ----------------------------------------- Multistreaming with https://restream.io/