#circuitpython-dev

1 messages ยท Page 145 of 1

uneven yarrow
#

cool yeah I'd def like to follow that repository

#

thanks ๐Ÿ˜ƒ

indigo wedge
#

@solar whale, i have not tested SPI on the pca10056, some of the pins cannot be used because they are already used by the DK, but I think PB10-PB15 are fine to use

idle owl
solar whale
#

@indigo wedge FYI - I was able to get a 2.4" TFT- featherwing (ILI9431) and its sdcard working on the feather 52.

indigo wedge
#

nice, did you use the rgb display lib?

solar whale
#

@indigo wedge yes - it paint the screen pretty slowly! - otherwise I was just doing some slow bitmapfont so it was fine.

idle owl
uneven yarrow
#

awesome thanks @idle owl ๐Ÿ˜ƒ Yep, I'll def keep in mind that it's a work in progress. it will be cool to see it take shape

#

thanks for the links!

idle owl
#

You're welcome!

solar whale
#

@indigo wedge I tried moving CS to PB13 - so using PB10-13 but still no luck - time to hook up the logic analyzer....

indigo wedge
#

cool, let me know how it goes, i want to get SPI working on the DK ๐Ÿ˜ƒ

solar whale
#

sure - it'll take some time since I have to reoragnize my connections. tis is my first time tryin SPI on it as well. Nice to see it worked on the feather52 board.

indigo wedge
#

yes, so we know the implementation in the port is fine, maybe just the board files are misconfigured

raven canopy
#

@uneven yarrow it is working. on a trinket, you'll definitely have to mpy-cross it. won't fit otherwise. still working out some bugs on the PR to include it in the bundle. but, that's all related to documentation/non-code parts.

solar whale
#

It was nice to beable to put the RGB display library on the SDCad since the onboard FS is pretty small. only about 80K available.

#

@indigo wedge Is tahte any reson not to make the FS larger on the pca10056. It has lots more flash, correct?

indigo wedge
#

yeah, I just made it match the feather one, but it could be way bigger i think, there is lots of flash available

idle owl
#

@sommersoft#0222 That's what I thought, but I wasn't certain.

raven canopy
#

@uneven yarrow and please, let me know if it doesn't work. actually, scratch that....let me know ANY feedback you have (function names suck, it's overly complicated, etc)

solar whale
#

Is it just changing the values in the .ld file?

indigo wedge
#

yes, i believe so

solar whale
#

OK - I'll give it a try.

idle owl
#

@sommersoft#0222 Didn't want to hand it over with the wrong expectation so I erred on the side of beta ๐Ÿ˜ƒ

raven canopy
#

hehe. it's all good. just cause it worked on my desk...doesn't mean its past beta. ๐Ÿ˜„

solar whale
#

@indigo wedge I increased the FS to 0x40000 (256K) and it seems to be happy

indigo wedge
#

That ought to be enough for anybody ๐Ÿ˜‰

solar whale
#
>>> 
>>> 
>>> import os
>>> os.statvfs('/')
(4096, 4096, 59, 58, 58, 0, 0, 0, 0, 255)
>>> 

