#circuitpython-dev

1 messages Β· Page 298 of 1

plucky flint
#

A GitHub release..?

idle owl
#

Yes. Hold on, let me see if you have access

#

You do!

plucky flint
#

IIRC you have some automation stuff that builds / deploys things.

#

Yes I do.

#

(have access to that circup repos)

idle owl
plucky flint
#

I'll cut a release right now.

#

ack

idle owl
#

Once you make a release, that's when the automation kicks in.

plucky flint
#

So, you want me to do a draft release, or just a regular release (I do releases all the time with other projects / gigs)? Just wanna know I'm doing what's right for you folks.

idle owl
#

For the release notes, please include what updates have been made, and you can thank Steven there as well.

#

Do a regular release, bump it to 0.0.8 to keep up with where you're at

plucky flint
#

All release notes are in CHANGES.rst

idle owl
#

Ah ok, fair enough

plucky flint
#

πŸ˜„

idle owl
#

Well include something in the release notes anyway πŸ˜„

plucky flint
#

I gotcha back

#

ack... will do.

idle owl
#

Since I have no idea what it does with empty release notes. Probably fine, but we avoid it.

plucky flint
idle owl
#

Perfect! Thank you!

plucky flint
#

Does this get automagically pushed to PyPI as a pip installable package..?

idle owl
#

It should, yes.

plucky flint
#

Also, do the RTD docs get updated too..?

#

(I mean automatically rebuilt)

idle owl
#

Yes that as well goes with any updates.

plucky flint
#

Stonking stuff... Automate all the things... I, for one, welcome our new automated build script overlords. πŸ˜‰

idle owl
plucky flint
#

Right... I'm AFK, helping Mary (my wife) to set up for a remote instrumental lesson she's giving.

idle owl
#

@plucky flint Alright, have a wonderful day!

plucky flint
#

Nice one..!

#

You too..!

onyx hinge
#

@slender iron there's that array primary_display_t , which has a union-of-busses and a union-of-displays. Is it guaranteed that the i'th bus and i'th display are related?

#

(and if so, where is that guarantee maintained?)

idle owl
#

@lone axle If I make a simple change to Adafruit_CircuitPython_Bitmap_Font can you test it? It's removing 3.0.0 backwards compatibility from the main file.

lone axle
#

@idle owl yep I should be able to test it. Probably not until a bit later this evening though.

idle owl
#

That works. Thanks. I'll tag CPLibians on the PR and you specifically as well.

lone axle
#

Okay cool ty.

manic glacierBOT
#

-mcpu implies -mtune:
https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html#ARM-Options

-mcpu=name[+extension…]

This specifies the name of the target ARM processor. GCC uses this name to derive the name of the target ARM architecture (as if specified by -march) and the ARM processor type for which to tune for performance (as if specified by -mtune). Where this option is used in conjunction with -march or -mtune, those options take precedence over the appropriate part of this opt...

manic glacierBOT
slender iron
#

@slender iron there's that array primary_display_t , which has a union-of-busses and a union-of-displays. Is it guaranteed that the i'th bus and i'th display are related?
@onyx hinge No, I don't believe so.

ionic elk
#

is there a way to declare a static array at a specific memory address? I could relocate my H743 filesystem cache to one of the AHB SRAM banks (128 each) but I don't really get how to do it... Micropython seems to fake it and their implementation is pretty complex.

timber mango
#

Can I get some help on making a python program display the contents of a txt file?

onyx hinge
#

@slender iron I can take notes today

slender iron
#

thanks @onyx hinge !

timber mango
#

If somebody closes an issue or PR, could you please add a comment saying why this was done? Thank you. Without knowing why this was done it is making me feel like I do not want to bother anymore and feels like a slap in the face.

pastel panther
#

@timber mango I thought my explanation was pretty clear. I don't think offense is an appropriate reaction but that is your choice. We value all contributions.

timber mango
#

@pastel panther I had not seen your last comment yet. I still disagree but it does not matter.

pastel panther
#

@timber mango it matters if you feel like you've received a slap in the face, and if you disagree with our choices I am happy to discuss it at a later time

slender iron
#

@ionic elk let's sync up later and we can chat linker scripts

serene warren
#

Hey y'll, gonna be lurking today - as usual.

modern wing
#

I may be joining late, and if so, I'll be happily lurking πŸ™‚

raven canopy
#

I have a conflict, and no real notes. Group hug to all!!

serene warren
#

Red text?

ivory yew
#

I'll be lurking today

half sedge
#

lurking

modern wing
#

Indeed -- stay safe, do what you can to be happy, and help each other if you can, when you can. adabot

#

Indeed -- stay safe, do what you can to be happy, and help each other if you can, when you can. adabot

serene warren
#

Hey y'll, gonna be lurking today - as usual.

onyx hinge
#

I'd better get started listing lurkers in the doc

serene warren
#

OK figured it out. Red text = try again. Not sure why it happened in first place.

modern wing
#

It's discord -- glitches be abound in times of high usage.

#

I had the same thing happen -- patience...wait a few, try again πŸ™‚

serene warren
#

Hello

errant grail
#

Hello! I'll be text only today.

timber mango
#

lurking today

inland tusk
#

Hello I am lurking today

turbid radish
#

Lurking, working on tomorrow's CircuitPython Newsletter

lone axle
#

Thank you πŸ™‚ had no idea the "Let's Check" button on the settings page unmuted me in the room.

bleak tiger
#

lurking today thanks

lone axle
#

That is probably how I've wound up accidentally un-muted a few times lately. πŸ˜…

serene warren
#

Notes doc today?

lone axle
tidal kiln
#

lurking

serene warren
#

Tanks πŸ™‚

onyx hinge
#

