# CircuitPython Weekly July 15th, 2019

Video of the meeting is available [on YouTube](https://youtu.be/KeNCEGPSqAs) and [on diode.zone](https://diode.zone/videos/watch/827ff4ec-4398-46fa-93b4-e625d5e936e5)


Join here for the chat all week: http://adafru.it/discord



The weekly happens normally at 2pm ET/11am PT on Mondays. Check the #circuitpython channel for notices of change in time and links to past episodes.


CircuitPython development is sponsored by Adafruit. Please support them by purchasing hardware from adafruit.com.


Reminders: Podcast available on most services. Let us know if we’re missing some.
## 3:40 Community News
CircuitPython takes flight - Using CircuitPython on High Altitude Balloons - Why choose CircuitPython? Matt writes -

"We had been programming it in C up till this launch, but with myself graduating next semester along with the Computer Engineer on our team it we needed to find a way to allow for ease of maintenance. When I found you guys had libs for the radio and GPS we decided to try that out. The radio portion worked fantastic."

ALL ABOARD' CircuitPython.org updates (https://circuitpython.org/downloads) - datum! We'll have a guide out this week on adding new boards. By the numbers: CircuitPython has over 66+ boards supported, adding more each week & has 16+ SBC Linux boards supported, adding more each day, & over 164+ Libraries, adding more every week!

We are testing the Circuit Playground Express Bluefruit! Will have beta units for community members! https://youtu.be/VtJJ8msPKLY

8/8/2019 is CircuitPython day! If you need to get in touch with us for planning your event and more, email: circuitpythonday@adafruit.com

13,078 thanks! Together as a community, we reached over 13,000+ humans thank you!
https://blog.adafruit.com/2019/07/14/13000-thank-yous-celebrating-13000-members-in-the-adafruit-discord-community-adafruit-discordapp/

## 6:50 State of CircuitPython + Libraries
### Overall
* 13 pull requests merged
  * 11 authors - rce1086, C47D, tgikal, siddacious, inventhouse, kattni, brentru, caternuson, iot49, jandjstudios, martymcguire
  * 6 reviewers - brentru, caternuson, tannewt, ladyada, siddacious, makermelissa
* 13 closed issues by 7 people, 10 opened by 7 people


Overall: We are close to 4.1.0 stable release, that is being facilitated by getting 5.0 beta going. Libraries side, very excited to see more community bundle additions. When we did the initial bundle, we’ve added a lot, but more to community bundle recently - good to see non-Adafruit hardware.
### 9:15 Core
* 5 pull requests merged
  * 5 authors - rce1086, C47D, iot49, jandjstudios, kattni
  * 2 reviewers - tannewt, siddacious
* 7 open pull requests
  * https://github.com/adafruit/circuitpython/pull/1996
  * https://github.com/adafruit/circuitpython/pull/1993
  * https://github.com/adafruit/circuitpython/pull/1986
  * https://github.com/adafruit/circuitpython/pull/1985
  * https://github.com/adafruit/circuitpython/pull/1858
  * https://github.com/adafruit/circuitpython/pull/1363
  * https://github.com/adafruit/circuitpython/pull/1274
* 2 closed issues by 2 people, 4 opened by 2 people
* 182 open issues
  * https://github.com/adafruit/circuitpython/issues
* 6 active milestones
  * 4.1.0: 1 open issues
  * 4.x - Features: 38 open issues
  * 4.x.x - Bug fixes: 3 open issues
  * 5.x: 2 open issues
  * Libraries: 9 open issues
  * Long term: 125 open issues
  * 4 issues not assigned a milestone


Download stats by board:


| Board                                         | 4.0.2  | 4.1.0-beta.1  |
| ----------------------------------------------|--------|---------------|
| arduino_mkr1300                               |   6    |       1       |
| arduino_mkrzero                               |   11   |       3       |
| arduino_zero                                  |   26   |       7       |
| bast_pro_mini_m0                              |   0    |       0       |
| capablerobot_usbhub                           |   0    |       0       |
| catwan_usbstick                               |   0    |       0       |
| circuitplayground_express                     |  560   |      31       |
| circuitplayground_express_4h                  |   4    |       0       |
| circuitplayground_express_crickit             |   15   |       0       |
| circuitplayground_express_digikey_pycon2019   |   2    |       0       |
| electronut_labs_blip                          |   5    |       2       |
| electronut_labs_papyr                         |   1    |       0       |
| escornabot_makech                             |   0    |       0       |
| feather_m0_adalogger                          |   37   |      10       |
| feather_m0_basic                              |   42   |       7       |
| feather_m0_express                            |   97   |      11       |
| feather_m0_express_crickit                    |   3    |       0       |
| feather_m0_rfm69                              |   4    |       0       |
| feather_m0_rfm9x                              |   34   |       0       |
| feather_m4_express                            |  118   |      18       |
| feather_nrf52840_express                      |   38   |      11       |
| feather_radiofruit_zigbee                     |   0    |       0       |
| gemma_m0                                      |   80   |       2       |
| gemma_m0_pycon2018                            |   3    |       0       |
| grandcentral_m4_express                       |   33   |       8       |
| hallowing_m0_express                          |   24   |       2       |
| itsybitsy_m0_express                          |   38   |       5       |
| itsybitsy_m4_express                          |   79   |      13       |
| kicksat-sprite                                |   0    |       0       |
| makerdiary_nrf52840_mdk                       |   7    |       3       |
| makerdiary_nrf52840_mdk_usb_dongle            |   19   |       4       |
| meowmeow                                      |   0    |       0       |
| metro_m0_express                              |   75   |       7       |
| metro_m4_airlift_lite                         |   21   |       1       |
| metro_m4_express                              |   74   |      13       |
| mini_sam_m4                                   |   0    |       0       |
| particle_argon                                |   6    |       1       |
| particle_boron                                |   0    |       0       |
| particle_xenon                                |   2    |       2       |
| pca10056                                      |   9    |       7       |
| pca10059                                      |   21   |       8       |
| pewpew10                                      |   27   |       7       |
| pewpew13                                      |   0    |       0       |
| pirkey_m0                                     |   1    |       0       |
| pybadge                                       |   77   |      19       |
| pybadge_airlift                               |   -    |       1       |
| pygamer                                       |  216   |      25       |
| pygamer_advance                               |   -    |      16       |
| pyportal                                      |  245   |      50       |
| robohatmm1                                    |   1    |       0       |
| sam32                                         |   4    |       0       |
| sparkfun_lumidrive                            |   0    |       0       |
| sparkfun_nrf52840_mini                        |   2    |       3       |
| sparkfun_redboard_turbo                       |   1    |       1       |
| sparkfun_samd21_dev                           |   5    |       2       |
| sparkfun_samd21_mini                          |   2    |       1       |
| trellis_m4_express                            |   67   |       3       |
| trinket_m0                                    |  222   |      19       |
| uchip                                         |   0    |       0       |
| ugame10                                       |   5    |       4       |
| ----------------------------------------------|--------|---------------|
|                                         Total |  2369  |      328      |
| ----------------------------------------------|--------|---------------|


Download stats by language:


| Board            | 4.0.2  | 4.1.0-beta.1  |
| -----------------|--------|---------------|
| ID               |   2    |       0       |
| de_DE            |   45   |       9       |
| en_US            |  2188  |      287      |
| en_x_pirate      |   21   |      22       |
| es               |   24   |       2       |
| fil              |   0    |       0       |
| fr               |   69   |       5       |
| it_IT            |   5    |       2       |
| pl               |   6    |       1       |
| pt_BR            |   6    |       0       |
| zh_Latn_pinyin   |   3    |       0       |
| -----------------|--------|---------------|
|            Total |  2369  |      328      |
| -----------------|--------|---------------|




### 10:50 Libraries


* 8 pull requests merged
  * 7 authors - brentru, caternuson, tgikal, siddacious, inventhouse, martymcguire, kattni
  * 5 reviewers - brentru, caternuson, ladyada, siddacious, makermelissa
* 38 open pull requests
  * https://github.com/adafruit/Adafruit_CircuitPython_SK9822/pull/2
  * https://github.com/adafruit/Adafruit_CircuitPython_WS2801/pull/4
  * https://github.com/adafruit/Adafruit_CircuitPython_GFX/pull/6
  * https://github.com/adafruit/Adafruit_CircuitPython_Debouncer/pull/8
  * https://github.com/adafruit/Adafruit_CircuitPython_BitbangIO/pull/1
  * https://github.com/adafruit/Adafruit_CircuitPython_TLC59711/pull/5
  * https://github.com/adafruit/Adafruit_CircuitPython_NRF24L01/pull/1
  * https://github.com/adafruit/Adafruit_CircuitPython_MAX31865/pull/9
  * https://github.com/adafruit/Adafruit_CircuitPython_Fingerprint/pull/11
  * https://github.com/adafruit/Adafruit_CircuitPython_framebuf/pull/14
  * https://github.com/adafruit/Adafruit_CircuitPython_Hue/pull/8
  * https://github.com/adafruit/Adafruit_CircuitPython_Hue/pull/7
  * https://github.com/adafruit/Adafruit_CircuitPython_Hue/pull/6
  * https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/15
  * https://github.com/adafruit/Adafruit_CircuitPython_BLE/pull/14
  * https://github.com/adafruit/Adafruit_CircuitPython_MIDI/pull/13
  * https://github.com/adafruit/Adafruit_CircuitPython_AdafruitIO/pull/21
  * https://github.com/adafruit/Adafruit_CircuitPython_AdafruitIO/pull/20
  * https://github.com/adafruit/Adafruit_CircuitPython_LSM303/pull/11
  * https://github.com/adafruit/Adafruit_CircuitPython_DotStar/pull/36
  * https://github.com/adafruit/Adafruit_CircuitPython_DotStar/pull/35
  * https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font/pull/6
  * https://github.com/adafruit/Adafruit_CircuitPython_BNO055/pull/30
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/42
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/39
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/34
  * https://github.com/adafruit/Adafruit_CircuitPython_PyPortal/pull/20
  * https://github.com/adafruit/Adafruit_CircuitPython_SSD1306/pull/26
  * https://github.com/adafruit/Adafruit_CircuitPython_seesaw/pull/36
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/57
  * https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/pull/51
  * https://github.com/adafruit/Adafruit_CircuitPython_Pypixelbuf/pull/1
  * https://github.com/adafruit/Adafruit_CircuitPython_SimpleIO/pull/41
  * https://github.com/adafruit/Adafruit_CircuitPython_MiniMQTT/pull/1
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/59
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/57
  * https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/pull/45
  * https://github.com/adafruit/Adafruit_CircuitPython_Bundle/pull/174
* 11 closed issues by 5 people, 6 opened by 5 people
* 120 open issues
  * https://circuitpython.org/libraries/contributing
Library updates in the last seven days:
**Updated Libraries**
 * [Adafruit_CircuitPython_SimpleIO](https://github.com/adafruit/Adafruit_CircuitPython_SimpleIO)
 * [Adafruit_CircuitPython_ESP32SPI](https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI)
 * [Adafruit_CircuitPython_PyBadger](https://github.com/adafruit/Adafruit_CircuitPython_PyBadger)
 * [Adafruit_CircuitPython_SI4713](https://github.com/adafruit/Adafruit_CircuitPython_SI4713)
 * [Adafruit_CircuitPython_INA219](https://github.com/adafruit/Adafruit_CircuitPython_INA219)
## 12:07 Hug Reports
@cgrover (lurking)


14:28 @charlesburnaford
* Hug report to everybody, finding CircuitPython wonderful and useful


15:03 @danh
* @jerryn for testing my BLE PR’s
* @jepler for PWM audio on nrf work
* @ATMakersBill for snazzy pinout diagrams (in progress), including producing them in an automated way
* @deshipu for EuroPython talk, which I watched: it was great!


16:08 @deshipu
* Group hug to everyone who has worked on CP.
* Been to EuroPython, and people are floored by CP, amazed at how simple it is.
* Hugs from everyone at EuroPython!


17:13 @docmollo (missing meeting)
* @kattni for helping get the WPA2 Enterprise changes merged into the ESP32SPI library
* @jerryn for help in bug hunting in my WPA2 Enterprise code for the ESP32SPI library


@gpro1 (lurking)


17:47 @jepler (not in meeting)
* @ladyada for advice about PWM audio frequency
* whoever helped me get circuitpython on this particle xenon
* @tavish for their interest in what I’m working on


18:07 @jerryn
* @danh for the BLE updates
* @makermelissa for the PyPortal Calculator demo


18:34 @kattni
* @docmollo for slogging through a merge conflict
* @sommersoft for continuing to work on adabot and getting cirpy.org/libraries and /libraries/contributing updated and automated
* Embedded.fm, Elecia and Chris for hosting me and Scott this weekend
* @tannewt for recording the podcast with me
* @krayola for continued help with my keynote


@kingernorth (lurking)


19:24 @MakerMelissa
* @tannewt for all the recent Displayio Work
* @kattni for your upcoming keynote
* @deshipu for sharing your EuroPython talk
* Group Hug


@mikebarela (lurking)


@robotsgoboop (lurking)


20:02 @siddacious
* @mscosti/@robotsgoboop for awesome work on adding server functionality to the Airlift boards
* @hathach and @ladyada for kicking butt doing some awesome USB work
* @sajattack for his awesome pyportal bbs
* @tannewt for awesome OLED work
* @ladyada and @adafruit for knocking it out of the park with an awesome demo to some bigwigs
* @ATMakersBill for initial work on some super sweet pinout diagrams with Sercom and timer info


21:54 @sommersoft
* @robotsgoboop/mscosti for the server addition to ESP32SPI library.
* @danh for BLE Central work
* @jepler for nRF audioio/pwmout work
* Group Hug!


12:33 @tannewt
* @robotsgoboop mscosti - Working on ESP server support!
* Jepler for nrf work
* Dhalbert for ble central work!
* Jacobly0 for samd-peripherals fix
* J & J Studios for Datum boards
* MakerMelissa for website help
* Siddacious for maintenance stuff, reviews and guide updating
* Ladyada for lotsa reviews and merges
* Embedded.fm for having us and kattni for guesting with me
* Scott hanselman for having me on his podcast
## 22:22 Status Updates
@cgrover (lurking)


24:55 @charlesburnaford
* Don’t have a whole lot to talk about, in the middle of the storm (Tropical Storm Barry), didn’t get a whole lot done.


26:02 @danh
* Made PR’s for new BLE functionality in circuitpython and adafruit_ble library
* To do:
   * Make alpha or beta releases after PR approval
   * Catch up on PR reviews I haven’t had time for, including UF2 bootloader updates
   * Start on BLE HID


27:57 @deshipu
* PewPew at EuroPython: presentation and two days of workshops
* Looking into SAMD51 boards
* GIF support for Stage


31:25 @docmollo (missing meeting)
* Over the next few weeks, I’d like to make a few more tweaks and clean-ups to the Enterprise code in ESP32SPI’s WiFi Manager library


@gpro1 (lurking)


31:44 @jepler (not in meeting)
* unfortunately cannot participate during weekly meetings due to $DAY_JOB
* nrf pwm audio https://github.com/adafruit/circuitpython/issues/1038
   * status: looping a static waveform (sine wave) at 62.5kHz, 8-bit, mono
   * goals: some minimal functionality pushed mid-week, completion next monday
   * I believe I am on target to meet these goals
* I understand in theory how to play longer sample without glitching
* the hardware should support stereo audio out
* Audio will require 1 of the 4 PWM modules to be fully allocated to audio when AudioOut object is created
[cut here if it's too long to read in full - this would be "in the weeds material" if I could be present]
* nrf52840 has limited PWM features: 16MHz count rate max, each value in sample must play integral number of PWM cycles
* @ladyada's proposal: always play at 62.5kHz, gives exactly 8 bit fidelity
   * need code to do resample any incoming waveform to 62.5kHz, 8-bit
   * not sure about algorithms, performance - would love advice
* an alternative: vary carrier frequency by integer factor of original sample rate, but never below some cut-off value such as 62.5kHz.
   * Requires resampling to a calculated max value. 
   * Algorithm is clear, should work with same analog filter, small effect on audio fidelity hopefully.
   * 44.1kHz, the worst case among common sample rates, would be rounded to “7.5 bits” on output
* need to actually handle in-memory samples, FAT samples
* this code may need to be duplicated, to appear once in `audioio` and once in `pwmaudioio`.  Is there a way around this?


34:10 @jerryn 
* Testing BLE on various boards 
* Reviewing BLE PRs
* Repairing the deck on my house (not CP related, but time consuming and rewarding)
* Next week -- more of the same


36:24 @kattni
* Last week:
   * Learned how to add a new board to CircuitPython
   * Started the guide on how to add a new board to CircuitPython
   * Engaged in a lot of discussion regarding adding new board to CircuitPython
   * Worked with @sommersoft on sorting out automating the updates to circuitpython.org/libraries and /libraries/contributing
* This week:
   * Finish guide
   * Various fritzing objects
   * Library Monday Mini.
   * Merge PR from @sommersoft re: /libs and /libs/contributing
   * Continuing keynote prep.
   * Out starting Friday for 12 days
   * Keynoting PyOhio 27 July
   * PyOhio - 27-28 July


@kingernorth (lurking)


39:31 @MakerMelissa
* Last Week:
   * Finished PyPortal Calculator
   * Finished guide for PyPortal Calculator
   * Added some Datum boards to circuitpython.org
   * Worked on Testing FreqShow on Buster, but currently too many issues
   * Helped @fede2 start adding a board to Blinka
* This week:
   * Update a bunch of Arduino Display Breakout guides to reflect changes to drawing a bitmap
   * Start Adding Onion Omega 2 to Blinka and writing guide about how to add boards to Blinka


@mikebarela (lurking)


@robotsgoboop (lurking)


40:39 @siddacious
* VCNL4040 rev b testing, tester code and board, guide, library debugging
* Forum support, VEML7700 driver update to correct for high-lux nonlinearities from community member
* INA219 bugfix
* Next: VCNL4040 debugging
* Giving some Doxygen and Travis #love to some sad repos
* Bringing up a new rev of a Top Secret personal project


43:05 @sommersoft
* Last Week:
   * Dynamic RTD module support matrix:
      * Fixed bash command grouping. Passing Travis and ready for review.
   * adabot/circuitpython.org libraries:
      * Changed update script to submit a PR with changes, versus trying to push commits straight to master. Ready for review. Will update circuitpython-org's submodule once merged.


22:58 @tannewt
* Heads down on OLED support in displayio.
* Need to get caught up on email and reviews.
* Have SPI and I2C OLED support working, needs to be cleaned up.
* Looking at EINK this week.


## 44:52 In the Weeds
45:04 @tannewt
* Release 4.1.0 then 5.0.0 beta for ble and more display work?
46:36 @kattni
* Quick note about PRs and ensuring we’re keeping up with them


## 48:45 Wrap-up