```  the Circuitpython Bundle  will use that up fast!
#

@idle owl Shoudl the adafruit_sht31 library be added to the bundle at this time of do you want the docs all updated first?

idle owl
#

@solar whale I think it can be added to the bundle. The plan is eventually to have documentation in everything first. But we're not quite there yet. So if you want to get it into the bundle now, that's fine.

solar whale
#

How do we do that?

idle owl
#

Make a PR to the bundle but I'm only half clear on how to do that.

#

Getting some more info though ๐Ÿ˜ƒ

#

You have to update .gitmodules and something else. It's the something else I'm not sure about.

tidal kiln
#

yah, basically just PR the bundle repo. see the bundle repo's readme. so fork it, do what it says there to add in the bundle, and then PR that back.

#

but then you also need to do a relase on the actual library repo (the one being added to the bundle) for the automated process to actually bring it in

idle owl
#

A new release? Or is the current release valid.

tidal kiln
#

that i don't know. haven't gone through it enough to know what sequences work / don't work.

#

but as an example for one i did. here's the PR:

idle owl
#

I'm going to assume you need a new release.

tidal kiln
#

and here the release:

idle owl
#

So we'll do that once it's done.

tidal kiln
#

@raven canopy yep. that's what you'll do locally after you fork it.

raven canopy
#

lol. now i can't remember...and i did it like a week ago. ๐Ÿ˜„

solar whale
#

@idle owl @tidal kiln thanks - I'm glad I asked ๐Ÿ˜‰ I'll look at the instructions and get a PR going - then we can see about the release. No rush on this - I was just curious.

#

@raven canopy thanks to you, too!

idle owl
#

@solar whale No problem. Just let me know if you have questions, and we'll get it sorted. I'm around today.

solar whale
#

I'm trying ot get my Salea hooked up now for another issue so I'm deep in that...

idle owl
#

That also works ๐Ÿ˜ƒ

tidal kiln
#

if it doesn't work, travis will gripe, that's how i knew i forgot to do a release

solar whale
#

and when travis isn't happy, nobody is happy.

tidal kiln
#

lint is happy, cause then it's not the only one taking flack

#

@solar whale do you feel like the code is done and functional and ready to be brought in?

#

(wrt to the sht31 library)

idle owl
#

It is. It needs RTD/Sphinx docs added, but it's set otherwise.

solar whale
#

@tidal kiln yes - the basic function is OK - at this point I just need to work on the ReadTheDocs stuff

tidal kiln
idle owl
#

Yes

solar whale
#

@indigo wedge My first capture shows tath CS is alive but MISO,MOSI and SCK are all flat.... at least I have something to look for.

tidal kiln
#

i'd say go ahead and add it to the bundle, that way it'll be wired in, you can continue to update the library and whenever you do a new release, that will trigger the updates to be added to the bundle

#

you won't need to do anymore PR'ing to the bundle repo

idle owl
#

That was my thought as well.

solar whale
#

@tidal kiln Thanks - I try creating a PR later - once I finshing breaking my current project ๐Ÿ˜‰

tidal kiln
#

doc updates, bug fixes, new features, etc... that's how to roll all them in (via a release)

idle owl
#

I'm evidenty trying to write a state machine in CircuitPython.

#

I say evidently because that appears to be the solution to what I'm trying to do. But I'm entirely fuzzy on the concept.

tidal kiln
#

what're you trying to do?

idle owl
#

I have a CPX. it is currently sitting flat facing up. I want to be able to rotate it 90 degrees to the right, hold it there for 3 seconds and have that work as an input. Once. Then require returning it to flat state for at least 3 seconds before I can rotate it to signal the input again.

tidal kiln
#

rotate it along X or Y axis?

idle owl
#

X. Y stays ~0 when I rotate it. X and Z change

tidal kiln
#

sounds like rotation around Y, but doesn't matter too much, problem is generally same for rotation around X or Y

idle owl
#

Oh I read what you asked wrong

#

"along" I missed.

tidal kiln
#

no worries. silly semantics.

#

is that all the code needs to do?

idle owl
#

no... not at all. But the rest of the code already exists. It's all light changes on a CPX using multiple inputs

#

I was going to try to get this working separately and then add it to the rest

#

the rest uses shake and double-tap to change brightness and color/animation respectively.

#

I'm using generators for the rainbow animation and the color sequence so other inputs can be done while maintaining the state

#

I think I'm going to take the on/off state away from shake and give it to the rotation input

#

or one of the rotation inputs

tidal kiln
#

so, all in one code: various forms of input -> various light changes

idle owl
#

yes.

tidal kiln
#

is this for a guide?

idle owl
#

yeah

#

The CPX is shoved up in an Ikea lamp

raven canopy
#

gotta gist of it?

idle owl
#

not yet no

raven canopy
#

(that was a selfish question. i need a break from reading circuitpython/py/*) ๐Ÿ˜„

tidal kiln
#

what are you thinking in terms of the mission (can't think of better word) for the guide? like what are you trying to teach with it?

#

just show something fun with cp?

idle owl
#

this is some of the best code I've ever written, definitely in my favorites.

#

It's meant to be "hey I've got a lamp sitting around not doing anything, what can I do with it with CircuitPython and this CPX?" I have another one that's going to have similar functionality, but use IR for the input instead.

tidal kiln
#

asking because i think there are various ways of writing that code, state machine being one, and it could pretty much be an entire guide about those various approaches

idle owl
#

It'll have the explanation for why we're sticking with motion for the little lamp: nothing else works. Touch fails, sound doesn't get through, copper tape doesn't stick to it to make touch work in some way, etc.

raven canopy
#

will it always evaluate to this: if Y == 0 and X > 0 or Z > 0: change light? obviously, zero would be padded to account for resting drift/resolution.

#

and yes, that eval statement won't work well enough...just idea vomit.

tidal kiln
#

the 3 secs bit is the tricky part

idle owl
#

As far as I understand things, I want a state machine. Create a global variable that represents the state I'm in, progress between the different states I'm looking for.

stuck elbow
#

and binds stronger than or

idle owl
#

time.monotonic or time.time, something like that I assume.

#

has to be non-blocking

stuck elbow
#

so this is if (Y == 0 and X > 0) or Z > 0:

tidal kiln
#

that's the even more tricky part

stuck elbow
#

not sure it's what you mean

raven canopy
#

yeah, non-blocking will be what trips it up. @stuck elbow i was actually thinking more like Y == 0 and (X > 0 or Y > 0) but was too lazy to work through the binding. ๐Ÿ˜„

idle owl
#

Don't know why I can't tag you successfully today.

tidal kiln
#

@idle owl this sounds like a really good project that is trying to do multiple things at once, and could serve as a good guide for how to go about doing that in CP

idle owl
#

@tidal kiln Yeah and I've been asked about that before as well.

raven canopy
#

yay! new! ๐Ÿ˜› and I don't know why your @vernal fern's aren't working either. we can blame my discord...usually the case.

tidal kiln
#

Make your Arduino walk and chew gum at the same time.

Excuse me while I interrupt myself...

Unleashing the power of the NeoPixel!

#

not all of that can translate to CP, for example interrupts

idle owl
#

Right

tidal kiln
#

but a guide that is essentially a CP version of those could be cool

idle owl
#

Agreed

raven canopy
#

it seems to me that you should count time instead of time.sleep. same way its done in arduino with delay() avoidance.

#

which, is where you were talking about time.monotonic, right?

stuck elbow
#

there is time.monotonic()

#

right

tidal kiln
#

without interrupts, yes, it's going to come down to crafty use of time.monotonic

indigo wedge
#

@solar whale i believe i found the problem (but not tested)
if you see here https://github.com/adafruit/circuitpython/blob/master/ports/nrf/common-hal/busio/SPI.c#L58 you'll notice the pins are assigned but not the ports, so you should add something similar to this https://github.com/adafruit/circuitpython/blob/master/ports/nrf/hal/hal_uart.c#L125 except using these defines: https://github.com/adafruit/circuitpython/blob/master/ports/nrf/device/nrf52/nrf52840_bitfields.h#L10635

raven canopy
#

totally started typing out example code...going to be too long. i'll put it as a comment on the gist.

indigo wedge
#

this explains why it works on the feather52 cause that one has only one port so no need to set the port to 1, but you were using PBx so port 1

raven canopy
#

what was the lag time on time.monotonic() i vaguely remember a discussion about it at some point. may have been in the issues...

idle owl
#

If it's anywhere, it's in issues. I'm not sure, I've never tested it personally.

solar whale
#

@indigo wedge Thanks! I'll follow up on that!

idle owl
#

@sommersoft#0222 Nice, thanks for the suggestion! We'd come to a basic version of that. Yours gets fancier. I'm working through getting more towards your point.

manic glacierBOT
#

I am curious how you envision this working. As I understand it - and I may not:

  1. gmtime takes as its parameter the number of seconds since the epoch and returns a time.struct_time eith the current date and time.
  2. The epoch is commonly midnight Jan 01, 1970.
  3. As near as I can tell CircuitPython has no epoch.
  4. Circuit Python also has no time.time(). Though on the Metro, time.monotonic() returns what appears to be the number of seconds since the last power up of the board.
    ...
idle owl
#

That is coincidental timing. I seriously just had nearly this conversation ^^

solar whale
raven canopy
#

@idle owl np for the suggestion. that technique opened a whole new world for me in Arduino. but, it can get quite daunting on large programs. so many intervals to keep track of! blocking is sooo much easier. ๐Ÿ˜„ and, for your purpose, using epoch time would be needless overhead imo...but it can be easier for a beginner to understand (kind of).

idle owl
#

epoch time isn't built into CircuitPython. So monotonic is what we have.

raven canopy
#

yeah, i as referring to the reference (huh?) to the time.gmtime.

idle owl
#

I'm currently reading an Arduino guide to try to get a better idea on how this works. It's mostly helping ๐Ÿ˜„ I'm totally new to Arduino. Will be fixing that starting this week, as it happens

#

Oh, ok... I didn't know what gmtime did. I thought time.time was epoch

indigo wedge
#

@solar whale it looks like hal/hal_spi.c is used by the machine.SPI class and busio uses common-hal/busio/SPI.c, which is kinda strange, but it's the busio driver that the rgb display lib uses so you need to add the code to common-hal/busio/SPI.c

solar whale
#

@indigo wedge 0k - thanks - I'll admit I do get lost trying to follow the various paths. I'll give it a shot.

indigo wedge
#

Yeah, I'm new to this codebase so trying to wrap my head around it too

manic glacierBOT
#

@tannewt You should be able to remove stable from displaying at all through the RTD UI. You should be able to activate/deactivate each build as needed. If you send me screenshots of the UI settings, I can see the config.

You can add warnings on the top of files by using rst_prolog. You may need to write a bit of code in conf.py to select a subset of source docs if desired. [IPython's conf.py](https://github.com/ipyth...

indigo wedge
#

i know machine is more of a MP thing and now circuitpython uses busio, so does that mean machine is deprecated? Cause if it is then some of the hal/ code could be removed since it duplicates the common-hal code

solar whale
#

@indigo wedge Hopefully @slender iron or @tulip sleet can comment on deprecating machine.

indigo wedge
#

are they in Europe or in the US?

solar whale
#

they are in US both coasts ๐Ÿ˜‰

raven canopy
#

machine is not completely deprecated. well, it's only current use is on ESP8266

indigo wedge
#

Ah, too bad discord doesn't show user's local time like slack

solar whale
#

@raven canopy yes, so I'm not sure how it should be treated on the nrf52's

indigo wedge
#

right now it's not available in the nrf port but i think there is functionality that only machine offers, even as simple as soft_reset(), I might be wrong though

solar whale
#

that is the confusion for me - it is not compiled in as a module, but I'm not sure ifa any of the code is "in use"

manic glacierBOT
solar whale
#

I am going to have to put this off until tomorrow - @indigo wedge thanks for the guidance. It does not look like a fundamental problem.

raven canopy
indigo wedge
#

yes, especially since it works on the feather, probably just some nrf52840 specific thing

solar whale
#

@indigo wedge where are you located - I am in US - New Hampshire.

raven canopy
#

i apologize if i'm coming late to the convo and re-hashing....

indigo wedge
#

@solar whale I'm in Sweden ๐Ÿ˜ƒ

raven canopy
#

i'm about to jump off anyway too. not sure why i'm going to watch the super bowl...they can't both lose. ๐Ÿ˜

idle owl
#

@indigo wedge You'll be more likely to cross paths with Scott and Dan during the week then. All of us try to be around throughout the day so we can try to get to everyone.

solar whale
#

@indigo wedge Nice! - I have several friends in Stockholm - at work we have been colaborating with folks at (KTH - Royal Institute) for many years.

indigo wedge
#

@raven canopy you're right, it's defined as enabled in mpconfigport.h

#

i got confused cause @slender iron mentioned wanting to disable it

solar whale
#

@raven canopy I'm about to do the same -- too close to Boston to sit it out ๐Ÿ˜‰

raven canopy
#

definitely possible. it's mostly about how much they want to stay inline with upstream, i think.

indigo wedge
#

It's midnight here so gonna sign off soon as well, but will lurk more from work tomorrow and then continue the conversation after work ๐Ÿ˜ƒ

solar whale
#

note - import machine does not work on nrf52

raven canopy
#

WAIT A SECOND!!! I'M PURPLE!! (and of course discord picks now to disable server emoticons...no blinka) blinka there she is!

indigo wedge
#

so I wasn't crazy ๐Ÿ˜‰

solar whale
#

@indigo wedge whew! me either -- good night/ eveing all

idle owl
#

Later, all of you ๐Ÿ˜ƒ

indigo wedge
#

yes, enjoy your superb owls and all that

idle owl
#

The owls are lovely. It's true!

slender iron
#

@indigo wedge I think I just missed you

indigo wedge
#

still here

slender iron
#

I'd love to deprecate machine in circuitpython

#

its not well defined so I'd rather replace it with APIs defined in shared-bindings

indigo wedge
#

i see, so if there are SPI classes in both machine and busio in the nrf port then the machine one could be removed?

slender iron
#

yup

#

if we ever support stm then I think we'd leave machine like we have on esp8266

#

but since nrf52 isn't in upstream yet I think we could set precedence to not have it

indigo wedge
#

nice, i could look into what is duplicated in machine and remove, that way we would also get a list of what APIs are missing in shared-bindings, if that's ok

manic glacierBOT
slender iron
#

@indigo wedge I don't think there is much missing. We have 60+ libraries already built on top of our own APIs. Its just a question of whether they are all enabled on the nrf52

#

(We call it reload so its not confused with pressing a reset button.

indigo wedge
#

i see

#

i find it confusing that the ports seem to share some modules and some code but are still very much their own things with many inconsistencies between ports

#

like, it looks like most ports have their own main.c but the nrf uses the main.c in the root directory of the repo

manic glacierBOT
#

This idea was pulled from a Twitter post about someone using an old Ikea lamp and a CPX to create a colorful lamp. That lamp was no longer available, so we've chosen 3 more to work with to see what we can do with them.

I have obtained the lamps, and am working on seeing how the CPX fits into them and what different ways I can interact with them. One is meant to try to use sound, light, motion and touch if possible to to different things. The other two are meant to use with IR.

slender iron
#

@indigo wedge yup, shared main.c is the future

indigo wedge
#

ah, so nrf is paving the way? ๐Ÿ˜‰

slender iron
#

in circuitpython anything besides esp, samd and nrf52 are basically ignored

#

and esp isn't on shared main yet

#

yeah, totally

#

the more we share, the better. but its a work in progress

indigo wedge
#

i see

#

and yeah, i agree, the more is shared, the easier it is to make new ports also

#

consistency is ๐Ÿ†’

slender iron
#

yup yup, thats the goal in the long run

#

any help to get there is very welcome

indigo wedge
#

yes I want to help but need to learn more about the whole project to see where I can help, also working on my own board with nrf so want to polish that one

slender iron
#

awesome! I'm happy to coordinate a time to video chat too if you like

#

I try my best to disconnect on weekends though

indigo wedge
#

i only can do this in my free time so weekends and afternoons ๐Ÿ˜‰

slender iron
#

I'm flexible so I can do weekends if thats what works

#

just gotta know ahead of time

indigo wedge
#

not sure if i have enough material for a video chat but I'll keep posting here ๐Ÿ˜ƒ

slender iron
#

kk, know its an option

#

k, time to game. thanks all!

idle owl
#

later @slender iron

slender iron
#

<@&356864093652516868> Normal time for our meeting tomorrow (Monday). 11am Pacific / 2pm Eastern here on Discord.

#

bye @idle owl

manic glacierBOT
#

The smaller lamp consists of a silicone mold (shaped like a little creature!), and a hollow hard plastic bit that fits inside containing the electronics. When the plastic bit is (easily) removed, the Circuit Playground Express fits exactly into a groove along the bottom of the silicone mold, and the USB cable fits through the charging port. Thanks, Ikea!

After experimentation, the first lamp is limited to motion as an input: tap, shake, and acceleration. I'll be documenting in the guide th...

manic glacierBOT
manic glacierBOT
manic glacierBOT
timber mango
slender iron
manic glacierBOT
#

Could we specify it by mount point? That's consistent with remount I
believe.

On Sat, Feb 3, 2018 at 2:16 PM Dan Halbert notifications@github.com wrote:

It would be nice to be able to erase and re-create a damaged filesystem
from the REPL or a program. Currently on non-Express boards we need to
erase all of flash and then reload CircuitPython. On Express boards we have
a special Arduino program that erases SPI flash, and then we need to reload
CPy.

Something like storage.for...

raven canopy
#

@slender iron you were exactly correct. Now passing Travis after a few more hiccups. getting late, so I'll finish it up tomorrow.

slender iron
#

yay! thank you thank you!

#

good night @raven canopy

raven canopy
#

g'nite. ๐Ÿ’ค

manic glacierBOT
brazen cave
#

Are there any cp examples of programming a trinket as a hid?

half sedge
#

I am currious about "pIRKey"... Is there something this can do and that cannot be done with CPX?

stuck elbow
#

I don't think so

#

well, ok, actually there is something cpx can't do and pirkey can

#

fit in your mouth

#

(or your computer's usb port)

half sedge
#

Maybe a few exposed GPIO would have been fun. Here it is BlinkStick + Flirc.

#

Or more like "+ IRKey".

#

Actually seems to be a few mm smaller.

stuck elbow
#

I think it does have a few pins exposed

#

judging from the pcb above, at least

half sedge
#

That would be the reset button and some things to go from 5V to 3V I guess...

stuck elbow
#

maybe

#

I'm sure there will at the least debugging pads on the bottom

indigo wedge
stuck elbow
#

ah, it's because the sphinx settings for latex are not updated

indigo wedge
stuck elbow
#

and further down

#

I don't think that template you linked is used

indigo wedge
#

ah

manic glacierBOT
#

A custom linker script would perhaps be better here, following the feather52 example, since we will need to use a modified version of the serial bootloader in addition to the J-Link. I guess we don't technically need the serial bootloader on the PCA10056 since it has an on board J-Link, but we can still test the serial bootloader as an option on this board until commercial modules are available with the final silicon.

solar whale
#

@indigo wedge SPI is working on the PCA10056 - I can mount an SD Card!! I made teh following change .. ```diff --git a/ports/nrf/common-hal/busio/SPI.c b/ports/nrf/common-hal/busio/SPI.c
index efce356..a773774 100644
--- a/ports/nrf/common-hal/busio/SPI.c
+++ b/ports/nrf/common-hal/busio/SPI.c
@@ -55,9 +55,22 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self, const mcu_pin_obj_t *
// 1 for I2C, 0 for SPI
self->spi = NRF_SPI0;