@slender iron maybe mention to order adafruit stuff from digikey right now (somebody's adding it to the doc right now)

crimson ferry
#

Notes doc is now in the pinned messages each week

simple pulsar
#

lurking occasionally

turbid radish
#

Fill Phil's shoes

onyx hinge
ivory yew
#

yay f-strings!

onyx hinge
#
Adafruit Industries - Makers, hackers, artists, designers and engineers!

The newΒ HackSpace Magazine Issue 29 presents making a frogger-like game in CircuitPython. An Adafruit Circuit Playground Express is used as a tilt-sensor controller. The tribute to this game in the…

lone axle
#

stevenabadie did some of the recent work on circup.

idle owl
#

@gilded cradle I have a question from JP: with displayio - it's very slow to switch out a line of text from, say "Wave to start" to "Scrub time: 20" the first time it is used. It's super fast the second time, onward. Is there a pre-load of glyphs or something to be done to make it equally fast the first time?

onyx hinge
idle owl
#

File an issue on the newsletter repo, submit a PR, or even email us.

crimson ferry
#

@idle owl font.load_glyphs(b'ABC123') ?

turbid radish
#

Send me things via Twitter at @anne_engineer

ivory yew
#

Steak of CircuitPython

solar whale
#

state of the snake

ivory yew
#

πŸ‘€ I'm always happy to do code reviews

idle owl
#

@crimson ferry Possibly? Where does the font come from in that?

onyx hinge
#

@simple pulsar lurking or talking today?

crimson ferry
#

@idle owl font = load_font('ondisk.bdf')

gilded cradle
#

@idle owl you can preload the characters ahead of time and it won't seem so slow. JP can look at the Apple Media Service example I collab'd with him on for an example.

onyx hinge
#

@idle owl thanks

idle owl
#

@onyx hinge For sure. Thank you πŸ™‚

#

@gilded cradle @crimson ferry Thank you!

onyx hinge
#

I'll get back on task

slender iron
ivory yew
#

I'm better at reviewing Python than C. πŸ˜‰

simple pulsar
#

Just lurking, with a bit of eating and bit of guide authoring.

slender iron
#

@simple pulsar did you want to review my midi library changes? (or did you already?)

tidal kiln
idle owl
#

@tidal kiln Not sure how it's being done - so thanks, I'll pass that on in case that's how.

slender iron
#

@zinc thistle are you lurking?

zinc thistle
#

Yup...discord newb

onyx hinge
#

@zinc thistle we're happy to have you listen in

gilded cradle
#

@zinc thistle feel free to drop back into the voice chat

idle owl
#

@zinc thistle No worries πŸ™‚ We all were at some point.

zinc thistle
#

haha...thank you...I'll drop back in for a min...

simple pulsar
#

@slender iron looks ok

half sedge
#

@slender iron About FPGA, I have a TinyFPGA BX and an Icebreaker "collecting dust", so I would love to make some use of it. Don't hesitate to share CircuitPython FPGA stuff.

slender iron
#

@half sedge nice! I just got an icebreaker. are you on the 1bitsquared discord?

half sedge
#

Nope, but I have a very low attention span for the moment. 😦

onyx hinge
#

As a counterpart to "keep it up", remember to share the load, which means to take a break when you need it.

idle owl
#

@onyx hinge Exactly. That's the best part about having a team. We can back each other up when needed.

simple pulsar
#

?

ionic elk
#

Aw dang now I have to get animal crossing

slender iron
#

I got it last night and have been liking it

lone axle
#

πŸ•

simple pulsar
#

Is the process to update the bootloader well documented for a typical user?

onyx hinge
half sedge
#

@tulip sleet I have been trying to get a BLE oxymeter, but found none in stock with reasonable delivery time. But advise on product with CP potential are welcome.

tulip sleet
#

@half sedge The BM1000C models (maybe BM1000E also?) are what work well. But the US stockers of these are sold out, so the ebay vendors that claim to have them are all in China. EU may be different, but probably also sold out.

half sedge
#

I am stable but in a country that only test severe case. So just staying home, waiting and monitoring my health.

tulip sleet
#

The CMS50D-BT is very flaky.

slender iron
#

@simple pulsar for updating the bootloader there is usually a uf2 that you can drag over to update it

ionic elk
#

ShenZhen IO and Oxygen Not Included also come to mind

#

More good games that are like work but harder and you have to pay for them πŸ˜‰

half sedge
#

@tulip sleet Probably sold out too or delivered in 6-8 weeks where I hope not to need that anymore!

gilded cradle
#

@ionic elk NinjaFlex is supposed to work well in the e3D Hemera hotend on just about any printer

ionic elk
#

Currently unavailable due to COVID-19 supply issues. Returning soon. NUUUU

#

dag nabbit dangit

gilded cradle
#

Aww, ok.

lone axle
#

@ionic elk It's definitely not the cheapest option but I have a Lulz Bot Mini and have had good luck using the "FlexyStruder" tool head with it to print ninjaflex.

inland tusk
#

@ionic elk check with noe and Pedro. They use that filaments

turbid radish
#

MacBook Pro ESC keys

ionic elk
#

who are noe and pedro

onyx hinge
#

first photo is some veggie broth

turbid radish
#

Noe and Pedro do 3D printing for Adafruit. They have a show on it Thursdays

lone axle
#

I like the lego castle case

tulip sleet
serene warren
#

Ruiz Brothers on Wednesday at 11am

#

EST

tulip sleet
#

@ionic elk I have a FlashForge Finder that the Ruiz bros (Noe and Pedro) say works well with NinjaFlex (I have not tried it). It does not have a heated bed. I bought it good-as-new from somebody on craiglist who checks and refurbs Amazon returns of FlashForge printers, bought from someone else (!) on craiglist, both are local

turbid radish
#

Thank you @idle owl for all your work on the weekly videos

ionic elk
#

CATALINAAAAA

idle owl
#

@ionic elk Pretty much. :sigh:

lone axle
#

I will update some devices tonight to 5.1.0 rc0

idle owl
#

@turbid radish You're welcome. Thanks for your help with uploading it. JP was a huge help.

serene warren
#

Great meeting. Keep safe to all.

errant grail
#

Thank you. Stay safe!

turbid radish
#

Perfect thanks jeff

onyx hinge
fierce girder
#

Sad that Europe has gone daylight savings, being an hour closer was nice the last couple weeks

solar whale
#

do you have a link to the calendar?

fierce girder
#

For awhile there it was only 5 hours ahead of to New York, so nice πŸ˜ƒ

ionic elk
#

@lone axle does the flexystruder come with the lulzbot or is it separate?

lone axle
#

It is separate (and a few hundred $ iirc)

ionic elk
#

I'm leaning toward the Lulzbot mini 2 or the FlashForge 3D Printer Creator Pro, but I'm open to other suggestions

lone axle
#

the stock extruder has the drive gear a little bit too far away from the hot end. So flexible filament can loop over and start coming out the side instead of getting forced down into the hot end.

#

The flexy struder changes the design a bit to move the drive gear basically as close as it can get to the hod end so that the fillament cant go anywhere but down and in to the hot end.

#

I've got a Lulz Bot mini 1 but I've seen the 2 in use and def have eyeballed it a few times. The belt driven axis's make it way quieter and a fair bit faster moving in the Z orientation.

ionic elk
#

On closer inspection it doesn't appear the mini 2 even has a flexystruder attachmetn

#

Hmm it says it just prints them out of the box though I guess

lone axle
#

Definitely not the cheapest machines (especially now adays). But I really like them for their "Plug and Play" nature. I was printing my first print within 10 minutes of unboxing. And even all these years later with the Lulz Bot mini 95% + of my prints are load it up click print and come back later to a finished part.

idle owl
#

@tulip sleet Is BLE_iBBQ ready for the bundle?

tulip sleet
#

sure, thanks, jp hasn't tried it yet, but it works fine for me, and we can always update it as necessary.

idle owl
#

@tulip sleet Alright. Thanks.

lone axle
#

I've got a few other printers as well, and have experience with several that aren't mine and I find that most of them require lots more tweaking and tinkering in order to get them working properly.

idle owl
#

@tulip sleet helper or driver

tulip sleet
#

same as heart_rate, etc. (I forgetwhich)

idle owl
#

ok I'll check thanks

lone axle
#

Oh nice, I didn't realize the 2 has a tool head that does flexy out of the box. That is cool. Definitely do heed the caution about the PEI build sheet + ninja flex though. Ninja flex sticks EXTREMELY well (too well in fact) to the PEI build plate. You definitely need to either use plain glass, or give it a good smear of PVA glue on top to act as a layer inbetween

ionic elk
#

@lone axle guess the Lulzbots are out of stock pretty much everywhere though

idle owl
#

@tulip sleet I tagged you as a reviewer on the PR. Obvs it needs to go through the checks.

lone axle
#

@ionic elk darn, I could see that though, they recently got taken over by a new company in North Dakota I believe. Moving their operations from CO. If you have a Microcenter nearby you might check there, my local one has usually got Lulzbots in stock.

#

I originally ordered it from Amazon I think. Though it was long ago, not sure if they still sell them or whether the recent takeover would have affected their supply.

idle owl
#

oh right. Release.

ionic elk
#

Ah it's on digikey! my savior!

#

only 2 left

idle owl
#

@tulip sleet It's failing Run actions/checkout@v1 with git checkout --progress --force d310cce85d178b1b4e69005219f1d84788cfeef0 ##[error]fatal: reference is not a tree: d310cce85d178b1b4e69005219f1d84788cfeef0 Removed matchers: 'checkout-git' ##[error]Git checkout failed with exit code: 128 ##[error]Exit code 1 returned from process: file name '/home/runner/runners/2.165.2/bin/Runner.PluginHost', arguments 'action "GitHub.Runner.Plugins.Repository.v1_0.CheckoutTask, Runner.Plugins"'.

#

This is one I've never run into.

tulip sleet
#

re-running, that might be temporary

idle owl
#

I tried. I'll give it a few minutes and try again.

tulip sleet
#

are you up-to-date from upstream?

idle owl
#

As in did I pull before adding the submodule?

#

I did.

tulip sleet
#

fetch and merge from adafruit/master

idle owl
#

Yeah

#

I did that right before doing this

slender iron
#

@ionic elk don't order from digikey yet. what imx rt boards do you have handy?

ionic elk
#

too late but I have a Teensy 4 on me

#

my 1010 is back in boston

slender iron
#

ok, you'll need to make another order then. πŸ™‚ get a 1010, 1050, and 1060. once we have an stm32f7 foundation we'll have you swap to imx

idle owl
#

It passes on my fork. Sigh. Rerunning again.

#

I'll trash the PR and recreate it. I guess see if that works.

tulip sleet
#

looking...

#

yah, I don't see anything wrong

idle owl
#

@tulip sleet That worked apparently.

tulip sleet
#

i am baffled

#

the issue supposedly fixed in checkout@v2, but we had trouble with that in circuitpython. We could try it in other places that put less stress on the github actions system

onyx hinge
#

@tulip sleet In the end the failures were just so weird I didn't even understand them. I'll try to characterize it better if I try again someday.

slender iron
#

@ionic elk ready when you are

#

@idle owl when you have a chance can you share your meeting notes template with me. I don't think you have yet

idle owl
#

@slender iron Oh. Yeah for sure.

slender iron
#

thanks!

#

I should have asked a long time ago

#

Here is the notes document for next Monday’s CircuitPython Weekly meeting. Everyone is encouraged to attend! Please add your hug reports and status updates even if you’ll be attending the meeting - it’s super helpful! If you are unable to attend but would still like to include updates, feel free to include them in the notes and we’ll read them off during the meeting. Hope to see you there! <@&356864093652516868> https://docs.google.com/document/d/1YZYYrODJwUpKD4PWWzjpPhzBAvf5Mf196r4z7uo6dns/edit?usp=sharing

ionic elk
#

@slender iron shoot sorry I closed my discord tab without realizing it and missed your pijng

#

I'm around now

slender iron
#

np, works for me. want to video or just audio?

ionic elk
#

Just audio is ok unless there was something you wanted to pull up

#

#define PLACE_IN_DTCM_DATA(name) name __attribute__((section(".dtcm_data." #name )))

#

STATIC uint8_t _flash_cache[0x20000] __attribute__((aligned(4)));

lapis hemlock
#

@onyx hinge I am here now.

onyx hinge
#

hello

lapis hemlock
#

Peek-a-boo.

#

So, the question is, whether both ** and power should be implemented.

#

Or one of them will suffice.

onyx hinge
#

I think **

#

if you want someone else to choose

lapis hemlock
#

Then you can't factor it out, because it will be a method of ndarray.

onyx hinge
#
array([ 0,  1,  4,  9, 16])
``` _cough_
#

okay, then make it power(), I was choosing ** not for any particular reason

#

3, 3 ways to take a power in numpy

lapis hemlock
#

** is more elegant, and I see arguments in favour. The question really is, whether it is worth the extra 1.5 kB.

onyx hinge
#

** costs 1.5kB more than power?

lapis hemlock
#

arctan2 cost around 1.5 kB, and the structure of the problem is very similar.

onyx hinge
#

or just in general either one costs 1.5kB

lapis hemlock
#

No, what I meant is that it would cost around 1.5 kB, and if it is **, then you can't switch it off.

onyx hinge
#

I think either way will be fine in circuitpython. just a matter for documentation.

#

I need to go afk

lapis hemlock
#

OK, I am turning in, so see you tomorrow.

#

πŸ‘‹

manic glacierBOT
#

I think we're mostly on the same page. @dhalbert has a pending PR to the bootloader to validate the power on start as you suggest: https://github.com/adafruit/uf2-samdx1/pull/111/files#diff-803c5170888b8642f2a97e5e9423d399R181

I don't think we need a configuration setting for this though because everyone should want it. It makes no sense to start when power is unreliable.

The only other bit is to ensure that the brown out doesn't lead to a safe mode on start up. We could do this by wri...

manic glacierBOT
raven canopy
#

listening to today's meeting: i play a fair bit of Destiny 2 these days. hmu for Steam friending.

manic glacierBOT
lone axle
#

it is accessing sys.argv[1] and other things that make it seem like it's for CPython, and not CircuitPython... Is that the case?

slender iron
#

@lone axle I think it is for CPython

manic glacierBOT
#

Oh, no, no. I do not suggest removing the flash in favor of the SD card. I just want to add the SD card as an alternative to flash for loading scripts and libraries. For instance, I have two Feather M0 RFM69 boards that I would really like to use with Circuitpython, but there is not enough flash left after loading Circuitpython. I would like to be able to add either a wired up SD card breakout or an Adalogger FeatherWing so I could load scripts and libraries from the SD card.

lone axle
#

Thank you

timber mango
#

I really like the idea of combining various modules with an MCU on the same Feather, such as the Feather M0 RFM69 and M0 WiFi. I really hope there might be M4 versions of some of these in the works at some point. πŸ™‚

crimson ferry
#

There are radio 'Wings for a lot of the variants.

#

I could go for a CircuitPython-capable LTE FONA (preferably Feather form factor).

#

The ESP32 S2 is likely to facilitate a single-board CP MCU+WiFi.

manic glacierBOT
bitter bronze
#

I have tried following the suggestions of Radomir, but have not been successful. I end up with a MAKECODE drive instead of the CIRCUITPY drive with current.uf2 with no date. There is a SPIFLASH folder which is empty. When all the lights are green, there is no drive listed in File Explorer. When I single click reset, the led next to the "On" LED is bright red for a few seconds, then switches to green and I then see the MAKECODE drive. Copying the adafruit-circuitpython-circuitplayground_express-en_US-5.0.0.UF2 file to the MAKECODE drive I see the file on the MAKECODE drive. I was expecting the drive to disappear at that point based on the directions, but that does not happen? I am missing some understanding and I am not sure what questions to ask now?

crimson ferry
#

@bitter bronze What happens when you double-click the reset button?

bitter bronze
#

Double clicking reset shows redlight for a few seconds and then the same light is green. Drive listed is MAKECODE.

tulip sleet
#

@bitter bronze If you are running Makecode, just single click to get into the bootloader. Then you should see CPLAYBOOT. Drag the .uf2 to that.

crimson ferry
#

Sorry, didn't realize MAKECODE had different behavior.

tulip sleet
#

it's confusing that it's different

bitter bronze
#

As far as I can tell, MAKECODE is not running. When disconnecting and reconnecting the CPX again, all the lights are green and no drive is seen either MAKECODE or CPX. Clicking reset once brings up the MAKECODE drive.

crimson ferry
bitter bronze
#

I am running Windows 10. I was wrong. MAKECODE was running. Stopping MAKECODE, unplugging CPX and plugging CPX in again (all green lights), clicking reset, I again see the MAKECODE drive.

tulip sleet
#

if you single press reset, do all the neopixels go green?

#

as opposed to double-click

#

i have a vanilla CPX here, not seeing MAKECODE with a simple MAKECODE program. I wonder if yours has an odd bootloader for some reason. What files do you see in the MAKECODE drive?

#

i see CPLAYBOOT if I single-click, or if i plug in the board fresh

bitter bronze
#

yes single click, all green, and MAKECODE drive disappears. I am sure that I am doing some thing the wrong order but I can't figure out what. DIsconnect CPX, reconnect CPX, all lights come on green, sigle click reset, shows one bright red light for a few seconds and then it turns to led red (I am color limited, so she said that it is red and not green as I stated earlier. It is next to GND, The smaller led nearer the edge is green.

tulip sleet
#

when you single-click, is there a pulsing led to the right of the usb connector (with usb at top)?

#

just yes or no is fine

bitter bronze
#

single click results in the D13 light slowly pulsing red (I think).

#

all other lights are green

tulip sleet
#

ok, good, so that's the bootloader, but you're not seeing CPLAYBOOT for some reason, so let's debug that. Are you running any third-party disk utilities like Acronis backup, Hard Drive Sentinel, or are you using Kaspersky antivirus?

bitter bronze
#

I am running Kaspersky and NovaBACKUP.

tulip sleet
#

do you have another machine you could try this on that's not running kaspersky?

#

also if you have a really old version of our drivers installed on the machine, that could be an issue, as described in the link above

#

but it would be several years old

bitter bronze
#

OK, I will look at the links. I will try that later on another machine this evening. Need to go now. Thanks again.

tulip sleet
#

sure, good luck!

manic glacierBOT
lone sandalBOT
manic glacierBOT
#

It is already possible to import code on the sd card. It would be something like this:

import busio
import digitalio
import board
import storage
import sys
import adafruit_sdcard

SD_CS = board.SD_CS  # setup for M0 Adalogger; change as needed

# Connect to the card and mount the filesystem.
spi = board.SPI()
cs = digitalio.DigitalInOut(SD_CS)
sdcard = adafruit_sdcard.SDCard(spi, cs)
vfs = storage.VfsFat(sdcard)
storage.mount(vfs, "/sd")

# add /sd to the end of ...
timber mango
#

Now, I just need to get a few SD card breakout boards and/or AdaLogger FeatherWings. Not anytime soon though. 😦

manic glacierBOT
#

In trying to add support for Fomu, I found a script called dfu.py that seems to indicate that it can be used to create standard USB DFU images. However, the output does not appear to be valid.

For comparison with the standard dfu tools:

$ cp firmware.bin firmware-dfu-suffix.dfu
$ dfu-suffix -a firmware-dfu-suffix.dfu -p 70bl -v 1209
$  ../../../tools/dfu.py -b 0:firmware.bin -D 0x1209:0x70b1 firmware-python.dfu
$ ls -l *.dfu
-rwxrwxrwx 1 xobs xobs 307000 Mar 31 10:38 firmw...
#

I've added it to the CI list, but then I noticed we were generating UF2 files instead of DFU files, which made me remember something.

I've been using the .bin files and manually generating .dfu files from those, because the dfu.py script produces invalid images that don't work with dfu-util. Since this is getting upstreamed, I've opened #2742. I can manually call dfu-suffix, but it seems like it would be better to use the built-in dfu.py.

manic glacierBOT
#

In looking closer, it looks like dfu.py uses generates nonstandard DFU versions. The bcdDFU field is 01.1a, whereas the standard defines the bcdDFU field should be 01.00, at least according to the most recent spec I can find: https://www.usb.org/sites/default/files/DFU_1.1.pdf

Additionally, there is a lot of extra stuff that gets added.

With this patch I can get dfu.py to generate the same file as dfu-suffix:

diff --git a/tools/dfu.py b/tools/dfu.py
index 54b602...
manic glacierBOT
#

It looks like the build failed because it couldn't connect to Azure:

0 upgraded, 26 newly installed, 0 to remove and 23 not upgraded.
Need to get 188 MB of archives.
After this operation, 1,046 MB of additional disk space will be used.
Err:1 http://azure.archive.ubuntu.com/ubuntu xenial/main amd64 libunistring0 amd64 0.9.3-5.2ubuntu1
  Could not connect to azure.archive.ubuntu.com:80 (52.177.174.250), connection timed out
Err:2 http://security.ubuntu.com/ubuntu xenial-security/ma...
manic glacierBOT
slender iron
#

@atomic summit nice esp-idf video! I too would love to understand cmake πŸ™‚

manic glacierBOT
atomic summit
#

Cheers @slender iron - CMake seems unnecessarily verbose and totally awkward, and the general docs, including those specific to the IDF are PANTS!

#

I hope the term PANTS is something you use in the US. If not...

#

PANTS means "Rubbish" or "Trousers" or "Underpants"

manic glacierBOT
lone sandalBOT
onyx hinge
#

@atomic summit I've never heard of a system for controlling the software build process that is universally liked. The ones in wide use must each have their strengths, I figure, so I try to be positive about them.

#

sometimes it hurts that C/C++ don't have a unified "story" for building software like so many newer languages have.

#

these actions failures are really frustrating. Unable to connect to azure.archive.ubuntu.com:http:

timber mango
#

PANTS means "Rubbish" or "Trousers" or "Underpants"
@atomic summit I like it! I also like the Aussie terms of "stuffed up" (not working) and "fallen over" (completely SNAFU)." πŸ™‚ πŸ˜‰ You may know me as hybotics on Twitter and elsewhere. πŸ˜‰

#

@onyx hinge The only reason make hangs around is that it has been there forever from the Bell Labs days of UNIX. πŸ™‚

solar whale
#

@onyx hinge The only reason make hangs around is that it has been there forever from the Bell Labs days of UNIX. πŸ™‚
@timber mango so have I πŸ˜‰

onyx hinge
#

-536 bytes free in flash firmware space out of 253440 bytes (247.5kB).

#

OK now we get the real errors. Looks like select boards will need Protomatter disabled, but that's not unexpected.

#

@slender iron if I find I need to selectively enable FramebufferDisplay then it needs to go into its own module, right? Do we want displayio.framebuffer.FramebufferDisplay now that we can properly do submodules?

#

or just framebufferdisplay as a parallel top level module

lone axle
#

I did try out 5.1.0.rc0 on a few devices last night and did not run into any trouble. I have a few more I intend to try but might not get to them until tomorrow. I'm teaching programming fundamentals remotely starting tonight so it will take a good chunk out of my evening.

orchid basinBOT
timber mango
#

@slender iron Do we want displayio.framebuffer.FramebufferDisplay now that we can properly do submodules?
@onyx hinge I would go with this in order to keep the associations and connections clear. One can always do python from displayio.framebuffer import FramebufferDisplay

marble hornet
#

@tulip sleet i was thinking about the safemode issue (I;m having it rn w/ the watch when it runs out of battery (prototype)). i think a good solution might be running a different script when it boots on safemode instead of the normal one. that way the coder could choose to just run the normal script or run some sort of error reporting script or a check to see if anything is broken script.
thoughts?

onyx hinge
#

@timber mango that was more or less my thinking, I'm happy we're on the same wavelength

slender iron
#

or just framebufferdisplay as a parallel top level module
@onyx hinge This looks good to me. we can't enforce correct submodule import so best to avoid it

#

ie, you can use microcontroller.pin by just import microcontroller

onyx hinge
#

true

slender iron
#

we just fixed it so import microcontroller.pin works too

onyx hinge
#

maybe someday we'll fix the other part πŸ’­

idle owl
#

Note to self: if git fetch is taking ages, git clone will not be any faster. πŸ™„

raven canopy
#

git clone --show=True? πŸ˜‰

idle owl
#

Ah crap I did forget to call show!

slender iron
#

I'll be out for an hour or two. it's grocery shopping day

idle owl
#

@slender iron I sent you an email regarding RTD, so you're aware. No rush on it, my priorities are elsewhere at the moment.

raven canopy
#

May the odds be in your favor!

onyx hinge
#

we just did our grocery shopping too. our local grocery has stuff pretty much in stock so that's nice

obsidian compass
#

I have a question, is it really necessary to have a neopixel LED on custom designed CP boards ?

idle owl
#

@obsidian compass It's not necessary, no. It is handy to have a status LED though.

#

Some of our boards use DotStars if that's any help.

#

But it's not required to have a status LED to be considered a CircuitPython compatible board.

obsidian compass
#

Yes i have thought about that but can't find that via any local distributor here in India

idle owl
#

Understandable.

obsidian compass
#

Thanks @idle owl πŸ™‚

slender iron
#

we do have plain rgb led support too

#

that is what the particle boards use

obsidian compass
#

Even the @indigo wedge designed serpente boards have RGB LEDs IIRC

#

?

indigo wedge
#

yes it's a "dumb" RGB LED

obsidian compass
#

So I am guessing we need to change the type of LEDs while compiling the bootloader for the custom board and we will be good to go?

onyx hinge
tulip sleet
#

@marble hornet Thanks! A safemode.py is an interesting and simple solution. I'm going to get an issue discussion going more after I finish some bootloader stuff.

timber mango
#

I set my two Feather M0 RFM69 boards up with Circuitpython 5.0.0 and a few libraries I need. There is no 'time' library though, which I need for timing functions.

onyx hinge
solar whale
onyx hinge
#

thanks @solar whale for confirming and moving to the right place πŸ™‚

bitter bronze
#

@tulip sleet I tried it on a different machine and I was able to get it working. Thanks.

tulip sleet
#

@bitter bronze great!

bitter bronze
#

@tulip sleet are there any plans to work with Kaspersky or look into a work around for this problem. I have sent a message to Kaspersky letting them know about this problem and suggesting how they could support your work. I requested that they look into the issue and possibly provide a work around or code in their software.

tulip sleet
#

I filed a ticket with them or something like that a long time ago. Some other utility software mfrs were more responsive, e.g. AIDA64.

#

i would make sure it's Kaspersky by disabling or temporarily uninstalling. It could also be something else like the backup program.

#

the previous issues we had with Kaspersky were a hang, not just the drive being invisible

bitter bronze
#

Thanks. I will try turning off Kaspersky. The backup program is only started when I want to do a full dump once a week. I restarted the system after the last backup and it is not running now, but I still can't see the CPX drive. I have not had any hangs.

tulip sleet
#

do you have AIDA64? you might have installed it a long time ago and forgotten about it. Also Hard Drive sentinel and other HDD monitoring programs

bitter bronze
#

I do not have it, but looked it up after you mentioned it. I do not have the Hard Drive Sentinel or other explicit monitoring programs.

ionic elk
#

@slender iron

Traceback (most recent call last):
  File "../../tools/build_memory_info.py", line 71, in <module>
    ram_region = regions["RAM"]
KeyError: 'RAM'

any ideas?

#

I don't have a RAM region on the H743 - how did you get around this on the imx, which also lacks said region?

#

Also, I'm embarrassed to admit that the closer I look at the i.mx linker file the more confused I get. I've been hacking at it all morning and feel even more lost than I was when I started...

#

Why are DTCM and ITCM 32kb, despite the datasheet saying they're 128k? How can you fit the instruction code in the ITCM if it's either of those sizes? Is the DTCM being used for more than the stack? Why would the stack even have a data/bss section if not? How is it determined what gets put in the DTCM data/bss vs the normal region?

#

And am I right that the i.mx autogenerated most of that reset-handler code? STM has a startup file written in assembly and a system file in c, but neither of them even reference dtcm, even though the default STM32H7 linker appears to use dtcm for both the stack and heap.

lapis hemlock
#

@onyx hinge Jeff, I have implemented the ** operator, and binary operands can now be swapped, i.e., a = array([1, 2, 3]); a + 1; 1 + a are valid. Could you, please, look at the changes: https://github.com/v923z/micropython-ulab/tree/power .

#

@onyx hinge Relational operators cannot be turned around, so 1 < a won't work. These are not implemented in micropython, so if you want to support those, we would have to request upsteam modifications. I am not against that, but perhaps there is a strong reason for the missing implementation, which I don't see at the moment.

#

And I haven't the foggiest idea as to why the test fails with the slices... I haven't changed anything there.

slender iron
#

@ionic elk back from grocery shopping and lunch. want to voice chat?

orchid basinBOT
onyx hinge
#

@lapis hemlock I would like to take a look but it will most likely be tomorrow. thanks as always for the updates

lapis hemlock
#

@onyx hinge No problem. I think I could locate the error, I am working on a fix.

slender iron
lapis hemlock
#

@lapis hemlock I would like to take a look but it will most likely be tomorrow. thanks as always for the updates
@onyx hinge After the fix, tests pass. Are you very busy at the moment?

onyx hinge
#

Glad you found the fix

lapis hemlock
#

I had a question about github actions, but it is not urgent at all, we can defer it.

onyx hinge
#

okay, I am trying to finish up a part of this protomatter project and then call it quits for the day πŸ™‚

lapis hemlock
#

OK, then some other time.

onyx hinge
#

false, // pixels_i|n_byte_share_row (unused for depths > 8)
this typo crept in a LOT of copy paste places

orchid basinBOT
idle owl
#

@onyx hinge Am I reading right, f-strings are enabled for everything but SAMD21? or am I conflating things

onyx hinge
#

@idle owl right. there may be some other very full board it was also disabled for, but it's sure off for the M0s

idle owl
#

Ok good enough

onyx hinge
#

and it's supposed to be on for all the newfangled boards like stm32 and such

idle owl
#

right on. Thanks

orchid basinBOT
manic glacierBOT
ionic elk
#

@slender iron Hi sorry I missed you today, got pulled into a project and then cooking. Would you have some time tomorrow morning?

slender iron
#

@ionic elk I should but not sure of the timing

ionic elk
#

Ok I'll check back with you then

slender iron
#

kk, I have to check with Becca about it

onyx hinge
#

wowow I missed the fomu port landing. πŸ₯‚

slender iron
#

yup! merged it earlier

#

welcome @half geyser

#

and then updated my lower_power branch and needed to update the litex port for my changes

half geyser
#

Yay! Thanks. Super happy to have circuitpython for Fomu built upstream.

slender iron
#

πŸ™‚

#
import digitalio
import neopixel_write
import time
import microcontroller.pin

# This pin should be in board. The microcontroller.pin should be the FPGA's name
# for the IO.
d = digitalio.DigitalInOut(microcontroller.pin.TOUCH1)

while True:
    neopixel_write.neopixel_write(d, b"\x00\x88\x00")
    time.sleep(1)
    neopixel_write.neopixel_write(d, b"\x88\x00\x00")
    time.sleep(1)
onyx hinge
#

@slender iron yeah seeing that was what made me realize

#

@half geyser thank you!

slender iron
#

@half geyser I added a short README.rst with instructions too

onyx hinge
#

@slender iron is the general term for this kind of LCD panel interface we were discussing "LVDS"?

slender iron
#

no, I don't think so

#

LVDS is a differential signal I believe

#

I think the ones we were looking at are TTL

onyx hinge
#

ok it must be different than what I was reading about raspberry pi displays that use a ribbon connector then

slender iron
#

ya, probably. I haven't looked too much into it

onyx hinge
#

looks lke the evk has a 565 RGB interface (there's spots for 888 on the 40-pin connector, but the low pins are just GNDed) and some clock/sync signals

slender iron
#

πŸ‘

marble hornet
#

@slender iron i'm having the following error building any version of the low power module. looking into fixing it now

#
Use make V=1, make V=2 or set BUILD_VERBOSE similarly in your environment to increase build verbosity.
make: *** No rule to make target `extmod/ulab/code/create.c', needed by `build-TG-Watch02A/genhdr/qstr.i.last'.  Stop.```
raven canopy
#

@marble hornet update the submodule(s)? looks like it doesn't have the files in ulab.

marble hornet
#

i tried --single-branch

#

and googling it

raven canopy
#

git clone -b <branch name> <url> should work.

marble hornet
#

thnx

raven canopy
#

trying myself... πŸ˜„

#

works for me. after spelling the branch name correctly. 😜

marble hornet
#

ditto

#

thank you sommersoft

raven canopy
#

yw!

marble hornet
#

@slender iron expect an estimation of battery power draw difference by the end of tomorrow

spice crypt
#

Since lower_power is the last discussion, I'm also having issue compiling it.

(cloned https://github.com/tannewt/circuitpython.git)
git checkout lower_power git submodule sync; git submodule --init; git submodule update --recursive make V=1 SD=s140 SERIAL=/dev/tty.usbmodem1411 BOARD=feather_nrf52840_express all make: *** No rule to make target 'extmod/ulab/code/create.c', needed by 'build-feather_nrf52840_express/genhdr/qstr.i.last'. Stop.

raven canopy
#

@spice crypt you need to make sure the submodules have been populated.

git submodule sync
git submodule update --init
spice crypt
#

yes, I have.

raven canopy
#

oh...just saw that. my bad. πŸ˜„

spice crypt
#

πŸ™‚

#

tried a clean too

raven canopy
#

oh. try with out the submodule update --recursive. we've stopped using that i think.

spice crypt
#

Okay, do I have to delete anything beforehand?

raven canopy
#

i would use a clean again. (the ulab submodule is a fork, which i think recursive causes confusion)

spice crypt
#

same problem

#

let me try a clean repo

#

(reclone)

#

so far so good

spice crypt
#

Success!

raven canopy
#

yay! πŸŽ‰

spice crypt
#

Looks like submodules are cloned all over, so probably no easy way to "refresh"

raven canopy
#

the two submodule commands should track with the current working tree.

slender iron
#

@spice crypt thanks for the sponsorship!

spice crypt
#

You're welcome. Thanks for your work!!!

#

I ❀️ CP

slender iron
#

😊

spice crypt
#

Having the same compatibility issue (like several days ago) when I flash the lower_power build over my present 5.0.0 libraries. If this has something to do with ble --> _ble rename, how do I mitigate this?
main.py output: Traceback (most recent call last): File "main.py", line 87, in <module> File "adafruit_ble/__init__.py", line 275, in name AttributeError: 'Adapter' object has no attribute 'name'

bitter bronze
#

Second problem that might be related to Circuit Python or NeoTrellis hardware or maybe something else. I have adapted John Park's code to connect NeoTrellis keys through AutoHotKey to supply character streams to Emacs, Windows Command Prompt and other programs. It works for varying periods of time and then the NeoTrellis stops working until I unplug the USB cable and then plug it in again? Is this an unusual occurrence for NeoTrellis or CircuitPython. Are there any timeout issues for the hardware or CircuitPython? Thanks.

lone axle
#

@bitter bronze I'm not certain that I understand 100% but I do think it may be unusually. I have several Circuit Python devices around the house that are plugged into various computers sending HID key and mouse events to the host computer. They run for days or weeks at a time without needing any sort of unplug / re-plug.

#

if you can go ahead and post a link here to your code on gist or somewhere online if possible.

lone axle
#

@idle owl I can work on making the change for that Bitmap Font PR later today if it can be helpful to take that one off of your plate.

idle owl
#

@lone axle That would be brilliant. Thank you.

slender iron
#

@spice crypt I'll look into that today

manic glacierBOT
ionic elk
#

@slender iron Latest push to PR has commented out itcm and dtcm code that failed, if you'd like to take a look

manic glacierBOT
ionic elk
#

I'm really stuck on it because STMCube's linker file also plainly makes use of the itcm and dtcm sections, but it has no reference to them anywhere else - not in the startup file, not the system file, nowhere. So I have nothing to base it off of like i.mx

orchid basinBOT
orchid basinBOT
#

Ok, after dabbling more with the site, I think the intermediate option would probably be the best one. Another option not mentioned is a hybrid of the minimum and full monty which gets around the challenge of the filtering options. If we went with the Full Monty as you proposed, we could combine the list of modules if we wanted to have the filtering and then the user could choose a build that has the module they want. They may just be out of luck if they are looking for multiple features and ...

slender iron
#

@ionic elk I'm free for the next 3.5 hours and can chat whenever you can

ionic elk
#

@slender iron I'm available now

#

took a break

slender iron
#

k, I'm free too

bitter bronze
#

@foamguy Thanks. Just knowing it is not a known problem helps me know where to look. It is not a critical issue and I will unplug it and plug it back in to get it to work again. I will do some testing on a second machine to see if it might be related to other software running on the first machine. I have not had any experience with posting code, so I will have to research that. I will also clean up the code before posting. By the way what code editor do you use? I have tried Mu but it is a bit crufty, I have also have used the cumbersome Python IDLE. And a few others. Thanks again.

lone axle
#

@bitter bronze I'm pretty flexible with IDE / Editors. If am working directly on a CIRCUITPY device I tend to use Mu so that the serial pane is together with the editor. If I am editing code thats local on my PC and not on a CIRCUITPY device yet I'll use either Notepad++ or Atom (I'm trying to decide which I like better atm) especially if it's just a quick look or small edit within a file. If it's a full project that is in a git repo and I intend to push changes and make a PR from it then I use PyCharm typically because it has lots of fancy utilities built-in that make git easier to understand and use for me.

slender iron
#

@spice crypt what is in your main? I just printed the adapter name through a BLERadio object and it worked just fine

manic glacierBOT
spice crypt
#

@slender iron
`from adafruit_ble import BLERadio
from adafruit_ble.advertising.standard import ProvideServicesAdvertisement
from adafruit_ble.services.nordic import UARTService

import time
import board
import digitalio
import analogio
import displayio
import terminalio
from adafruit_st7789 import ST7789
from busio import I2C
import adafruit_ds3231
from adafruit_bitmap_font import bitmap_font
from pulseio import PWMOut
import neopixel
import storage
import json
#from supervisor import reload, runtime
from adafruit_display_text import label
from adafruit_display_shapes.rect import Rect
#from adafruit_display_shapes.circle import Circle
from adafruit_display_shapes.roundrect import RoundRect
#from adafruit_display_shapes.triangle import Triangle
from adafruit_display_shapes.line import Line

Bluetooth Init

ble = BLERadio()
ble.name = "nrf52840ex"
uart = UARTService()
advertisement = ProvideServicesAdvertisement(uart)`

slender iron
#

ah, you are setting it

#

tries that

#

hrm, worked for me

spice crypt
#

The problem really extends beyond that. Last time I almost down this rabbit hole (for me), even when I comment out that, othe errors come up

#

Let me go get my device, brb

slender iron
#

kk, which device is it? I can grab the same

spice crypt
#

It's based on the NRF52840_express

slender iron
#

I'm testing on a circuitplayground bluefruit

spice crypt
#

My device also happened to get corrupted! Maybe a sign of other things. copying over files now after formatting

spice crypt
#

Ok, back up and running

slender iron
#

and still having troubles?

spice crypt
#

Yes, even with barebone code

#

care to share your test code?

#

`from adafruit_ble import BLERadio
from adafruit_ble.advertising.standard import ProvideServicesAdvertisement
from adafruit_ble.services.nordic import UARTService

import time
import board

Bluetooth Init

ble = BLERadio()
#ble.name = "nrf52840ex"
uart = UARTService()
#advertisement = ProvideServicesAdvertisement(uart)`

from adafruit_ble import BLERadio
from adafruit_ble.advertising.standard import ProvideServicesAdvertisement
from adafruit_ble.services.nordic import UARTService

import time
import board

Bluetooth Init

ble = BLERadio()
#ble.name = "nrf52840ex"
uart = UARTService()
#advertisement = ProvideServicesAdvertisement(uart)

#

`from adafruit_ble import BLERadio
from adafruit_ble.advertising.standard import ProvideServicesAdvertisement
from adafruit_ble.services.nordic import UARTService

import time
import board

Bluetooth Init

ble = BLERadio()
#ble.name = "nrf52840ex"
uart = UARTService()
#advertisement = ProvideServicesAdvertisement(uart)`

main.py output:
Traceback (most recent call last):
File "main.py", line 11, in <module>
File "adafruit_ble/services/nordic.py", line 57, in init
File "adafruit_ble/services/init.py", line 50, in init
TypeError: cannot create 'Service' instances

slender iron
spice crypt
#

FYI. My adafruit_ble library is from adafruit-circuitpython-bundle-5.x-mpy-20200228

slender iron
#

what version? there should be a __version__ on the module

#

I believe I'm using something later. Its pulled from my copy of the bundle repo

spice crypt
#

I didn't find version but I did find this in the bundle root in VERSIONS.txt

https://github.com/adafruit/Adafruit_CircuitPython_BLE/releases/tag/5.2.0

slender iron
#

ah, that works too

#

for version you'd do python import adafruit_ble print(adafruit_ble.__version__)

#

and you are using my lower_power branch? do you have your own copy with your own board define?

spice crypt
#

5.2.0

#

Yes, your branch. Default nrf52840_express board config

#

I'm using the feather

slender iron
#

is the REPL version: Adafruit CircuitPython 5.1.0-rc.0-104-g77562a2ac on 2020-04-01 with a different date?

spice crypt
#

Adafruit CircuitPython 5.0.0-alpha.1-8-g9fb635b60 on 2020-03-31; Adafruit Feather nRF52840 Express with nRF52840

#

from yesterday

#

Built with: make V=1 SD=s140 SERIAL=/dev/tty.usbmodem1411 BOARD=feather_nrf52840_express all

slender iron
#

you are on my master branch

#

which is not my lower_power branch

#

my master is 9fb635b60dd681331a6e8a7c1f38d30cd1cd5f83 from September 2019

spice crypt
#

hmm!

#

tstr@tstr-VirtualBox:~/CP_lowpower/circuitpython/ports/nrf$ git branch

  • lower_power
    master
#

Must have copied the wrong UF2

slender iron
#

lower_power is your branch name

#

what is the first line of git log?

#

mine is commit 77562a2acde3c82e5949096533535b211f747c6d (HEAD -> lower_power, tannewt/lower_power)

spice crypt
#

haha, was already getting that
`commit 77562a2acde3c82e5949096533535b211f747c6d (HEAD -> lower_power, origin/lower_power)
Author: Scott Shawcroft scott@tannewt.org
Date: Tue Mar 31 18:27:55 2020 -0700

Update the supported ports

`

slender iron
#

that looks right

spice crypt
#

cp ./build-feather_nrf52840_express/firmware.uf2 ~/shared_tmp/

#

that's the UF2 I copied

slender iron
#

my make command is: make -j 17 BOARD=circuitplayground_bluefruit

spice crypt
#

I think I copied the wrong UF2, there's and -s140 appended to another folder

#

let me update again

slender iron
#

my folder doesn't have the -s140

spice crypt
#

Hmm. anyway, things look better so far

slender iron
#

great!

spice crypt
#

I must have flashed the master UF2

#

Sorry. 😦

slender iron
#

πŸ™‚ no problem

spice crypt
#

Is it expected for the flash contents to be corrupted after UF2 updates?

#

It's happened the last two times

#

Didn't before IIRC

slender iron
#

we did change something in 5.0.0 betas that could have caused it. It generally doesn't.

spice crypt
#

Ok, will report if happens consisently, obviously. Trying my full code shortly

#

so as far as expecting the nrf52 to go into sleep mode. I should expect it during a time.sleep()? How to utilize a GPIO toggle to do the same?

slender iron
#

it will only do it during time.sleep with this PR.

#

external interrupt support will come later

#

(I have to decide on an API)

spice crypt
#

I have a nice DMM on loan, I'll note what I see.

slender iron
#

cool cool. sleep is only idling the CPU so its not a huge improvement. the main work was getting time keeping moved onto the RTC

spice crypt
#

everything counts in large amounts

slender iron
#

ya, definitely an improvement

spice crypt
#

`import time

print(time.time())`

main.py output:
Traceback (most recent call last):
File "main.py", line 3, in <module>
AttributeError: '' object has no attribute 'datetime'

slender iron
#

huh, weird

#

I see that too

#

time.monotonic should work

#

time.time has some mechanics around the RTC source

#

I need to look into that tomorrow

spice crypt
#

That'll work for me. The extra resolution is nice sometimes. I have a actual offboard RTC for my project

slender iron
#

it should be 30.15 us resolution

#

monotonic_ns will always be precise but causes an allocation if the number is > 2**30

spice crypt
#

This is a very broad question, but should displayio elements be expected to take a long time to initialize? I have 3 screens with 5-10 elements and they all take ~15seconds to initialize

slender iron
#

are you managing the refresh at all?

#

intermediate refreshes can make it slower

spice crypt
#

I think I have tried in the past. I don't .show() the global group until all the inits have finished

#

Same effect?

slender iron
#

what do you mean by inits then? it should be fast to fill a group that isn't shown

spice crypt
#

like defining a label, and appending it to a group

#

I'll retry disabling refresh

slender iron
#

if it's not on a screen then I'd expect it to be fast

spice crypt
#

Good to know

slender iron
#

though python is only so fast πŸ™‚

#

if you are printing anything and the display are inited then you will be slowed by the prints

manic glacierBOT
tulip sleet
#

@slender iron I'm confused about the write-synchronization for BOD33. It has a B33SRDY bit (other write-sync'd regs have a SYNCBUSY bit). The datasheet says:

