#general-chat
1 messages · Page 75 of 1
O_o
silicone is about the consistency of grek yogurt. you arent gonna dip anything, even if they did cure,which they wont
what exactly are you trying to do?
Eh never really had to do with it before, I bought some latex a time ago, but it was a pain and it had a strong ammonia like smell
Anyway I need a silicone like film, but due to the geometry the best would be to dip cast the geometry into some liquid material,
an alternative may be to have a positive+negative cast, where the silicone is dipped, but due to the geometry it would be a real pain
ahh
in those cases, you would just brush on the silicone. there are special silicones they use for special effexts, makeup etc that might be the most suitable
silicone will usually flow out so you wont see the brush strokes
depends how thin you want it to be as well.
3-5mm is pretty easy.
where it will coat and flow but not sag and drip off
you can get liquid plasti-dip in a can. it was originally designed for dipping tool handles in. it's not like the spray on plastidip.
can also get liquid rubber in a can
but that wont come off usually
im assumeing they want the film, and not a coated part
yeah after many years... how long you need it to last?
oh then glue stick... goes on hot and can be ripped out relatively easily.
if you want to make molds then use two part silicone for mold making.
i think he wants a silicone molded PART
finished part made of thin silicone
like a mask for example
make a negative with plaster of paris, and fill with silicone then
Indeed, thanks for the feedbacks guys
Do you all know how stereo works in earphones
My normal earphones sounds sucks while listening to Dolby Atmos but my Onn. Tws in ear have good bass and good reverb
Always curious on how they work
well, stereo is one sound channel per speaker for 2 speakers, so on that level, stereo works in an obvious manner in earphones
I presume atmos is a system with several audio streams with many virtual spatial positions, meaning that the difference would probably be how it decides to mix the audio for the headphone speakers?
yeah, the quick answer is that professionally produced stereo audio is often mixed for playing on speakers, not headphones. you can do some postprocessing on such an audio signal to make it sound like it's playing on speakers when played through headphones, mostly by adding some delays and reverb (which makes some assumptions about your outer ear and head geometry)
Yeah but why my tws earbuds are better that my wired earphones
my understanding is that formats like Atmos have enough spatial info encoded that it can be remixed for specific playback equipment, but usually you have to pay for premium devices that handle it (the analog wired earphones probably get the "stereo speaker" mix)
So I paid for the True Wireless Stereo so it sounds better
Does that even support Atmos
theoretically, you could buy some software that does Atmos decoding on your computer and mixes it for analog headphones. no idea if that's what your wireless are doing, or maybe it's doing some default virtual speaker thing of its own
Well I am on Android
Howdy. I have an older re-manufactured HP desktop about a year old which has been working for me just fine. A couple of recent stupid Win 10 "mandatory" "updates" started causing problems, and then the latest (yesterday) and now it won't startup to Windows. Tried everything. I'm no expert. Anyway I've ordered another one. Too cheap to get brand new... I have another backup (slower) HP I'm using now, and I have most stuff backed up so I'm in fairly good shape. I never could find a way to turn off Win 10 automatic updates.
I used organization policy registry rules to disable auto update
not even a full&clean windows re-install revived it?
Thanks, not sure how to do that. It came with Win 10 installed.
only win 10 pro can disable auto updates
Oh yeah
I kept forgetting I am on a win 10 pro
to disable in win 10 pro you edit the group policy
You need a still working PC to put the windows installer on a USB drive. https://www.microsoft.com/de-de/software-download/windows10 (Microsoft has no language selector so hopefully that just redirects you to the english page.) There are probably tutorials on the internet about how to install windows, but the installer is pretty straightforward.
And important:
DO NOT download a "windows ISO" or "windows installer" from any sketchy website. I linked you the page directly from microsoft.
Putting the windows installer on the USB drive will delete all files currently on the USB drive! But after you're done you can just delete the windows installer and use the usb drive normally again.
Of course a "clean full reinstall" means wiping the entire HDD/SSD so you lose all files on the laptop unless you "rescue" them before!
(I actually don't know how Windows licensing works nowadays. I upgraded from 7 to 10, then reinstalled 10, changed hardware, upgraded to 11 and it always just automatically activated. Maybe it associated the license with my microsoft account. And I think devices with preinstalled Windows have some magic that windows reinstall also gets activated. But I don't know.)
Are they really?
yeah, quite a few discord server has crashed
There have been rolling outages.
Is it finally the end of the world? And right before Christmas too, a shame really
/sarcasm
touch grass™
ser-ver grid re-star-ting
cycle power.
O_o
Thank you. I did the English website, and Download Tool, but the PC I used is Win 7, and the EXE throws an error. Fortunately, the offending PC decided to start up OK, after like 100 attempts, then sitting unplugged for 24 hours. Go figure. I still have a good similar HP coming. Gotta have a backup...
When I tried the bad Win10 HP again after long time sitting, it came up and said "updates 48% done" or something straightaway, so I guess the update got hung or whatever.
On the NRF52840 the TFT featherwing lite mod recommends using pin D2 for pwm backlight.
Does that still apply for ESP32-S2/S3's?
Considering I have no intention of ever using a physical debug pin.
I see no pin name DB. 😦
>>> import board
>>> dir(board)
['__class__', '__name__', 'A0', 'A1', 'A2', 'A3', 'A4', 'A5', 'BOOT0', 'BUTTON', 'D0', 'D10', 'D11', 'D12', 'D13', 'D14', 'D15', 'D16', 'D17', 'D18', 'D3', 'D35', 'D36', 'D37', 'D38', 'D39', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9', 'I2C', 'I2C_POWER', 'L', 'LED', 'MISO', 'MOSI', 'NEOPIXEL', 'NEOPIXEL_POWER', 'RX', 'SCK', 'SCL', 'SDA', 'SPI', 'STEMMA_I2C', 'TX', 'UART', 'board_id']
says TXDO but I don't see that pin either.
Eventually fixed the issue by jumper wiring to A5 on the TFT Featherwing to use with the ESP32-S3 Feather.
@faint fox I didn't know how else to reach you, but I figured you might be interested in a few LILYGO T-Deck updates. Let me know if you'd like to get in touch outside of Discord.
I'm working on creating a Community Bundle Library for the Goodix GT911, so that it may be included with the LILYGO T-Deck library. I've been working on piecing together a driver from the datasheet, until I discovered your driver in the PyDOS Virtual Keyboard repo. I used what you had to get my own prototype working, and I very much appreciate the work you did.
I still have a few issues to address, mainly consistency around retrieving the latest touch point. There's mention in the data sheet that the GT911's Register address needs to written to before the next touch event is available at that address. Additionally, the I2C address (0x14 or 0x5D) can be controlled by setting the INT pin HIGH or LOW before starting the device. The T-Deck doesn't have the GT911's RESET pin wired up, so its been quite difficult to test this. I'm considering purchasing a breakout board, but I'm curious to know if you've worked around that limitation.
https://github.com/rgrizzell/CircuitPython_GT911/tree/wip
I've also created some custom firmware for the keyboard. Flashing is a tedious process, but it adds a few QOL features.
https://github.com/rgrizzell/lilygo-t-deck-keyboard
I read the datasheet just enough to get the driver working for what I needed (the Makerfabs MaTouch) 😁 I didn't get my code to work the way I was reading the datasheet regarding the write/read order for touch events so my code is probably not as clean as it could be. Based on some of the other python examples I dug up and my reading of the datasheet, I thought that the I2C address could be set to the 0x5D address even though Makerfabs tied one of the signals low but I'm not sure the CircuitPython timing was consistent enough. In the end, I just fell back to the second address if the first didn't work. I'm a bit confused because I didn't even realize there was touch input on the T-Deck nevermind that it used the same controller as the MaTouch
nice. i was prepping this up to resin print as big as i cant a few days ago. gotta figure out how to cut it up into asemblable parts
I've got a Pygamer and a Feather Wing ESP32 Wifi badge on it. Would it be possible to have the ESP32 download / flash the main PyGamer board with new apps?
Or is that something only the usb connection can do?
hi so I connected BNO085 to the pico with circuitpython, but im getting No I2C device at adress 0x4a
import time
import board
import busio
import adafruit_bno08x
from adafruit_bno08x.i2c import BNO08X_I2C
i2c = busio.I2C(board.GP1, board.GP0, frequency=800000)
bno = BNO08X_I2C(i2c)
I ran the I2C scanner from here
https://learn.adafruit.com/scanning-i2c-addresses/circuitpython
here is the result
is it just possible that the BNO085 is bad unit or am i doing something wrong?
on a Raspberry Pi, you should be using i2c = board.I2C() for the default bus
same apply for a pico with circuitpython?
when i do that i get AttributeError: 'module' object has no attribute 'I2C'
you did not specify which platform
srry, raspberry pi pico with circuitpython 8
i got it work. If i want to stream sensor data over the internet, does adafruit IO work for that?
I'm kind of digging this style of project box with a pre-cut assortment of holes. I found it on one power supply kit, but not seeing similar enclosures anywhere. When finishing the project you could just electrical tape over unused holes; and then cover it up with with printed sticker with your knob and button labels.
I like the specs. A 600MHz (overclockable to 1GHz) Cortex M7 could be sweet.
Woah. N16R8 iMX1060 with WiFi 6 and BT. Sounds good but you'll have to use their SDK to take advantage of all the features.
Looking at the project on GitHub, it has an RJ45 expansion card, too.
If you find something, let me know. There are a lot of companies that will make these, or you can laser cut or CNC them or have front panels fabbed as PCBs, etc., but I too would like an enclosure with a variety of ready-made openings. I had been considering doing a Kickstarter for a series with a variety of punch-out openings, but the one you show with all the openings already there, and you just cover the ones you don't need might be easier.
You could build one out of an Edison https://learn.sparkfun.com/tutorials/edison-getting-started-guide
Or just use an AVR feather and avr-x86
There's also the Arduino 101
i mean one that cvan run windows 10 fully. im just being silly here.
Yes. Yes you are. There's a reason the Edison, 101, and other X86 based boards never caught on.
yeah
yes, yes you are -- why would you want to run windows? 😆
ive had a silly cnc'd pc case idea for a while, but none of the boards are powerful enough to make it really a usefil thing. although a pi5 is probably pretty close
actually i dont want to run windows. i want to run linuxcnc on it
but it needs broadly the same type of pc
There are companies that specialize in boards for industrial environments that can run Linux just fine. This is just one of them https://www.embeddedts.com/products/single-board-computers
Full disclosure: I'm currently working on a project to replace $1000 Dell boxes that are too large, too expensive, draw too much power, and generate too much heat in factory environments, and those are one of the companies I'm looking at as a vendor.
I did mention that a Raspberry Pi would probably do the job (all it's doing is fetching process control information from PLCs via OPC-UA and streaming it to the cloud using Greengrass), but they want something with all the industrial ruggedization checkboxes.
yeah ive looked at a lot of the mini boards. some are small enouigh and usable, buyt they cost way more than is justified ($500+ for most of them)
there was one called an up board? that was $250
was borderline
i think it was missing a feature i needed. i forget now. been a while
The embeddedTS ones are generally $200-300 (for singles, they're cheaper in quantity). Fortunately, Linuxcns is much less demanding than w10.
they seem to all be arm. i need x86
Homemade chocolate covered English toffee
mmmmmmmmmmmmmmm
ive got my baking list for this week set
gonna be a lot of cat cookies
plus lemon and pumpkin tarts
and maybe a few other things
Hello people i Just bought my first microcontroller!!!! The Adafruit Playground express!!!! Im so excited for it sadly it will be a bit delayed due to Christmas and all that :(
However im looking forward to get my hands on it and enjoy such a cool device

ooooh. hows did you make the candy?
i want to try candy
also gummy candy (gummy cats)
I got sugar, corn syrup, and some water up to 285°F/140°C and worked it on silicone baking mats
so more or less the same as hurcules on youtube, just small scale?
no gelatin
corn starch candy (like sour patch or wine gums, sweedish fish etc)
you press a mold out of corn starch as well. and pour the candy in.
the molds i can do (cnc or print a male master). no idea how to safely anc cleanly pour it though
Gelatin is a very common ingredient for gummy candies, check the Wilton candy cookbook
There are varieties that are vegan that do not use gelatin
yeah but not for what i want
there are 2 main doft candies. gelatine based and corn starch based
But most major gummy candies use gelatin
Gummy worms, gummy bears, etc.. pretty standard at least in the US
Sour patch kids do not though which is pretty cool
if i go to the candy section here. it is almost all maynards stuff. maybe cause they are made here.
Mostly anything similar to Swedish fish do not have gelatin
yeah. all maynars is corn starch candies
But I don’t really consider this gummy candies
ahh
I consider them more soft chew candy
ill try that after xmas
im trying something with all the stuff i make right now. making youtube videos, which then link to the things to buy. I dont expect any meaningful youtube revenue,. but f it points people to the things being made, and lets them appreciate the work, it could be pretty good
we'll see
The proper name for candies like sour patch kids is jelly candies
ahh
Hand to use google foo
haha
neat
jelly beans also have no gelatin
so that make sense with the name
in the uk (and to a degree in canada) jelly means gelatin
We have the chalky smarties
yeah, those are called rockets here
Sweet tarts I believe are equivalent to smarties in Canada
m&ms are usa smarties, but they have deviated to be their own thing and we have both
no, compeltely different. rockets here are usa smarties. just different name
Nvm smarties in Canada are chocolate
yes
Why eat Canadian smarties when you can just eat M&Ms?
they are a uk candy. they went to the usa but the dextrose candies already existed there
smarties are better than m%ms
taste better. bigger. better candy shell
🤷♂️
hehe
You also have Mars Bars, yeah?
i thought mars bars were named milky way in the usa
I think so
We also have classics like 100 Grand which are delicious but will cost you $100k to fix your teeth afterwards
We also have baby Ruth which is just a payday covered in chocolate
neither of those here. we get a lot of euro candy
We have a Reese bar called a fast break
Nougat, a thick bead of peanut butter, covered in Reese chocolate
when i was in the us thy have a lot of our canadian candy
like sour patch etc
but no ketchup chips
You can buy ketchup chips in stores here
oh
Not the same brand though
what about all dressed ruffles?
Perhaps?
We have fun flavors like fried dill pickle flavor
we had dill pickle a long time ago.
i think they try things here sometiems, and then they go away
One of my personal favorite kettle style flavors is jalapeño
they have a lot if jalepeno here now. cheetos and some otherss
and chocolates too
thats getting popular
Oh nice
i dont do spice. bbq chips is too spicey
I love my spicy foods
I think Hot Ones YouTube show has help popularize spicy eating
I personally wouldn’t do like, anything hotter than a Thai chili
i grew portuguese peppers but didnt eat them. everyone says they were pretty hot
i think they are 50000
300k Scoville is hot enough for me
Above that it’s creeping into kink territory
yeah
you can make nice food with hot peppers. portuguese chicken for example. but when its just spicy for the sake of spicey i dont get it
Yeah same
I can also understand eating it in equatorial regions because there is an observed cooling feeling that spicy food can contribute to
Yeah, that too
Desk of Ladyada - Schottky sub shock https://youtu.be/FhKoHpjbp0o
A part substitution during shortages led to unexpected issues in their 2.13" eInk FeatherWing, likely due to reverse current leakage. Similarly, in "The Great Search," they discuss using millions of 'jellybean' 10uF ceramic capacitors in their products, explaining their benefits and suitable applications.
is there sim software for cockroaches, something like fritzing
As you experiment with hot sauces your tolerance will go up, so you need to reach higher to get the adrenaline rush. Anything with extracts is usually way too excessive, but things like Carolina Reaper can be really good in some hot sauces, like Bravado’s Black Garlic Carolina Reaper. That is excellent in Mac and cheese.
Milky way is here in the UK. It's whipped mallow with chocolate around. Very simple and tasty but also not a mars at all. Mars has nougat and toffee iirc. Also delicious but milky way and mars are not the same
milky way in the uk is something entirely different
Is it reallllllllly
I think I'll need to taste the differences, and to be thorough probably important to gather as many samples as possible
yes
definitely needs to examine different sizes of mars bars, probably from different shops. you know, so its a scientific sample set
3 of 30 cad files listed. whee. (the first ones were hard, the rest will be easily done in the morning)
Milky Way in the US is caramel, nougat, chocolate
that would be similar to a 3 musketeers in the US
I don’t buy eggos lol I usually make my own mini waffles 😬
But if you could buy eggos. Would you trade them from this day to the last
For one chance
Just one chance
For those toaster friendly delicious treats
Let's start at 1000?
Amusingly, I still have a few Pis left from my last buying spree.
i've got 3 idle right now, but that's due to Feline Interference Tests (FITs) from new kittens -- for some reason, i don't want stuff moving around on it's own with them around 😏
ha
now the pink panther order and it comes sounded like much different
I've been digging around but can't find any adafruit.com mentions of an updated and larger magtag in the works. Is that a hallucination?
I just received the new Memento board today. When I go to download CircuitPython for the board it only offers the Version 9.0.0 Alpha 6. Is this correct? If so any tips are welcome. I am quite new to AdaFruit. A month ago I got a Feather ESP32-S3 board that I flashed with CircuitPython 8.2.8
Ignore this, I am heading over to the circuitpython help group
Spent a buncha time learning C++ today
Came out of it with (i think) a kinda cool arduino library?
In use:
In practice:
Apparently the 3.5" TFT Featherwings were in stock today. Found out when there was 1 left. Wish I noticed earlier I would have picked up more.
I'm hoping the ItsyBitsy M4 comes back, I build those into lots of things and I'm down to my last one.
The ItsyBitsy NRF52840 is in stock. Might be an acceptable substitute depending on what you're using it for. We all have our preferences though.
I got badly burned by Nordic chips once, so I tend to avoid them. And I'm using the twin DACs the M4 offers, and that chip doesn't have that feature.
I hear Nordic has since cleaned up their act, but the whole episode left a bad taste in my mouth.
two DAC's? that does sound nice.
I picked up a couple adafruit S3 feathers too because the LCF battery monitor on the older ones are constantly throwing errors on my 1200 line script. I think the LCF battery monitor chips requires a certain time to load that is taking too long. a lot of ETIMEDOUT errors. hopefully the S3 with the new MAX chip battery monitors behave better.
yes i keep ignoring the errors. have to take a screenshot of when it happens. and it's kind of a known issue.
the I2C impl in ESP-IDF5 (in 9.0.0 alphas) is quite a bit better; the LC709203F works better enough that I closed the issue
is this with 8.2.x or 9.0.0?
welp, i'm gonna have like 8 esp32-s3 feathers now. i'll find a use for them when more TFT featherwings come in stock 🙂
maybe will revisit the social media tracker but on a tft. have to rework all the request API's for 9.0 anyway.
i even commented on that issue. was catching the error but didn't give it a continue or pass... so of course it would stop the script.
i've learned a lot about exception handlers since then.
i'm definitely guilty of ignoring that error and just hitting reset every time 😅
clock stretching did not work well on ESP-IDF 4 on S3 (S2 is fine).
There are still chips like BNO055 that don't work hardly at all, but they don't work on other impls too such as the i.MX micrcontrollers.
i wonder if i gave it a continue if it might retry and work or would just continually fail?
otherwise will give it a pass and work in some conditionals where battery monitoring is used.
I added some code to the library to do some retries
but really, does seem to be mostly or all fixed in 9.0.0
good night, fading!
have a good night, thank you for the info!
is it usual for datasheets to be marked with this on every page..?
they have that when they were made to order for some large company as a preliminary spec. And then when the product goes public they are too lazy to make a new pdf 😛
I've seen that many many times, it's definitely laziness.
im in the top 5% for "your order had been delayed 6 weeks"
I have a deep appreciation for the music processing center of brain. Especially how loud rhythmic music can help calm anxiety.
music and singing is interesting cause apparently it is processed in an entirely different part of the brain as talking
Yeah, it is fascinating
according to etsy it is now midnight. what the heck timezone are they? i would understand GMT, but this is like... +9? russia? uae? shrug
i sold my rusted lathe to a university formula SAE engineering team. that sound sfun.
Random question, why is the ESP32-S3 chip so different on the Adafruit vs the Unexpected Maker boards (specifically in size)?
most Adafruit boards use the module, QT Py uses the chip, same (7x7mm I think) size as UM
there seem to be two packagings of the chip, but both are 7x7mm; modules come in 5 flavors
Ahhh. Thank you (I just got my order for a bunch of boards and didn't realize the difference between them until they were next to each other)
My brewer of morning nectar has died 🥲
The coffee maker is an honorary member of the family. Lol
ha
It served nobly for nearly 4 years, acquired at the start of the pandemic when the coffee maker before it passed from this world
Luckily my second in command French press keeps up when other coffee pots have failed
I remember stories about someone telling their cow orkers "My Sun died" and being misinterpreted
By way of explanation for those who don't remember Sun Microsystems (now a part of Oracle)
SPARCStation!!!!!!!!!
I used the old "pizza box" SparcStations for many years at work and at home.
i remember blowing the mind of a Sun Expert by hacking the boot sequence to resurrect a 420R by using a trick i learned on linux
I worked with Sun a lot in the early days and did all sorts of interesting boot tricks for our customers (part of our license agreement was we had to furnish back to Sun any modifications we made, so some of those tricks became part of later distributions)
I also managed to write diagnostics for various peripherals in FORTH to run directly in OpenPROM
I even developed a hands-free installation procedure for the Navy, where the installer (generally the person who welded the rack to the deck) just had to put the tape in the drive, type "boot tape", press the return key, and come back in a couple of hours to a running system.
We asked Sun to help us write this, and they wouldn't even take our money, claiming it was impossible. So I wrote it.
nasty boot loader tricks: i reverse-engineered the Netware 3.x bios loader to custom load some other junk to be able to talk to a custom OS/2 "server" -- same thing (the guys at Sabre were impressed as 💩 and totally useless)
I tried tucking additional boot flags into the section of RAM allocated for them, but they disappeared when the next stage loader fired up. I eventually chased it down to a bit of ROM code that read the flags, converted them (well, the ones it recognized) to a bitfield, then regenerated the flag string later. Since my new flags weren't recognized, they got lost, and I had to find another way to persist boot information between loads.
We even developed our own custom SBus cards
Thankfully did not have to go that far -- just software integrations that were not supposed to exist 😺
Ran into a bizarre one with a SCSI floppy drive. It just didn't work. I finally chased it down to Sun's NCR SCSI driver, which would put the data on the bus, assert strobe, remove the data, and wait for ack. I switch it to assert strobe, wait for ack, THEN remove the data. Most peripherals worked fine the other way, as they apparently latched the data with the strobe signal. But the floppy drive seemed to have a microcontroller that got an interrupt from the strobe signal, then went to read the data from the bus, by which time it wasn't here any more. So it would read six bytes of all zeroes, which is a valid SCSI command ("test unit ready"), so it would respond with success. However, command like "read" confused the driver greatly, as it would expect 512 bytes of data, then status, and would be upset when it got the success but no data!
i love your project adafruit
Hi there! I have a Feather nRF52 Bluefruit LE - nRF52832. I’m wanting to connect a real time clock and accelerometer (to count steps) and was wondering what would be the best boards.
Looks like there might be wings, but they might more than I need. I don’t need an SD card, and I’m wanting to power the real time clock with the 3.7 lipo battery I’ll be connecting the feather to.
Here’s what I’ve found/am considering. Thoughts?
Thanks in advance!
Accelerometer
- Adafruit Triple-Axis Accelerometer - 2/4/8g @ 14-bit - MMA8451 https://www.adafruit.com/product/2019?gad_source=1
- Adafruit LSM6DSOX + LIS3MDL FeatherWing - Precision 9-DoF IMU Adafruit LSM6DSOX + LIS3MDL FeatherWing - Precision 9-DoF IMU : ID 4565 : $19.95 : Adafruit Industries, Unique & fun DIY electronics and kits
Real time clock
- Adalogger FeatherWing - RTC + SD Add-on For All Feather Boards https://www.adafruit.com/product/2922?gad_source=1
- but I don’t need an SD card
- DS3231 Precision RTC FeatherWing - RTC Add-on For Feather Boards https://www.adafruit.com/product/3028?gad_source=1
So many accelerometers and so little time! We've expanded our accelerometer selection even more with this high-precision and inexpensive MMA8451 Triple-Axis Accelerometer w/ 14-bit ADC. ...
A Feather board without ambition is a Feather board without FeatherWings! This is the Adalogger FeatherWing: it adds both a battery-backed Real Time Clock and micro SD card storage to any ...
where's the best chat room to ask for help with a light saber propmaker build?
Hi there, I saw you posted this in multiple channels which is discouraged here. As for the light saber propmaker build, I’d definitely go to #help-with-projects since that should cover most questions you might have with the build.
Copy thanks!
WE ARE LIVE! SHOW AND TELL! https://youtu.be/j-jJXpwqNe0
WE ARE LIVE! ASK AN ENGINEER! https://youtu.be/8l2wJhrcIOg
ASK AN ENGINEER 12/20/2023 LIVE!
Visit the Adafruit shop online - http://www.adafruit.com
LIVE CHAT IS HERE! http://adafru.it/discord
Subscribe to Adafruit on YouTube: http://adafru.it/subscribe
New tutorials on the Adafruit Learning System: http://learn.adafruit.com/
----------------------------------...
10% discount code, code is: padc http://www.adafruit.com ends at midnight NYC time
Adafruit Industries, Unique & fun DIY electronics and kits : - Tools Gift Certificates Arduino Cables Sensors LEDs Books Breakout Boards Power EL Wire/Tape/Panel Components & Parts LCDs & Displays Wearables Prototyping Raspberry Pi Wireless Young Engineers 3D printing NeoPixels Kits & Projects Robotics & CNC Accessories Cosplay/Costuming Hallow...
OK, I've concluded that the setup I'm doing simply will not work.
I have a Metro ESP32S2 with a TFT resistive shield on top, which is all working perfectly EXCEPT I cannot access the SD card on the shield.
The shield docs say SDCS is pin #4, and this is board.D4 on a Metro M4, and I can use the SD card in a shield on the M4.
The ESP32S2 has totally different pins scheme, labeled IOxx.
My test code is below since I forgot...
I've literally tried almost every pin. It does not appear that this board even has a "pin 4", but I'm going cross-eyed studying the pinout diagram.
BTW, IO9 which I assume is the "same" pin as Board.D4 doesn't work.
https://learn.adafruit.com/adafruit-metro-esp32-s2/pinouts
Test code...
Hello ladies and gents. I have a question about why one practice in python would be preferable to the other. Let's say the program imports a module that keeps track of variables that should be accessible from all other modules, "variables.py". And let's say another module, like "functions.py" needs to change one of said variables. Would it be better practice to return the value to functions.py, or would it make no difference if the value is changed like this: variables.x = new_value?
Example:
def one_function()
new_value = 10
return new_value
or:
def one_function()
new_value = 10
variables.x = new_value
my instinct would be to prefer the former
I may be wrong, but the way to define/store variables accessible to everywhere would be in a class. Then instance the class, pass values to it, and access stuff by classname.value
you may be right https://en.wikipedia.org/wiki/Singleton_pattern
In software engineering, the singleton pattern is a software design pattern that restricts the instantiation of a class to a singular instance. One of the well-known "Gang of Four" design patterns, which describes how to solve recurring problems in object-oriented software, the pattern is useful when exactly one object is needed to coordinate ac...
yes -- 40 years experience in the field is that "global variable" can bite you hard and singleton or passing a "class/struct" around is better because you can track changes to the thing
if you use a class/struct to pass information to a method, then that method should return (technically) a copy of the modified class/struct (usually the input is actually changed, but it is returned so that the caller doesn't need to "know" that it was changed)
the bad news is python allows you to modify the structure of classes, so you have to be careful anyway
Forgot that malloc doesn’t clear out the allocated space & accidentally visualized it all
Subject change ha ha. Had a stroke of genius (hardy har har) few weeks ago.
I have a Pico with DVI breakout board running a SMALLISH code file to display stuff on HDMI. We know it's pretty hard to run circuitpython HDMI since you run out of memory fast. Here's what I did...
An ESP32S2 with an RFM69 radio breakout attached. This queries various json's from websites, then sends simple strings to another RFM69 breakout hooked up to the Pico. Parse the string out and display stuff in labels on HDMI.
Working well and no "out of memory" yet... Bottom line, I can display live website data (weather, AIO time, NFL scores, etc.) from a Pico to a nice HDMI display using CP.
I already had all the needed stuff on hand. It's so nice when you get an idea and don't have to buy more stuff. I'm already doing my part to support Baby Ada nicely. 😀
I’ve got plans to do some serious baking the next three days. Starting tonight with prepping dough for croissants, baking some cookies, loaves of bread. Good stuff
Need to take my two oldest kids to the store to get presents for each other. I always have to wait because they suck at keeping secrets lol
im doing my gingerbread cats right now
Oh nice
o my it smells so good
douhg chilling. now we make peanut butter cats. mmmm
Yum
I love me some good peanut butter Cookies
I need to make gingerbread dough
I picked everything up the other day to make it, just gotta do it
yeha. i got a lindt bar to chop up as well. might put some in the peanut butter cookies. i want to make brown butter chocolate chunk cookies though. i dont think they can be cats, they wont hold their shape
I made some English toffee the other day and will be using the poorly shaped pieces from that for chocolate toffee cookies
yum
bah. gotta clean everything up spotless, cause my friend is alergic to peanuts. dont want to contaminate other cookies
@tardy badger yeah, when I first used this channel I didn't really know how to get responses from the right people. So I tested the waters with all of the sections as well
Heyo, a quick question, is there any major difference between part nr. 5346 and part nr. 5611?
one you can buy, one you cant. im assuming one has just replaced the other
Well, thing is, I order from digikey where both are still in stock, and the status is Active
So I'm not sure
if you watch the new products video.... "dont you already have a 16 pin expaned? yes, but we cant get chips til 2024"
so there you go
Huh, interesting, I wonder why so
But still, are there any differences in performance/usability?
Or are they meant to be exactly the same
chip shortages have been a big thing the last few years
a lot of products have swapped chips around
or just couldnt make the products
https://www.adafruit.com/product/5611 read the product description carefully, starting at the third paragraph
It's interesting that digikey still has stock of it, I see adafruit products go out there like wildfire
note also that the MCP23017 has a bug regarding which pins can be used as inputs which was only relatively recently documented: https://hackaday.com/2023/02/03/mcp23017-went-through-shortage-hell-lost-two-inputs/
👍 Thank you for the information
Yeah I felt like I was lucky to get my GPS feather and my M0 radio boards. The 32U4s are pretty awesome also
Yeah just as I made my first huge PCB project using the MCP23017... the fact that they knew about it for a decade is really what blew my mind. I was pretty upset to say the least.
It's not a big deal if you don't use every single pin for input/output except my project did and there were 2 chips on ever board that were fully loaded. I never experienced the issue though so I think it might not affect every single chip or I was just using it in a way that didn't trigger the fault.
and still to this day I've never actually used my own TR-Cowbell to make music.... I blame Adafruit for all the shiny new things every single week that turns my head like a dog seeing a squirrel.
I have to finish this project... oh look at that new hardware from Adafruit... and already thinking of 3 projects to do with everything... Lady Ada is a machine.
ginger cats
Any ideas what to use async for? (doesnt have to be CPy)
I'll like to write something (ever so slightly) useful, to learn about it, as i have never really used it for anything (:
It's for writing awaitable tasks in special execution functions that would otherwise hang the execution of an application for extended periods of time. Stuff like doing a web request and waiting on a response, file I/O (read and/or write), etc. Tasks that are often simple and temporary, and may have a 'hey, I'm done' callback like from a web API response.
I know and understand the concept
But you dont fully understand something until you do "complex" code with it (and run into issues)
Thus why i want ideas on what to do
Hi - I'm trying to find some microcontroller boards with proper USB 2.0 or better speeds. I want to use a microcontroller to get video off of one of (or, preferably, two of) those 5MP camera modules, and the standard USB 1.1 you find on most boards won't do for that
I'm not really clear on how these MCUs cope with the uncompressed video stream at all, actually. It's that or JPEGs.
That's going to be tricky, as you not only need USB 2.0 but you also need to support USB host mode. I'm not aware of any boards that can do so. Handling that kind of data rate would also be tough for most microcontrollers. I think that's getting into Raspberry Pi territory.
Not quite the same thing but I saw this kit with a prepunched plastic base and it reminded me of your question. https://theelectronicgoldmine.com/products/g27600
Educational project base is a sturdy 5-1/2" sq. x 1-1/8" tall base with a 2 "AA" battery holder that can be firmly mounted by "pushing in" at various points, an on/off switch that mounts the same way via a 3 quick connect wire clips. By using this base, the battery holder, switch and clips you can have a sturdy and con
Matrix Portal S3 finally back in stock yesterday, it's been weeks. My original "died", don't know why. It won't accept a bin file no matter what method I've tried like 50 times. Oh well. It was working great for months of almost constant use. Ordered another last nite. Merry Christmas!
Tell you what I used it for and learned its usefulness. My code was polling to receive a string from RFM69 radio, and also displaying that data at regular intervals, where I was updating a 7 segment display every 4 seconds or so, and also running rainbow colors on a neopixel. async worked great doing all this.
There's no way you could run all this together without async. I learned a lot about it and still use it for other stuff.
JP recently had a simple Parsec demo with different LED's timing.
yeah, using this on an MCU instead of the computer is likely the best way to see an actual difference in performance (and much more critical to squueze that extra speed), will see what i can think of
maybe read some data over WiFi + dump it on a display (i have a ton of them lol)
What would be a good chat for a quick C++/C question?
i read K&R a decade ago so ask away
Okay so like
Say I have a parent class A with some functions and member vars, and I have a derived class B with some additional member vars. B overrides some of A’s methods with additional logic which depends on B’s add’l member vars
Now say I do A* myobj = new B()
q. 1: will myobj.overridenMethod() use the extra logic I specified in B?
I think the answer to that one is yes
q. 2: myobj may be a pointer, but space for a B (and its extra members) is still allocated in RAM. Will delete(myobj) properly deallocate all of it?
I think the answer to q. 2 is “yes IFF class A has a virtual destructor”
(since typing this I've realized my understanding of C++ polymorphism is wonky and I need to learn more)
sorry to interrupt your c++ discussion...
but I can't resist
okay, rephrased my question & it's at the bottom of this image
This Wikipedia article discusses C++ virtual method tables. It should answer your question. https://en.wikipedia.org/wiki/Virtual_method_table
In computer programming, a virtual method table (VMT), virtual function table, virtual call table, dispatch table, vtable, or vftable is a mechanism used in a programming language to support dynamic dispatch (or run-time method binding).
Whenever a class defines a virtual function (or method), most compilers add a hidden member variable to the c...
i find C++ to be nice language but oh my god the whole include, extern, stuff drives me so crazy
i just wanna organize my code but every file has like so much confusing include, .hpp/.cpp separation boilerplate it makes me dizzy and tired
I like having declarations separate from implementation.
it's just so much boilerplate code
Looks like modules change things in C++20 but doesn't look that's an option on Arduino quite yet
here we have the cat in it's natura habitat: anywhere where you dont want him to be
from a future where we have all forgotten what trees look like
i feel like there should be electronics in a cookie this size
The cat knocked over the tree!
hahaha
The grinch cat
This is the correct mindset to have if you're serious about unit testing. A good unit test framework will permit you to do a complete "rip and rebuild" on the implementation of a class without needing to touch the header (interface definition)
Yes, although that would be more along the lines of benchmarking (unit tests are 'sanity checks' with no bearing on performance).
Agree 100% re performance. Unit tests can only check the correctness of a class implementation.
https://github.com/adafruit/Adafruit-BNO08x-PCB?tab=readme-ov-file
how do i find the dimensions of the hole
unlike other parts, the fab print doesnt have hole markings
You would use a program like Eagle, import the .brd file and use a measuring tool on the hole.
ok
or if you have the physical board, use a set of calipers to measure the hole.
where can i find screws that are good for my pcb?
like where can i find the screws that are correct size, and using easyeda how do i know what screws i need?
once you know the diameter of the circle that will determine the screw size. usually M2, M2.5, or M3 sized screws.
do those work in the US?, or do i need imperial ones?
how do i meassure the size in the easyeda?
if u know by chance
i know the hole is 2.032MM, how do i convert that to the M scale?
you can look up what the clearance hole size is for standard metric threads
so as per this, I would need m14 for my 2.032MM hole?
https://international.optimas.com/technical-resources/tapping-sizes/
no, look at the clearance hole columns. M1.6 free fit clearance hole is 2mm
M14 has a thread pitch of 2mm. that's a completely different thing
ah ok thanks!
if my next hole is 120, is that off the charts?
would i need #4-40 for that cause its so big and not on metrics?
120mm? in what object?
Use M2.5 screws
oh it works like that?
the diameter u just put it to the m?
125MIL sorry
that's smaller than the nominal 2.5mm diameter?
change measurement from MIL to MM
and at such a short distance will likely have to disable grid snap
ok here are the dimensions of the holes i have in MM
3.175
2.032
2.286
I assume I would get the following for them in order
M2.5
M1.6
M2
they are locked @ebon dew
Drill diameter I suspect, hole size.
oh you're trying to actually get the drill size by selecting the hole? no, i just used the measuring tool. shortcut N on your keyboard
oh
yea i am cause i want the screws for those holes. is that a correct way of doing it?
is this correct?
not sure if it's the correct way, it's the way i usually measure hole sizes quickly.
yeah, if you want screws to fit the holes, i think you want to refer to the drill size, and look up clearance hole diameters
thanks, thats what i did to get the list
is buying the screws from home depot a good idea?
for M2, something like this
first click on a blank area to bring up your panel. then select milimeter as your preference unit... then select the hole.
hole size is 2.5mm exactly
or different layers?
Home Depot and Lowes don't have a good selection of small metric sizes. Best place to get them would be Amazon if you want to buy in bulk or Adafruit if you want Nylon instead of metal in that size.
Seems you might have some layers disabled yeah it's weird.
I went to file>open>Eagle and selected the BNO.brd file
it will ask you something like do you want to keep all layers etc.. say yes.
ok that's maybe top silk, which is not the layer you want to look at?
which layer wanrt to look at?
i have a pcb in hand aswell
i dont have calipers
I do have different colors setup for some layers according to my preferences so it might look a little different than yours.
and i have the PCB hols on the pcb and the ones on the adafruit i trying to screw them together
this is my normal layout. make sure you have all layers visible especially when first importing a board.
im usubng a footprint that i used in my board design though
the holes are not threaded holes if that's what you mean. you can put any kind of screws through it you want. M2.5 seems to be the correct hardware for those hole sizes.
perfect
so rn i have the following
M2.5 - BNO
M1.6 - PICO
M2 - GPS
ultimate gps it is
sounds about right. the hole sizes can vary from board to board. usually with adafruit it's either M2, M2.5, or M3.
M3 is most convienent because it's the same size as motherboard stand offs and screws. so if you have a bag filled with extra motherboard standoffs and screws those work great with M3 sized holes.
I don't know what it is but my motivation to work on my electronics stuff completely died in recent weeks
I'm hoping a spark comes back during the holiday break before work becomes 6 weeks of chaos
if the hole is 2.5mm you probably want M2
if you create a standard "hole" using EasyEDA default settings their default is M2 which is tiny.
there are different thread pitches too usually either coarse or fine. for using with standoffs it's almost always fine pitch. coarse pitch would be something like case fan screws.
hm, clearance hole charts usually say 2.2mm is a close fit M2 clearance hole, but maybe that's coarse thread
it's the diameter of the shaft. the screw head is always larger obviously but how much bigger can vary.
and if you get it wrong and get a screw too small you can use washers with them sometimes.
maybe with fine pitch you can go right down to the nominal screw diameter?
yes, should fit like a glove right through
perfect thanks
another problem now,
print("Latitude: {} degrees".format(gps.latitude))
with this the latitude only has 4 decimals
print("Longitude: {0:.6f} degrees".format(gps.longitude))
with this formating it gets 6
are the last 2 real or just made up?
coarse pitch can still work but have to wiggle it a bit. and you can force it if you need to as there is a keepout section around most holes.
this is using ultimate gps btw
I mean the name of the actual hole is "MOUNTINGHOLE2.5" and it's actually 2.54mm so you get .04mm of wiggle room. M2.5 hardware will fit that hole.
with floating point, it's (effectively) the number of significant digits, not the digits after the decimal point. it's techincally a bit more complicated because the precision is binary instead of decimal
yeah, it depends on what drills the fabricator actually has in stock
so are thhe digits made up? or real values?
If you're using EasyEDA chances are good you're going with JLPCB and their hole sizes are exactly what they say they are.
i'll have to look some stuff up to say for sure. i did just get reminded that CircuitPython uses 32-bit instead of 64-bit floats
perfect thanks
ok thanks, this is in the ultimate gps library btw
you're still limited by how Python or CircuitPython stores its floats
possible .format is built in to display 4 decimals?
another way to print that would be with fstrings
print(f"Latitude: {gps.latitude} degrees"}
print(f"Latitude: {gps.latitude:.6f} degrees"}
yea, when i do that i only get 4 decimals
thats why im wondering if its fake or real the 2 added by the adafruit stock script
there's also the question of how many digits the GPS is giving you (with some protocols, it's some number of decimal digits)
yea thats what im more interested in. that number is what i want
yeah, i'd check the data sheet for the chip
go into the gps library and see if that subclass gets truncated to 4 decimals too
you can also return the raw data using nmea_sentence https://docs.circuitpython.org/projects/gps/en/latest/api.html#adafruit_gps.GPS.nmea_sentence
the precision of the individual fix will vary, depending on lots of things
i did some testing in the python shellin my pc, if there are not enough decimals, it adds zeros
not random numbers
so i guess that means it is truncated by default
how would i do this formating outside of a print statement
like just in a variable
yea, i tried this code, i think the fix might not be good enough
I don't see any code truncating it. Looks like it's being returned as an index value that must = 7
yeah, you'll want to look at the fix quality and HDOP values to figure out how good your fix is
print(round(gps.latitude, 6))
print("Latitude: {0:.6f} degrees".format(gps.latitude))
i tried that on the pico
here is the output i get
41.XXXX
Latitude: 41.XXXXYZ degrees
i'm pretty sure the format language uses the number after the period to mean how many digits after the decimal point
ok
so it appears the string formating is adding bogus numbes?
my horizontal dilution is 1.14 is that good?
no, i think round counts differently than you're expecting
does a HDOP of 1.14 make sense to yield 6 digits?
and if the string format digits are not bogus, how would i get them in a regular, variable call method without print?
hmm it goes into a read_into variable which does then do some math on it
i'm not sure that there's an exact interpretation of HDOP to number of digits
minutes = data[index] % 1000000 / 10000 no idea what that would =
how do i get that string formated behavior into a normal variable while keeping it a float?
float_string = float(latitude)
string = str(float_string)
hm, no, i was wrong, apparently round is decimal digits after the decimal point?
cause i just typed the 6 digit coords into google earth and its pretty accurate to my position
yeah even 6 digits will be pretty accurate
this turns it into a string though?
i want to get that 6 digit number outside of a print statement, if i just do print gps.latitude in print i only get 4 digits
if you're trying to track a pet though i could see what you might want more resolution but other than that the fix provided is usually good enough.
if you print a float without a format specifier, it defaults to a certain format, which i'm having trouble looking up exactly
latitude_string = f"{gps.latitude:.6f}"
the printed value is manipulated into a formatted string that can be output; the original value in the variable should not change unless you do other operations on it
and then convert that to float?
and if you're getting all the digits when telling it specifically to format for 6 digits then your original variable's value is already a float you want to use
if it has decimals then it's likely a float to begin with
As Auron said, circuit python is smart enough to self type most variables
floats can get annoyingly long to the point of not being useful for most use cases especially with float imprecision scenarios, so print truncating it to only certain # of digits is pretty standard in a lot of languages.
what_is_this = "hello" circuit python would automatically treat that as a string
but print is only doing that when printing because it's converting a primitive value into a string of characters to present it to the log
what_is_this = 1 would be treated as an int
yes
more strange stuff
if i make a string as @ebon dew said, and then convert to float, and print the float, it only has 4 decimals
why are you converting float -> string -> float
cause the original float has 4 decimals, when its turned into a string it gets 6, but i need the output in float, and i need 6 decimals
you might only be getting 4 decimals from print, which isn't the same as the float having only 4
how do i see how many the float has
latitude_string = f"{gps.latitude:.6f}"
print(float(latitude_string)) # this ends up with 4 decimals?
yes
weird
and if i print before conversion 6
sounds more like circuit python defaults all floats to 4 decimals? never thought of that
i don't do high precision stuff so :2f is the most I normally use.
sounds like if you want 6 decimals then you specifically have to format any line using float with format :.6f
or with .format()
I'm less familiar with python than other languages I've used, but this sounds like you're trying to convert too much and don't understand the difference between something's actual value and a formatted, parsed log output as a string 'value'
they are not the same
so CircuitPython floats are only 32 bit. that's still about 7 decimal digits of precision
you could also multiply by powers of 10 to shift the digits into more of an integer value and see what is happening too
that's going to be misleading, because floats are binary
(at least in Python)
if you want more than about 7 significant digits (which is different than having 7 digits after the decimal), you might want to keep the degrees and minutes separate
do i do this during conversion?
i need 6 sig figs yes
ok, the 6 in the .6f format string means 6 digits after the decimal point, which can be more than 6 significant figures if you have any digits in front of the decimal. so 44.XXXXYZ is 8 significant digits, possibly the last of which is exceeding the precision of the 32-bit float
i need 44.XXXXYZ
sorry
to compare:
CircuitPython
>>> f'{1.234567890123456789:.6g}'
'1.23457'
>>> f'{1.234567890123456789:.30g}'
'1.23456859588623046875'
CPython
>>> f'{1.1234567890123456789:.6g}'
'1.12346'
>>> f'{1.1234567890123456789:.30g}'
'1.12345678901234569124767403991'
whats the difference, i dont understant
so ur saying i should keep it in string, and then convert to float on the server side?
you don't have more than about 7 sig figs in CircuitPython
that way i get 8 sigdigs
the NMEA sentence can represent a lot more than 7 sig figs, yes. how much of it is "real" precision depends on the fix parameters
it depends on what representation makes sense for you. if you need to do math on it, maybe you can deal with the reduced precision, or parse degrees and minutes separately, or something
the library can do that, i think for my needs server side conversion is easiest, cause this ends up sent to an api anyway
fix parms, such as HDOP? is that the only one?
there are others, like fix quality and satellite count. i can't find easy guidelines for how to turn those into actual error ellipses, etc
can u make a ballpark guess based on this
HDOP 1.07
SAT: 7-8
fix qual: 1
sorry, i don’t know off the top of my head, but maybe someone else does
(i did learn to calculate error ellipses for GPS in school, but forgot most of the details. it was long ago, and probably multiple GPS system upgrades ago)
Hello everyone, I'm new in the chat, but I'm stuck with the code and libs.
I'm trying to read animations as bmp files and display them into a neopixel matrix, I saw all the examples that use displayio but I only have a matrix of RGB leds 16x16, so I'm looking for a way to grab the tilegrid and paste it in the matrix or maybe a way to put them in a buffer that I can consult.
I'm using a raspberry pi pico, so I'm not able to use pillow cause only have 2Mb of flash memory available.
Thanks for your help
hi, i have some question about batteries, im trying to power a esp32 and a adafruit MPL3115A2 both being pretty powerhungry (using wifi), so i want to power it with battery, i have a 550mAh 80c rating lipo battery and still it cant power the esp and the sensor. and i try to messure the ampere it delivers and for me it looks like it delivers 0.010amps, and i need 400ma. so what kind of battery do i really need? and where to get it? or how do i solve this ?
01001101 01100101 01110010 01110010 01111001 00100000 00100000 01000011 01101000 01110010 01101001 01110011 01110100 01101101 01100001 01110011 00100000 01100101 01110110 01100101 01110010 01111001 01101111 01101110 01100101 00100001
thanks dw
That sure isn't 80C, which is common with some sellers. There are some 1200mAh cells that work well in such applications.
Its this one https://www.kiwiquads.co.nz/product/gnb-battery-7-4v-550mah-2s/ Specifications:
Plug type: XT30
Capacity: 550mAh
Nominal voltage: 7.4V
Battery cells: 2S
Discharge rating: 80C
Burst rating: 160C
Hmm, you may have two problems. That's a 2S (7.4V) pack, which may be too much voltage. It may also have a protection circuit that has gone to sleep so it won't deliver much power: often you can wake those up by hooking the pack to an appropriate charger for a while.
on a similar note, im trying to power my raspi pico, USB power banks arent working cause the voltage stuff
what are some options? Last time i tried a battery it didnt go to well...
I'm not sure what you mean by "cause the voltage stuff", but I'm guessing it's power banks shutting off because there wasn't enough current draw. There are two ways around that: you can get power banks that don't have the low-current shutoff, or you can add an additional load to draw enough current to keep the power bank on (this wastes power but is often the easiest approach). Using a battery does involve some more thinking, as raw battery voltage is unregulated. The Pico does have its own regulator on board, but it needs enough supply voltage to power it, and that voltage is close to what a lithium cell provides, so if it runs down a little it can drop out.
yea that autoshutoff is what i was talking about. i tried the drawing extra power thing but it caused a very bad smell last time
and i checked and it burned the resistor
Yeah, if the resistor is sized to draw much current, you need a high power resistor. How much current you actually need depends on the powerbank. 100mA is easy enough to dissipate but it's still more than an ordinary quarter watt resistor can handle (0.1A * 5V = 0.5 watt, so you'd probably want at least a 1-watt resistor). It gets more interesting if you have to draw even more power.
Decided to do the “open one present on Christmas Eve” tradition in the morning time to be able to enjoy the gift for the day. Opened one from my brother which was an AMD Radeon RX 6700 which is an upgrade from my RX 580
Just barely fits 😅
I also love that it feels like it dwarfs my mother board
yeah, that's the point where i gave up on "self-built" machines and got a "capable enough" laptop
also @argonblue CicuitPython floats are 30 bits: 8 bits exponent 22 bits mantissa. 2 bits are reserved for encoding that distinguishes floats, ints, and pointers. so about 5 1/2 digits of accuracy.
Basic point is not to try to parse GPS sentences with floats
Now that is a weird format.
thanks!
Map coördinates come in some deeply weird formats, including a bizarre variety of mixes between degrees/minutes/seconds and decimal.
sooo many lemonsss..
thanks! later on, i dug a bit more into the CircuitPython GPS library, and it parses the degrees and minutes into separate floats to preserve precision. wow, i didn't realize it used even fewer than the usual 32 bits of "single precision float"
Merry christmas :D
Are you ESD testing those boards with the socks?
😂
also, how did you get 5.5 digits as the precision? i get about 6.6 for 22 * log10(2)
Merry Christmas 
I misremembered. it's really 1 sign bit, 8 exponent bits, and 21 mantissa bits. I think the 5.5 was from a discussion about precision to the right of the decimal point when there was one digit to the left
ah, ok. is it really 22 bits for normal values (implied leading 1), though?
https://www.h-schmidt.net/FloatConverter/IEEE754.html is fun to experiment with. Type in 1.0 and then toggle the 3rd bit from the right
yes, if not denormalized
I think the "not enough significant digits" came up in a older previous GPS discussion, where it was clear that the precision wasn't good enough to extract the lat/long info if it were treated as a float
yeah, typical NMEA format is maximum of 4 digits after the decimal for minutes, so it still works out (given that the integer part of minutes won't exceed 59)
I'd suggest either #help-with-projects or #help-with-arduino for something like this. Those channels are specifically for dealing with issues of this sort.
That said, a one sentence reply would be that you need to decode the bmp yourself into a 16 by 16 array of RGB triples, then arrange that in a single linear buffer 256 colors long, and then pass that buffer to whatever NeoPixel library you're using to drive the display you have.
If you're using circuit python then someone did come up with a way to animate sequential bmp's by converting them to binary. It's basically mBMP though I'm not sure it has an official name since there isn't a library like gifio or jpegio. The example I have runs on a TFT though. You would have to setup a matrix using framebufferio or something like that to pipe it to a LED matrix. I did not come up with the idea just a demonstration. https://github.com/DJDevon3/My_Circuit_Python_Projects/blob/main/Boards/espressif/Unexpected Maker Feather S3/4.0 ST7796S/Fast_mBMP/code.py
It was @crystal bronze who came up with it. There are examples here of the speed difference in circuit python. #help-with-circuitpython message
The way complex numbers can just encode circuit phase and come along for the ride of solving a system is one of the most beautiful pieces of math I’ve ever seen, hands down
What I don't understand but think is still incredible is why a Laplace transform looks like it has the same effect as phasor form, but more generally...when the Laplace transform looks like a very real-valued thing at first glance
If you just work with sinusoids and use euler's formula on a capacitor for example, you get impedance 1/jwC, and a Laplace transform gives you 1/sC. I don't understand how they basically do the same thing, it's blowing my mind
Laplace is a generalized method of solving linear differential equations.
Things will get really entertaining when you learn that Fourier transforms are related, and that they all derive their properties from convolution.
I have definitely not wrapped my mind around convolution
I hate when properties seem magical to me, it really bothers me
A really interesting approach at connecting Laplace to simpler concepts was Arthur Mattuck's explanation in an MIT lecture where he said a Laplace transform is basically a power series, but continuously summed rather than discretely
I haven't gotten to anywhere near this level "technically", I just started college but I wanna really wrap my mind around this before my computer engineer career throws it at my face
It’s a very convoluted subject
Also, everything ( ™️ ) can be represented as a Taylor Series. Wooo all those years of math to circle right back to Calc 1
🙃
Then all those years of math just to be a factory software engineer
By factory, I mean someone who does the same kind of software engineering as most everyone else in the firm in quite literally the most generic sense possible
merry pie day! i mean christmas
If I recall correctly, Atari BASIC did all its math in BCD, and did all the log/trig stuff with Taylor series. Not fast at all (it took hundreds of milliseconds to compute a sine) but accurate and didn't have to approximate values like 0.1 which are trivial in BCD but a pain in binary.
Way more accurate than the x87 trig instructions, I'm sure.
Not necessarily. x87 almost certainly uses Chebychev polynomials, which converge within a certain error margin fairly quickly. Taylor series will ultimately be more accurate (obviously), but take forever to get any kind of accuracy - they converge significantly slower than a Chebychev.
https://en.wikipedia.org/wiki/Chebyshev_polynomials
Actually I think it's a lot dumber than that, and they use a poor approximation of pi that has been propagated forward in the name of backwards compatibility.
http://notabs.org/fpuaccuracy/
It's uh... pretty bad. Also due to the need to scale the arguments it's often faster (and more accurate across different architectures) to use a full software implementation for trig functions.
Besides, the x87 FPU is legacy hardware at this point. SSE and AVX instructions are vastly more efficient, plus they implement IEEE-754 floating point operations correctly.
Somebody tagged me and deleted it
That's a surprise. Back in the 80's I implemented a full 1.8.23 fp library for the Z80. Not IEEE compliant by any means (+), but sufficient for what I wanted to do. I remember going to the library to look up how to do trig functions (no Internet in those days), and came across a book with what I now know are the Chebychev parameters for sin and cos.
(+) Not compliant means it had no concept of NaN or Infinity, and didn't handle denorms at all. Among otherr oversights. There were probably more.
Yeah in this case "not compliant" means that it was mostly compliant, but internally it converted everything to an 80-bit representation.
It is "good enough" until you have a non-Intel machine that gives you different results with the same inputs.
One of the most important aspects of IEEE-754 is that it defines how each operation is calculated; the idea being that different architectures all give the same results.
Do NOT get me started on the fp logic on the Sony PS2. 🙂 That was an absolute nightmare. 1.0f * x != x for certain values of x. Known infomally as the "one bit error". TL;DR fairly frequently, the mantissa had the LSB incorrect after a fp multiply.
This caused untold problems for the team at Sony that wrote the software PS2 emulator on the PS3, because the PS3 had IEEE compliant hardware., and there were games that relied on the bugged PS2 fp implementation.

Welcome to the wonderful world of CPU ISAs, where your stupidity will be immortalized.
I mean... arguably your stupidity will be immortalized in any field, but this is especially true with hardware.
At the time the PS2 was designed, it was a decision that made sense: it saved a few gates in the FP logic, thus reducing the cost to make a PS2 by a penny or two. Nobody was even thinking of an emulator at that time, because at the time it was designed the PS2 was the newest thing going.
Yep, gone are the days of game consoles being the precursors to GPUs.
There were some truly cursed architectures.
You guys know a LOT about this stuff 😮
There was some amusing back and forth in the advertising in the days when it was relevant. Intel pointed out the Motorola results didn't match, and said they were wrong. Motorola pointed out that both the Motorola and Intel results were approximations, not the mathematically ideal results. Intel then had the collossal hubris to claim that their wrong results were the standard and everyone should conform to them!
"We are wrong, but since we've sold more of them we are actually right."
skerr what is accurate
There isn't really (paid is fine) anything that permits to extract data out of gmaps? Their gui and api provide few results out of queries
I could make a scraper, but it's a pain
what kind of data are you trying to extract?
you may want to consider openstreetmaps instead for more accessible geodata
Mostly business data and affluency of people
well, that's their moneymaking operation, if you are trying to find businesses, so it's not something they want you to be able to extract easily. Geographic affluency data is something you might get from census data (in the US) and similar government data in other countries
Neither by paying? Their apis seem to be pretty obscure about what they offer...
did you look at the pointers from here? https://stackoverflow.com/questions/3481142/how-do-i-get-local-business-results-using-google-maps-api
Having written an FP implementation from scratch, my thoughts on that are any FP implementation will be an approximation. Constants like pi and e are irrational, and cannot accurately be represented with a finite number of bits.
Floating point maths is like moving a pile of sand. Every time you do anything to it, you lose a little sand and pick up a little dirt. -- Bob Buckley, one of the profs that taught me comp sci.
Never were truer words ever spoken.
Yes, all will be approximations, but there will be values that will be the mathematically best approximations. The X87 chips did not produce those values.
Also, there is a standard (IEEE-754) that defines exactly how those approximations take place. The goal is that even completely different devices with different implementations should still return the same results.
Right. IEEE-754 at least codifies the inaccuracies, so that all compliant hardware is inaccurate in the same way. Exactly the same as the PS2 - all 9 FP units on the device (1 in the EE core, 4 each in the two VUs) were inaccurate, but all were inaccurate in the same way. And the accuracy was sufficient for what Sony's engineeers intended it to be used for: 3d rendering. Sure, one vertex of a triangle might be a pixel or two out of place on the screen, but everyone in the chip would make the same mistake, so at the end of the day, the image looked OK. That was "good enough" for Sony.
Here's a rule of thumb: if you release something with consistent but incorrect behavior, you will encounter software that depends on that behavior, and will thus malfunction if the original issue is corrected.
This is what happened with the x87 trig functions.
Yup. Same on the PS2. There were games that relied on the inaccurate PS2 FP that failed on the IEEE compliant PS3 FP hardware in the software emulator.

Wondering if anyone has received Adabox 21 yet. I heard they're starting to ship now (or soon?)
The adabox page says they are starting to reach out. I haven't heard yet (although I'm super excited to)
hi what happens when gnd of a battery (3s 18650) is connected to the metal frame of a lamp
the whole led/switch wires are isolated & wont short the battery
but the GND of the battery is just touching the frame
it might be fine if it's far enough away from mains wiring. lamp frames are usually connected to earth ground through a mains plug, or floating
it runs on a 3s battery so no other wires are connected to it only battery GND
& thats bcz the adaptor jack is all metal
yeah, it's pretty common to connect the negative terminal of a voltage source to a metal chassis or enclosure, and it's usually safe (caveat: i don't know all the details of your situation, like if you're somehow generating higher voltages in this setup)
oh i see , it should be safe then , its a simple setup , a 3s 18650 pack & a switch to turn the leds on & off & ofc the led strip
Howdy. I have just in the past few days gotten httpserver to run OK on a Pico W. Finally got around to trying this project with Liz Clark' s learn guide.
I was curious and copied the code over to a Waveshare ESP32-S2-Pico, and it runs just fine. Since I'm ignorant, are there a lot of other boards besides Pico W that will run httpserver? As long as they have import wifi?
if the board "natively" supports wifi, yes
Yay! Thanks.
Is it just me or does the pi 5 have 2 display ribbons
Is there any eta on when adafruit gets the pi 5 in?
I think there's a subtle difference in the ribbons for camera and display.
DSI is for display and CSI is for camera.
It looks like the ribbon ports are for both, plus the pcie ribbon port. Which I don't know what is used for yet
Either way, the 5 should allow me at least 3 screens if I choose, which is lucky cause I want to be able to connect this to a TV as well as 2 displays
Ahh, a bottle of XKCD237.
nuts
An amusing fake, but one which inspired me to melt down a bunch of failed wax capacitors to make these scented candles
nice
find me circuit board and dry leaves and ill buy ut
There will be a New Years Python on Microcontrollers Newsletter - be sure you're signed up at https://adafruitdaily.com/
second tft i bought from adafruit has done this after i took the protective film off. what am i doing wrong?
I tell ya, nothing like preparing for bed and someone pounding loudly on your door and going down to find no one, then your neighbor hears the same loud pounding.
Are you sure you just pulled the protective film off?
It kind of looks like you pulled the display apart exposing the back light
it works just fine up until that point. after i soldered the pins and wire it up to test
it shouldnt be that easy to pull that apart taking the film off
You’d be surprised how delicate these displays are
a touch screen should not be that delicate, thats ridiculous
I work fairly regularly with displays like these, it happens more than you’d expect. It shouldn’t happen but sometimes that adhesive is just a wee bit stronger than anticipated
both screens have now done this, so im just out the money
yes, the display still works, its just the smear behind the screen
Did you put any pressure on the display when removing the film?
no more than i would have using it as a touch screen
Hmm not sure then
what you said makes sense, but unfortunately that will be the last screen i get from adafruit.. thank you for your time
It’s not really anything to do with Adafruit, it can happen to any display you buy. I’d trust Adafruit
i mean everything else i have bought from them is rock solid. i try to use them as much as i can even if it means spending more than what i could on amazon just to support the cause.
is it a resistive or capacitive touch screen? i vaguely recall that resistive touch screens can be more fragile in this way
in any case, if it's the second instance that's done this, and you're sure you're not using excessive force to remove the film, it might be a manufacturing defect that's worth contacting their official support about
i think "easy-release" adhesives sometimes get stickier than designed while in storage, unfortunately. i've noticed this with painter's tape; maybe it's also an issue with protective films on LCDs
Heat it up and maybe it'll come off easier.... Would it be possible to just leave the protective plastic on?
Let it prmeel off on it's own as you use it
I do that with all of my appliances. It is protective, after all.
i connected my BNO085 to the pico and the yaw pitch roll works very well, super real time, but the compass heading is stuck to -34
idk if im calculating it wrong or there is an issue with the BNO
here is the function im using
def compass_heading(x, y):
# Calculate heading angle in radians
heading_rad = math.atan2(y, x)
# Convert heading angle from radians to degrees
heading_deg = math.degrees(heading_rad)
# Ensure the heading is between 0 and 360 degrees
if heading_deg < 0:
heading_deg += 360.0
return heading_deg
the first thing i'd check to see is if x,y are actually changing, then see if you're getting a math overflow or something
Also, make sure your x and y are actually x and based on the orientation of the BNO
And depending on how you plan to use it and where you live, don't forget to account for the declination (so you are pointing to true north, not magnetic north)
obviously need to move this to a help channel, but I'm having trouble figuring out a LED cube kit (all SMD LEDs, I just screwed the components together and connected some pins) and how to get it to work with Circuit Playground. What would be the correct channel for help?
wdym math overflow error?
how do i do that?
also is there like a formula for this one?
I believe it's returned in [x,y,z] , since that's the aurdino struct format.
And there isn't a simple formula for calculating the declination. You can do a lookup if you are at a static(ish) spot - https://www.ngdc.noaa.gov/geomag/calculators/magcalc.shtml
Or you can download the CrowdMag app
If you know the lat/long of the device, you can use this lib: https://github.com/boxpet/pygeomag
i do, perfect!
a math overflow error occurs when the data is "too big" for the number of bytes and what should be a positive number becomes negative because of 2's compliment math
oh, so how can i check for this?
debug the x,y data you get by applying the same formula on a "bigger" computer, for example
ah so get the raw data and then rerun that function in a regular computer?
what do i do with the declination?
i see three numbers
you add it to the magnetic bearing/heading you caculated
which of the numbers though?
the return from your method compass_heading
i mean what do i add to the return?
which of the three numbers from the website
So I get something like:
2023-12-30 15.24° E ± 0.39° changing by 0.10° W per year
So it would be 15.24 for where I am (Seattle, WA, USA)
ah so the first number?
so i would add that to my return number?
so something like:
declination_adjustment = 15.24
x, y, z = sensor.magnetic()
heading = compass_heading(x, y)
true_heading = heading + declination_adjustment
ah perfect
thanks!
ima check the x and y value and see what happens
and then ill do the adding
hopefully that solves it
👍
hello
I have the pca9685 and the LED is red, it is hooked up to my raspberry pi 5 with vcc to 5v, with external power supply hooked up directly to the terminal blocks
I got myself a reflow hot plate, and it arrived this morning. It's outside on the balcony ramping up to 300ºC as a test.
I had the silly idea to buy a second one of these heat plates to set it outside on the balcony and just set it to like 20° all winter and see what the birds do with it. 🤣🤣🤣🐦🐦🐦❅❅❅
happy new years eve
i did that, and i get different return values on the regular computer
funny enough when i run standalone it works
on the pico
if mine is west would i subtract?
and also what orientation does the compass read from?
does the heading come from the direction of the length or the width?
like for example if i open compass on my phone the heading given on the screen is the heading of the top of the phone like the direction the top is pointing
I need to double check, but it's up to you. It would be based on the order you put x and y into atan2. So if you put y in first (which is what I see most common) y would be poingint on your heading (which on the BNO is which way the writing is printed)
ah so left to right? so from VIN pin to INT?
So this is in the orientation with ^Y pointing on your heading. >X to your right and Z straint up
so the heading that is repoted by the function is interpreted as in the direction of the Y arrow?
cause if thats the case, its off by nearly 150 degrees ...
should i maybe try to calibrate?
The BNO self calibrates to an extent. Are you using it away from any other magnets? And is that 150° with or without the declination adjustment?
with adjustment
its on a pcb
the blue thing is ultimate GPS
also do u think it might be worth it to try the heading program in examples in the github repo, see if that is more accuratE>?
no thats just for pic
its off when resting on table
so the heading would be in the direction from the BNO and across the GPS. Is that what you were using?
yesa, it was ~150 degress off
that way right?
To all the folks here on the other side of the international date line, happy new year! 🎆🎊🎈
@limpid sedge I would work through calibration. I would also take readings at 90° rotations to see if they are 90° apart
will do!
the calibration script in the repo is correct right?
and if so is there a orientation i need to have while using it?
I believe it's the same way you do on your phone. Orientation doesn't matter, just the different twisting motions
what are the motions?
i cant seem to find it in the script
same for your phone. rotation around each axis
ok
im using this script
i got an error though while doing it though
how do i do z?
nvm so i figured it out, but so when it said hit s to save, i got didnt find packet end
strange. I might move that question to #help-with-circuitpython
I'm not currently next to all my devices and sensors so can't dig into that right now
thanks for all ur help though!
You can also just put this in your script:
while bno.calibration_status < 2:
time.sleep(0.1)
print("Magnetometer:")
print("X: %0.6f Y: %0.6f Z: %0.6f uT" % (mag_x, mag_y, mag_z))
print("")
print("calibration done")
And then calculate the orientation. The values won't be saved, but it will still be calibrated
whats the difference?
doesnt it need to be savced to work?
so when it saves it, it has the offsets at startup
right now the saved offsets are just 0
I always re-calculate, since my devices are always moving around
does that mean if the code ran upto that part before the save and it said high accuracy, its calibrated?
so i should add that bart to the main script?
I would add that part to your script, at least for now
i solved this by temp unplugging the GPS, but now i get index out of range on the bno.save_calibration_data()
With the goal of getting an accurate reading
what exactly does this do though?
Builds offset data to adjust the values it returns. It helps calibrate for the magnetic field where you are
so if i add this in the begining that means i will have to do the spinning thing while it does calibration
also while using the adafruit heading script, i get completly different values to the one i had earlier
and those numbers are accurate within 3 degrees,
the script returns rotation vector heading and geomagnetic one, the one without geomagnetic is more accurate
the geomagnetic one is off and pointing off ~45 degrees diagnal the accurate one
The rotational one (I believe) is based on the direction it's facing when it powers on
non geomagnetic?
Yes
i added this, still unpredictable
so if i power on facing due north it will work well?
I would need to double check the docs.
overall, it seems to be a common theme of issue with magnetic atributes, geomagnetric rotation has issues, the heading from magnemoter has issues
Is it possible you are in a place with too much interference?
@dusk flax what causes interference?
Magnets, high power, iron
at my desk i have my laptop, 2 monitors, desktop, phone,
standard peripherals
Is it easy to test outside?
I have a friend that struggled forever because he was in a basement, which was concrete, which was full of rebar, and he didn't realize.
Did you test different values at 90° offsets?
And were they ~90° different?
yea
might be able to head outside as long as internet reaches that far
wait one
so just before i head outside, here is what i have
import math
import busio
import board
import time
from adafruit_bno08x import BNO_REPORT_MAGNETOMETER
from adafruit_bno08x.uart import BNO08X_UART
imu_uart = busio.UART(board.GP0, board.GP1, baudrate=3000000, receiver_buffer_size=2048)
bno = BNO08X_UART(imu_uart)
bno.enable_feature(BNO_REPORT_MAGNETOMETER)
def compass_heading(x, y, declination_adjustment):
# Calculate heading angle in radians
heading_rad = math.atan2(y, x)
# Convert heading angle from radians to degrees
heading_deg = math.degrees(heading_rad)
# Ensure the heading is between 0 and 360 degrees
if heading_deg < 0:
heading_deg += 360.0
return heading_deg + declination_adjustment
while bno.calibration_status < 2:
time.sleep(0.1)
print("Magnetometer:")
print("X: %0.6f Y: %0.6f Z: %0.6f uT" % (mag_x, mag_y, mag_z))
print("")
print("calibration done")
while True:
mag_x, mag_y, mag_z = bno.magnetic # pylint:disable=no-member
current_compass_heading = compass_heading(mag_x, mag_y, -12.91)
print(current_compass_heading)
time.sleep(0.1)
and also, when i go outside i will be powering it with a lithium battery, does that cause interference? like one of those phone charging ones
Shouldn't. Same thing that's in your phone and that works fine
alright im heading out
Also, I see a qt cable in your photo. Are you not using i2c?
i am not
whenever i try to use i2c i get errors
so i have the qt cable as a connection, and then have the pin shorted to get it in UART
just got back from outside, same issue, ~45-60 degrees off
By shorted, you have power (pulled high) to p1?
yes
I wonder if you have a bad board. If you add the error to the declination adjustment, is it then accurate?
And where (roughly) in the world are you?
NY area
idt this would work, cause its + or - 45/60
its not a consistant error
bad board is possible with the I2C not working and the magnetic issues
So they do mention that board has issues with i2c. I just wanted to make sure since I saw the cable
I use the older but similar bno055
the non geomagnetic heading ima look into it more, even if it means i have to face north during power on thats better than this unpredictable results
The only thing I might try is removing it from the board and trying it lose. Making sure there's not a bad connection
i had this issue before attatching it to the board too
Ahhh
And maybe try enabling the accelerometer to see how those values look. Since gravity is straight down. Easy to see if values are strange
ok here ill try that rn
accel_x, accel_y, accel_z = bno.acceleration
this acceleration?
i am getting these numbers for it
9.91016 -0.863281 -0.996094
x,y,z
eyeballing, they appear to vector sum to 9.8
yes
Okay, what do you get for heading if you pass in y and z
in that oorder?
in the compass heading function?
Yes
there almost identical
sometimes they are different, but they are nearly identical
funny enough though, when i rotate the board over, the yz one becomes accurate ish though
Identical to what it is with x and y?
kinda yea
close ish
now though, the headings do change by 90 when i rotate the board
90 degrees
How far off is it? And if you swap the order of y and z is it accurate then?
nope
with z,y its 90 off
y,z same
if i do x,y in the original function, its +- 3 degrees!!!
appears the calibration + switching it works well!
also what does it take to go from medium to high calibration?