+#if NRF51
self->spi->PSELSCK = clock->pin;
self->spi->PSELMOSI = mosi->pin;
self->spi->PSELMISO = miso->pin;
+#else

  • self->spi->PSEL.SCK = clock->pin;
  • self->spi->PSEL.MOSI = mosi->pin;
  • self->spi->PSEL.MISO = miso->pin;

+#if NRF52840_XXAA

  • self->spi->PSEL.SCK |= (clock->port << SPI_PSEL_SCK_PORT_Pos);
  • self->spi->PSEL.MOSI |= (mosi->port << SPI_PSEL_MOSI_PORT_Pos);
  • self->spi->PSEL.MISO |= (miso->port << SPI_PSEL_MISO_PORT_Pos);
    +#endif
    +#endif
    }

bool common_hal_busio_spi_deinited(busio_spi_obj_t *self) {
~

manic glacierBOT
solar whale
#

@indigo wedge I think there is one error in my fix - either I should remove the if NRF51 block or add a similar one to the deinit section. I think it is neeed for the NRF52840 so I'll add it so the de-init works properly for the non NRF51 cases.

solar whale
#

@indigo wedge simplified it - this work s on both the pca10056 and feather52 - let me know if you see any problems with it.

indigo wedge
solar whale
#

yes - I finally saw that and that is how the second version works.

solar whale
#

@indigo wedge I now have the tftdisplay and sdcard working on the pca10056 - -thanks for the guidance.

indigo wedge
#

awesome!

#

thanks for testing

solar whale
#

since you re making many mods, do you want to put in the ultimate fix for the SPI.c or do you want me to generate a PR for it?

indigo wedge
#

I'm good either way, either you do one, don't think it has to be on top of my nrf52840 changes or i add it to my PR

solar whale
#

I think it will be cleaner for you to just add it if it is not too much trouble.

indigo wedge
#

cool, I'll do it in the afternoon

solar whale
#

Thanks! Hopefully, I did it correctly in the second version I posted, but you may have a better way.

solar whale
#

@meager fog I was playing with a TFT Featherwing https://learn.adafruit.com/adafruit-2-4-tft-touch-screen-featherwing?view=all#tft-control-pins attached to a fearher52 https://learn.adafruit.com/bluefruit-nrf52-feather-learning-guide?view=all but I noticed the warning not to use pin 31 since it is used for the battery monitor. Would it even work? It looks like the TFT_CS would be feeding into the VBAT. I used a different pin for the TFT_CS and it all worked fine, but I did not try using it in the default configuration. If the default configuration is to be avoided, perhaps a note should be added to the tff guide warning that the TFT_CS pin has to be moved. It says you "can" move it, but for the nrf52 is it a "must move it"?

A lovely color display for any Feather, show off your Feather plumage!

Get started now with our most powerful Bluefruit board yet!

timber mango
#

@solar whale you dont have to move it, in fact for outputs, it doesnt matter at all

#

i've updated the text

solar whale
#

Ok - good to know - thanks!

#

@meager fog I plugged the tft into the feather_nrf52 with defaut pinouts and it works just fine! Thanks for clarifying it.

#

BTW - this is all with Circuitpython 3.0 !

tawny creek
#

@solar whale CP on the nRF52 bluefruit :O!?

solar whale
#

@tawny creek yes!

tawny creek
#

@solar whale is it easy to switch between firmwares?

solar whale
#

do you have the featherwing nrf52 ort the "pro" version?

#

the both work woth CP but the "pro" also has a J-link connector installed so that is an option.

#

I aslo added the J-Link connector to my "standard" nrf52 feather and it works well, but I have used the "dfu-flash" option as well.

manic glacierBOT
solar whale
#

@tawny creek - I assume you are referring ot going back and forth between CP and arduino on the feather52. I'm not sure I have ever tried going back to arduino on mine but I don't think it is a problem as long as yo use the dfu-bootloader. If you use a J-Link, yo uhave to reload the bootloader to go back - but that is easy to do. - I think @raven canopy and @idle owl have put CP on the feather52 as well. Perhaps they can also commment on the "ease" of switching

manic glacierBOT
#

Ah good point! We could hard code it but that'd be a bit weird.

Have any other ideas? We could fake /dev/disk/* but thats probably overkill.

On Mon, Feb 5, 2018 at 5:03 AM Dan Halbert notifications@github.com wrote:

The question I had was whether we can identify the mount point name if
it's not mountable due to corruption. But I haven't looked at the code yet.

โ€”
You are receiving this because you commented.

Reply to this email directly, view it on GitHub
<https://github...

manic glacierBOT
#

Testing this on the actual HW, and OUCH ... the core firmware file is HUGE!

Running make V=1 board=pca10056 SD=s140 I get:

LINK build-pca10056-s140/firmware.elf
   text	   data	    bss	    dec	    hex	filename
 185192	   1188	 239732	 426112	  68080	build-pca10056-s140/firmware.elf
arm-none-eabi-objcopy -O binary build-pca10056-s140/firmware.elf build-pca10056-s140/firmware.bin
arm-none-eabi-objcopy -O ihex build-pca10056-s140/firmware.elf build-pca10056-s140/firmware.hex
``...
manic glacierBOT
umbral dagger
#

I won't be on the call.. didn't do anything with CP this past week. It's all be CircutiPlayground biscuits & fighting with A/V equipment & software.

tulip sleet
#

hi folks - we're running a little late and will be in the chat shortly

timber lion
#

the gang is all here ๐Ÿ˜ƒ

solar whale
#

teacher is late....

tidal kiln
#

5 minutes. that means it's a walk, right?

slender iron
#

having important private convo ๐Ÿ˜ƒ

timber lion
#

can it stop and resume after? we're all ready to go

tulip sleet
#

last few sentences

slender iron
#

<@&356864093652516868> meeting is starting!

timber lion
#

cant unmute

#

brb

cunning crypt
#

Hug Report: Group hug to everyone, and going to echo @indigo wedge for the NRF stuff. Looks really cool!

#

(Also, maybe Arturo should get put in with CircuitPython Helpers?)

indigo wedge
#

oh gosh, thank you

idle owl
#

@indigo wedge You've been rocking it!

timber lion
#

ah bummer yeah it's still not working ๐Ÿ˜ฆ

raven canopy
#

Just a group hug. And Travis... he's picky, but makes my code better.

opal elk
#

also, I'm sickafoos today ๐Ÿ˜ฆ

indigo wedge
#

I'm not sure what those are, I'm new here ๐Ÿ˜„

#

Ah I see, big thanks to @solar whale for testing the nRF52840 stuff and for @slender iron for being so cool to a oblivious newcomer ๐Ÿ˜ƒ

stuck elbow
#

scanning does writes, not all devices support writes

#

(but even more devices don't support reads)

timber lion
#

yeah totally, it's either that or something else.. i still can't get it to ack a simple read too, but i need to mess with using its reset line before saying for sure it's having problems

cunning crypt
#

Status: Haven't been working on CP stuff. My 3D printer is currently exploded, so that's my project at the moment as I'm upgrading to a dual extruder setup.

#

Exploded as in disassembled

timber mango
#

heyyy im here! was in a meating ๐Ÿ˜ƒ

idle owl
#

@timber mango Hey, welcome!

timber mango
#

i gots heckin' LEEKS

cunning crypt
#

Leeks!

timber mango
#

ROCK IT DAN!

indigo wedge
#

Since I'm new to CP I want to look more into the code, I printed the docs so I can go through them and see the modules that you offer then I want to see which ones are implemented and which are missing in the nRF port and see what I can do to help there. Can also see which functionality is duplicated by the machine module and could remove that code to keep the code cleaner.

stuck elbow
#

UART is the worst

timber mango
#

yeah but python uart is >>> arduino uart

#

software serial is ๐Ÿ˜ฆ ๐Ÿ˜ฆ ๐Ÿ˜ฆ

#

i know because i wrote the software serial lib like in 2007

stuck elbow
#

it's one of those things everybody should write once, just to feel the pain, and then switch to a better library

#

to better appreciate it

cunning crypt
#

In reference to CP and strings: Circuit Python handles strings. Arduino... you have to smash it into submission to do anything with strings.

stuck elbow
#

well, it has String, if you don't care about memory

timber mango
#

no more BUFSIZ. down with BUFSIZ!

#

STMPE hasnt been done yet and im just lazy ๐Ÿ˜ƒ

#

if you wanna do it!

#

please do

#

i did the FocalTouch (captouch) version

#

i have hints on how to do STMPE

#

will dooo!

#

(thumbsup) STMPE has some 'unusual' SPI needs

#

yes!

#

sorry no mic

#

I tested out my pIRKey prototypes

#

they work great! i submitted a PR for support

#

(shrug)

#

๐Ÿ˜ƒ

tulip sleet
#

"perky"

stuck elbow
#

porky

timber mango
#

yes!

#

here it is

opaque patrol
#

purrkey

timber mango
#

its a generaly purpose Infrared -> HID USB plugin

#

we used to sell it! but it was very hard to use

idle owl
#

"peerkey" ?

timber mango
opal elk
idle owl
#

or apparently pronounce it "shrug" ๐Ÿ˜‰

timber mango
#

its great for multimedia installs and accessability

#

that is in 2.2.2

#

ALSO today we're fabbing the itsybitsy m0 express!

opaque patrol
#

pyre key

sick creek
#

IR is nice

timber mango
#

right now actually, cachunk!

#

great silkscreen by philb - look for that in the shop by wednesday

#

super hot 340 *C

cunning crypt
#

I say we should call the pIRKey a "Purr-key" and put it in a cat-shaped case.

timber mango
#

im also thinking about how to do FONA library support

#

but will wait for UART in M4 because its very annoying

#

and needs a lot of RAM for debugging

#

however, FONA can do data so you could use it for internet as well as cellular/SMS

#

nothin' else ๐Ÿ˜ƒ

cunning crypt
#

I've definitely kept my eye on FONA since building a smartphone would be a cool project.

timber mango
#

yes! we are making 250

tidal kiln
#

ahhhh, ballard noises.....

timber mango
#

FREE STICKERS!

#

please come by show & tell

cunning crypt
#

Yay stickers!

raven canopy
#

Trellis is ready for bundle; PR coming tonight. Started on USB/REPL connection status issue. USB has a plan. REPL is being particularly obstinate...

opal elk
#

I've been on twice! just need to be home at 7:30 now

idle owl
#

@opal elk Ping me when you're ready for a review on the LIS3DH stuff, or if you would like someone to look at it sooner.

timber mango
#

that code is on the Tester

opal elk
#

@idle owl will do!

timber mango
#

yah i have a zip of it on the learn guide

#

if its out of date let me know!

#

tony, do you mean -> 3.0?

opal elk
#

honestly I'm stuck on connecting to serial via my rpi. I know there's boot stuff I have to change, and I swear I did it all, but I should just bring it up to my laptop and use putty

stuck elbow
#

.cp2 .cp3

timber mango
#

yah we definitely know the Weird chips

#

clock stretch chips, repeated-start chips

#

the TFT featherwing tests a lot i use that for testing a wide range of 'types' of interfaces

#

tony, please make an issue for the drivers to check

#

we'll test against the guides ๐Ÿ˜ƒ

tidal kiln
#

@opal elk try adding enable_uart=1 to config.txt

timber mango
#

sounds good!

#

@ me so i see it, and ill add my Known Weird

manic glacierBOT
opal elk
#

@tidal kiln I've tried that, but I will again

timber mango
#

yahh!

#

its mostly BNO055 ๐Ÿ˜„

#

try REST?

stuck elbow
#

we should have adafruit_io library

timber mango
#

i know someone had a umqtt success report on the micropython forum

#

lemme find it

#

oh nvmd, they never used umqtt in the end

#

its a good idea!

raven canopy
#

Yeah. Old school file method. I was thinking that...

stuck elbow
#

see something say something

#

I have t o run, thanks!

idle owl
#

Later @stuck elbow, have a good one

timber mango
#

we have a page

#

(shrug)

#

๐Ÿ˜ƒ

#

thats where i put "what you can expect"

#

e.g. what works, what does not

#

yah but kattni and i are oging to mirror it over

#

its ON THE GREAT CIRPY LEARN GUIDE UNIFICATION OF 2018

idle owl
#

YES

timber mango
#

YES!!

#

@idle owl do you want to open an issue on github - to get this page filled out

idle owl
#

@timber mango sure!

timber mango
#

add IRQ, other common Qs

raven canopy
#

Where is that Running Man gif when you need it? "YES!!!"

manic glacierBOT
#

@jerryneedell Yeah, the heap and memory is managed differently, I noticed that after the fact.

@arturo182 If you want to push the minor changes suggested earlier, I'll merge this in, and will work on getting bootloader support in a new PR since that will require some changes on my end? Basic REPL works fine, and we can make improvements from there to make sure internal file system support is stable, etc.

timber mango
#

IRQ vs GC is funnnn

manic glacierBOT
slender iron
timber mango
#

thanks everyone!

idle owl
#

Thank you everyone!

raven canopy
#

Thanks Folks. Go Forth and blinka!!

timber mango
indigo wedge
#

Thanks, this was really cool! I was one of the people interested in IRQs, so it's good to see this was mentioned and what the solution is (pulseio), need to do some reading ๐Ÿ˜„

idle owl
#

@timber mango yah I could see that

manic glacierBOT
raven canopy
#

Phone dieing... I'm out. Later taters.

slender iron
#

bye @raven canopy !

solar whale
#

bya all - thanks!

manic glacierBOT
#

This is an issue to track what drivers have been validated for the 3.0 release. In discussion on 1/5/18 we decided this is an important release criteria to gate a 3.0 release--validating popular drivers that exercise many code paths. In particular with 3.0 we have some big changes to memory management and numeric representation/range so validation of drivers that deal with those issues is a priority.

A few to consider:

  • Basic I2C usage: Any simple BME/BMP pressure sensor.
  • Basic SPI ...
#
[adafruit/circuitpython] New tag created: 2\.2\.2
#

FWIW - I downloaded #573 and made build for the feather52 and PCA10056 - both appear to be functional. Tested SPI on both builds (mounted SD Card). quick I2C test on PCA10056 (MCP9808 temperature sensor OK) - executed ble_scan.py example on PC10056.
Here are the build stats for the PCA10056 - removing heap helped!

$ arm-none-eabi-size --format=SysV build-pca10056-s140/firmware.elf
build-pca10056-s140/firmware.elf  :
section             size        addr
.isr_vector          248      ...
sick creek
#

with that irDaKey I got idea for some project

heavy galleon
#

Hey I got a quick question for you circuit pythoners. How come if I do a while True for a button.value the program loops like its supposed to but if I change it to while false my program does not loop?

#
    if button.value:
        print("Button pressed")
        time.sleep(.5)
    else:
        print("Butto not pressed")
        time.sleep(.5)```
#

Shouldnt that work either way true or false keep looping??

idle owl
#

I think you'd need python while True: if not button.value: print("not button")Or something like that.

heavy galleon
#

MMmmmm I see let me try

#

yes thats strange I didnt know I would have to do it that way works great like that

#

Thanks

idle owl
#

@heavy galleon while loops while it's argument is true, so True means forever and False means never.

#

So you negate what you're trying to make false within the loop instead of as the loop.

heavy galleon
#

Ok makes sense, I have a pull up button so I had to reverse that logic somewhere. Kinda happy I had the problem so I know how to keep a while loop for a false statement

manic glacierBOT
solar whale
#

@idle owl @tidal kiln I "think" I created a PR to add the sht31 driver to the Bundle. Let me know if I did anything wrong. At least I got it by travis ๐Ÿ˜‰

#

Looking for some guidance from other CP contributors. Once you have a PR merged, do you maintain your forked version of the repo or do you delete the fork? Is deleting the fork considered bad practice? I know github makes you take full responsibility for it ๐Ÿ˜‰ It's a bit cumbersome to keep all the forks synchronized if you are not making frequent updates. Just curious how others deal with this.

manic glacierBOT
#

Integers are 31 bits signed. Floats are 30 bits (the bottom two mantissa bits are dropped). It's a variable encoding: the lowest bit == 1 means integer; when == 0, the second lowest bit helps specifying the encoding. When two encoding bits are used, the 32-bit value is a 30-bit float or a 4-byte-aligned object pointer or a "qstr" (a static string pointer). See comment below from py/obj.h. There are multiple alternative encodings provided by MicroPython. For atmel-samd and esp8266, we use M...

tulip sleet
#

@solar whale don't delete the fork, but you can delete the branch you used for the bugfix/feature-add

#

I have one fork but many branches

#

most branches get deleted after they're merged into the main line.

solar whale
#

@tulip sleet Thanks - Thats what I have been doing. So to sync your fork, you just periodically do a local pull then push back to github?

tidal kiln
#

@solar whale merged

solar whale
#

@tidal kiln thanks - do I have to do a new release?

tidal kiln
#

@tulip sleet any issues with deleting the fork? i kind of just fork->mod->pr->delete

tulip sleet
#

My fork has the remote named "origin" pointing to dhalbert/whatever_repo), and a remote named "adafruit" (canonical name is "upstream") pointing to adafruit/whatever_repo. I do git fetch adafruit; git checkout master; git merge adafruit/master to bring it up to date with upstream. Then I do git push to keep my GitHub fork repo up to date.

#

@tidal kiln - no issue, but no need either.

tidal kiln
#

i'm lazy i guess. too lazy to make branch, have multiple remotes, do all the fetch syning, etc.

tulip sleet
#

Scott and I use branches where you are using forks. You'll see in our PR's we might want to merge dhalbert:issue_123_fix_spi with adafruit:master.

#

@tidal kiln for tiny repos not an issue, for a big repo it takes a while to clone and re-setup.

solar whale
#

@tulip sleet thanks - I've been following that guide. I'll keep doing that.

tidal kiln
#

good point. yah, i'm mainly dealing with realatively small repos.

#

and i have created issue branches before, but most of the time it's just a pr from my fork's main.

tulip sleet
tidal kiln
#

yah, like you said, i think i'm using fork like you use branch.

#

i've always wondered why github doesn't have a button for the "Keeping Fork Up To Date" stuff

prime flower
idle owl
#

@solar whale I use branches, and update when it makes sense. Sometimes it gets so flustered that I'll delete and reclone at that point.

#

@solar whale Keeping your clone up to date is pretty simple once you've done it a few times. It sets in as habit.

solar whale
#

@idle owl thnaks -- yeah _ do a lot of clone syncing _ especially for repos I use, but dont usually contribute to. I also have gotten used to installing PRs to my clones in a new branch - that has been very useful.

idle owl
#

Ok yeah. That's how I do it. All my PRs are branches. Then if the branch gets fuzzy you can delete that and you still have the simpler time updating master.

solar whale
#

Thanks for all the comments. I just wanted to make sure I was "on the right track" Sounds like it....so far

idle owl
#

@solar whale In the end, it's what works best for you. But if you're new to all of it, it's nice to have a place to start. My workflow closely follows the workflow of the people who taught me most. But it works for me so I've stuck with it. ๐Ÿ˜ƒ

solar whale
#

OK cool! just got my forked Bundle repo synced after my PR was merged ( accidentally did it from master, but it all worked out )

tidal kiln
#

@solar whale my guess is you don't need to do a new release

raven canopy
#

@solar whale i've been struggling with getting the workflow down too. I mentioned to tannewt that a "here's the blinka workflow" document might help; especially since they've decided to go with the merge strategy vs rebase/squash (complete with flow chart, for the visual folks). branches are life savers on forks...i'm slowly learning. @tulip sleet, if that workflow you posted is the "defacto", I can start working on said document/visual aid.

indigo wedge
#

not the fastest thing ever ๐Ÿ˜‰

manic glacierBOT
#
[adafruit/circuitpython] tag deleted: 2\.2\.2
timber mango
#

wow

manic glacierBOT
#
[adafruit/circuitpython] New tag created: 2\.2\.3
heady dove
#

Good evening all! I'm wondering if Ampy is still the thing to use to communicate with my Feather Huzzah, as far as making directories, moving files etc? Is there a newer version than 1.0.1?

#

I finally got the newest version of circuitpython installed on the Feather

idle owl
#

@heady dove I checked mine and I'm running 1.0.3. As far as I know that's the way to communicate, yes. Great job getting CircuitPython installed!

heady dove
#

Thank you, I wasn't able to get 1.0.1 talking, but I wasn't sure if I was banging my head against a wall

heady dove
#

I need to access the "Adafruit bus device" lib, which is a folder, in which nothing is actually called "adafruit bus device", the calling program is using the folder name as the reference?

#

and that would be the same for any of the folders in the "lib" folder?

idle owl
#

Not necessarily, a lot of them are named as they are imported.

#

But for some that have mutliple libs within, yes, that's how they're referenced, although if you write your code a certain way, you could call some of them directly.

heady dove
#

I was able to move the files, but not create a directory, and the sample program didn't recognize the call

idle owl
#

I haven't worked with ampy. Can you copy a directory that already exists? You could make a custom lib directory and copy that instead.

heady dove
#

well thats what I was trying to do, but I couldn't get ampy to do it, and it didn't seem like I could make one with the webrepl

idle owl
#

Hmm ok. I'm not sure, it was a guess

heady dove
#

I'll keep working on it, at least I know I'm headed in the right direction. I'll get 1.0.3 also, just incase

idle owl
#

You might get a better answer too from someone who knows, when they're around

heady dove
#

will do, who's the guru of 8266?

idle owl
#

There's a few, I know @solar whale is one. But I'm not sure when they're around.

#

A lot of people are really good about reading through for previous questions. So you may get a ping in the morning from someone running back through everything, etc.

raven canopy
#

@heady dove have you been using TonyD's guide for loading modules?

#

It was written for MicroPython, but ampy directions should be the same.

raven canopy
#

ahh man. we don't have OLED featherwing yet?

#

n/m...found it. ๐Ÿ‘“

slender iron
slender iron
manic glacierBOT
manic glacierBOT
indigo wedge
#

Thanks for putting up the recording of the meeting yesterday, @slender iron, gave me a chance to see what I missed before I joined in!

slender iron
#

excellent @indigo wedge ! glad you appreciate it

timber lion
#

this is cool, i got a couple sino:bits (naomi wu's microbit but for the chinese market) and am getting the micropython port to work on it.. basically just ripping out all the display related code since the sino:bit has a dedicated HT16 charlieplex controller vs. the micro:bit doing it with its GPIO

#

if you have a sino bit i'm finding they're pretty flakey to program over USB with just USB bus power... you really need to plug in a battery or power source to make sure it has enough juice or else it fails to flash about 75% of the time

#

no real harm since it has a dedicated USB firmware flashing chip--it seems pretty robust

nocturne sluice
#

Hey All!
I got bit of a noob question, but was thinking maybe its actually possible.
Is the there a way to send a Float or an Int from a CircuitPython board to the PC via USB without using the Serial Print?
To avoid the whole Char parsing and conversion procedure.
Maybe something like OSC that works over USB?
In other way, what would be the best way to send values from a sensor connected to a board running CircuitPython to another script running on my PC via USB?

Thanks!!

stuck elbow
#

@nocturne sluice can't think of anything like that

#

@nocturne sluice serial is the easiest way

nocturne sluice
#

๐Ÿ™

stuck elbow
#

you can use the struct module to pack the float into bytes and then unpack it, it's super-easy

nocturne sluice
#

yeh was worried that would be the case

#

is there a reference to to the struct module?

stuck elbow
#

look at the examples at the bottom

nocturne sluice
#

awesome thanks!

#

@stuck elbow so after I pack it i send the bytes via the serial print then unpack on my pc? right?

stuck elbow
#

precisely

nocturne sluice
#

awesome thank you very much!

stuck elbow
#

good luck!

solar whale
#

@heady dove did you get ampy to work for you? Here is how I copy the adafruit_bus_device folder from my host machine to an esp8266: $ ampy -p /dev/ttyUSB0 put ~/projects/Adafruit_Circuitpython_Bundle/2.x/lib/adafruit_bus_device lib/adafruit_bus_device

#

@heady dove if you need to create the lib filder on teh esp8266 then use" ampy -p <your_port> mkdir lib

cunning notch
#

I'm looking to replace a RPI project with CircuitPython. I'm looking at the Feather ESP8266 for the networking. I need to be able to send ASCII data via RS232 to a serial printer. What are my options for serial to RS232 (TTL to RS232?) ? Thanks in advance.

solar whale
stuck elbow
#

yeah, esp8266 only has one uart, and it's already used for the repl

#

but I wonder if there are any spi or i2c chips that do rs232

cunning notch
#

@solar whale Yes, I saw that. I also see that the Tx and Rx, though connected to USB, are still available. I'm looking to convert basic serial to RS232 (voltages, etc.). Any options for using SPI or I2C for this?

#

I have half a dozen RPIs running in read only mode in an industrial production enviroment. They are working great but I would like to see if I can do the same application with a MicroPython device.

#

I own a Trinket M0, Feather M0 Express, and a Feather HUZZAH ESP8266. Plus an original PyBoard. ๐Ÿ˜ƒ

stuck elbow
#

looks like MAX3110E/MAX3111E could potentially work

solar whale
stuck elbow
#

the max ones already convert to rs232

cunning notch
#

Both good options. The MAX series already have the RS232 circuitry builtin. But the SCI may get job for another RS485 project I'm looking at this summer. Thanks! ๐Ÿ˜ƒ

#

SparkFun has a similar breakout but appears to be discontinued.

solar whale
#

I saw that.

cunning notch
#

As a CircuitPython shout out, I have a new project that I think the Trinket will do nicely. I need to send a series of millisecond pulses to select a vision system's current program. I think this is an excellent task for the smallest of the small. ๐Ÿ˜ƒ

stuck elbow
#

since it recently has pulseio included, that should work

cunning notch
#

I hope so too. Just kooked it up and updated CP.

manic glacierBOT
cunning notch
#

Wow, AdaBot told on me. LOL ๐Ÿ˜ƒ

solar whale
#

no secrets here ๐Ÿ˜‰

umbral dagger
#

@timber lion I (and others) have found the sino:bit to be sensitive wrt USB. E.g. it will work on one hub and not another. In my experience, if I can talk to it, itโ€™s been stable without the need for additional/alternative power.

#

@timber lion Also, awesome about micropython!

manic glacierBOT
#

The nRF52840/PCA10056 support merged in via #573 currently only works with nrfjprog and a J-Link. A new serial bootloader needs to be implemented similar to the s132-based feather52 platform, but based on S140.

As an interim solution, this should ideally work with the USB CDC interface on the PCA10056 development board until an internal board is available (pending commercial module availability and final release of the nRF52840 from Nordic).

#

Easier to use helper classes on top of the current low level BLE library are required for the following:

Peripheral Mode

Core Classes

  • [ย ]ย GAP: Advertising
  • [ย ] GATT: Characteristic Wrapper
  • [ย ]ย GATT: Service Wrapper
  • [ย ]ย GATT: Description Wrappers (CCCD, etc.)

Service Wrappers

  • [ย ] Device Information Service
  • [ย ] BLE UART (NUS)
  • [ย ] Physical Web (formerly Eddystone)

Central Mode

TBD

Requirements

These helpers classes should require no pa...

#

IS it still the case that AMPY will only work on the DK via the UART pins, and not via the USB port? This has been working OK for me, but on a few occasions it has resulted in a corrupted FS on the DK. Has anyone else seen this?
I posted this to the previous PR but here are the details:

lib
boot_out.txt
ubluepy_scan.py

jerryneedell@Ubuntu-Macmini:~/projects/feather52/examples$ ampy -d  1.5  -p /dev/ttyUSB0 put i2c_scan.py 
Traceback (most recent call last):
  File "/usr/local/b...
#

Traditionally the UART peripheral on the nRF5x chips has generally required HW flow control for reliable communications, which might be what's happening here. I have to do some further testing myself, and I don't know if the peripheral on the nRF52840 is more robust than previous UART blocks at the silicon level, but I've generally always had problems with them without CTS and RTS being used. Or it could simply be an issue with the USB stack and pass through running through the on board d...

#

Yeah, the goal is ideally something sitting on top of bluepy (for portability reasons), and I'm talking about Python helper classes, I'll clarify that in the subject line.

The current bluepy API assumes a reasonable amount of knowledge at the packet level and about BLE, and helper classes can make working with things like indicate/notify and advertising properly much less error prone for end users.

cunning notch
#

dmesg on my laptop is telling me "Volume was not properly unmounted." Do I need to run fsck on the Trinket M0?

#

I can access the REPL, drive, and it runs my code fine.

solar whale
#

@cunning notch UNless it is giving you trouble, you should be able to ignore this.

cunning notch
#

@solar whale Does reflashing create a clean partition?

solar whale
#

@cunning notch no - you have to use one of the "erase" tools - looking for the link

manic glacierBOT
#

If we want to only support s132 and s140, does that mean we drop support for s110, s120 and s130? I see there are many defines for those SDs in the ble driver and I'm not sure how well those have been tested, does CP even run on those 16K/32K RAM nRF51 devices? Maybe we should remove the board and linker files for the nRF51 family and only support nRF52.

And another question, is the pca10040 supported? Because I couldn't build it, was missing a board.c file, how did you test the ble code w...

cunning notch
#

@solar whale Oh yeah, the erase image. Thanks

solar whale
#

@cunning notch I often see the "not properly unmounted" setting since after flashing, it dses a reboot and does not "gracefully" unmount.

cunning notch
#

Does it hurt to fsck anyway?

manic glacierBOT
solar whale
#

@cunning notch I have not tried it.

manic glacierBOT
#

Personally, S132 and S140 are the only targets that I think have a lot of value moving forward. The older devices are too small to be useful. As part of the next PR, I was actually planning on removing a lot of boards, and focus on the micro:bit, feather52 and PCA10056 boards exclusively, or anything similar enough to those to easily maintain without stretching ourselves too thin. The combination of S132/S140 and nRF52832 (32+512KB) or nRF52840 are all that really make sense to me.

cunning notch
#

@solar whale 'sudo fsck.fat -a /dev/sdd1' Removed dirty bit. No more errors.

#

Logical size was not decreased so there were potentially no orphaned chains. Makes sense considering there isn't much on it yet anyway. ๐Ÿ˜ƒ

manic glacierBOT
solar whale
#

@indigo wedge just curious - how are you powering your PCA10056 DK board when you use the UART cable - I am still powering via the USB conenctor - so only have TX/RX/GND connected from the cable.

manic glacierBOT
#

@arturo182 They redid the entire UART block migrating from the nRF51 (which didn't work reliably without flow control and had a tiny internal FIFO) to the nRF52, which improved things, but we had to fix issues in this fork to get paste mode working 100% reliably, for example. It's a combination of firmware and proper use of the HW, but I've been bitten enough by the UART blocks I don't trust them. :P The problem here is almost certainly the chip with the J-Link firmware, though, but the more...

indigo wedge
#

@solar whale yep, exactly as you describe

solar whale
#

good - just wanted to make sure the setup was similar.

manic glacierBOT
opal elk
#

I'm seeing my CPX as a drive on windows but it isn't in device manager as having a COM port

timber mango
#

siga, is this a new thing?

#

@cunning notch heya welcome to the community ๐Ÿ˜ƒ

solar whale
#

@opal elk Is teh CPX running CircuitPython or the "pre-installed MakeCode Demo?

#

Does the Makcode demo show up as a serial port - never looked.

opal elk
#

well something happened and my board was wiped (not going to bother diagnosing it; I had it hooked up to a pi for a while doing i += 1 so I probably did something naughty)

solar whale
#

@opal elk Dont' worry, It'll probalby happen again - at the most inopportune time - you can diagnose it then... ๐Ÿ˜‰

heady dove
#

Good afternoon all, in one of the 'learn" columns it says " Remember if you're using a board that doesn't support hardware I2C (like the ESP8266) you need to use the bitbangio module instead:" but the Feather Huzzah has SDA and SCL pins, do I need to use bitbango or busio? I'm talking to a BNO055

tidal kiln
#

@heady dove as part of the feather form factor, i2c pins are provided in the same location, how that is done varies from board to board depending on what the chip is, so it may end up being either HW or SW i2c

heady dove
#

cool, thanks guess I'll use bitbangio

tidal kiln
#

the feather huzzah is just the esp8266 broken out in the feather form factor, so whatever you're reading w.r.t. to an esp8266 should apply

#

what learn guide are you reading? (just to make sure it's not saying anything confusing)

heady dove
timber mango
#

yeah ESP dos not hvae hardware i2c

#

you have to bitbang it, just use pins 4 and 5

#

it works fine tho ๐Ÿ˜ƒ

heady dove
#

Awesome, again Thank you ALL, I love this community and I LOVE Adafruit

tidal kiln
#

although i see another bug in those examples...is itadafruit_bno055.BNO055 or adafruit_bno055.Adafruit_BNO055 ??

#

@heady dove so that should be:

import board
import bitbangio
import adafruit_bno055
i2c = bitbangio.I2C(board.SCL, board.SDA)
sensor = adafruit_bno055.BNO055(i2c)
manic glacierBOT
heady dove
#

Again, thank you all .... lets see if this works ๐Ÿ˜‰

indigo wedge
#

@slender iron can I request a review from someone when I create a PR or is it only people with special access like you that can do it?

slender iron
#

@indigo wedge I think you can. microbuilder will be doing most of yours

indigo wedge
#

Note: Pull request authors can't request reviews unless they are either a repository owner or collaborator with write access to the repository.

manic glacierBOT
slender iron
#

ah ok

manic glacierBOT
heady dove
#

So I got this error, when I ran the test code "Traceback (most recent call last):
File "main.py", line 5, in <module>
File "adafruit_bno055.py", line 125, in init
RuntimeError: bad chip id (0 != a0)

tidal kiln
#

@heady dove how do you have the BNO wired in to the feather?

solar whale
#

@heady dove Just incase you stumble across this like I did... on the esp8266 I2C is "bitbanged" but the "busio" module actually uses the bitbang interface, so you can uses either "import busio" ot "import bitbangio" This had me very confused for ahwile....

heady dove
#

Vin to 3V, gnd to gnd SLA to SLA SCL to SCL via 4 conductor Canare quad star

slender iron
#

@solar whale yeah, I changed how that worked with 2.x I think

heady dove
#

@solar whale I'm importing bitbangio

tidal kiln
#

so busio does either HW or SW?

slender iron
#

on esp8266 yes

#

if there is no hardware support then it'll bitbang

#

on samd21 it'll be picky about the pins, it won't silently bitbang

heady dove
#

interesting

tidal kiln
#

so no longer a need for two different setups? like guide is showing now?

#

@heady dove is the cable soldered directly, or are you using it as a jumper with a breadboard? can you post photo?

heady dove
#

it's on a breadboard, not sure how i would post a pic

heady dove
#

though I guess discord is on my phone, can I log in from two devices?

solar whale
#

@heady dove - yes you can

tidal kiln
#

@heady dove google says that cable is essentialy 21 AWG solid core. correct?

heady dove
#

yes 4 cond audio cable

#

not solid, stranded

tidal kiln
#

looks like you soldered on some header pins to get it in the breadboard

heady dove
#

I did

tidal kiln
#

what's the total length of cable?

heady dove
#

from your arm to your back ... about a meter

#

wrist actually

#

atempting to get positional data off a dancer into a Max for Live rig

#

I had it working via the arduino IDE but wanted to try it in circuitpython

tidal kiln
#

same cable?

heady dove
#

yes

tidal kiln
#

same board? just using arduino instead of CP?

heady dove
#

exactly yes

tidal kiln
#

hmmmm

heady dove
#

it has been in one of my carry cases, I suppose it could have been damaged

tidal kiln
#

try again with arduino, see if you can repeat success

heady dove
#

is the BNo055 static sensitive?

#

okay, good plan, I have to break for lunch anyway

tidal kiln
#

ok. try that and report back.

heady dove
#

will do, again thanks for the help, I love this community

manic glacierBOT
#

It sounds like the bluepy API will work to build the higher level helpers on top of. The current ubluepy is slightly different from the proper bluepy API and it'd be great to redo ours to be an exact subset (or identical). The biggest difference I know of is that ubluepy doesn't use properties. That's a MicroPython design decision that we don't follow. (We pick consistency over memory optimization.)

Here is an example of a difference: [bluepy](https://ianharvey.github.io/bluepy-doc/s...

#

So, after a few more days crawling around the core, I think checking for a live REPL connection isn't currently possible. One exception to that is WebREPL; that would be doable by checking for the file stats. Of course I caveat all of this with "I am very possibly wrong", but here is how I've come to that conclusion.

  1. Starting at circuitpython/main.c:L#119, the boot code checks serial_connected(), and if it is, it prints out the startup info to the REPL. (there is at least one othe...
indigo wedge
#

I'm a little confused about the module naming, in the docs it says "No module aliasing. (uos and utime are not available as os and time respectively.) Instead os, time, and random are CPython compatible." but then the ble module is called "ubluepy" not "bluepy".

slender iron
#

@indigo wedge it hasn't been fixed ๐Ÿ˜ƒ

indigo wedge
#

to the PR cave!

slender iron
#

we inherit a bunch of u* from micropython and have only fixed so many of them

#

if I could wave a magic wand they'd all be fixed ๐Ÿ˜„

indigo wedge
#

ok, i'll keep that in mind when going through the code

slender iron
#

thank you!

indigo wedge
#

not quite, the gamepad is on review and struct will be next, i just gotta test some github stuff on a dummy repo to understand PRs better cause I'm still unsure about dependencies in PRs

#

also it seems i don't have rights to check off anything if you meant me doing it ๐Ÿ˜‰

slender iron
#

hrm, I thought you would

#

added you as a collab @indigo wedge so you should be able to now

indigo wedge
#

yep, so many new options

#

and push access, that's scary, need to make sure i push to the right remote ๐Ÿ˜„

#

this is all happening so fast ๐Ÿ™€

slender iron
#

master is a protected branch

#

so you won't be able to mess it up

manic glacierBOT
#

I'd love to be able to get @hathach to spend a bit of time updating https://github.com/hathach/tinyusb since we'd have full control over the design decisions there, and it was designed from the start to be vendor neutral (which clearly isn't the case with most other stacks out there). Other options may make more sense after some digging, of course, but I think tinyusb is a strong option with a permissive license.

slender iron
#

@raven canopy looking at your trellis PR now

manic glacierBOT
#

It seems some of the examples in the nrf port are not valid anymore, for example the seeed tft one uses framebuf and machine, neither of those modules is available in the port.

Shouldn't the examples be better structured, the ones in the root directory should work on "all" supported ports, the ones inside the port directory should work on all boards that port supports and examples inside a board directory should be board specific and only work on that one (for example if some boards have b...

manic glacierBOT
#

As mentioned in #586, let discuss what to do about the nRF51 boards, at the moment they don't build because they lack board.c files (a requirement added in 60a23f0fb65bebe91ab8b6da4a32ed0b012e9313), we could either fix them and keep them, although I'm not sure how well they work and if the ubluepy module even works on them, or we could remove them.

That would mean removing pca10000, pca10001, pca10028, pca10031 and wt51822_s4at. The last one would be somewhat of a shame because it was...

indigo wedge
#

the nRF MCUs don't have analog out but the analogio doesn't allow disabling just the AnalogOut class so right now we have empty dummy functions, what's the best exception to throw if anyone tries to create a AnalogOut instance? NotImplementedError seems closest but not quite right

idle owl
#

@indigo wedge I have in another lib, that had things that weren't compatible with the current version of CPy, RuntimeError.

manic glacierBOT
idle owl
manic glacierBOT
indigo wedge
#

exception RuntimeError
Raised when an error is detected that doesnโ€™t fall in any of the other categories.

That sounds about right. Thanks @idle owl

idle owl
#

@indigo wedge Sure thing!

manic glacierBOT
tulip sleet
#

@indigo wedge @idle owl we can #ifdef out AnalogOut as necessary. We just need to add another #ifdef like the ones in mpconfig.h and mpconfigport.h and ...board.h.

idle owl
#

That's handy.

tulip sleet
indigo wedge
#

yeah i thought of that but it felt like a larger system decision that I'm not ready to take on just yet ๐Ÿ˜„

tulip sleet
#

you'll get there -- those #define's are not sacred!

indigo wedge
#

yeah but don't want to break all ports on my way ๐Ÿ˜‰

#

ifdefing out the AnalogOut would be perfect cause that functionality is not available on the nrf platform so no class should be accessible

idle owl
#

Break and fix, that's how this has worked all along. ๐Ÿ˜ƒ

tulip sleet
#

make an issue to remove it at some point if you don't want to do it now

indigo wedge
#

can do!

#

a exception in the constructor works quite well too cause then you can't create an instance

manic glacierBOT
#

The key boards in my mind that we should be testing against and considered 'supported' are:

nRF52

  • [ย ] feather52
  • [ย ] pca10056

nRF51

  • [ย ] microbit

With the goal of dropping nRF51 support entirely once micro:bit comes out with an nRF52 option (?), and people can always go back to previous releases for legacy support?

Those are just my personal opinions, though, since I think the nRF52832 is a far more flexible chip for a project like this. Obviously I'm interested t...

indigo wedge
#

is Kevin/microbuilder available in this channel?

manic glacierBOT
idle owl
#

@indigo wedge No

indigo wedge
#

Ok, thanks ๐Ÿ™‚

solar whale
#

@timber lion @slender iron Just tried rfm69 and aio (using urequests) on CP3.0 with much better results. basic test is working. gc.mem_free shows >15K bytes before urequests call now - looks like it was just marginal with 2.x.

manic glacierBOT
timber lion
#

oh that's excellent @solar whale!

solar whale
#

@timber lion I do have the response stuff stripped out of urequests. I can see if it makes any difference to put it back, but glad to see it working.

timber lion
#

also good validation that SPI is working well enough to talk to to it too

#

yeah i bet the response is ok now, it's good about lazy loading the data i saw

#

so only if you read it will it start buffering

solar whale
#

hmm - putting it back fropped memory to <15K and it reset on the first try!!

timber lion
#

oh wow haha

#

maybe it's not as smart as i thought

#

i saw it seemed to only start reading if you parsed the results

#

but yeah if you don't need the response then maybe best to keep it out

solar whale
#

at least for now - One step at at time!

indigo wedge
#

what's the deal with bitbangio, is it deprecated or not yet implemented? because i see it's used in the esp port but that one is not built on travis, so is it officially supported? it's not used in the samd port. I'm trying to get it working on the nrf port and I can't get it to compile cause dest used here https://github.com/adafruit/circuitpython/blob/master/shared-module/bitbangio/SPI.c#L143 is not defined anywhere. i could try building esp to see if it even builds there but iirc esp need a special compiler and i don't want to spend time on setting that up ๐Ÿ˜‰

solar whale
#

@indigo wedge It is used on the esp8266 port, but I ahve also stested it on the SAMD boards so I know it works.

indigo wedge
#

hmm, I'll have to look more into it then

solar whale
#

there was just s recent PR fixing some issues with the SPI

indigo wedge
#

i guess the problem is none of the boards in CI use that module so if it gets broken no one would notice until they try to build themselves

solar whale
#

ah - just saw the note about it not being compiled in master - I was testing it on 2.x

#

I think you'll need @slender iron or @tulip sleet to clarify the status

slender iron
#

I'm back from climbing!

#

@indigo wedge We need to reenable it in atmel-samd on master

#

esp8266 isn't in the CI because of the toolchain stuff

#

we should get it there sometime ๐Ÿ˜ƒ

indigo wedge
#

I'm trying to build samd now to verify, i don't have a board to test but can at least see if it builds

tulip sleet
#

that dest is in an #ifdef that I think is false

slender iron
#

we disabled a bunch of modules with the switch to asf4 so its possible its disabled

tulip sleet
#

it may still need some implementation in asf4 before it works

indigo wedge
#

ok it builds for whatever the default target in samd is

#

hmm

#

the search for the dest continues

#

i might be wrong but bitbangio should be port-agnostic since it probably just toggles GPIOs

manic glacierBOT
#

I prefer throwing an exception instead of removing it. I only want to remove things at the module level, not the class level. We have a chart for module support here: https://circuitpython.readthedocs.io/en/latest/shared-bindings/index.html#support-matrix

I understand this costs a bit of code size but would prefer a specific error message over a name not found exception. The ESP port raises an OSError: https://github.com/adafruit/circuitpython/blob/master/ports/esp8266/common-hal/analogio/...

slender iron
#

@indigo wedge I think there is a mp_raise_OSError to use now isntead of the nlr_push directly

indigo wedge
#

I believe so, yes

slender iron
#

anything else I can help with before I go heads down?

indigo wedge
#

I think I'm good for now, will post if I come up with any more questions, thanks ๐Ÿ™‚

slender iron
#

kk, great work @indigo wedge

tulip sleet
#

@indigo wedge The code in the #ifdef MICROPY_PY_MACHINE_SPI_MIN_DELAY is derived from extmod/machine_spi.c, which we don't use. That old code had a dest. So it's a latent bug which is not in compiled code right now.

indigo wedge
#

oooh

#

and in the nrf port it's defined as 0

#

in samd it's not defined

#

๐Ÿคฆ

#

I'll try removing and then building, thanks Dan

slender iron
#

@indigo wedge what are your thoughts on the bluepy API?

#

does it cover most of what you think we'll need?

indigo wedge
#

I haven't used it that much and I tried reading the docs now and I can see that we try to follow it but I think we also implement more

#

cause nowhere in the docs there's a mention on how to advertise

#

but we have a basic advertisement API

#

I think it's a good starting point but might not be enough

slender iron
#

kk

#

its open source so we could expand it

#

it'd be weird if we were a superset though...

indigo wedge
#

we kinda already are, with that advertising function

#

we have it, bluepy doesn't seem to

slender iron
#

yeah, we're not calling ourselves exactly bluepy yet

#

looks like pybluez is the alternative

#

650 stars on github vs 600 for bluepy

indigo wedge
#

"experimental ble support"

#

i think i prefer the bluepy API more

#

the problem is there is no one de facto python ble API

slender iron
#

right

indigo wedge
#

and none of them are complete

slender iron
#

bluepy is open source

#

linux only though which is ok for raspberry pi

indigo wedge
#

yeah but bluez is not so much fun to work with ๐Ÿ˜‰

slender iron
#

stupid google

#

maybe we just come up with a new name

indigo wedge
#

right, to not claim compatibility

slender iron
#

exactly

#

instead its "inspired by"

indigo wedge
#

cause it's really hard to say how many people will come from RPi expecting their code to work

slender iron
#

and then if we want to port it to CPython we for bluepy and rename

#

I'm more interested in the opposite, allowing people to grow into rpi code

indigo wedge
#

right, CP as a starting point

slender iron
#

yup yup

indigo wedge
#

then yeah, someone would have to port whatever we do to RPi/Linux

slender iron
#

yeah, we can always suggest trying bluepy if we preserve the overlap

indigo wedge
#

sounds reasonable

slender iron
#

there is also bluezero

indigo wedge
#

hmm, the documentation is lacking but looking at the code it seems like a pretty reasonable API

slender iron
indigo wedge
#

it mentions classes but nothing more

slender iron
#

ah yeah

#

we don't really do callbacks at this point either...

indigo wedge
#

although the naming is still a little bluez-dependent:

        >>> app = peripheral.Application()
        >>> app.add_service(your_service)
        >>> app.start()
slender iron
#

ยฏ_(ใƒ„)_/ยฏ

#

I've never done bluez

#

we could call ours superbluepy

indigo wedge
#

quite a mouthful ๐Ÿ˜„

slender iron
#

of superblue

#

or superblue

#

I like how that sounds

indigo wedge
#

that's a cool name

slender iron
#

not to be confused with super()

stuck elbow
#

blue like a jazzman's soul

indigo wedge
#

maybe we can call the blue module tobias ๐Ÿ˜

slender iron
#

way over my head

manic glacierBOT
slender iron
#

will wait for travis before merging

indigo wedge
#

It's a Arrested Development reference ๐Ÿ˜‰

slender iron
#

ah, I've only seen a smattering of them

tidal kiln
#

annyong!

indigo wedge
#

Hello

#

yay, with the define removed bitbangio builds for nrf, not sure if it works but it builds ๐Ÿ˜„

cunning crypt
#

Hey, it's progress, right?

slender iron
#

works for me

#

as in, I'm ok if it builds

#

master is still pretty early in the dev cycle so we have time to find and fix issues

indigo wedge
#

need to visit my hackerspace to get some i2c boards to test

slender iron
#

@indigo wedge order it with the nrf52 feathers from kevin

#

order anything you need for testing

indigo wedge
#

they're already shipped ๐Ÿ˜„

slender iron
#

next time!

indigo wedge
#

Heh, I'm just grateful I was offered anything at all ๐Ÿ™‚

slender iron
#

you are being a huge help, we just want you be more help ๐Ÿ˜ƒ

idle owl
#

It's true!

manic glacierBOT
indigo wedge
#

ili9341 over bitbangio SPI works

#

so

#

so

#

so slow

slender iron
#

doesn't nrf have hardware SPI?

indigo wedge
#

yes, but maybe someone wants bitbang as well

slender iron
#

yeah, probably not a display ๐Ÿ˜ƒ

indigo wedge
#

yeah, yesterday i used the HW SPI for the display and that was faster

#

obviously ๐Ÿ˜„

slender iron
#

cool cool

indigo wedge
#

it was the only spi device i had on hand

manic glacierBOT
indigo wedge
#

ok, past midnight, time to go, ttyl

idle owl
#

@indigo wedge have a good night!

heady dove
#

@tidal kiln It looks like it must be a bad sensor, didn't see find the BNO055 on a different Huzzah programed via Arduino IDE , I shortened the cable to check if it was a length or cable issue ๐Ÿ˜ฆ

idle owl
#

Hmm. Did it ever work?

heady dove
#

yes I had it running last time I was working on the project (May?) but the sensor has been rattling around in my carry case since then

#

It doesn't look damaged, but maybe it is static sensitive? it wasn't protected with static foam or bag

idle owl
#

I'm not sure with that one.

manic glacierBOT
slender iron
#

why would an analog read range from 360 to ~3820 when its 12 bit?

idle owl
#

um

#

no idea.

tulip sleet
#

@slender iron could be 12-bit accuracy as opposed to value? And then mistakenly a signed field?

slender iron
#

its a tilde not a minus

idle owl
#

Oh

slender iron
#

so its 360 to 3820

idle owl
#

hahaha That's slightly less confusing.

slender iron
#

sorry, I realized its confusing

tulip sleet
#

4096 is 2^12, so makes sense?

slender iron
#

on 2.x the range is wider

tulip sleet
#

wrong voltage ref?

slender iron
#

maybe

#

its weird its a similar amount on each end

tidal kiln
#

@heady dove so no luck repeating the previous working config. bummer. hard to say, but, yah, maybe damaged from the tour of duty in the carry case.

heady dove
#

just found a Adafruit 9DOF breakout on my bench, not seeing CP lib for it it's using a LSM303DLHC and a L3GD20

#

those haven't been ported as of yet?

slender iron
#

@heady dove check the bundle

#

its possible we haven't gotten to them

heady dove
#

I have the one from a few days ago and didn't see it

slender iron
#

they don't ring a bell so I doubt they've been added

heady dove
#

no biggie, I'm about due to place a Adafruit order

slender iron
#

discount code tomorrow night!

#

please post two issues if you have time

#

we should add support in the future

heady dove
#

will do, where do I post issues?

idle owl
heady dove
#

@idle owl Thank you, you read my mind

idle owl
#

It happens ๐Ÿ˜‰

manic glacierBOT
slender iron
#

thanks @heady dove !

idle owl
#

@slender iron You beat me to the label update. ๐Ÿ˜ƒ

slender iron
#

๐Ÿ˜„

#

waiting for a compile

heady dove
#

It makes me happy to be part of a coding community

idle owl
#

@heady dove We're happy to have you ๐Ÿ˜ƒ

slender iron
#

๐Ÿ˜„

heady dove
#

well I'm definately in over my head, but have been most of my life, so why change now

tulip sleet
#

@slender iron my apparent ASF4 USB descriptor issues were my own fault. I commented out my UART code temporarily and the new ASF4 code works fine and I get CIRCUITPY. So something wrong with my UART init, but not in ASF4 (hopefully); that's actually a big relief -- much easier to dbug.

idle owl
#

@tulip sleet That's good then

slender iron
#

glad you got past it!

#

I just dumped the adc state and asf4 hasn't loaded the calibration register

tulip sleet
#

ha!

slender iron
#

I'm shocked!

#

(โ•ฏยฐโ–กยฐ๏ผ‰โ•ฏ๏ธต โ”ปโ”โ”ป

tulip sleet
#

[can you explain that emoji? person with glasses looking at something] --signed, culturally ignorant

slender iron
#

its a table flip

tulip sleet
#

OH.

slender iron
#

someone flipping a table out of finding somethign ridiculous

idle owl
#

๐Ÿ˜„

tulip sleet
#

I'm familiar with real table flips. Jesse has done that, unfortunately. Not recently.

#

let's all debug asf4

slender iron
#

so you understand the motivation

tulip sleet
#

oh, yeah, he was mad

slender iron
#

maybe the update you have fixed it?

#

wishes

tulip sleet
#

m0 or m4?

slender iron
#

m0

tulip sleet
#

i happen to have a kdiff3 of the entire tree open... sadly, no changes in adc code.

slender iron
#

kk, I'll do it myself

tulip sleet
#

looks like there are hri routines to deal with the calib

slender iron
#

yup, will call those to set it

#

I think the hri is autogenerated

slender iron
#

w00t! calibration made it much better

idle owl
#

nice!

manic glacierBOT
slender iron
#

night all! I'm off to dinner with a friend

idle owl
#

later @slender iron, have a good one

manic glacierBOT
#

There are a very small handful of places that assume that if you're using a SAMD51 that you're using a SAMD51J. We should support the SAMD51G to allow us to pack the SAMD51/CP wombo-combo into an even smaller package.

From looking at the datasheet, the differences between the 51J and 51G are

  • Number of TCs
  • Number of 16bit TCCs
  • I2S support
  • Number of GPIO
  • Number of ADC channels on ADC1
  • Number of PTC channels
  • Number of tamper pins

The only problems I've found so far are...

errant grail
#

Just mailed out two new StringCar CPy controller boards to the other side of the state. The final code consists of an abstracted main.py of 89 lines and a stringcar-specific library of 180 lines. Both fit on the Trinket M0 with 9600 bytes free. I am completely enamored with CircuitPython, particularly for this project. blinka ๐Ÿš

pastel panther
#

awesome job @errant grail !

#

I just put two and two together and realized that I should make the string racers I'm planning wth my neice

errant grail
#

It's a pretty good STEAM opportunity, for sure. When I taught a basic stringcar racer class to an all-adult class at our local makerspace, it brought out the giddy third-graders in them. The race at the end of the class was very competitive.

pastel panther
#

awesome

#

also, I need to buy some more m4s now that they're available again

#

"need"

errant grail
#

I experience that "need" way too often for my budget. Oh well.

#

How's the livewell project coming along? Did I see a random post about blue smoke?

pastel panther
#

hah, yea I had a janky setup with overly long and overly stripped wires for my SWD connection and shorted SWCLK to a huge lipo sparky

#

blew a hole in the case of the D11

#

$1 down the drain ๐Ÿคท

#

I've since made a tighter, longer SWD teather and put on a new chip. Started playing with JLink RTT which is cool

errant grail
#

Back on course, then?

pastel panther
#

yea, I wanted to commit my SAMD51G fixes for my m4 board though because I'm going to use the same basic design on a new board for the controller for the neice's jacket

errant grail
#

Very cool.