The BOD33 register is Enable-Protected, meaning that they can only be written when the BOD is disabled (BOD33.ENABLE=0 and STATUS.B33SRDY=0). As long as he Enable bit is '1', any writes to Enable-Protected registers will be discarded, and an APB error will be generated. The Enable bits are not Enable-Protected.

slender iron
#

the bit docs for it says it isn't enable protected

tulip sleet
#

I thought I needed to spin on B33SRDY until it's 1

#

which thing isn't enable protected?

slender iron
#

ENABLE isn't enable protected

tulip sleet
#

right, so I sent ENABLE to 0, and then I need to wait for B33SRDY to go to 1 or to 0?

slender iron
#

the doc says 1 is sync complete

tulip sleet
#

and when I set ENABLE to 1, do I need to wait similarly?

slender iron
#

I'd assume so

#

any write

tulip sleet
#

but the quote above says you need STATUS.B33SRDY=0, I would have thought =1

slender iron
#

ya...

tulip sleet
#

i've been looking for some examples. I found maybe one on the whole www

slender iron
#

where is the quote from?

tulip sleet
#

page 240 in datasheet

#

19.6.5.1

slender iron
tulip sleet
#

right, so maybe the first quote is wrong

slender iron
#

or maybe SRDY is ORed with enable?

#

