#circuitpython-dev
1 messages Β· Page 207 of 1
when frozen in, they're already in the RAM with the firmware. as i understand it...
???
what do you mean. ooooooh nm
got it, it think
thank you all for the help tonight
π
@marble hornet, unlike regular .mpy's they are executed directly from flash, which is possible because they are in the same address space as the RAM. Regular .mpy's have to be loaded from a file into RAM.
one of these days, i'll be able to explain it correctly like that. π
kinda like how on the commodore c64 the video ram was in the same adress space as normal ram even though it was used for another function?
just flash and ram in this case ?
right, in this case it's a mix of read-only and read-write. You can run programs or read data from either.
nrf has the slightly unusual restriction that DMA source must be RAM. SAMD chips don't have that restriction.
neat!
not the nrf thing but, does samd cp code move the flash ?
or does it keep it in ram for ease
on AVR chips, the RAM is not in the same address space, so there's a special way to read data from flash
not sure I understand your question
can i ask, and at this point i'm just curious, where does ram address 0 exist? when i was flashing the bootloader to the d51 i told it to go address 0x0000 but it did work if ram at the end?
ah, i'm asking: does atmel cp implement the dma from flash ?
adress 0 is in the flash address space (where the bootloader starts). RAM starts at 0x20000000
we don't DMA much from flash, since it's usually user data, but we don't have to worry about it
This is explained in the "Memories" chapter in the datasheets
Fixes #1273 by switching to adafruit/nrfx. That fork includes a fix allowing nrfx driver uninit() operations to be called repeatedly. See https://github.com/adafruit/nrfx/pull/1. That fork also is updated to nrfx v1.3.1, which we would have done anything
@tulip sleet I figured that out. I had stupidly declared A0 as the name of my variable that held the digitalio object. When I tried to replicate it I didnβt remember doing it and none of the other pin names worked (of course)
Oh well. I tried π
@slender iron @tidal kiln @sly wagon thanks for all your help over the past while on this project. My boy was so stoked that his vision was realized for halloween and is even more excited to learn more hacking skills in the future.
on another note. I've got another cpx here that I can see it grab COM8 when I plug it in, but it does not show up as a drive and bossa says it is unsupported. Any thoughts on how I can resurrect it?
@errant veldt are you double tapping to get into the bootloader?
single tap. neopix are green and I have the flashing light.
I can somehow manage to download makecode sketches onto the thing, but can't get it to load as cplayboot like my other one
@slender iron thanks!
@errant veldt did you restart your computer? sometimes the usb stack gets unhappy
@slender iron lol I never think of doing that....
I will try and see about that tomorrow. thanks again for all your help on this. btw crickit rocks
np, glad you got it going!
it turned out that it was the arduino IDE drivers that messed me up. followed this and it worked like a charm: https://learn.adafruit.com/adafruit-circuit-playground-express/troubleshooting-2
Make faster and easier than ever with MakeCode, code.org CSD, CircuitPython or Arduino!
I have an interesting symptom I'd like to run by you guys
when I run spi.write() to the neopixel, initially it does nothing, but if I then run spi.deinit(), the neopixel turns on. Why would this be?
On mac, my boards only showup as a mountable drive on the Desktop, not in Finder, and sometimes not at all. Do I need to configure my Mac to behave differently?
how can one write to a txt file that's on the cp drive? i looked for .txt and log and other permutations on the docs or if there is another way to write to a log file that anyone knows of? thank you for any kind of help!
@marble hornet look at this guide https://learn.adafruit.com/circuitpython-essentials/circuitpython-storage you have do configure it for writing from CP.
@marble hornet also: https://learn.adafruit.com/cpu-temperature-logging-with-circuit-python/introduction
@marble hornet i have some examples of Logging to feather M4, where it just adds to a text file.
i was actaully working on open() lastnight im doing something with NVM and the FLASH using NVM to save the names of files that have been saved to, its going to be a higher end lib
@tidal kiln thnx @upbeat plover what d
Thanks
wow that wasnt a very good file to share, like not very many comments, and some of them are just wrong.... like "write to SD card" is "write toFLASH"
Actually i had tried to get a Nordic board in previous years and never been able to do so because of it's wireless communications ihave to fill some forms, i will try to get familiar with modules development and then get the nRF52840 board.
@marble hornet comments fixed, no real reason i used two power pins on the si7021, I just plugged it into the stacking headers and didnt want the 5v in being pulled down or something
One aspect I wasn't sure on was return variable type and corresponding macro. The C type was pretty obvious - I just matched the uint8_t type from the audioio_wavefile_obj_t struct. For the macro in the func return, I just reused the one from sample_rate - MP_OBJ_NEW_SMALL_INT.
Please let me know if any of that was not the correct choice.
so if I have a touch.py file, I do import touch
that's what I feared, I have something wrong :
RuntimeError: SDA or SCL needs a pull up
you can use import like that if you want, but keep in mind it has some quirks. for example, to run it again you would need to do a software reset <CTRL>-<D>
and you don't have access to things as if you had typed them in via REPL
bar =42
print(bar)
>>> import foo
42
>>> bar
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'bar' is not defined
>>> foo.bar
42
>>>
for the I2C error - you need to attach something to the I2C bus
I only have the CP fixed on the crickit. it happend when I tried to read touch pad values
then I plugged a servo and same happend when setting angle
the CPX/Crickit are attached with the metal screws and stand offs?
can you paste the contents of your CIRCUITPY/boot_out.txt file here?
Adafruit CircuitPython 3.0.3 on 2018-10-10; Adafruit CircuitPlayground Express with Crickit libraries with samd21g18
ok. that's all good. it sounds like you have access to the REPL, correct?
yes
do a <CTRL>-<D> to soft reboot and get back to >>>
no problem
Adafruit CircuitPython 3.0.3 on 2018-10-10; Adafruit CircuitPlayground Express with Crickit libraries with samd21g18
print("hello")
hello
now try:
from adafruit_crickit import crickit
the simple import of the crickit lib fails
from adafruit_crickit import crickit
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "adafruit_crickit.py", line 373, in <module>
RuntimeError: SDA or SCL needs a pull up
you need to power the crickit
it looks powered
thats on the CPX
@slender iron is there a cap on mass storage size for CP?
not that I know of
whithout anything plugged, I need to power the crickit? ok, it looks like I missed that on the tour guide
this is pretty clear, one page about powering π
the crickit can power the CPX, but the CPX can't power the crickit
I was too confident with all the things I've done with electronics, I was faulty on this one πΌ
I now have a nice 3.3V on SDA and SDL
everything now works smoothly
thanks for the help, now I can start to gather a small video in french for kids in my little workshop organization
@slender iron strange; Perhaps I missed something but I'm only seeing 8MB when I should see 16ish
I double checked the device.h entry (previously was wrong)
π€· I'm sure you can figure it out if/when you need the space
should/can I do a PR for the board?
okie dokie, coming up
PRs track commits? so I have have a second PR if I have one outstanding on my fork?
I was recently looking at the code, trying to get a FAT12/16 switch on the 8MB chips (because it turns out it's based on # of clusters, which is based on sector size). Didn't see an issue, but didn't suceed in getting it to switch.
I accepted your recent PR.
ok, thanks
CP32-M4 support, yay! As I mentioned, I'm only seeing 8MB of flash instead of the expected 16. I'm not sure if it's a config issue or something with CP but it works well enough to commit.
The current pins are specific to the ODroid, so I'll probably want to update that some time in the future
@slender iron When does Adabot do the autorelease of the bundle? I forgot to release a lib until today. I think it's fine to wait until tomorrow, but I wondered what time that typically happened.
3am my time I think
@idle owl can you take a look at https://github.com/adafruit/Adafruit_CircuitPython_HID/pull/27? I want to put it in the frozen<->lib update. Also, is the library you want to get into the bundle a new frozen one? (I guess if you have a release it's fine -- I don't need it to be in the bundle to freeze it.)
@tulip sleet It's for the TrellisM4 so no, it's not frozen, no need. I'll take a look at the PR.
tnx!
i'll do that
ok keen
hmm. I just realised maybe width and height aren't so great for the TrellisM4 lib. Because the whole point is the lib lets you rotate. which means it's no longer accurate when at 90 degree rotations. Not sure what else you'd call them though. It's only accurate when a wide side is facing you.
length and width
x_length and y_length?
also good
they're fixed in the lib
so what is x and y when you're looking at it changes, but what is x and y in the lib doesn't change.
axes can rotate
hmm.
the subscripts are [x,y], right? So I'd make then correspond to that
it wouldn't have mattered but I exposed the properties so we could iterate over them and make rainbows. so now it makes the rainbow code seem weird if you have the board rotated.
that doesn't make sense though
do u use [x,y] or [x][y]
because width=8 and height=4 in the lib.
then there's fancy offset math to handle the rotation
[x,y]
i think people understand x is usually width and y is usually height, so it's not terrible the way it is
Right.
That's the problem
you rotate it
and x is now 4 and y is now 8.
and that's how the code will see it
length / breadth?
I might go with width and length. that was my other thought too.
i'm always stumping for more use of "breadth"
it's true!
if you do rotation=90, then x_length and y_length would flip, and correspond to the new subscripting? I would vote for that, because it's kind of like len(whatever). or row/column??
I... think width and height don't change though. if I'm understanding this right. so if you call them directly, which you can do, they're always hardcoded to be 8 and 4 respectively.
for x in range(trellis.pixels.width):
for y in range(trellis.pixels.height):
pixel_index = (((y * 8) + x) * 256 // 32)
trellis.pixels[x, y] = wheel(pixel_index & 255)```
Works right if it's at `rotation=0` but doesn't work if it is `90`. So you can swap them, but then you have to change the math as well.
for x in range(trellis.pixels.height):
for y in range(trellis.pixels.width):
pixel_index = ((x + (y * 4)) * 256 // 32)
trellis.pixels[x, y] = wheel(pixel_index & 255)```
`rotation=90`
I would make the x_length and y_length change based on rotation, then. Then you don't have to change the rest of the code if you do a rotation at the top of the program
Except you'd still have to change your code because you use coordinates in the code
and your coordinates would change
the range of them I mean.
you rotate and (0, 7) is no longer valid.
@gusty kiln If I ever bought a product and it described it's dimensions as "length and breadth" I would be tempted to throw it out the window for being too pompous.
:P
you might say I would defenestrate it
hahaha
@pastel panther Well played.
it's now my mission in life to see this happen.
10 points to Slytherin
well, one of several missions. i have a list.
@tulip sleet none of this was an issue until I wanted rainbows. Which I swear I've said with every LED project I've ever done. I break everything with rainbows. Initially width and height weren't exposed so it was irrelevant.
the library creates offsets for the rotations
The 8 and the 4 in your examples above shouldn't be magic numbers: you can use the .width and .length or whatever they're called this minute.
in math code, the dimensions of an array are called the shape, e.g. https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.ndarray.shape.html#numpy.ndarray.shape
so shape[0] and shape[1] define the range of the 0th and 1st subscript
ok..
that's certainly not familiar to most people, though
a.shape of some array returns something like (2,3), or (2,5,9) for a 3d array
i have to change the subject a bit completely: both crickit and cpx libs have this code:
sys.path.insert(0, ".frozen") # Prefer frozen modules over local.
so there's actually no way to override a frozen module if you use one of those libraries without change. I could make this smarter, so it doesn't insert ".frozen" at the very beginning, esp if ".frozen" is already before "lib".
or we could just leave it alone and say if you're debugging, you have to take that line out
I think we should update the libs.
We're fixing the issue globally, and with a purpose to allow debugging, so I feel like we should take advantage of it
just take that out, or compensate for old CPy versions?
allow upward compatibility, at least approximately?
i guess I'll check for .frozen being after lib and insert it before only if that's true, and i'll insert it before lib but after anything else, so not at position 0.
Yay! just got my order confirmation for Hacktoberfest. Looks like contributing to CircuitPython topped off my 5 PRs!
@tulip sleet Ok
@tulip sleet Sorry for delay I had the window scrolled trying to figure this out.
@idle owl lots of scroll back on this, i may be too late, so may not help, but for xy coords and rotation - maybe look at how the GFX lib handles it?
@tidal kiln isn't that arduino
yep. so just in general - what do width/height or (x,y) mean when rotated? etc.
@tulip sleet q on precision. i've got some code where i'm currently just blindly coding up the math from the data sheet:
https://github.com/caternuson/Adafruit_CircuitPython_BMP3XX/blob/master/adafruit_bmp3xx.py#L197
it seems to work, but wondering if i'm running into any precision issues with those huge exponents?
re-asking not at midnight
"I have an interesting symptom I'd like to run by you guys
when I run spi.write() to the neopixel, initially it does nothing, but if I then run spi.deinit(), the neopixel turns on. Why would this be?"
@tidal kiln The integer 2**<large number> will not work on non-longint builds (non-express: Gemma and Trinket M0). it will generate an integer overflow. You can force these to floating point by making the 2 or the exponent be a floating point number (2.0, 65.0, etc.).
The range of the single precision floats is about 1-e38 to 1e38
@exotic pumice I think the deinit() turning on the neopixel is due to glitches on the signal line. It's probably not useful.
ok
thanks
I've found a few cases where others have got it to work at 3MHz but I haven't had much success myself.
we have seen this kind of glitch before when the Circuit Playground Express bootloader was switching states and hadn't disabled the NeoPixel pins.
I think without a more precise SPI clock rate, this is not going to work reliably
@tulip sleet I reviewed both of those PRs, travis is unhappy with the constant name, fyi.
ugh, ok, thanks. I should have pylint'd it in advance
@idle owl it's not even a constant
@tulip sleet hah!
i guess it's complaining because it's at the top level
Silly pylint.
@tulip sleet cool. thanks.
Adafruit CircuitPython 3.0.2 on 2018-09-14; Adafruit Trinket M0 with samd21e18
>>> 2**65
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: small int overflow
>>> 2**65.
3.68935e+19
>>>
Adafruit CircuitPython 3.0.3 on 2018-10-10; Adafruit ItsyBitsy M4 Express with samd51g19
>>> 2**65
36893488147419103232
>>> 2**65.
3.68935e+19
>>>
right, exactly. are the coeffecients very small or very large also?
can't remember. i think they're largeish. i can check real quick...
yep. unpacked from a block read of registers:
coeff = struct.unpack("<HHbhhbbHHbbhbb", coeff)
i don't think they're that big
>>> raw = bmp._read_register(0x31, 21)
>>> coef = struct.unpack("<HHbhhbbHHbbhbb", raw)
>>> coef
(27561, 18848, -10, -295, -2856, 35, 0, 25751, 30855, -13, -10, 16140, 19, -60)
>>>
yah. not even close to e50.
@tidal kiln (sorry, talking to my wife about something) yeah, I was just worried about something like 1e-38/1e38
looks ok otherwise
ok. thanks. there's still the code review gauntlet if there are other tweaks.
@idle owl fixed the pylint problems on those PR's. Now passing.
@tulip sleet merged
I'll make releases. thanks!
Thanks for getting everything updated!
it's always not quite as simple as it seems. And esp8266 has a weird sys.path, looking at that, but should have a 3.x PR soon.
I knew I got a notification but I couldn't find it cause it was from 1am haha! Glad you got it working @errant veldt !!! did you end up sticking w/ circuitpython or did you change things up a bit ?
@marble hornet you probably already know about the open() in python but i found this useful, im gana try using it in my storage lib im trying to put together, i want to try the read chunk out on huge files
https://www.smallsurething.com/how-to-read-a-file-properly-in-python/
@idle owl LIS3DH commits are way ahead of release; does it need a a new release?
Oh probably if that's the case.
maybe it's just examples
Still needs a release if it's examples. But not a release for your purposes if that's all it is.
a couple of other ones have commits ahead of release, like pylint fixes, etc. Should I make releasese for those?
I mean we should always be doing releases for updates. Then we don't miss it when it's crucial, even if the update is a minor fix.
ok, I'll make releases; it's easy
Thanks!
@upbeat plover so, does the programs save to a file?
@tulip sleet hopefully soon we'll have a check for that:
https://github.com/adafruit/adabot/issues/18
or to nvm?
@raven canopy awesome sauce
@marble hornet I don't know how to save to file yet. I'd like to do b+ mode in open() and write to file, but instead of adding to it change values at addresses
mostly just need to refactor a nested try:. i don't like them...
quick question. I've seen this in a bunch of example code: PURPLE = (0x10, 0, 0x10), what's the benefit of me using hex notation like that to setup values vs PURPLE = (16, 0, 16) ? Is it just to give users the option to do it? Is it to make it easier for arduino only people to come to the circuit python side? Just curious
@tidal kiln sneek peek:
Found tag name: 1.3.1
Found status: behind
Compare adafruit/Adafruit_CircuitPython_Register status: behind
Ahead: 0 Behind: 1 Commits: 0
Found tag name: 1.1.0
Found status: behind
Compare adafruit/Adafruit_CircuitPython_OneWire status: behind
Ahead: 0 Behind: 1 Commits: 0
Found tag name: 3.1.0
Found status: behind
Compare adafruit/Adafruit_CircuitPython_INA219 status: behind
Ahead: 0 Behind: 1 Commits: 0
@sly wagon Simply an option.
got it, thank you!
@sly wagon yep. just different ways of representing numbers. normal numbers are fine. the0x in front means the numbers are in hex. you can even add a 0b in front to do binary.
>>> 10
10
>>> 0x10
16
>>> 0b1101
13
>>>
@raven canopy neat
@upbeat plover @marble hornet just a thought about using NVM. I have not seen you mention it so I want to be sure you are aware that the number write cycles is limited. It will βwear out β. Iβm not sure if the spec for these parts. Likely 10s of thousands but that is not hard to reach when logging data.
@tidal kiln awesome, many thanks !
No, reading is not limited.
@solar whale did you try USB HID on nRF?
@slender iron i idid a simple test for hatach a few months ago. Just a key code and a mouse motion.
hrm ok, it looks broken to me in tinyusb but its possible it was broken later
thanks!
Iβm on the road so I canβt test it until next week. Sorry
@solar whale thanks for the heads up
@marble hornet youβre welcome. I had visions of a rapid write cycle in a data logger test that could cause problems pretty quickly!
nvm, I found what I was missing
Hi all,
I'm getting a bug which crashes my CPX when collecting temp data.
The error:
b'Traceback (most recent call last):'
b' File "code.py", line 247, in <module>'
b' File "code.py", line 233, in main'
b' File "adafruit_thermistor.py", line 88, in temperature'
Which I tracked to this line: steinhart += 1.0 / (self.nominal_temperature + 273.15)
in this repo.
I don't quite understand what is going wrong and can't seem to replicate it in the REPL for debugging.
I'm using the standard 25 deg C nominal_temperature.
Anyone have any ideas?
To prevent memory-space support issues, put .frozen before /lib on sys.path. Users will no longer have to manually delete frozen libraries in /lib to avoid them being found first.
Update frozen libraries. We were accidentally freezing tests/ directory in libraries that had it; saved some space by removing that. Some libraries are larger due to more version information and/or minor additions. Adafruit_BusDevice has a large new method. Had to squeeze pirkey build a bit. CPX (not ...
@sturdy furnace is there more to the error message. That says where but not what. Any chance self.nominal_temperature is β273.15? Causing divide by zero?
@raiden#5305 was there more to the error message? the last output is usually something indicating what kind of error
No I think that's all I'm getting. But let me try again
and the value for the nominal temp is 25
It was worth asking π
@solar whale Oh fair enough, people do weird things π
@solar whale @tidal kiln nope that's all I'm getting as an error message. I've been trying to prdouce the error in the REPL wiht no luck.
It's pretty intermitent, maybe 40-50% of the time it happens.
I also have 4 CPXs and it's happening on all of them π¦ I've tried two different bootloaders as well
Where do you see the error message?
I'm reading through the serial port on a raspberry pi
so either through, cu, pyserial, or node
Makes no sense to me. Can you post the full code you are running? I canβt look at it much until tomorrow, but possibly someone can try to reproduce the error
Yup, shall I just upload the file here?
Sure
@solar whale here you go, thanks for your help π.
Line 102 is the thermistor initialisation
Ok. Hope to be able to look at it tomorrow.
@sturdy furnace your set up is a CPX attached to an RPi via serial? and that's the code running on the CPX?
ok, got another dumb question friends. I'm trying to make more sense of the wheel function that you can find all throughout a bunch of examples out there. Basically what i'm trying to do, is have wheel produce R.G,B values that are closer to the color purple instead of the usual rainbow. Doing it with red is super simple, but i'm having a brain fart moment. If you have a blog post you recommend i'd appreciate it π
red only wheel func btw:
def wheel(pos):
# print("func = 'wheel' pos='{}'".format(pos))
# pos = 255 - pos
# Input a value 0 to 255 to get a color value.
# The colours are a transition r - g - b - back to r.
if pos < 85:
rgb = (int(255 - (pos*3)), 0, 0)
print("Inside: pos < 85 ... rgb = '{}'".format(rgb))
return rgb
elif pos < 170:
pos -= 85
rgb = (0, 0, 0)
print("Inside: pos < 170 ... pos = '{}' rgb = '{}'".format(pos, rgb))
return rgb
else:
pos -= 170
rgb = (int(pos*3), 0, 0)
print("Inside: pos < 170 ... pos = '{}' rgb = '{}'".format(pos, rgb))
return rgb
@sturdy furnace do you have anything in your buffer.txt file when you run your code? if so , can you post a sample file.
@solar whale i just made one with done in it to get past that. it doesn't look like it's doing anything with the parsing results. sda_port isn't used anywhere else.
@tidal kiln sounds good. Do you get any errors?
not by running it via repl, but it sounds like they didn't either
so must be something about the rpi setup
I'm still unclear what the error is and where it is seen - is it in the code.py output to the REPL . TH CPX is not using TX/RX ( unless I am missing it) so it does know wha the RPi is doing.
yah. same here. don't fully understand the hw setup. that's what i'm asking them about. it could be something hw vs. code.
ok - glad you are on it.I do have a CPX with me and will poke at it tomorrow. Need to get some sleep now...π€
yep. no worries. we'll see if they respond. later.
@tidal kiln @solar whale sorry guys went and grabbed lunch. I have 4 CPXs attached to the USB ports of the pi, each one with the same code.py. Only one of the CPXs fails when this error occurs.
The error is appearing at the command line in a seperate screen
buffer.txt is used as a file buffer to send non-blocking neopixel cmds. So an example is p 10, c 1 1 1. The temperature reading doesn't really rely on that at all.
Also the pi is running stretch lite, and I've tried two bootloaders: 3.0.0rc and 3.0.3
When and how are your writing to buffer.txt?
A python script writes to the file (rpi side), and the CPX does reading (no writing)
If you dont write to the file and just let the code run, does it get the error.
I'll give it a try
@sturdy furnace what version of CPy are you using? Please upgrade to 3.0.3 if older than that. There was a usb output bug fixed after 3.0.1 that -might- have to do with this. https://github.com/adafruit/circuitpython/releases/download/3.0.3/adafruit-circuitpython-circuitplayground_express-3.0.3.uf2
I just made a summary of the 3.0.x situation to make current situation more visible and readable by the masses: https://forums.adafruit.com/viewtopic.php?f=60&t=143160
@sturdy furnace when I run your program , I don't see any output at all. You are only printing something if n0w-last > SAMPLE_RATE, but SAMPLE_RATE is 48000 so it will only print about once every 12 hours, Is that your intent? Or am I misreading the code?
BTW - I tried it with CP 3.0.1 but have not reproduced the error.
@sturdy furnace I see I did misread the code and the print intervals are not using SAMPLE_RATE but now I am not sure why I see no output.
Hi, some news about BLE to NORDIC NRF52 ?
@tepid sapphire still working on it.
@sturdy furnace - ok -- I used a buffer.xt with just done and I get output -- with CP 3.0.1 I am seeing ```Press any key to enter the REPL. Use CTRL-D to reload.
Adafruit CircuitPython 3.0.1 on 2018-08-21; Adafruit CircuitPlayground Express with samd21g18
soft reboot
Auto-reload is off.
code.py output:
light: 10976
light: 11984
temperature: 24.3319
uid: ;DH1MPJ1.6&ΓΏ
light: 11808
light: 10400
temperature: 23.7407
uid: ;DH1MPJ1.6&ΓΏ
light: 11136
light: 11488
light: 7696
temperature: 24.4637
uid: ;DH1MPJ1.6&ΓΏ
same with CP3.0.3
same with 4.0.0 - alpha 2
Adafruit CircuitPython 4.0.0-alpha.2 on 2018-10-16; Adafruit CircuitPlayground Express with samd21g18
>>> import microcontroller
>>> microcontroller.cpu.uid
bytearray(b';D\x04\x1eH1MPJ1.6&\x1b\x07\xff')
>>> ```
@sturdy furnace I have it running as code.py under CP4.0.0-alpha2 with buffer.txt done -- I am not seeing any errors. One thought, Depending on the values in your UID could the attempt to print them be causing some error? How often is buffer.txt updated? Do the errors coincide with the time of update of buffer.txt?
NOTE Please don't use 3.1.0 - I tagged it on master by mistake. I'll make a 3.1.1 that's correct.
to update build stuff, i just use
cd circuitpython
and
git pull
?
sounds like you're trying to sync your fork of CP? if so:
https://help.github.com/articles/syncing-a-fork/
thank you
i did something wrong... i ended up just backup up my board changes then doing git clone https://github.com/adafruit/circuitpython.git for fresh... dargh π¬
Do you have a fork or just a clone?
also you need to do git submodule update --init --recursive
just clone
In the long run, it's a good idea to make a fork, so that you can back up and keep track of your changes (if you plan to make some).
im okay with doing that all locally, not hard to copy paste
i got 700+gb free on this hd
thank you Danh
I'd like to use supervisor.runtime.serial_bytes_available on the Trinket M0 basic.
I loaded the 3.1.0 firmware from https://adafruit-circuit-python.s3.amazonaws.com/index.html?prefix=bin/trinket_m0/ and it seems to work perfectly.
I loaded the newly released 3.1.1 and get this error:
AttributeError: 'Runtime' object has no attribute 'serial_bytes_available'
I loaded 3.0.3, 3.1.0 and 3.1.1, went into the REPL and used these commands:
import supervisor
help(supervisor.runtime...
@upbeat plover are you actually making changes to the cloned copy?
only to mpconfigboard.mk, adding libs to frozen
.serial_bytes_available was added to 4.0.0-alpha work, but not backported to 3.x. You're welcome to try the latest alpha on Trinket: e.g., English version: https://github.com/adafruit/circuitpython/releases/download/4.0.0-alpha.2/adafruit-circuitpython-trinket_m0-en_US-4.0.0-alpha.2.uf2
By the way, please ignore the 3.1.0 build; that's really a 4.0 build, mislabeled. I'm going to try to delete those.
are you committing those to the main branch?
Hi, I just put 3.1.1 on a CPX board. Am I expecting to see a new .frozen directory appear after the UF2 is applied? Or do I have to get it from somewhere? Or is not a real directory?
It appears to work ok without it
Hey @tulip sleet - is there a reason serial_bytes_available isn't going into 3.x? One of the drivers was to use it as a work around until asyncio was in
It might be my fault (I just put it where I was told, but I could have been more specific)
@simple pulsar the .frozen is fake and is used to represent the modules that are frozen into the firmware
Hello @solar whale!
π
I got the new Neotrellis M4. The guide seems like a quick copy paste job and doesn't actually cover getting the example code going. I couldn't find a uf2 file for this board on the repo so I put the feather m4 express one on there based on the guide using it as an example. Now it never goes into boot mode so I dont know what to do.
@slender iron Worth mentioning .frozen being a pseudo-direction a bit in things like release notes (and the annoucements during this transition) otherwise I think you'll bemuse and get questions, e.g.
@median trellis There are Trellis M4 .uf2's here: https://adafruit-circuit-python.s3.amazonaws.com/index.html?prefix=bin/trellis_m4_express/. DON'T use the 3.1.0 ones -- that's a tagging error and I'm going to delete them. You can just pick a recent build.
Are you saying if you doubleclick the reset button now you don't see a TRELM4BOOT drive?
@tough flax The PR was a merge into master, meaning 4.0. Can you use the 4.0 alpha for your work? It's pretty stable on samd boards.
Yeah I don't get TRELM4BOOT. I did once. What can I do now?
I tried using the same cable for an itsybitsy and it shows up just fine so the cable is good.
@tulip sleet
@simple pulsar I added some explication to the release notes.
@median trellis what color is the RGB led on the bottom when you double-click?
It never changes. Stays red/magenta
I'm going to do some checking on the bootloader. back later. sorry about this.
Oops let me clarify. I never ever got TRELM4BOOT. Thats why I tried to put a .uf2 on there
Thanks @tulip sleet
I just tried about 6 times and finally got it to boot
Maybe the switch isnt always working?
@tulip sleet do you know where the example code is for this board? For example the code they ran on Ask an Engineer?
@median trellis no, I don't, it was done like two days ago. I saved the factory demo (which is very simple). Do you have a J-Link or similar?
ok, great thanks @exotic pumice !
thanks @exotic pumice but those are the arduino examples. I want to use python. The example they were running was a sample sequencer written in python.
you sure?
Hola
@median trellis ill be writing up the drum machine demo for circuitpy shortly
@median trellis i could sneak it to ya π
LADYADA IS HERE!!!
did you get your trellis booting
Yay!!
@meager fog or you could let me review it for you and give you feedback
who is Neo?
oh Noe yeah!
but is your trellis still π¦
or did you get it into bootloading mode?
It booted!
might be an issue of going through a USB C adapter... π
Off topic sorry :/
@harsh rain all good - we have a guide on switches! just use one half of it
Ah ok thanks
@median trellis did you finally get double-click to work? How'd you get it back to ...BOOT?
pig, check that out, it has everything u need!
Thanks so much!!
@median trellis ladyada and I were discussing your issue
You should make circuit python version of Metro board full size. Yes the feather is bueno but the Metro Logo looks beautiful
@median trellis ladyada and I were discussing your issue
You should make circuit python version of Metro board full size. Yes the feather is bueno but the Metro Logo looks beautiful
@meager fog got it
10/10 pcb board design
now CIRCUITPY is mounted
thanks blasted!
ok unzip the drumkit, drag those files onto CIRCUITPY
it should reboot once all are copied
omg I think I found what I've been trying to do for weeks https://github.com/adafruit/Adafruit_NeoPixel_ZeroDMA/blob/master/Adafruit_NeoPixel_ZeroDMA.cpp
You guys gonna restock OG NeoTrellis?? ββTwas a great board
SPI neopixels
Will do!
Anyone know is Maker Space has CNC machines?
thanks @meager fog . Gonna try that now. Thanks for your help! I'm sure you had better things to do. I am a software QA Automation Engineer by day and use Python and Selenium. Really excited to use CircuitPython and Micro Python for my maker projects.
disrupt - awesome π
disrupt - plz delete welcome.wav, i wasnt supposed to give that to you. its a sekret π
ππ
@meager fog you should do a Ultimaker3 or OtherMill pro giveaway for Christmas π
YAY
10/10 Corsair keyboard?
Its a Razer Ornata Chroma
digikey does digiwish as well
Ah
Ladyada the Raspberry Pi Parts Kit is a great deal, has to buy one
All the parts for great price π€
Thanks again @meager fog. I'll post about this a lot tonight and tomorrow on my IG and tell people to buy one. www.instagram.com/DisruptItYourself
@median trellis sorry to go back to the orig problem, but did you just have to wiggle the USB-C or unplug/plug or something? We could use your initial experience for future support.
to get to TRELM4BOOT?
@median trellis sweet! hope you have fun, post here if you have questions
@meager fog You heard of the Midifighter 64?
hmm i think so - that is from a few years ago right?
ok folks - itz zzz time for me
π€ nite nite!
Cya!! Thanks for talking
cya blasted!
@tulip sleet this is more about the guide I'm writing... it goes into some detail showing how to use that feature to control CP from a PC/Mac using the serial port. What's the timeframe for 4.0's release?
@tough flax it will be some months, because we have a lot of work to do on nrf52 and displayio, but you can point people to the alpha releases for now -- the code you show is runnable now with the alpha
I can discuss it with @slender iron - there's no inherent objection. We are trying not to do a lot with 3.x except when necessary. The latest release was to solve a persistent support problem. But you don't want to point to the alphas?
Scott is doing a complete rework of USB which will probably allow a second serial channel on USB CDC.
@tulip sleet - I'm aware of the second channel - the point of this guide is to give a solution that works with the current USB code for folks waiting for it
In other words, I probably forked the wrong version
now that apple deathmarch is over, maybe I can get back to some cp
I can use the 4.0 alpha for my work tweaking it (still working on that problem with linux)
But I'm willing to do the work to back-port it if needed
Are you an admin on the Learning System? I can send you a link to the WIP guide
I can see in-progress stuff, I think, at least some
@tough flax happy to accept a PR and make a new release to backport it
I think this is the correct topic for my question but I am new to this space so be gentle.
I am trying to get CircuitPython working on a Raspberry Pi Zero W. The adafruit page for Installing CircuitPython on Raspberry Pi states that CircuitPython works on a Pi Zero. When I try to run the blinkatest.py program I get a "NotImplementedError: Board not supported" error on the "import board" line of code. I modified board.py to print the board type and it comes back as "raspi_1". Tha adafruit page states that the Raspberry pi 1 is not supported by CircuitPython. Can anyone shed some light on this problem? Is Raspberry Pi Zero W supported by CircuitPython? Thanks in advance...
Does CP support Python's requests library?
@tall bay it works with https://github.com/micropython/micropython-lib/tree/master/urequests on an esp8266
I have not tried the βstandard βrequests lib.
I'll chime in on this too, since I recently ran into this limitation after switching a project from Arduino to CircuitPython. The project requires events triggered with at least 0.1 second resolution, but using monotonic() begins to fail. The only fix is to have the device reset as the resolution limit approaches. This is insufficient for my use case. I can't think of another way around it.
Even a rollover counter like millis() is preferable to monotonic(), as at least I can keep track of ...
@tannewt ping me when you do this one, its on the trellis m4, not thru the mixer and only sometimes?
but if it does happen, its the same static each time
@slender iron thanks. I want to make sure Iβm using the right branch this time. Where do you want me to pull from? Also this is a simple PR but on more complicated ones is thereβs process/tool for back porting? I should I just recreated it and weβll deal with conflicts when 4.0 rebased?
installing travis CLI is... π‘
@tulip sleet I couldn't figure out how to get to CIRCUITPY on Trellis M4 using the reset switch, but the boot drive was always accessible in Debian (amd64).
I copied CURRENT.UF2 off the shipped version (off the Trellis M4, as shipped) and put in a version of CircuitPython you linked last night.
lady ada's drum zip did what it is supposed to do, first try. I did not load a bundle lib; I only used the lib she provided in that zip.
I was able to rewrite code.py with a few mods (to dim the NeoPixels). I get the correct sounds (decently loud) in the headphone jack (to my usual headphones).
I don't have an elastomer keypad to check the buttons.
Adafruit CircuitPython 450c06e on 2018-10-28; Adafruit Trellis M4 Express with samd51g19
I don't know which lib bundle corresponds to that. ;)
@timber mango Use the 4.x bundle
"None of the above is a complaint - just information for you." hehe
@tough flax start with the 3.x branch.
@carmine wind Most CircuitPython libraries are supported on RPi You use regular RPi Python and the blinks wrapper library. You can install our libraries using pupils, and blinka and other needed libraries will be installed automatically
Maybe @deanm1278 would like to take a look before I can. :-)
<@&356864093652516868> The US shifts time this weekend so beware that if you are outside the US then the meeting time may change.
-1. "Spring forw..." @timber mango beat me to it... π
hehe
1st Sunday in November daylight > standard time
2nd Sunday in March standard > daylight savings time
This always happens at 2:00 a.m. in the local time zone (in the timekeeping system to be replaced).
In this case, 01:59:59 EDT is followed (in the next second) by 01:00:00 EST.
So if you're planning on that electronic caper, that's the exact moment of change-over for ya. ;)
Does circuitpython have all of the builtins that micropython has?
Ok, I need some basic git help here. I feel dumb. I have an existing fork of CP that I made the changes for serial_bytes_available on... https://github.com/ATMakersBill/circuitpython I now need to redo those changes on a different branch (3.x). I'm OK with just starting from scratch and creating a new fork, but that seems like I'd litter both my GitHub account and anyone who might have used it with a bunch of cruft.
Is there a way to change what that fork is based on? Even if I have to recreate the changes manually it would be nice to keep the URL etc.
My current plan is to change the default branch on my repository, checkout a new copy, use standard ediff to move over the changes and create a new pull request. Does that work?
@ruby atlas thank you!
hmm, is there somewhere that lists the amount of flash space that circuitpython requires?
@tough flax Assuming you have a remote named adafruit, do:
git fetch adafruit # fetch anything new from adafruit/circuitpython
git checkout 3.x
git merge adafruit/3.x # this should be a fast-forward
git checkout -b 3.x-serial_bytes_available # or whatever you want to call it
... # make changes
If the changes are identical to master, you could "cherry-pick" the commit(s) on master, but it's a bit tricky
@stiff cedar CPy uses up all of flash on all the boards it supports
No, that's what my plan was (I called adafruit 'upstream')
@tulip sleet what? that doesn't make sense, you wouldn't be able to add any code yourself then?
@tulip sleet and I added a "build this to make sure it works" before my branch π
your code is stored in an in-flash filesystem. On boards with no SPI flash chip, there's a tiny 64kB filesystem for you to use. On boards with an SPI flash chip ("Express" boards), all of internal flash is dedicated to CPy, and your files are stored on the 2MB or 8MB external filesystem in the SPI flash chip
I will tell you that git has a much sharper learning curve than other cm tools I've used
@tough flax I wrote a massive guide on it because of that.
@idle owl link please?
@tulip sleet, ok! I am using a non-express board (the adalogger M0 board), so that means I have 64k of flash for my code and libraries?
@tough flax You may already be past needing what's in here. It's meant for someone starting out. https://learn.adafruit.com/contribute-to-circuitpython-with-git-and-github/overview
But there could be a gem in there you could use.
@stiff cedar right, only 64kB. So store only the libraries youβre using.
danh, ok. What I'll likely do then is only have the sd card library on the chip flash and then put everything else on the sd card. π Thanks
My general CM and rev control background is pretty strong (SVN, ClearCase, RCS back in the day) but I'm just feeling my way through git - this will help
Also there are features omitted on those boards to make room for the file system
Youβll have to mount the sd card as a file system before you import anything, and also add it to sys.path
danh, is there a page that lists what is omitted?
and yes, I am reading a quick guide on mounting the sd card and adding it to syspath
@stiff cedar there is an "included list", so not as easy as an "exluded list". https://circuitpython.readthedocs.io/en/latest/shared-bindings/index.html#support-matrix
@raven canopy ok, so anywhere it says SAMD21 or all supported I should be good, thank you.
yep. yw! happy CircuitPython'ing! 
@idle owl your guide is very helpful!
Excellent!
So, on and adalogger M0, if I am using python libraries on an sd card what happens if I take the sd card out while the adalogger is on?
will I just need to press the reset button when I put the sd card back in?
Or will it automatically reset?
This PR adds the serial_bytes_available() code to the 3.x branch so that we don't have to wait for the 4.0 release to use it. This is important because it is essentially a stop-gap to make interactive serial usage possible until the secondary Serial connection is available in 4.x.
The code here should be identical to that in master (as of 11/3) including comments, etc.
@idle owl my only glitch on following your guide is that it doesn't handle the case where you're working off of a branch other than master - not a big deal, and I figured it out, but I thought you'd like the feedback π
@chrome perch and @slender iron I've submitted the PR - travis isn't done yet, but it's ready for your review (whenever)
I am getting this error on the 3.x build of CPX (Trinket built fine)
-40 bytes free in flash out of 253440 bytes ( 247.5 kb ).
4072 bytes free in ram for stack out of 32768 bytes ( 32.0 kb ).
Too little flash!!!
Is this my PR's fault or a known issue on 3.x right now?
@tough flax It's probably worth adding to the guide. I've not done it much, and that guide is my workflow so that's probably why it was skipped.
Even just a pointer that says "note, if you're working on another branch, this won't work π "
Where's the breakdown occur? As in where in the workflow... when you're creating your branch in the beginning?
When you're pushing it back to github
it says there's no upstream branch
And the PR needs to be against the right branch as well
ah
@tough flax the CPX build is very tight right now. Was 16 bytes free before your additions. Try setting CFLAGS_INLINE_LIMIT = 55, 50 or 45 in the mpconfigboard.mk for CPX. Keep reducing until it fits. Example in pirkey . If this is confusing, I can fix it later in your or
PR
(On phone)
ok... checking to make sure it builds before my changes
Something to check next time π
72 bytes free in flash out of 253440 bytes ( 247.5 kb ).
4072 bytes free in ram for stack out of 32768 bytes ( 32.0 kb ).
Before my changes π
@tulip sleet that fixed it - btw is there a target to build all boards (like travis does) in the Makefile?
No, but thereβs a shell script in tools/
Ok, I'll take a look
I'll commit that change to the .mk file
@idle owl here's the error I got that I needed to fix
fatal: The current branch serial_bytes_avail_backport has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin serial_bytes_avail_backport
interesting. Good that Git is helpful at least.
well minus the typo I caught.
I'll consider explaining it more when I have time, but would that have been sufficient for you to at least know you needed to fix it?
Yep - perhaps a pointer to ask here if stuck
but yes, it eliminates the "oh CR*#)P" thought when you see the FATAL error
ok. good enough for now.
Thanks for the feedback!
I need to finish the page on updating your branch if you get behind too, but haven't had time
Travis is happier with the PR - I'll leave it to you guys to review & merge - thanks! https://github.com/adafruit/circuitpython/pull/1317
Strange Q - is there a way in CP to redirect stdout to a file? debugging the serial port would be easier if I could add print() statements that went to a file instead so it wouldn't throw off the serial data
Hmm, I think this tutorial has an issue: https://learn.adafruit.com/adafruit-ultimate-gps-featherwing/circuitpython-library
the few places where the adafruit_gps.send_command function is listed show a standard string being passed. The examples in the adafruit_gps github repo show that those actually need to be binary strings.
e.g. if you don't append the passed string with a b it throws an error about unsupported types.
Yeah... I found the same.
@stiff cedar There's a feedback link on all guides, you can click it and provide the feedback there.
@tulip sleet Does that mean we never needed the self._i2c in the CPX lib either?
@idle owl it looks like it, cause it's only used in one place, as far as I can tell. I thought there were more i2c devs on the CPX board, but that's not true, just the lis3dh
Hmm ok.
I'm not going to bother to fix it, but wanted to make sure I understood it right
I changed it to the first way you suggested because that's always how we do it in code, so I wanted it to be as readable as if it were in code
yah, could just be fixed later as part of any cleanup. Pretyt low priority. It probably saves 10-20 bytes or so.
@idle owl is the adxl345 easier to use and/or cheaper than the lis3dh?
@tulip sleet Not sure. @pastel panther wrote the lib for the ADXL345 so would know how easy it is to deal with, but I don't think has looked into LIS3DH to have a comparison. Can't be worse, I'll tell you that much.
Not sure about cost.
it's more expensive in the store, but the product description for the previous generation of the part says "our favorite"
ok, just curious
I wish the bot would just tell me what word I said was so horrible so I could correct it.. π¦
Starts with a "d"
and holds back water?
Yep
π
The bot isn't smart.
Except the version you used was more of the religious condemnation type
I forgot what it was but it let something by the other day that was surprising
I've seen a few things, and have to agree with @idle owl - The bot is not smart.
@tulip sleet IRREGARDLESS the 345 driver was rather easy to port however I haven't worked on the more advanced features like tap so it may get more gross, but I don't expect it to. The datasheet is delightful. The comparing it to the LIS3DH, the 343 is apparently functionally equivalent to the 345 and substantially cheaper
@idle owl thanks for the heads up about the feedback!
I have worked with interrupts in Micropython. This implementation works very well. I would very much like to see this added to CircuitPython.
It has been added a while ago.
@idle owl FYI getting β404β on the link to the new trellism4 library release.
Yeah because I deleted it. There's a major issue with it.
πsorry to hear that. Good luck!
ok @meager fog the NeoTrellis is working and I am very VERY happy with it but my mind is already running wild with all of the things I want to do with it. The first thing I want to try is giving the option of holding down any of the first buttons on the far left for 2 seconds to allow you to change the sample to another for that section by having groupings by bass, snare, hihat etc. I have a bunch of samples from my Ableton Live library that I have selected but I'm trying to figure out how to get them into the right format. I noticed the wave_parsing.py file checks for a chunk_id, subchunk_id, audio_format, and a number of others. All I know is that my wave files are 2304kbps compared to your 768kbps and when I try to drop them in they throw a bunch of those RuntimeErrors. Chatting with Noe I know you are seriously busy right now, even more than usual... so if your answer to this is "It will be in the full guide" I can more than except that. The question being, of course: How do I get my wave files into the right format?
audacity?
That's what I used.
I tried audacity. Couldnt get it right.
@steep moth could you point me in the right direction?
It was a bunch of trial and error for me, but sure I can try to help you in a little bit.
I have four files I'm trying to convert. I spend two hours trying to make them work and I couldn't.
@median trellis you need to change the refresh rate. When you change the refresh rate, you will notice that the audio plays slower, you will have to select the audio and set the speed of it. It has been a while since I have done this, but I think that is what I did to get it to work.
@solar whale I had to revert a change. Not a huge deal. But I wanted to make sure there wasn't a way around it. There was not.
@idle owl I have one arriving Monday. Looking forward to playing with it.
@solar whale Nice!
@solar whale are you going to make the NeoTrellis M4 play cat sounds?
Possibly π±
In circuit python, how do I access the TFT to draw/fill rectangles for a Hallowing?
Hmmm, can someone help me figure out why some data from the gps library would be getting truncated? The latitude and longitude numbers I'm getting only have 4 decimal places instead of the 6 I'm expecting.
The US Post Office delivered my Trellis M4 today (Saturday) from a Wednesday night purchase time (after the show) to Connecticut. I was surprised to see the package. ;)
Here is my proof of concept code: https://gist.github.com/reportingsjr/078ec7ea81d0d8ee78f7da6b9e32412c
and here is the library function that is generating the data: https://github.com/adafruit/Adafruit_CircuitPython_GPS/blob/master/adafruit_gps.py#L53
that function takes in a value such as "3908.5481" and should return something like 39.1424683
instead all I'm having printed is 39.1425
OH! Circuitpython's floats are single precision, not double!!
Is there any way to use doubles in circuitpython?
@solar whale did you ever get your TFT stuff working?
For some boards, but I donβt have the information @tight garden is looking for. I did not do much with the Hallowing. It is supported by the new displayio module.
Ah.
It may work with adafruit_rgb_display as well. I have not tried.
yes I can use the 4.0.0 alpha with display.io to display bitmaps. But I didn't see a way to draw/fill primitives like rectangles
@tight garden the display is an st7735 so you may be able use https://github.com/adafruit/Adafruit_CircuitPython_RGB_Display/blob/master/README.rst to draw primatives.
@solar whale what is D2? I wasn't able to import it
let me try to make sure I have the updated libraries
got build_adafruit_circuitpython_bundle_4.x_mpy_20181102 libraries. Still fail to import D2
I can work around that since I know D2 is 39. But running it gives me an error SCK in use
props on the short nick aw ;)
Trellis DotStar pins were PA00 and PA01, but should be PB02 and PB03 shipping version. Still need to be bitbang; turning that off does not work.
Discovered by @kattni. I tested with a board shipped this week.
@tight garden displayio shapes are not supported yet
@tight garden can you post the code you are running. Im not sure where D2 is imported.
@stiff cedar Nope, no double precision, sorry. the single precision is 30-bits, not actually 32 (22 bits of mantissa) due to the way numbers are encoded in MicroPython/CircuitPython. This is about 6 digits of accuracy.
you could parse it yourself and split the numbers up, but that's a lot of work
@slender iron wt thanks for the info. I hope it will be supported soon
I noticed circuitpython is slower than running Arduino. I suppose that's normal since C vs python. I noticed this when running neopixels code that does the rainbow wheel. The python code ran a lot slower.
@tight garden yup, if you need execution speed use arduino. if you need development speed use circuitpython
Why have gain per-channel rather than per-play? I was thinking it'd be:
mixer.play(sample, voice=0, gain=0.1)
@C47D Your help would be welcome on SAMD work too if those are easier to find for you.
i suggested it that way - seemed more 'matching' of how mixers work (you have a knob to set the gain for that channel)
but im ok with either!
I'd call this channel_count instead of channels. That way it'll match the internals and the kwarg on RawSample.
@gmparis time.monotonic_ns() will be released with the next 4.x alpha. Feel free to try a test build from here until then.
@dhalbert I see PCA10059 was added by this PR, but I don't see it among the files released for circuitpython 3.1.1.
Should we compile it ourselves to get started for the PCA10059 board?
@hansmbakker We've done a lot more work on 4.x. Either try those releases or test builds from here.
4f2f571 Adding the serial_bytes_available() method to t... - ATMakersBill
bd4188a adding changes to mpconfigboard.mk to reduce me... - ATMakersBill
adf9b21 Merge pull request #1317 from ATMakersBill/seri... - tannewt
No problem - if you think of it please let me know when there's a release with this in it on the 3.x branch :-)
I'll make a release soon, within a day or two.
personally per-channel seems like a better solution. Think of the example of somebody turning an attached gain pot to adjust volume while a long clip is playing. What would the interface be to adjust during playback?
woops that was my call - sorry bout that carter! naming things is hard :D
Just a thought on this Sunday evening - this channel is perhaps the most welcoming, helpful, useful place in all of tech right now. Heck, perhaps anywhere. Thank you all.
okee dokee one more #leek sorta for the night, we got circuitpython and bluefruit workin together, and i made another synth demo' (all made with #circuitpython-dev )
@river quest one of the best piano/synth lines in all of history! Trent is such a master...
Work in progress led display for a Black Panther Cosplay Iβm working on, powered by circuit python π
I didn't get to anything circuitpython this weekend, but did a heap of 3D printing and got an electronics project with python on a raspberry pi going so that was nice. too bad the weekend is practically over, back to real life tomorrow.
This weekend went by really fast for me.
I spent some time watching BlizzCon coverage and writing modules in C for CircuitPython.
Weekends go by fast, so do whole weeks.
Very true.
@arturo182 I know you're working on other projects. Let me know if you have time to respond to this, or if I should just proceed. Even a quick response would be helpful to some of the queries would be helpful. Tnx.
@umbral dagger what C modules?
<@&356864093652516868> Here is the meeting notes doc for tomorrow: https://docs.google.com/document/d/1wWPuqbIkO3v3ixij9Nh-RgBKz43yejuqcpTDMgjSd0o/edit?usp=sharing
For the mixer, I'd suggest using "level" instead of "gain" to describe the control over the volume of a track. That's closer to the terminology of hardware mixer sliders. Gain or Trim usually refers to an relatively uncalibrated adjustment to the amplifier that precedes the level control.
Logarithmic level control values would be ideal, BTW. However, most folks could live with a linear value.
I'm so sorry! I'll respond later today, but in general I think you can proceed with what you think is best for the project.
@slender iron For a guide on doing so.
@turbinenreiter#5911 take a look at https://github.com/Microsoft/uf2-samdx1/blob/master/README.md I also think there is adafruit fork but Iβm on a plane about to land and canβt search now. Hopefully someone else online can help you get going.
π that worked!
no worries. simple enough to change at this point.
@tidal kiln ahhh bmp is behind a big circuitpython travis build π
in abut 30 minutes when its done we can merge
quickly jotted down the flashing procedure before I forget again https://forums.adafruit.com/viewtopic.php?f=57&t=142170&p=707151#p707151
@tepid cape thanks we will add this to the uf2 guide page
Super-useful! I resurrected 3 boards I presumed dead. I wish I could tell you how I ruined them, tough. The chance that PlatformIO eats bootloaders is slim, right?
its not so slim, sadly
we've heard more 'brickings' with platformio
altho we are not sure why - we dont use it π¦
the good news is once you lock the bootloader, it should never happen again
(not m4 bricking, but we did hear of some m0's from another company)
lock the bootloader by dragging the update uf2 on - its easier than doing it thru jlink
π
@meager fog bps for wavefile? looks like it's out of the oven now.
ohhhh. too many pr's. cruising through and tweaking about half a dozen right now. π
i saw zooooom
I bricked a Feather M4 Express using atmel start. I thought it was a lost cause, as I could not find it in Jlink (but I have zero experience with jlink and gdb).
There was nothing special I remember about that particular event -- was deep in the middle of the development of the program (a forth interpreter). The PiUART CP2104 was connected at the time.
Forth most likely had a stack underflow which caused arbitrary execution of code -- that's my best guess. Did not brick during a flash update (I use the Arduino bossac to flash all my Atmel Start projects to MCU).
Discussed this: better to use a timer so we can have more than one instance.
@timber mango did you manage to βunbrickβ it . The notes from @tepid cape should do it https://forums.adafruit.com/viewtopic.php?f=57&t=142170&p=707151#p707151
I could not get Segger Jlink EDU to recognize it, but the same setup works with the M0 feather, so maybe I had an intermittent. My assumption at the time was that the segger could not (in principle) communicate due to <foo> -- this (today's) conversation did two things: a) gave me confidence that I didn't do anything wrong by working in atmel start in this way and b) gave me hope to unbrick it.
I don't really care about unbricking it; I worked around it (moved onto Metro M4 Express for the time being). I care a LOT about a) and now I can move forward in a) with confidence. ;)
I tell people to put such matters into the junk drawer and address them on a snow day in February, which is probably where this ends up.
I do (presently) have a Feather M0 all ready to go with JLink, so I need to practice with that to get it deep in my bones, what is supposed to happen, so I won't waste time when I add the unknown of a bricked M4 to the mix. ;)
(Scott's tutorial there was invaluable to me)
@slender iron I will be lurking today. On an airplane-spotty Wi-Fi. Group hug. Status- grandkids are fun!
@timber mango I've been able to recover with an atmel edbg when a jlink fails
I made one by removing the samd21 from an arduino zero
I do have a working Arduino M0 Pro with the EDBG stuff on it.
removal of samd21 is lots easier than installation. thanks!
np
@slender iron tan I will be lurking today.
hmmm thought I was an hour late...... π
date math: hard.
I am microphone-less but not exactly lurking.
@pastel panther Will do π
π
π
Library tracking issue: https://github.com/adafruit/circuitpython/issues/1246
Group hug to the CircuitPython team and community. Fun to watch the progress on MIDI, USB, and audio mixer (multi-track!). Looking forward to updated support for displays. Amazing group effort with excellent leadership.
@pastel panther woot!
πΊ
no mic
Impossible to put into words, but just a general appreciation of the boldness and uniqueness and new new new-ness of what I call (internal to my self) the Adafruit Culture.
pt is often in my thoughts, for what he brings to the public face of adafruit industries. ;)
Plane landingβwill catch up via recording. π
(that's just plane great)
- @tannewt & @kattni for the merges
- @danh, @jerryn, and those who's names escape me, for support in discord this week.
- Group hug^2.
Quick update: I'm currently working on a guide for extending CP by writing modules in C. Also, I'll be speaking about CP at PyCon Canada next weekend.
@umbral dagger Added to the notes!
oooo cool guide idea @umbral dagger
not an illusion.
π
gratz!
π
Congratulations!
@tidal kiln Limor's suggestion
congrats @slender iron . :)
π go long
π
"Information Czar" is a similar term/idea... π
Distracted from CPy work β writing some basic analog electronics articles. Did have time to throw together a CV gesture controller using CPy, a Feather, and a ToF sensor. Had the prototype up and working in about 10 minutes! Simultaneous MIDI output is next. (CV is the term for Eurorack musical synthesizer Control Voltage β a universal way to control note pitch, filter characteristics, and just about everything else in the analog synth domain.)
For this week, Iβll be focusing on finishing the authoring tasks and the mechanical assembly of the UFO model for a local film group. Iβm sure there will be a few more tweaks to the UFOβs CPy code, but will be able to do that with my tablet in the video studio.
How am i ever going to learn Python when everyone keeps dangling these juicy carrots?
@umbral dagger I look forward to your c helper guide!
New bare-metal port of Brad Rodriguez' CamelForth (using Atmel Start) for the Trellis M4 (SAMD51G19A).
Trellis M4 is crystal-less.
To get the clock oscillator going on Trellis M4, I used the 32k ultra low power clock.
This was the first time that the crystal oscillator (XOSC) specification, in the clocks section of the Atmel Start web GUI, was not used in a project of mine.
I had USB bidirectional connectivity (a text-based interpreter, running CamelForth) going on Trellis M4 in a matter of hours (just yesterday!) No Ringbuffer - it is a kludge. ;)
I AM ONLY ONE MAN
The Corporate Overlords are proud of your ascendence, @pastel panther. #GanntChartIt
we're leaving for the con next wednesday morning
FRAM Library: I2C merged; will update SPI branch with changes and put in PR later today.
Adabot:
- "Library needs release" validator merged. Along with an upgrade to the
requestsmodule to mitigate a CVE. - Run/cron on Travis is mostly working. Still tweaking the yaml.
This Week:
Adabot:
- work on library download stats
- get Travis run to a PRable state.
- Better & further implement
request.get(timeout=n), which documentation encourages to use in "production environments".
do you have any test code for this?
I say "kwispy" now for QSPI ;)
be bolder - you cannot jump over a chasm in two successive leaps /aphorism
that's an interesting notion - maybe the ones that're assigned to circuitpythonlibrarians?
feels additional adabot work creeping π
i tend to see PRs eventually but not feel particularly qualified to review.
I've learned plenty from the less-than-stellar reviews I've done.
@idle owl is a Guide swiss army knife
Blog up a "call to arms" on a regular basis?
You can do a lot with screenshots to communicate difficult ideas on Discord
... and if you hold a workshop like that, please record it for time-zone challenged learners.
Like the new lib list...
yeah, i'd be happy to sit in on a live code review session periodically.
or something along those lines.
a weeds without Muckies is more than one can stand .. π΅
CP is the perfect "I wanna do this open source thing but I don't know a git from a refrigerator" project/community. Lots of small things to do and many very helpful people
And people watch me adapt toys etc.
Just because code isn't right doesn't mean it is wrong. ;)
Don't fear the "blame" button...
FYI - I just saw that CP has 99 releases π #100 will have my backport in it
thanx all
@slender iron I'll totes give you my twitch prime sub
you can also put up your own github and let someone more experienced look at what you wanted to do in a pull request
I'll bring the enthusiasm
bell and howell filmstrip ;)
Also just remember that git has REALLY GOOD memory and just about any mess-up can be reversed
I think the only rare hardware I have is the sip/puff sensor (and I'm happy to test)
PowerPoint style graphics can work, too
"too many toys"
No, sorry
Thanks everyone. Excellent discussion.
Thanks everyone! Have a great day. 
woof
@raven canopy I have a new green download arrow in the discord client.
ta ta all π
@timber mango hopefully it contains bug fixes, and not "features". π
Gotta scoot. ttfn
off a minute to get some lunch - later y'all.
Time to head out. Need craft supplies and more heat shrink.
beginners learn a lot in pairs of beginners, but you have to find two beginners and put them in the same place at the same time
eat as much as you want -- we'll make more. -Frito Lay
it's fun(ny) where we can find "words of wisdom" π
everything can be an opportunity for education
hate to run off, but have to go develop a residential zone in Minecraft π have fun all... looking forward to "coding more"
I believe that for SD140 this define is not needed as it uses the NRF528xx defines. This is just for legacy reasons
Yes, that might be better.
I think my idea was that we want to make the API as simple as possible, so we don't want to bother the user with terms like Peripheral and Central and having them try to figure out which one they need to use, it's easier to just have one.
Thanks! Could you say a little something about how it differs from ubluepy and your thinking when making the changes?
It differs quite a lot since I made many breaking changes. I wanted the API to be something that I would find intuitive and easy to use, to be like other CP APIs, easy for beginners.
Truth be told, it's been some time since I wrote this and I should've pushed it earlier, because now I have a hard time remembering all the details of my decisions.
Also, as you say, I'...
<@&356864093652516868> Here are the recordings of today's meeting: diode.zone YouTube
Diode Zone is a friendly place for original content with a focus on creativity and electronics!
@slender iron yeah. merged. ok with me closing? :
https://github.com/adafruit/circuitpython/issues/1303
yup! of course
next time you can add "Fixes #1303" to the commit description and github will do is automatically for you
ok. will try to remember. i thought it also triggered off being mentioned in the PR comments also?
I don't thiiiiink so but I could be wrong
I think the first PR comment is used in the merge commit
@slender iron on adabot "separate stats", are you thinking all stats including the current core stats? or just bundle+pypi (that's what i was meaning)?
whatever you want
Good night - i'm totally cheating - i'm trying to integrate accelerometer to play wav and also some lights getting error when i'm trying to merge 2 code.py like I'm calling the board twice or something - thanks for any help
they sent me over from projecthelp
can you share your full code somehow?
@slender iron https://include-what-you-use.org/ I thought when you mentioned this it was a google internal thing, but there it is for the world
@tulip sleet its been public awhile. I just used it at google
i misunderstood, but glad it's available
@meager fog you there??
@harsh rain please don't ping specific people. ask your questions generally so anyone can help you
Ladyada is usually really busy.
@tulip sleet ya, its super handy
@warped pendant sry - that question was for you - can you share your code?
one sec @tidal kiln
i'm trying to get it back to where i was it's the ValueError: Pin PA30 in use error - bbut now it's not working at all ugh.. one more min or so
ok. np. just report back when you get back to the issue again.
@solar whale hey sorry I had to jump on to a different problem. I've removed the temp sesning and 87887........................................................
well that's where the issue was i was able to use the ears - circuit-playground-express-head-tilt-ears to merge in order to make it print but then it gave me an error and i think i undid too much - basically it was just this and i was trying math.fabs and such but i can get it to print just not play the wav b/c Pin PA30 in use (from in the top i think...)
If I add the play for the audio then it messes up but the print would work
audiofiles = ["recy1a1.wav", "recy2a2.wav", "recy3a2.wav", "recy4a2.wav"]
while True:
x, y, z = cpx.acceleration
print((x, y, z))
time.sleep(0.5)
if x < 0 :
print(("reycle"))
cpx.pixels[0] = (255, 0, 0)
cpx.pixels[9] = (255, 0, 0)
well it won't now - maybe just let me copy and paste more and try and figure out where i'm making the messup please don't laugh at my errors.
they both work separately, right? it's just the attempt to merge them together where you're running into issues?
yes i was the
ValueError: Pin PA30 in use
like it was
from adafruit_circuitplayground.express import cpx
messing up
spkrenable = digitalio.DigitalInOut(board.SPEAKER_ENABLE)
spkrenable.direction = digitalio.Direction.OUTPUT
spkrenable.value = True
and the board you are using is a CPX?
or also saying
import board
in the same thing
yes it's CPX
cause in the other functions it's saying
while True:
x, y, z = cpx.acceleration
and
cpx.pixels etc etc.
so i shouldn't put the import board and then the from adafruit_circuitplayground.express import cpx
at the same time
maybe. what are the two codes you are trying to merge? sounds like one is:
https://learn.adafruit.com/circuit-playground-express-head-tilt-ears/code#the-code-4-5
what is the second?
yes head tilt ears because i was trying to find something to make a call from the accelerometer from the tutorial
# this is python
audiofiles = ["recy1a1.wav", "recy2a2.wav", "recy3a2.wav", "recy4a2.wav"]
while True:
x, y, z = cpx.acceleration
print((x, y, z))
time.sleep(0.5)
if x < 0 :
print(("reycle"))
cpx.pixels[0] = (255, 0, 0)
cpx.pixels[9] = (255, 0, 0)```
merging in (speaker etc.)
this is python
audiofiles = ["recy1b1.wav", "recy2bb2.wav", "recy3b2.wav", "recy4b2.wav"]
def play_file(filename):
print("Playing file: " + filename)
wave_file = open(filename, "rb")
with audioio.WaveFile(wave_file) as wave:
with audioio.AudioOut(board.A0) as audio:
audio.play(wave)
while audio.playing:
pass
print("Finished")
while True:
if touch1.value:
print("A1 touched!")
play_file(audiofiles[0])```
so trying to put in the
# this is python
play_file(audiofiles[0])```
after the
this is python
while True:
x, y, z = cpx.acceleration
print((x, y, z))
time.sleep(0.5)
if x < 0 :
print(("reycle"))
play_file(audiofiles[0])
it would print recycle (sorry for typo) but then not play the audiofile and the pin PA30 error and i think it was error on the play_file line as well
SORRY! i'm so confused
@warped pendant read here real quick
https://support.discordapp.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline-
so you can markup your code
# like this
print("awesome")
can i edit that?
also - you can go back and edit your previous posts with that markup
^^ yep
up arrow to edit last post. otherwise however mouse over to right side of a post until you see the 3 dots, which brings up a menu that has an "edit" option
@sturdy furnace no problem - i know all about getting distracted π Have you resolved you problems wit the CPX?
I get distracted all the time. Hmm... I should go do some Circuit Python... Hmm... I should go do some Arduino.
@solar whale oops, that was sent prematurely. I'm debugging it now (no luck yet). Running through the stability and checking bootloaders etc.
I think the issue persists without the thermistor library. So it's something else. It seems one (with the 3.0.0rc bootloader) is stable, yet one with 3.0.3 is not... which is odd.
I'm seeing the error every second reboot on the failing ones, which might be telling?
Anyway, I'm doing a deep dive now. So will get back with my success or failure π
@sturdy furnace good luck -- It'll be interesting to find out what your learn.
Thanks for your help, and more importantly your moral support π
looks like maybe the start/stop marks didn't line up correctly or something
^^ that becomes this:
here's a simple example:
# this is python
foo = 23
oh
@warped pendant don't worry if you can't figure it out - don't want to diverge you from your original question
is that right? i need to know how to discord properly
Q: can you undo undo in MU ?
is there a key command?
i mean redo
its usually ctrl-shift-z I think
Wow @slender iron you guys really need more people to run the forums, wow, so many unanswered posts, that much be a lot of work.
@steep moth It is a lot of work. How old are they?
There are a bunch from just over the course of a few days.
got an example?
50 posts I think on the first page for unanswered posts since the beginning of November. https://forums.adafruit.com/search.php?search_id=unanswered
@warped pendant markup looks better. i think you were on the right track with your issue. you are trying to import the adafruit_circuitplayground.express lib, but also access things directly - so that's conflicting with the cpx library's internal use of those items
@tulip sleet, re: floating point precision. I did end up splitting up the number and printing out the separate parts for higher precision.
Now on to my next problem! π
Does the uart try to allocate a buffer the same size as the baudrate or something?
I'm trying to adjust baud rate on my adalogger M0 to 56700 and it is giving me a memory allocation failed error
@steep moth kinda unfair to look at it that way because you aren't seeing what was answered. We do have systems in place to find those posts though
@warped pendant you don't have to use the cpx library, in fact, that first example does not:
https://learn.adafruit.com/circuit-playground-express-head-tilt-ears/code
you can think of the cpx library as a wrapper library to make using the things on the CPX board easier - but you can use them directly, like the ears code is doing
@slender iron True, I am still pretty new to the forums, still, that must be a lot of work, people have a lot of questions.
ya, it is. Adafruit pays a number of folks to answer as many as they can
It looks like the time is off on the forums, or it is a different time zone? Sorry that none of this is related to Circuit Python.
ping me in a different channel and we can keep chatting about it
Okay.
hey thank you @tidal kiln --- will try another day π¦ working and making light hapen, just no sound
@warped pendant hopefully that helps / makes sense. it might also help to look at the code of the cpx library:
https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/blob/master/adafruit_circuitplayground/express.py
and you can see how it imports board and does things like configure the speaker enable pin:
https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground/blob/master/adafruit_circuitplayground/express.py#L104
so if you also tried to do that after importing cpx, you would get that error about the pin already being used - because the cpx lib was using it
anyone else seen spurious I2C pullup errors? https://forums.adafruit.com/viewtopic.php?f=60&t=143209
Hmm... Strange.
thanks so much @tidal kiln need to sleep on it and maybe just make my thing capacitive again for tomorrow - it's just a lot of rain so was trying to put it all in a ziplock. π
@slender iron no. and reading that sounds like they might be beyond the pullup error and now it's something else. but they don't say what. just "It was working then stopped working".
it's not clear what the nature of it not working now is, but it sounds different.
@slender iron they are not updating val in the loop
@tidal kiln ok, I'll wait for them to reply before responding
@slender iron Do you know why if I was using the gps library and tried to change the baudrate after starting the gps I would get memory allocation errors?
@slender iron - should I say yes about the i2c pullup errors? I mean, we had to add external resistor & cap, right?
in case anyone is wondering:
Adafruit_CircuitPython_Bundle downloads in the past week:
{
'adafruit-circuitpython-bundle-py': 67,
'adafruit-circuitpython-bundle-2.x-mpy': 61,
'adafruit-circuitpython-bundle-3.x-mpy': 335,
'adafruit-circuitpython-bundle-4.x-mpy': 131,
'adafruit-circuitpython-bundle-examples': 65
}
and the PyPi downloads winner for the last week should come as no surprise:
'Adafruit_CircuitPython_NeoPixel': 151
@tulip sleet what's the effect of running the Metro M4 flash eraser UF2 on an Itsy M4?
https://forums.adafruit.com/viewtopic.php?f=62&t=143286&p=707487#p707487
I'm enjoying working with CircuitPython on the M4 Express ( https://www.adafruit.com/product/3857 ), but I'd love to be able to run Scala native ( http://www.scala-native.org ) on something like this sooner or later. The Scala native team is working on support for 32-bit ARM, but I'm hearing recommendations of "a few megabytes" of RAM for running it. Can anyone tell me if an M4 Express with more RAM is in the works? Who could I prod to make that happen? I'd be happen to test an early version with larger RAM capacity. π
@neon briar Its not likely because the SAMD51 tops out at 256kb memory
@pastel panther sounds like usb is unhappy
is it a '51? clock setup may be wrong
ok, thx @slender iron
Hello π I was wondering if it is possible to flash circuitpython on a fresh https://www.adafruit.com/product/3406 that comes with the arduino bootloader without using a programmer.....? Would very much appreciate some help please!
The Adafruit Feather nRF52 Bluefruit is another easy-to-use all-in-one Bluetooth Low Energy board, with a native-Bluetooth chip, the nRF52832!Β It's our take on an ...
@slender iron It is a '51. does uf2-samd include some clock setup in the board config?
there is this
#define BOOT_GCLK_ID_CORE SERCOM0_GCLK_ID_CORE
#define BOOT_GCLK_ID_SLOW SERCOM0_GCLK_ID_SLOW
@glacial lichen it is possible but the support is very early still
and #define BOOT_USART_BUS_CLOCK_INDEX MCLK_APBAMASK_SERCOM0
@pastel panther I think it just starts crystalless
@slender iron I would need a little help with the bootloader stuff and programming. A buggy circuitpython would be okay and I am using the nordic sdk for work, just do nt have a programmer around at home
did you load uf2 and a circuitpython build?
have the page open
@glacial lichen https://github.com/adafruit/circuitpython/blob/master/ports/nrf/boards/feather_nrf52832/README.md
we're mainly focussed on the 840 though since it has usb
I can't get the bootloader to load the BLABLABOOT drive, so I haven't been able to load CP yet
I verified the copy of the bootloader onto the '51 with the JLink, so I'm pretty sure it's at least on there
@pastel panther you can do it with jlink too
I have to give it an offset, right?
@gusty kiln when you have a chance: https://forums.adafruit.com/viewtopic.php?f=60&t=143138
@pastel panther through gdb I don't since the linker script encodes it
hmm. I've been using JLinkExe to load .bins but I can try gdb
@tidal kiln I think the M4 erase bootloader doesn't aactually work. Not sure what the user is using.
i think they are confusing bootloader with firmware and seeing the eraser as a cure-all
the erase .uf2 probably doesn't work on the itsy because the QSPI pins may be different
anyway it would mess up the bootloader?
@pastel panther I like gdb because I can see how far the code gets after I start it
the itsy m4's were shipped with an unprotected bootloader. It's possible, but I don't understand whether they no longer see ITSYM4BOOT or not
as i understand it - they can get that ok
they should just forget about using M4_erase.uf2 or something like that. get them away from that. I can build a special itsy m4 CPy .uf2 that erases CIRCUITPY
maybe they have a hard-crashing main.py
yep. that was my general suggestion. pointed them to the itsy CP firmware, etc.
would a hard crashing main.py prevent REPL connect?
possibly, I'm building a special UF2 now. Will upload it here shortly
@slender iron sorry to be that guy, but what is the gdb command to load a bin (or should it be the elf?)
interesting - is a special UF2 the only way out then? since they can't see CIRCUITPY to rename or edit main.py
and can't connect to REPL
occasionally - not exactly sure why. It should go into safe mode the next time, but it doesn't
@tidal kiln have them load this, then load the regular 3.1.1.
does that / can that set prot bit also? in case it's not set?
I'm ok with it being separate but I feel like each voice should be its own subobject. That way the API could be:
voice = mixer.voice[0]
voice.level = 10
voice.play(sample)
Maybe we even allow the level to be a sample:
voice.level = envelope
no, for that, they should load this: https://github.com/adafruit/uf2-samdx1/releases/download/v2.0.0-adafruit.7/update-bootloader-itsybitsy_m4-v2.0.0-adafruit.7.uf2
@slender iron I should probably do a DEBUG=1 build, huh?
maybe do that first, then the ERASE-CIRCUITPY, and finally regular 3.1.1.
wait at least 15 seconds for the update-bootloader to finish
the blinking light will change when it's done
@pastel panther if you want to see where the code ends up
@tough flax just in case you haven't seen this already. someone in the forums working on sip/puff:
https://forums.adafruit.com/viewtopic.php?f=60&t=143209&p=707530#p707528
@slender iron I cleaned out the bogus 3.1.0 release from AWS S3. I notice that none of the artifacts seem to be older than about last May. Did you clean up the S3 buckets at some point in the past?
ya, I did
ok, maybe i'll do another one with the builds with dates, from say September and earlier. aws s3 cli is kinda terrible, but I got it to do what I want
k thats fine. don't delete tags though
@slender iron , it looks like it's getting to the main loop at main.c:220 on
so it's at least running?
yup, sounds like a usb issue
no just PR builds, etc.
kk
I'm going to look at it with the microscope and the maybe try reflowing or replacing the socket?
if you have any tips for things to look for other than continuity or shorts, that would be much appreciated
@tidal kiln can you review a PyPI setup for me? Brennen's Pi deep in a Raspberry. https://github.com/adafruit/Adafruit_CircuitPython_BluefruitSPI/pull/5
@pastel panther thats where I would start
@idle owl review or test? i don't have the hw.