er, anded

tulip sleet
#

also note that paragrph only talks about writing 1 to enable

#

i guess it's simple enough to try; it will hang if I get it wrong πŸ™‚

#

there is no sample code or driver that actually does this, it appears

raven canopy
#
Bit 2 – B33SRDY BOD33 Synchronization Ready Interrupt Enable
----------------------------------
Writing a '0' to this bit has no effect.

Writing a '1' to this bit will clear the BOD33 Synchronization Ready Interrupt Enable bit, which disables the BOD33 Synchronization Ready interrupt.
tulip sleet
#

that's about interrupt enable; i'm not doing interrupts

#

this is BOD33.B33SRDY

#

there are interrupts galore for all these bits

slender iron
#

yay interrupts πŸ™‚

tulip sleet
#

i'll just try it; this peripheral is unlike all the others

raven canopy
#

ahhh. sorry about the noise Dan. love that they all use the same register name. πŸ˜„

tulip sleet
#

np, I searched and found the same thing and got confused at least twice. it just comes before the real description

lone axle
#

Is there something I could do to fix an actions error with build docs like this?

raven canopy
#

@lone axle add the module to the automock in docs/conf.py

lone axle
#

Thank you

raven canopy
tulip sleet
#

it's kind of funny that when I google the main code examples that come up are the code I already wrote πŸ™‚

raven canopy
#

so you know the code is correct! search results you can trust. haha

slender iron
#

ya, that's happening to me more and more

manic glacierBOT
#

There were a couple of tests that succeed with Python 3.5 and fail with 3.8. See https://github.com/micropython/micropython/issues/4000 -- I've cherry-picked them, and upgraded the Python version used by github actions.

@tannewt remarked on #2706 that he expected these changes to be included by merging micropython. Unless we did this recently, these commits are not in our history. They appear to first be in micropython v1.10 and our release notes say we are based on MicroPython 1.9.4.

lone axle
#

Is the CircuitPlayground library baked in to the firmware for that CPX?

lone axle
#

Neat, thank you.

onyx hinge
#

@slender iron thanks for trying to raise the issue about the CI troubles we're seeing. https://github.community/t5/GitHub-Actions/Install-dependencies-in-Ubuntu-flakes-several-times-a-wekk/td-p/51785

#

we could try apt... || apt... || apt... and maybe it would succeed on try 2 or 3 .. we could switch out the mirror manually, but it might be rude to use canonical's bandwidth.

slender iron
#

I don't think it's canonical's bandwidth since the url has azure in it

#

I assume that actions runs on azure and is configured to a local server

marble hornet
#

@slender iron i got about an extra 1/2 to an hour out of the lower_power changes

slender iron
#

nice! the display probably takes a lot of the battery

marble hornet
#

yes it does. and it dipped power a bit before it died so it went into safe mode and stopped running code for near the end. wasn't a perfect test. but the safemode.py change should fix that issue.

raven canopy
#

I don't think it's canonical's bandwidth since the url has azure in it
I assume that actions runs on azure and is configured to a local server

i actually spent some time last night trying to dig into that. (i think it was last night. what's today?) looked through both the actions/runner and actions/virtual-environments repos, and didn't get any closer to finding anything.

i also tried to match up the listed update timestamps on the archive to the failed actions. didn't see any correlation.

slender iron
#

what safemode.py change? I didn't see anything about that go by in my email

manic glacierBOT
#

The SPI flash on current Fomu firmware is slow. Circuitpython runs
XIP from SPI flash, and so execution time can also be slow. Ordinarily
this isn't a problem, however certain operations are time-sensitive.

In particular, USB function needs to be handled quickly in order to
prevent the host from re-enumerating the device.

Place several critical TinyUSB structures into RAM, as well as several
hot functions that are frequently called. This reduces execution time
at the expense of ...

lone axle
#

@slender iron I don't know for certain but I think I saw someone mention the idea of having safemode.py get launched when the device boots in safemode so people can choose more specifically what happens as compares to normal boot up.

marble hornet
#

thank you sommersoft

#

I thought a safemode.py running after a safe-mode error would be a simple, practical, and powerful solution to unavoidable brownouts.

manic glacierBOT
#

For some reason, Travis CI does not seem reliable. It seems to fail about 5% of the time during the Install deps phase:

  Could not connect to azure.archive.ubuntu.com:80 (52.177.174.250), connection timed out
Err:2 http://security.ubuntu.com/ubuntu xenial-security/main amd64 gettext amd64 0.19.7-2ubuntu3.1
  Unable to connect to azure.archive.ubuntu.com:http:
Ign:3 http://security.ubuntu.com/ubuntu xenial-security/main amd64 libasprintf-dev amd64 0.19.7-2ubuntu3.1
Ign:4 http:/...
spice crypt
#

@slender iron If I use custom bdf fonts w/ displayIO, my rendering (initialization) time goes up significantly. What gives? I even have auto_refresh disabled until all the groups, label, and shapes are set.
3x bdf fonts: 23seconds
terminalio.FONT only: 3 seconds

from adafruit_bitmap_font import bitmap_font font_arial = bitmap_font.load_font("/fonts/Arial.bdf") font_arial_16 = bitmap_font.load_font("/fonts/Arial-16.bdf") font_helvetica_bold_16 = bitmap_font.load_font("/fonts/Helvetica-Bold-16.bdf")

crimson ferry
#

@spice crypt Are you preloading the glyphs? `font_arial.load_glyphs(b'ABC123.,:')

spice crypt
#

No

crimson ferry
#

That should save time later

spice crypt
#

I actually just stumbled upon that. I think I tried before but will again. Thanks.

onyx hinge
#

@slender iron yeah I'm not sure how it works, some of the URLs are azure, some are not, but all of the errors say azure. After this operation, 6,707 kB of additional disk space will be used. Err:1 http://azure.archive.ubuntu.com/ubuntu xenial/main amd64 libunistring0 amd64 0.9.3-5.2ubuntu1 Could not connect to azure.archive.ubuntu.com:80 (52.177.174.250), connection timed out Err:2 http://security.ubuntu.com/ubuntu xenial-security/main amd64 gettext amd64 0.19.7-2ubuntu3.1 Unable to connect to azure.archive.ubuntu.com:http:

manic glacierBOT
#

BTW, our CI is now Github Actions, not Travis. I think the actual problem leading to the "unable to connect" / "could not connect" message may be some kind of capacity/reliability problem of azure.

Because of other problems with Github Actions infrastructure, even project maintainers get no love when they use the "re-run all jobs" button, because when you re-run a PR job it just errors at the checkout phase. This non-working re-run button is a bug (an acknowledged bug, I think) in action...

manic glacierBOT
#

Thanks, I'm not sure why I thought it was Travis. My mistake. I somehow thought it was backed by Travis. I'm learning new things all the time.

The error in #2725 looks like it may be because you're only fetching tags and refs, which won't fetch dangling references that have no tags (for example, if a later commit rebased). My recipe is usually git fetch; git checkout [ref].

Us users don't have access to a "Re-run job" button.

If Azure is unreliable, is it possible to add a diff...

raven canopy
#

and to add more clarification, or confusion, the apt source is clearly a mirror. although it isn't on Cannonical's official ubuntu mirror list that i can see.

# run from an Actions workflow...
> Run ping -R -c 3 azure.archive.ubuntu.com
PING archive-lb.eastus2.cloudapp.azure.com (52.177.174.250) 56(124) bytes of data.

--- archive-lb.eastus2.cloudapp.azure.com ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2029ms

subsequent curl step is successful, so take the ping failure as a false positive.

#

and, an additional post was made on the issue, to which a "reported to the engineers" response was made.
https://github.community/t5/GitHub-Actions/sudo-apt-get-install-fails-with-Could-not-connect-to-azure/m-p/52300#M8479

onyx hinge
#

@tulip sleet @slender iron There are several ulab bugfixes since 5.1.0-rc.0. If I want to pull these in, that entails making a rc.1, right?

ionic elk
#

compiler is throwing a shadow variable warning for tmpreg, but isn't the UNUSED(var) => (void)var supposed to counteract that?

#

do you have any ideas? This seems completely contained in this one HAL file, and if I don't figure it out I'm going to have to turn off the variable shadowing warning

#

Nevermind, Thach had to turn it off so I assume I do too.

tulip sleet
#

@onyx hinge right, rc.1, but it doesn't have to soak that long if those are the only changes

simple pulsar
#

I was about to download rc.0 to have a play. Is it worth waiting for rc1?

tulip sleet
#

^^ @onyx hinge are you going to do rc.1 imminently?

onyx hinge
#

I"m working to complete some protomatter stuff first.

simple pulsar
#

No rush here, i was wondering what one to go for. Are all the ulab bugs noted in GitHub in case I run across them?

onyx hinge
#

I haven't even tested that updating the ulab submodule works as expected (probability is high, however)

#

These fixes would be incorporated: ```0d5dc6b Merge pull request #78 from v923z/argmax
411a5ff Merge pull request #81 from v923z/unistd
26d740e Merge pull request #80 from v923z/copy
272685d Merge pull request #79 from v923z/sort
ac3f03c Merge pull request #70 from v923z/testfix
3ec9f5a Merge pull request #69 from jepler/boolean-cpy

slender iron
#

@onyx hinge are they fixes or adding more stuff? remember we can always release 5.1.0 now and update ulab in 5.2.0 beta or whatever

onyx hinge
#

@slender iron a couple are bugfixes -- sort, boolean-cpy, argmax. not all are.

#

I think they're minor, so we could toss it under "known problems"

slender iron
#

that's fine with me. I'd just like to see something new released

onyx hinge
#

selecting just elements from an array that match a condition, a[a>1] is broken. And something about sorting is broken, but I think it only affects sorting 2d matrices which is a weird operation

slender iron
#

I would like to do an unstable release as well

#

so anything in master would be released too

onyx hinge
#

how does that interact with making 5.1.0 final?

#

it would make the rc disappear from the website which would be inconvenient I guess

slender iron
#

right, I can't make a new unstable until 5.1.0 is released or 5.1.0-rc.2 incorporates everything from master

onyx hinge
#

hmmm

#

taking that at face value, it makes more sense to release 5.1.0 and add to the known problems section. I'll wrap up my current task and draft release notes...

slender iron
#

k thanks!

manic glacierBOT
#
[adafruit/circuitpython] New tag created: 5\.1\.0
orchid basinBOT
idle owl
#

@lone axle So the new PR you created includes the fix from the PR I created on Bitmap_Font?

lone axle
#

@idle owl correct. I forked from yours changed the import and changed the mock import in docs. Then created my PR from that.

idle owl
#

Perfect. I'll close my PR. Thanks

lone axle
#

Yep you're welcome.

onyx hinge
#

@slender iron some of the actions failed at "install deps" for the 5.1.0 release. Can I use the "re-run" button once it becomes available or do I need to take different action?

idle owl
#

@onyx hinge It's been doing that lately. Rerun all jobs.

#

It's been doing that lately across the board.

#

I've had to do it a few times every so often.

onyx hinge
#

to libraries as well?

idle owl
#

Yes.

onyx hinge
#

well now what. The button isn't where I expect to see it.

idle owl
#

It's not?

onyx hinge
idle owl
#

Hmm.

#

@onyx hinge I have the button

onyx hinge
idle owl
#

This is what it says it failed on New boards check 1s ##[error]Process completed with exit code 1. Run python3 -u ci_new_boards_check.py Boards missing in .github/workflows/build.yml: nucleo_f767zi ##[error]Process completed with exit code 1.

onyx hinge
idle owl
#

Yeah that's where I have it

#

the second one

onyx hinge
#

the first one is the 5.1.0 release

idle owl
#

Oh hmm

onyx hinge
#

@tulip sleet any ideas?

idle owl
#

not getting the button there either.

#

?

#

wait that's not right either but I got there via the release link on the Actions main page

onyx hinge
#

I can try that one. one of them is the one that would upload to circuitpython.org (errr well s3), if I understand correctly

#

or maybe between those two runs things are okay? I checked one board which failed in each run (aramcon_badge_2019 and xinabox cc03) and they both have UF2s, possibly from the other run? The failures were different in each run.

idle owl
#

Not sure about that.

onyx hinge
#

I wish I were more confident. I feel like I should wait and let someone else take a poke at it.

#

they'll see the mentions in due time

idle owl
#

I don't think rerunning it will break anything. But you've got me second guessing as well at this point.

slender iron
#

@onyx hinge you won't break anything πŸ™‚

#

I just wait to blog and update the website until I'm sure most assets are where they should be

onyx hinge
#

@slender iron these builds are still missing, it seems. ```electronut_labs_blip HTTP/1.1 404 Not Found
espruino_pico HTTP/1.1 404 Not Found
espruino_wifi HTTP/1.1 404 Not Found
feather_stm32f405_express HTTP/1.1 404 Not Found
makerdiary_nrf52840_mdk HTTP/1.1 404 Not Found
makerdiary_nrf52840_mdk_usb_dongle HTTP/1.1 404 Not Found
meowbit_v121 HTTP/1.1 404 Not Found
pyb_nano_v2 HTTP/1.1 404 Not Found
pyboard_v11 HTTP/1.1 404 Not Found
spresense HTTP/1.1 404 Not Found
stm32f411ce_blackpill HTTP/1.1 404 Not Found
stm32f411ve_discovery HTTP/1.1 404 Not Found
stm32f412zg_discovery HTTP/1.1 404 Not Found
stm32f4_discovery HTTP/1.1 404 Not Found

#

oh some of those come in .hex form though

#

blip is there (hex), espruino pico is there (bin), stm32f405 (bin), makerdiary (hex)

slender iron
#

ya, that looks like all of the stms

onyx hinge
#

then it's just my quick checking script that's broken and probably they're all there after all

slender iron
#

I think we've launched with some missing before

#

it's not the end of the world

onyx hinge
#

OK, getting on with forum and blog posts then

#

or maybe stopping for 🍜

slender iron
#

is the website update merged? I'll need to follow up with a download count update

onyx hinge
#

oh right, I missed that

onyx hinge
#

@slender iron ok you can update your download count thing now I think?

#

will do forum & blog after lunch

slender iron
#

ya, think so

manic glacierBOT
slender iron
#

@onyx hinge what issue hung you up with checkout v2? v1 doesn't work for reruns which would help with the azure server issue

onyx hinge
#

@slender iron sometimes, when fetching tags for submodules, the command would report that there was no "origin" remote. e.g., this particular run https://github.com/adafruit/circuitpython/pull/2725/checks?check_run_id=533702449

GitHub

This switches us to the current version of checkout, which has recently added support for a feature we use (submodules). This feature was in v1 but was not initially in v2. It was recently added ...

slender iron
#

I wonder if that was a github issue

onyx hinge
#

actions@v2 seems to prioritize fetching as little as possible, which is understandable given that some repos contain a LOT of data. but it breaks the very sensible practice we follow, of auto-identifying via git-describe

slender iron
#

right

#

I had something in travis to handle that too

onyx hinge
#

I'm sad that contributors like xobs are frustrated especially since we're largely powerless to fix transient github issues

slender iron
#

ya, I think we should just be more lenient until it's fixed

#

his PR is for fomu only so it's ok to just merge

#

it's my PRs you need to worry about πŸ˜›

onyx hinge
#

(and 1%-chance-per-job issues will hit us 2/3 of the time due to the large number of jobs)

slender iron
#

yup

onyx hinge
#

until kattni mentioned that libs were seeing the apt-get problem too I wondered if we were hitting another possibly-undocumented rate limit.

slender iron
#

ya, that could be it. or it could just be the cloud creaking as we all use it more than we used to

#

sounds like it finally got escalated though

onyx hinge
#

forum post made, 5.1.0-rc.0 post un-stickied.

slender iron
#

thanks!

manic glacierBOT
#

I've had noise issues with the Itsy Bitsy M0 Express and have boiled it done to attaching the MSA301 Accelerometer. I can attach neopixels, buttons, etc. but as soon as I attach the accelerometer I get random loud noise. I've also tried different speakers and audio boards with no change in the noise. The noise can occur right when I turn it on or it may wait 3-4 sec before starting.

Here is the simplified code:

# Import libraries
import board
from digitalio import DigitalInOut, Dir...
slender iron
#

I wonder if it's time to do the great merge of 2020 after the lower_power stuff is in

onyx hinge
#

blorg post is scheduled

timber mango
#

Is that any relation to the BORG?

ionic elk
#

@slender iron what's the big merge? micropython?

slender iron
#

ya

ionic elk
#

what are the big features that'd get added

slender iron
#

I think mpy files get smaller

#

but don't know of that many things

#

mainly to just get us closer to them. jeff just backported a test fix for us

idle owl
#

@lone axle Do you have a few minutes to take care of some PRs for me? They're simple link updates.

onyx hinge
#

@ionic elk we're based on micropython 1.9.4, so anything major in their changelogs since then would be potential improvements.

manic glacierBOT
#

Thanks for taking this on! I've add a number of comments. I like the directions you are going by using a "framebuf as a bus". I think there is some work to do on the Framebuf stuff to slim it down and simplify it. I think having brightness on it makes sense but it should then delegate to the framebuffer provider to implement it. A 24bit TTL display will have a backlight pin but a protomatter display will need to adjust what it outputs.

old smelt
#

Hi @slender iron - I saw in the CP Weekly notes that you have been working on some BLE MIDI stuff. Any docs or projects public, yet? This is interesting on a couple of levels. Thanks!

slender iron
#

@old smelt the libraries are public and the fixes are checked into CP

manic glacierBOT
slender iron
#

john park's project next week will use it if it works for him

old smelt
#

Ok great!

#

Nice! He always does something cool.

slender iron
#

someone on the forum was having trouble getting it going

#

but I haven't been able to debug it with them

old smelt
#

Did you have a specific piece of hardware in mind when doing the devleopment?

slender iron
#

I tested on an nrf52840

old smelt
#

Ok. So a CPB would work?

slender iron
#

yup!

old smelt
#

should work

#

πŸ™‚

#

Nice. I brought that home in my boxes and stacks o' office stuff.

#

Thanks!

slender iron
#

great!

#

would love a second test of it πŸ™‚

manic glacierBOT
#

As far as the backlight, it can delegate to the underlying framebuffer (a protocol function that is permitted to be NULL), or it can use a pin as now as a fallback. protomatter uses 0 to mean pause, nonzero to mean not paused; it doesn't scale RGB values to emulate intermediate brightness levels. I have a feeling that adding a fixed off time might give better results, so if that's important we should talk to @PaintYourDragon about it.

If we thought at least 2 framebuffers would do back...

orchid basinBOT
ionic elk
#

@slender iron I'm getting a hard crash as soon as I run the OCRAM copy loop in Reset_handler - it's a regular hardfault handler exception, not MPU related.

slender iron
#

double check that the pointer bounds are ok

lone axle
#

@idle owl not atm sorry. But if you send them to me I can probably do it later tonight if that is helpful.

idle owl
#

@lone axle I got it covered, thank you so much for the offer!

manic glacierBOT
ionic elk
#

@slender iron Cannot access memory at address 0x24000000 interesting.

#

Obviously this shouldn't happen with the assembly code...

slender iron
#

what was the variable name?

ionic elk
#

that's just the flash RAM. but yikes this actually applies past reset to reverted code... It applies even after the chip is reset, and the code reverted to a previously stable build.

#

welp I bricked my board

#

so much for the MPU

onyx hinge
#

eek nobody likes to hear that

ionic elk
#

Β―_(ツ)_/Β―

lapis hemlock
#

that's just the flash. but yikes this actually applies past reset to reverted code...
@ionic elk Is this a poem?

ionic elk
#

Rephrased: the memory access issue applies when I revert my commit to one that was previously tested successfully, using the stm32 defaults.

lapis hemlock
#

@onyx hinge Thanks for checking out the code. I have found another bug in the sorting routine. I have fixed that, in case you have to pull it.

ionic elk
#

It also persists past full chip erases and power reset

onyx hinge
#

@lapis hemlock as you may have seen we decided to go ahead with 5.1.0 without those recent bugfixes. I am not fully familiar with how we do releases, but I think this still leaves us open to incorporating bugfixes from ulab in 5.1.1.

ionic elk
#

IE, something on the chip has locked this memory, possibly permanently, and normal code cannot unlock it. I'll give ST's official utility a shot, sometimes it manages to "super erase" better than Jlink and texane/stlink

lapis hemlock
#

@lapis hemlock as you may have seen we decided to go ahead with 5.1.0 without those recent bugfixes.
@onyx hinge No, I haven't seen that. I have seen the release candidate only.

#

So, should I expect higher issue activity in the coming days?

onyx hinge
#

Hopefully people will start using it more. I'm not sure whether our users will start by filing issues against circuitpython or ulab. I will tag you in anything that seems relevant.

lapis hemlock
#

I will tag you in anything that seems relevant.
@onyx hinge OK, thanks!

#

A different question: how can you develop/test github actions?

#

I mean, private users have an allowance of 2000 minutes per month.

onyx hinge
#

by pushing over and over again until it's not broken πŸ˜•

lapis hemlock
#

So there is really no test platform for that.

onyx hinge
#

I am not aware of one.

#

the 2000 minutes per month limit I think applies to private repositories on the free plan. I didn't think a minutes-per-month restriction applied to public repos, no matter the plan. I could be wrong, of course.

lapis hemlock
#

I didn't even know that you can have free private repositories. People used to scramble their code, so that they can push it to github without actually making the content public.

onyx hinge
#
#

hum no github pages are loading for me this second

idle owl
#

@lapis hemlock The free private repos is a recent thing.

#

@onyx hinge GitHub is experiencing issues.

onyx hinge
#

ah it must be thursday

#

write as much as possible in CI-agnostic way (BASH scripts, PowerShell scripts, Gradle scripts, NPM scripts, Dockerfiles, Ansible scripts - anything you know)

idle owl
#

Well relatively recent anyway.

lapis hemlock
#

One could, of course, have one's own worker, working somewhere else.

onyx hinge
#

this is good advice

lapis hemlock
#

Well relatively recent anyway.
@idle owl Thanks for the info!

idle owl
#

You're welcome!

lapis hemlock
#

I am not sure I want to hide anything, though... I am a totally open-source chap.

idle owl
#

Also fair πŸ™‚

onyx hinge
#

Occasionally I try to convince my spouse that we should use a private github to track household issues ... she doesn't believe me.

#

kitchen needs swept? you should have filed an issue. I check those first thing in the morning everyday

idle owl
#

I can see the skepticism in her face from here.

lapis hemlock
#

@onyx hinge "write as much as possible in CI-agnostic way (BASH scripts, PowerShell scripts, Gradle scripts, NPM scripts, Dockerfiles, Ansible scripts - anything you know)" while I agree with this, it is actually not the scripting that is hard, but the triggers. What triggers what and when and under what conditions.

onyx hinge
#

true

lapis hemlock
#

@onyx hinge "kitchen needs swept? you should have filed an issue. I check those first thing in the morning everyday" 🀣

slender iron
#

but would you get up and sweep then?

lapis hemlock
#

but would you get up and sweep then?
@slender iron No, he would look for an assignee.

slender iron
#

πŸ˜„

#

I'd open it in a browser tab to do later

lapis hemlock
#

@onyx hinge No offence meant, Jeff!

onyx hinge
#

none taken

#

thanks for joining in the levity

lapis hemlock
#

It's been fun!

#

But I do have to make the bed now.

#

So long!

onyx hinge
#

ttyl

slender iron
#

thanks @lapis hemlock have a good night!

lapis hemlock
#

πŸ‘‹

raven canopy
#

@lapis hemlock its not exactly a perfect solution, but when Actions was still in beta I actually created a repo purely for testing various things, so i can keep the noise outside of projects. https://github.com/sommersoft/actions_testing

#

having actions/checkout (even with its flaws) makes it easy to pull in outside projects to setup a similar environment.

manic glacierBOT
idle owl
#

GitHub's back up apparently.

onyx hinge
#

🎊

obsidian compass
ivory yew
#

@obsidian compass probably, but I can't find any documentation on it

obsidian compass
#

@ivory yew right, but it's quite cheap so I think I should take my chances πŸ™‚

#

If doesn't work I'll buy the expensive sega j-link πŸ€“

ivory yew
#

Sega J-Link?

obsidian compass
#

Oops I meant segger, but my keyboard like sega

ivory yew
#

I mean, I'm a huge sega fan, so if Sega made a j-link that's the one I'd have.

obsidian compass
#

Yup, I loved your talk from supercon on Sega Inspired synths πŸ˜„

lone axle
ivory yew
#

I backed this so fast my keyboard broke

tiny oriole
#

im super excited about the CircuitBrains.

timber mango
#

@ivory yew Are you getting 1, 2, or 3 of them?

ivory yew
#

2

timber mango
#

Tomorrow is my payday... πŸ˜‰ I think I will go for 2. I really want to see this succeed!! πŸ™‚ πŸ™‚

ivory yew
#

me too

tiny oriole
#

i went for just 1 for starters, but might bump it up to 2

timber mango
#

Even numbers ROCK! Just DO it! πŸ˜‰ πŸ™‚

tiny oriole
#

alright. second one ordered xD

timber mango
#

There ya go! You are now a member of the Two-Fer Circuitbrains Deluxe Club! πŸ˜‰ I will be joining soon!

#

I bet if each of us Circuitpython people backed this by getting two that we could get this funded in no time!

ivory yew
#

looks like his MOQ goal is 150.

#

I think we can do that!

#

I have the non-deluxe circuitbrains and it's great (& SO tiny)

lapis hemlock
#

@lapis hemlock its not exactly a perfect solution, but when Actions was still in beta I actually created a repo purely for testing various things, so i can keep the noise outside of projects. https://github.com/sommersoft/actions_testing
@raven canopy Thanks! I think you are right, this is the way to go.

timber mango
#

@ivory yew What is "MOQ?"

lapis hemlock
#

I guess, minimum order quantity.

simple pulsar
#

There's some intriguing hacky techniques in the comments by Jens Bauer about borrowing the FP registers for other things.

solar whale
#

Gaa -- "alternate use" of the FP registers was something done long ago on a SPARC system I worked with -- it was clever, but it sure caused some confusion ...

ionic elk
#

@slender iron why is the stack top forced to equal the heap top in stack.c even after i.MX? Does that need reworking?

slender iron
#

@ionic elk can you link me to the context you are referring to?

manic glacierBOT
ionic elk
slender iron
#

@ionic elk I don't think it forces it. it just exempts the stack from the supervisor managed allocations

#

it's ok for it to return there

ionic elk
#

Oh, so the following code isn't really necessary when the stack and heap aren't in the same RAM region?

slender iron
#

yup

#

since the stack and heap are in different memory regions

ionic elk
#

@slender iron why do you set it to be the heap start in i.mx then?

#
uint32_t *port_stack_get_limit(void) {
    return &_ld_heap_start;
}
slender iron
#

looks

#

looks like a copy and paste error

ionic elk
#

k

slender iron
#

that function isn't actually called by anything in the mimx port

ionic elk
#

@slender iron just got back from lunch

#

Oh I see what you mean I mixed them up but that doesn't actually affect anything

ionic elk
#

@slender iron or @tulip sleet, Micropython makes reference to some object files as SRC_O, but they don't actually exist? Do you know what's up with that? They only exist as uncompiled S or C versions

tulip sleet
#

the makefile will build them automatically based on default rules

#

but I don't know why they're called SRC_O

ionic elk
#

default rules?

#

I mean it's not making it which is sort of my problem

tulip sleet
#

if there's a rule like .c.o: then that will implicitly be used when referencing the .o. But what are you trying to build? What's your make command? I'll try too

#

or .s.o:

#

@ionic elk I made PYBV11 from the tip of micropython master successfully

ionic elk
#

sorry I had to step out for a sec to help my brother with something

#

@tulip sleet I'm trying to get my makefile to reference this default assembly file in the st drivers:
st_driver/CMSIS/Device/ST/STM32$(MCU_SERIES)xx/Source/Templates/gcc/startup_$(MCU_VARIANT).s so I don't have to have a bit long list of startup files in my boards directory

#

Right now I have SRC_S = supervisor/cpu.s boards/startup_$(MCU_VARIANT_LOWER).s which works file

#

but if I swap that second part to the long st_driver path above, it doesn't work

#

says it "can't find the object file". And it won't find it if I add the SRC_O and build rules for it either

#

error: build-nucleo_h743zi_2/st_driver/CMSIS/Device/ST/STM32H7xx/Source/Templates/gcc/startup_STM32H743xx.o: No such file or directory

tulip sleet
#

@ionic elk use find to see if it built startup_STM32H743xx.o somewhere else besides the path you gave

timber mango
#

Hi there, I have a question. I am trying to load a small project on my Feather Express M0 board with circuitpython. This involves a oled dislay (shield ssd1306) and a temp pressure sensor BMP280. I recently upgraded to CircuitPython5.0 and now the project no longer works. In python REPL i have loaded the script step by step and then encountered a memory issue. Which appears to be my issue. I really only have the bare essential libs on the device, and the program is really smal. It feels like some of the board memory is blocked or leaked away. Is there a way where I could completely prime the device, formatting it so to say? And if this is possible. What would be the procedure? I am curious if this is a known issue.

tulip sleet
ionic elk
#

@tulip sleet no dice. What's funny is I also can't find a cpu.o for supervisor/cpu.s. But if that wasn't being generated, wouldn't it mess up the whole build? That's used to fetch registers for the stack allocation.