#live-broadcast-chat
1 messages ยท Page 39 of 1
yeah
you could even extend the key class for chips
you must collect 10 chip "keys" to unlock the socket "lock"
ahh yeah so you can have player facing the right direction. definitely different vs octopus or asteroids where player always has the same facing direction.
yeah, all collectable items
keys, boots, chips
4 key colors
4 boots
1 chip
1 class vs 9 classes
when you load the map, count how many chips you make?
yeah
if you know exactly how many keys the player should have at any point in the game you can use a +1 counter easily. collectables are optional. kind of like power up bonuses.
oh, wait, counting wont do
you must collect 4 chips to pass this level
the 4 on the right are decoys and useless
this level has walls and floors hidden under these special walls
and only appear when you bump into them
interesting
its level 6
like a doom secret door?
yeah, but its a special color, so you know to check it
well that's not so secret then lol
Not shown: the lost Bret Easton Ellis level, Lesson Zero.
Twitter: https://twitter.com/roundthewheel
Message board: http://briwheel.proboards.com/index.cgi?
4:07 into the vid, for examples
invisible could kinda act like locks
an invisible floor acts like lock thats always unlocked, and turns into a floor
an invisible wall turns into a wall when you bump into it
oh, right, and this map has 3 types, not 2
level 2
each button does a different thing
yeah, entity spawner, triggered by a button
level 5
the red button triggers the entity spawner
the purple ball bounces, hitting the button repeatedly
also level 5, the green button toggles if every green block is passable
hidden floors under blue walls
hidden walls under blue walls
invisible walls
you can see it disapear better on a later level, nice day, cant remember the level#
i also discovered, there is a free chips challenge in steam
but the default theme is "wrong"
the and the GUI is jank as heck
ive only seen the portal animated in the steam port
if they animated them like the game Portal that would have made Chip the first known test subject.
and they could fold him in to the Portal universe ๐
and all the chips you're collecting are for upgrading GladOS's capabilities for better testing.
i mean, that would be funny.
exit is animated in this version, and you can see the portals in action
maybe chip is the one that went around writing messages between the walls like the cake is a lie.
i used OBS to capture the steam version
also, if you right click the above video, copy link, then paste into firefox, you can fullscreen it better
something like this you can only go into the portal from the left. which could be a good way to setup locks you have to remove before getting into the portal.
with tiled, how would i set properties on a specific tile of the map, rather then the tile in the tile-sheet, or the whole layer
in level 7, you have 4 portals
and which one you go to, is complicated
and i wouldnt want to make 4 layers, one per portal
yeah, i was thinking more along the lines of a 100% accurate port
yep
but which one you come out, changes based on direction you enter from
and if you push a dirt block thru the portal, it can block you
that would be confusing at first and neat.
the from direction would be pretty important then.
i think i took every direction possible
no idea if this steam version is accurate to the win3.11 version
also, if you right click the above video, copy link, then paste into firefox, you can fullscreen it better
that makes sense because you can't enter one diagonally.
could also flip them in different levels so it's not the same behavior every level.
try this link here
it'[s because it's a video uploaded directly to discord, not an external video source.
when i right click, i get this
it might be a dev thing i turned on
maybe chrome? i have it in FF.
or that yes
i have the native discord client
and my "old man yelling" is how much chrome barfs at times
if i click a link in the wrong program, chrome doesnt notice its already running, so it spawns a second session
and then it trashes its own state, so you cant restore tabs
you're allowed to rant. PT has some pretty great ones sometimes.
to the point he needs his own section called Phil's Rant's.
oh, interesting, download is missing in my chrome browser and the web discord
i think the problem is that your running discord in a browser, not native
the things he complains about are really valid like people submitting BBB complaints because they can't buy more than 1 raspberry pi, or calling up adafruit and calling employees obscene names.
I have plenty of GUI related rants to make about Google, Apple, and Microsoft. Their GUI's drive me nuts sometimes. menu's within menu's especially tick me off.
a map is 32x32 tiles
yeah
yep, 15x14
let me push my maps to git, so you can just browse em
What used to take 2 mouse clicks in Windows 7 now takes 5 clicks in Windows 10... slowly becoming less efficient for a product that used to herald it's productivity simplicity. Things that used to be efficient and after a change are no longer as efficient, with GUI's... set my brain on fire. I don't know why, I like good GUI design.
Discord is quite wonderful though, not too many complaints about how they stuff everything together.
tiled just let me use my tilesets when i make new maps
are you editing a project?
try cloning the repo i linked, and open the chips challenge.tiled-project project in tiled
ah yep, there is the problem
you dont have a project
because i made a project, i have all levels, and tile-sets, listed on the left
that makes sense
so all of your assets are also stored in a project. and i imagine you would save the project which has everything as some other file type.
nope
tiled-project is the project
tmx is a map
try cloning the repo i linked above, and open that project
and youll see how it behaves differently
file>new project, then import your tmx files?
I love PT's rants.
And usually agree w/ everything he says.
I hate the things some folks have said/threatened to Adafruit.
[clever@amd-nixos:~/apps/rpi/lk-overlay/app/chips-challenge/maps]$ cat chips\ challenge.tiled-project
{
"automappingRulesFile": "",
"commands": [
],
"extensionsPath": "extensions",
"folders": [
"."
],
"propertyTypes": [
]
}
no need to import, it just gathers any file in the same dir as the project
I'm not saying it's a bad thing. PT's rants are always awesome and on point. They have a different perspective from a much higher place and it's interesting and sad to hear about some of the issues they have to deal with.
Amen brother.
@smoky island if you clone the repo i linked, and open it in tiled, you dont need to reference the image in discord
^
the shape fill tool in the toolbar also helps massively
yeah, i still get layers mixed up constantly
yep, looks perfect
i dont have xml or json libs on my platform, so i'm thinking a custom binary format
hope you're using an S3 because that's not going to work on an M0. Possible you could offload the files to an SD card with an M0 and then buffer it in? I guess for pybadge and pygamer you'll want to ensure they can be played on the lower power devices.
that leaves out the pygamer and pybadger :/ i have plenty of S3's now so I'm not complaining but most handheld gaming devices are still using the lower power SAMD21 or SAMD51 chips. it's not just the ram but the onboard flash to store all the map tilesets too.
with a SAMD21 you might be able to store only 1 map (or very few) on the device... which is why i mentioned an external SD card as a possible solution.
the pygamer has an SD card slot, the pybadge does not.
an S3 pygamer would be great
i'm all about the S3 lately, it's great especially the 16MB flash 8MB ram versions. they're sooo good.
xml parsing in nodejs is surprisingly difficult
I love the iMX speed but it's got a serious lack of ram compared to an S3.
fast-xml-parser doesnt include the attributes (layer names)
parse-xml relies on features only a browser has
its probably using wasm to run an emulator right on your pc
and if you're doing anything graphical, you want that additional ram.
oh wow yeah, AdafruitGamerIO? yes please that would be cool.
let me try tiled from CLI instead...
you would have to trigger on the first collision
rather then on every tick
tiled --export-map level-1.tmx level-1.json
this does work...
[nix-shell:~/apps/rpi/lk-overlay/app/chips-challenge/maps]$ make level-1.json
tiled --export-map level-1.tmx level-1.json
[nix-shell:~/apps/rpi/lk-overlay/app/chips-challenge/maps]$ make level-2.json
tiled --export-map level-2.tmx level-2.json
[nix-shell:~/apps/rpi/lk-overlay/app/chips-challenge/maps]$ make level-3.json
tiled --export-map level-3.tmx level-3.json
[nix-shell:~/apps/rpi/lk-overlay/app/chips-challenge/maps]$ cat Makefile
level%.json: level%.tmx
tiled --export-map $< $@
and with a makefile, i can now update the json's
i still do else if all the time. i've only ever used elif in circuit python.
how often does your tick function run?
else if in engrained for me from PHP
you probably want to slow down the tick function more
server side, i started with perl and php
the smallest lamp stack I used was DSL (d*mn small linux) really neat barebones distro for lamp.
like all of it ๐
oh yeah PHP can be swiss cheese if you don't sanitize variables
perl has tainted variables, which help to enforce sanitization
only really remember playing with lime_Survey was an old customisable form/survey thing, and loads of form mailer / cgi replacement stuff, oh and wordpress ๐คฆโโ๏ธ
could have different animation and movement ticks
yeah
i once found a sql injection exploit in a software stack i ran
it basically just ran select * from user where password = "${password}" and userid = ${id}
once? then you're not looking hard enough ๐
what id id = "1 or true";
select * from user where password = "anything" and userid = 1 or true ;
want an almost guaranteed way to get sliced and diced... run wordpress... for anything.
the or true at the end, disables all authentication, lol
thank you for the stream. really great game jam. the tileset stuff is really neat.
Desirable bugs? Exciting talk, thanks for the stream
i changed sql language to accept only a specific set of latin characters... which immediately throws an error when someone tries typing in cryllic or chinese. ๐
because yes got tired of the hammering... and they do be hammering 24/7 365.
most sanitising is really hard. if you want to be inclusive and support all possibilities like too short / many / few names, and titles, and email should just be .*?@.*
taint in perl is one solution
basically, any user input is a "tainted string" and if you do any string interpolation or concat, the taint spreads
and the sql api refuses to act on tainted strings
so without using the escape-hatch, its impossible to run exploitable sql
parameterised arguments for the win
yup had to use perl more than a few times to get some customizations done.
there is a dedicated function to escape special characters, that will strip the taint flag
that is the other solution, which has far better performance and less edge cases
but i was poking around in postgresql a while back, and realized, i dont think it actually supports parameterised arguments!
it just interpolates the arguments client side
yo
Powered by Restream https://restream.io
I'm working on a game for CircuitPython day (and a bit afterward). Watch along as I work on a CircuitPython implementation of the Atari Lynx and Windows 3.1 era classic Chip's Challenge.
If anyone else is working on CircuitPython games please share! I'd love to play or check out any made by anyone in ...
another surprise livestream today
i should put some more work into my clone...
nice. I was actually going to ask for a stream today because Sunday's are kinda a down day. More chips game jam nice.
the dirt block can push thru teleporters, but also block you from exiting in that direction
and bugs cant walk on mud (dirt in water becomes mud)
but if a player steps on mud, it becomes a normal floor, which is bug passable
i think the bugs follow a wall?
~5 different types of enemies, each with its own sprite and AI
Can a bug prevent you from picking up an item if it's next to it? Like an RF bug. ๐
your still missing a project file
yeah the way clever had it with the project file with all the tmx's in it seems like it would be easier to work with.
yep
it might help if you read the tmx in a text editor, to see what the GUI is hiding
oh no that sounds more like a slicer and gcode
neat that you can read a tmx in a text editor.
yeah, a project contains multiple maps and tilesets
i meant your own tmx file, where you have 2 tilesets in use
if you open your own level0 tmx in a text editor, does it list 2 tilesets? what is the initial gid on each?
ah yeah, thats your problem then
oh, look at the last tab!
you have lvl_0.tmx#cc_16px_v1 open!
that is the embedded tileset, within the map!
i can see embedded tilesets being a nightmare, because every map has its own copy
you likely need to delete one of the tilesets from the tmx by hand
level%.json: level%.tmx
tiled --export-map $< $@
.PHONY: map_data.bin
map_data.bin: level-1.json level-2.json level-3.json level-4.json level-5.json level-6.json level-7.json level-8.json level-9.json level-10.json level-11.json
node process_level.js
ive been using CLI more, to automate things
avoids human error
converting the json to binary, since i havent ported a json library
there are chips&fire hidden under dirt blocks
ok, ive now parsed my map json
ive handled my first few maps not being 32x32, and converted it all to a flat 32x32
now to turn it into binary...
[nix-shell:~/apps/rpi/lk-overlay/app/chips-challenge/maps]$ hexdump -C map_data.bin
00000000 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 |QQQQQQQQQQQQQQQQ|
00000010 51 51 51 51 51 51 51 51 51 51 51 51 51 51 00 00 |QQQQQQQQQQQQQQ..|
00000020 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 |QQQQQQQQQQQQQQQQ|
00000030 51 51 51 51 51 51 51 51 51 51 51 51 51 51 00 00 |QQQQQQQQQQQQQQ..|
and now i have the first map as a binary!
-rw-r--r-- 1 clever users 11K Aug 20 19:06 map_data.bin
and thats all 11 levels!
now, to actually load and display that...
.section .rodata
map_start:
.incbin "app/chips-challenge/maps/map_data.bin"
map_end:
.align 4
.global map_data
map_data:
.int map_start
.global level_count
level_count:
.int (map_end - map_start) / 1024
and with this, i have all of the map data in my .rodata section, so i can just extern it
11 levels at 0xc4059137
and it can read that data, so i just have to translate it to my tile_set_sprite() call...
console.log(map_data[(0 * 32) + i);
oops, i wrote javascript in a c file, lol
for (int i=0; i<9; i++) {
for (int j=0; j<9; j++) {
uint8_t tile = map_data[(level * 1024) + (j * 32) + i];
printf("%d\n", tile);
tile_set_sprite(&tiles[i][j], (tile-1) % 8, (tile-1)/8);
}
}
each level is 1024 bytes, 32x32
yep
baremetal on the VPU, entirely arm-less
the arm core isnt turned on
so, now i need to add an x/y offset, to center on the player...
the biggest improvement here, is that the map is no longer hard-coded
so i can edit in tiled, run 2 commands, and its instantly working
6.675320 [game:game_entry:89]: loading map
6.679444 [game:game_entry:96]: map loaded
0.004124 seconds to re-draw the map!
it's about this time i might consider asking chatgpt to write chips challenge in circuit python. i've never used it before but i'd be willing to try. game movement is more complicated that i thought.
i wouldn't really do it, just saying things get complicated for movement and entity collision detection.
static int cmd_move(int argc, const console_cmd_args *argv) {
if (strcmp(argv[0].str, "down") == 0) {
camera_y++;
}
mutex_acquire(&channels[channel].lock);
redraw_map();
hvs_update_dlist(channel);
mutex_release(&channels[channel].lock);
return 0;
}
STATIC_COMMAND_START
STATIC_COMMAND("up", "", cmd_move)
STATIC_COMMAND("down", "", cmd_move)
STATIC_COMMAND("left", "", cmd_move)
STATIC_COMMAND("right", "", cmd_move)
STATIC_COMMAND_END(game);
and with this, i can now manually pan the camera
(but only in one direction, have to fill in the other 3)
ok so can't use that word.
yep, later
WE ARE LIVE! Desk of Ladyada - TFT displays in cool shapes, and a captouch revival ๐ฅ๏ธ ๐ ๐ ๏ธ https://youtu.be/O9H6Xs1CIdc
Ladyada discusses newly arrived 3.5" TFT capacitive touch screens & their ease of testing via EYESPI. She explores unique RGB TFT samples & an ESP32-S3 board's complexities. Additionally, she delves into DIP chip clips, handy tools for component probing, sparking a hunt on DigiKey.
Good evening.
It's hacker O'clock.
๐
Great now I have to upgrade my fingernails.
What more can we know about "The Big Move" or it still "Top Secret"?
Adafruit moving out of the historic building. Crazy
Those are all the displays that were likely meant for the 3.5" TFT Featherwing. I LOVE my hx8357 tft featherwings.
long ways away, but we'll share more once we have some final news, and it'a all good news ๐
The secret is, Disney is buying the building ๐ (not true I hope)
it's a GREAT time to get a lot of space in NYC, no one is renting giant spaces
Adafruit is buying the Disney building.
most of the spaces are empty in nyc or at least a lot are empty since folks have not returned to office and many never will
Adafruit acquiring Star Wars from Disney to make the electronics more realistic
Light sabers that extend infinitely
Doors that only work when youโre not in a hurry
open-source the death star plans
Adafruit buys the Crysler Building ๐

So we can finally fix that cooling security hole.
Realistic touch screen in the Death Star
Wait no, should we?
All upgraded to capacitive touch

where ever you move, sure hope there's a Starbucks in the building. they're so rare ๐ซ
Time to make my own junky tablet to sell at Walmart
And make sure itโs a unionized shop
Love the round displays. I still have a few sitting about. Great to make googly eyes
I wonder if the large round displays were designed for a car
This is for the TotallySpies Compowder!
Ohh yeah youโre right, thatโs totally doable!
Displayapalooza! Beautiful selections.
I remember totally spies
I need more displays
Iโm calling the Xeets now
And reposts are ReXeets
Looks like it'll fit right up on an MCP23017 expander.
oh I had some of those larger DIP clips in the 90s. The only ones I have that are even similar are the 8-pin ones for ATtiny85 SOICs
an SOIC clip? didn't know those existed.
that is so cool
they are really painful to use because the springs are so strong and the tops are so pointy
aww man they're too expensive to use them as actual doritos chip clips, darn it.
For that price, I hope they work on doritos bags too
In Search Of...
Any advice on a chip to use for playing analog video? Need to play a file off an SD card or flash chip out to analog or VGA (i.e. old projectors) . Hoping to find something like the VS1000 you use for the sfx boards that I'm so in love with.. โค๏ธ๐
Finding plenty of toy media players for HDMI, but would like to integrate it into some of my existing projects.
that will be challenging, you'll probably want to go with an HDMI to VGA converter
I have 9 old office projectors that have vga and composite but not hdmi ๐ซ
Thanks and good night. ๐
Thank you for another great episode. Good luck with all the displays!
Oh that looks like a Kinesis FreeStyle keyboardโฆ
Thereโs so many Adafruit boards, it would take like 10 years to post them all at one a day ๐
Still can't get used to mine, I have to push the left part constantlyโฆ
Non-stop open sourcing choo choo! ๐
Thanks AdaFam!
Looks good, and might work, but the hdmi media players I've found don't use GPIO or serial for control, except for BrightSign for $800 ๐
Bye
oh yes n8!
@rich wing can use a raspberry pi https://github.com/adafruit/pi_video_looper
I actually use it for some other stuff, just trying to avoid having to support a Linux install if it becomes a permanent installation somewhere. Still trying to find my RasPis that went into storage when I moved. ๐ญ
That's why I was hoping for something like the VS1000 audio chip... someone has to make something for the media players out there, like the MedeaWizยฎ DV-S1 Spriteยฎ Looping HD Media Player โ https://a.co/d/3Sm5aEF
All good, I've got other fish to fry before I get to this part of the project. ๐
# Use a SingletonGenerator to do it without allocating on the heap
def sleep_ms(t, sgen=SingletonGenerator()):
"""Sleep for *t* milliseconds.
This is a coroutine, and a MicroPython extension.
"""
assert sgen.state is None, "Check for a missing `await` in your code"
sgen.state = ticks_add(ticks(), max(0, t))
return sgen
```This weird incantation is deep inside Adafruit_CircuitPython_asyncio. You don't have to understand it all but notice how it sets the `sgen.state` to a deadline that's computed from the sleep duration and the current time in ticks. So to get a deadline-based sleep in ticks, you'd make a function similar to this one, but set `sgen.state` based on adding to the previous deadline, not the current time.
This is totally not Python-compatible and I'm not sure how much/little we guarantee we won't break it in a future release if it's useful. (for instance, we might decide to rename the `SingletonGenerator` class with an underscore, because it IS intended to be an implementation detail...)
Thanks! I will poke around in the asyncio library a bit. I have become a convert to the asyncio way of life to the most part so it would behoove me to more understand what it's doing
I can't believe I missed Circuit Python Day Friday. ๐ข (Work got busy).
No JP today?
?showtimes
Desk of Ladyada - Sunday Evening
JP's Product Pick of the Week - 4pm ET Tuesdays
3D Hangouts - 11am ET Wednesdays
Show & Tell - 7:30pm ET Wednesdays
Ask an Engineer - 8pm ET Wednesdays
John Park's Workshop - 4pm ET Thursdays
Deep Dive w/ Foamyguy - 5pm ET Fridays
FoamyGuy's CircuitPython Stream - 11am ET Saturdays
Hey folks. JP's Product Pick of the Week, and John Park's Workshop are not streaming this week. They should be back next week!
Appreciate the heads up , hopefully everything is okay
Good evening.
oooo, surprise livestream!
sounds like the lcd controller chip is more generic, and doesnt have the timing params pre-configured
the image quality is amazing even on the huge round one
goofy and classy, you two are a match made in heaven.
can't wait to see what people do with the huge round displays
i think this is why the csi/dsi and eye spi breakouts came out recently, some of this was top secret sauce until last week.
yeah, a dsi->dpi adapter frees up a lot of pins, and eliminates the issues i was just describing
but then you have to deal with dsi bringup, which i havent solved yet
if something doesn't exist for it yet i'm sure it will by the time these hit the store... which could be months or a year from now.
first time they showed off the rp2040 dev kit to the time it hit the store as a feather was more than a year. it's cool to see stuff that's in the works behind the scenes though.
yeah
Wow, I definitely didnโt see that outro coming.
?showtimes-gmt
Desk of Ladyada - Random hacker times
JP's Product Pick of the Week - 20:00 Tuesdays
3D Hangouts - 16:00 Wednesdays
Show & Tell - 00:30 Thursdays
Ask an Engineer - 01:00 Thursdays
John Park's Workshop - 21:00 Thursdays
Deep Dive w/Foamyguy - 22:00 Fridays
FoamyGuy's CircuitPython Stream - 16:00 Saturdays
on youtube you now have to click on the "live" tab on the channel to see videos from previous livestreams
https://www.youtube.com/watch?v=Kq4E2hBmQ-U Is it this one? ๐ค
Join us exploring funky round displays with 18-bit RGB SPI configurations. We'll be porting the init code to an Arduino library, converting an eyeball graphic to 565 bitmap, and uploading it to our ESP32-S3 LCD Eval board for a spooky, googly appearance!
yeah that looks like it
cool thanks. i went to videos tab and that just looked like snippets
I actually missed it, not sure if there was a longer one, but that was last night
almost all livestreams are at completely impossible times for me ๐ญ
Definitely a challenge, but the replays are very handy. GMT here, where you to?
ah similar, the late night ones are brutal ๐
@rocky reef @hard hollow ๐ Is it 3D time?
It is: https://www.youtube.com/watch?v=NSF1EeV9loc
This week @adafruit weโre upgrading an Ahoska toy lightsaber with RP2040 PropMaker Feather. For the prototyping segment, we have a working, talking D20. A quick look at last weekโs project: an overhead camera rig using 2020 extrusion. Catching up on community makes, thereโs lots of lightsabers! The timelapse this week is a goth inspired crown de...
CDT (UTC-6)
good morning folks!
hey y'll
Oh I love that "excellent", and the "interesting" / "uh-oh" wav samples
Hello, all
Today's coupon code โahsokaโ gets you 10% off your order!
Adafruit Industries, Unique & fun DIY electronics and kits : Free - 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 Ha...
hey
The Adafruit Feather series gives you lots of options for a small, portable, rechargeable microcontroller board. By picking a feather and stacking on a FeatherWing you can create advanced ...
Hey Guys, have you seen any good systems for hanging lots of breakout sensors, like a hanging tree or something? I build a Clothes Hanger tpu design for the sensors and it's alright, but not quite ready for primetime yet, and wondered if any existing solutions (I've seen the aluminium peg board - nice)
oh something like these? https://www.adafruit.com/product/5781 @unreal bay
That's the one I saw, but want something with more airflow between. These are working okay with some marble run type frame instead of washing line
Even in low quality the tpu stalks work well enough. The breakouts can be pushed tight against the hanger or left with a small (1-2mm) gap between hanger and board (potentially better for air sensors)
Glad someone answered that question for us... What about an enthusiastic rolling session on rocks/concrete?
Oh that's a great idea. Do you use certain temps or just quick and wild?
Goth Crown by Absurd_Designs
https://cults3d.com/en/3d-model/fashion/gothic-crown
https://youtu.be/fsLHDVxIv4g
#live-broadcast-announce needs more work, didnt realize you where live
You can always rely on technology to let you down...
https://www.youtube.com/watch?v=klmxXRzAuSU https://learn.adafruit.com/talking-d20-20-sided-gaming-die/overview Theโฆ | Download free 3D printable STL models
Today's coupon code โahsokaโ gets you 10% off your order!
Thanks all
Thank you for taking time for us.
thanks, awesome show
Thanks, @hard hollow and @rocky reef ๐
thanks!
Thanks folks!
thanks so much for hanging out folks!
Link to join to show and share your project! https://streamyard.com/qawn2z476f & LIVE VIDEO ! https://youtu.be/oSQgqztMlFY
hey y'll
evening everyone
hello
PhilB inspires so many projects or ideas based on his original projects. It's crazy. Good work Liz!
good evening
๐
amazing project @steep mica
That looks amazing
can you share your guy out in Oregon
yup! amplifyfun.com
Where can I get one!
I'll dm ya in a minute
all the info is here!
https://hackaday.io/project/192419-hidden-agenda-mousekeyboard-fx-pedal
How It Works
The Hidden Agenda works as an HID interceptor. You plug your mouse/keyboard directly into the pedal, and then you plug the pedal into your computer via USB. The software on the pedal analyzes the data coming from the keyboard/mouse, applies some "signal processing" to it, and then forwards the processed data to the computer. Whe...
thank you
WE ARE LIVE! ASK AN ENGINEER! https://youtu.be/vc3cAlrJECY
ASK AN ENGINEER 8/23/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/
-----------------------------------...
If I learned anything from playing with TFT eyes is that they look incredible. For everyone but you. You just see the back of a TFT
Just need transparent oled ๐
I completely missed show and tell ๐ฆ will watch later tonight.
was out taking a walk with my mom, time well spent.
Adafruit Industries, Unique & fun DIY electronics and kits : Free - 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 Ha...
On dual core MCU, you could probably run both Arduino and circuitpython lol
When are the eyes getting animated? ๐ ๐๏ธ
Iโve been lucky buying displays from Aliexpress
Oh I'm sure PhilB's probably working on something and if not I'll definitely do something for halloween with them and a bigger halloween mask (if they come out by halloween).
I hadn't seen them running on the ESP32-S3 (yet). After doing it on the 2040 it shouldn't be too hard (famous last words)
Yeah there's going to be some dsi to hdmi stuff, maybe even pico dvi. I'm sure there will be a way with the S3 I think it can handle it.
maybe even a scorpio?
Live from the desk of Ladyada https://www.youtube.com/playlist?list=PLjF7R1fz_OOXUtaFu7-_D1UCugC8OecKv
I was honestly surprised that animated eyes worked on the rp2040 as early as June 2021 for Arduino.
Eyes aren't a problem. It's the size of the huge round displays that will require a more powerful MCU.
Animating the eyes can be tough regardless of size
I was just a surprised TFT_eSPI even had it working so soon
The key on the 2040 (and atmel51 of Phil B's original) was DMA so you can render and draw at the same time
Yeah
Yeah PhilB's pre-compiled implementation is honestly the most realistic looking.
TFT_eSPI I think avoided DMA but still looked pretty decent thanks to the large amount of RAM and speed of the rp2040
He has all the code on github for ardunio too
The panel with Jepler, Dan, and Kattni was extremely informative. I thoroughly enjoyed their panel.
Thanks! I learned a ton from it and melted my brain.
Iโd love to rewrite my fpga loader script to run under C and have a cute python wrapper. Though IcePython is already really simple.
Yes the breaking of 9 is going to be major and there's already some cracks getting started in 8.2.2. Things about to get messy so just be prepared for bugs, lots of bugs. Patience will be very important going into the 9.0 release
9 will be great
Yes I'm thoroughly excited for all the new features coming in 9.
A little sad no Matter support but I know why weโre not seeing it yet
How about this for a poster
Matter is just so.. convoluted
But a recent ESP-IDF feature might make it easier for at least ESP32 devices
Yeah after the discussion about Matter I'm not even sure we'd ever want to get fish hooked into that ecosystem too...
Matter is fine, it is just very nuanced in how we will need to use/implement it.
600 OSHW ๐ that's awesome and kinda mind blowing.
599 more for me to catch up!
600 for me to catch up
Basically the same ๐
๐
Adafruit rocks!
I have a suggestion for OSHW 666. Use something with a built in ILI display and call it the Dev-ILI.
๐
It's like Teddy Ruxpin & Figment had a baby. Part Teddy, Part Figment. โค๏ธ
mmm danger frosting
Also known as mechanical frosting
Finally! I heard thunder and my lightning detector recorded a strike! Since I showed it off on show and tell a month or so ago no storms. But finally! ๐
Took years to properly remember CDS, it was always an LDR light dependent resistor in school
wait there's a "PT-1000" now?
LOOKIN FOR SARAH CONNA'
aahahah
more math takes more time. makes sense.
Aw, I was so busy digging the rabbit hole of programming 68HC705 uCs I missed it all
Adafruit Metro ESP32-S3 with 16 MB Flash 8 MB PSRAM https://www.adafruit.com/product/5500
Just 14 left
I snagged one
You can play a large animated gif on that no problem with that much RAM
still not calling it the BOOP button
"bootloader button" โฆ Much simpler than applying VTST=2*VDD then VPP=14V to /IRQ like on 68HC705 ๐
N16R8 is the perfect amount for any adafruit_request project I can throw at it. It's better to have more ram than not enough when you're pulling MB's of JSON from an API.
the built in SD card is very handy to have for any project too.
Q: will you discount cowbells for a โMooooovingโ sale? ๐ฅธ
Yes, there is...
like tears in the rain
knew it
they got my good side, nice
lol
Serious question: will the new space be much larger than what youโre in now? Will it possibly include conference space for maybe OSHW/OSS meetups?
AdaCon maybe?
Actually, I'm wondering how I'll control these VTST / VPP / 0 levels on /IRQ from an Arduinoโฆ thinking about some stacked zeners + some analog mux like NJU211 with some shottky diodesโฆ
Questionโฆ any updates on a past ESP32 board with a camera? Just curious if itโs still a future product .. Thanks
those big round displays are perfect for those big 6 ft skeletons people have
ahh an actual pyportal sounds cool
PyPortHole
Questionโฆ youโve done lots of work on displaysโฆ just curious what would it take to drive a โlaptop display โ even if itโs lower resolution. Is it possible to do it with a chip like an ESP32-S3 Thanks
and you'll show a bowl with pictures of sweets at the bottom ๐
Donโt miss ๐
Gotta run, thank you for taking time for us.
Very late hi from Costa Rica.
Thanks Limor, thanks pt!
Bye
it's good yeah, thanks!
Darn, question was missed
annnd it's 3am. off to bed!
Oh well
@lilac tusk or maybe it's tactically avoided, for some surprise, who knows
ok @lilac tusk did not see it, will answer it next week!
yes and maybe!
short answer!
Good enough for my imagination ๐ค
Oh wait actually, that bowl with the round screen at the bottom, since it has touch detectionโฆ it could detect when a kid tries to grab the sweets, and pop some ugly face ๐ง When is halloween already? cc @haughty quiver
I could see this one getting a "big" upgrade. https://learn.adafruit.com/hallowing-m4-candy-bowl
OMG LOL yeah
Adabox
<t:1692997200:R>
?showtimes
Desk of Ladyada - Sunday Evening
JP's Product Pick of the Week - 4pm ET Tuesdays
3D Hangouts - 11am ET Wednesdays
Show & Tell - 7:30pm ET Wednesdays
Ask an Engineer - 8pm ET Wednesdays
John Park's Workshop - 4pm ET Thursdays
Deep Dive w/ Foamyguy - 5pm ET Fridays
FoamyGuy's CircuitPython Stream - 11am ET Saturdays
Is it time to change out Deep Dive w/Foamyguy in the Friday schedule?
We could remove the person. Foamyguy is going to do next week
yes
waves
take your time ๐
๐
could do both, a green-screen on a pull-down curtain like a projector screen
Do you need to duplicate computer, or will you remote connect, or totally not work when at home?
no more cat cam then?
Why did you recently invest into a new cat cam then???
Be careful with attic spaces and insultation above rooms. Found out more then I ever wanted to about that topic
oh, wait
setup a cat-cam livestream on its own channel
then embed that into your stream when streaming
I"m here for the technical content
There is that "Tiny Code Reader from Useful Sensors" that read QR code and can be talked to in I2C...
echo 'WIFI:S:name;T:WPA;P:password;;' | qrencode -o wifi-test.png
I think circuitpython has a qrcode library already
if you scan this, your phone will offer to connect to name with password
so you just need to connect the camera
in theory, this sensor could scan the same QRcode, and then connect
The part that might be difficult is to write into the toml file, once you have read that QR code, so that you don't have to present it each time. But having an easy way to setup Wifi is great if you want a "product like" experience.
The alternative to start as an AP, let the user connect, then from there set the config...
If it is not present on 8.2.4 then is it a problem?
oh, and there is also the WPS process
just push a button on the router
my rough understanding, is that WPS just sends the password over wifi, with a bit of crypto, so only one user gets it
ack i'm late. good afternoon everyone โ
I mean, test on the stable release first? ๐
i picked up a metro esp32-s3 n16r8. i like that it has a built in sdcard and gobs of ram. yum yum moar ram.
no i've never used watchdog timer, i did see the reported issue on it. have nothing to add on the subject.
i only ran into the SSL handshake bug and still plenty of hard faults on the matrixportal s3 which are 2 separate bugs.
the SSL handshake bug is fixed in 9.0 alpha though i only tested it on 2 boards, an S2 and S3.
last known good version that has no backported bugs i could find is 8.2.1, things started breaking in 8.2.2
And the IDF upgrade too?
there are a few warnings during the build process - does your CI process force warning clean commits ?
i'm genuinely excited for 9.0 but it's going to get messy on the way there.
i vividly remember going from 7.3.3 to 8.0 alpha's and betas and it was similar. everything started getting smoothed out by 8.1
does tio have other configuration / hardware settings - when was the last time tio showed something?
can you take your solder projects to the outdoors to make minor changes ?
Is that the board with a switch to change the mapping or RX/TX?
i think that's the rp2040 metro
cant you also change the build config, to remap debug onto the main uart?
yeah that's the one with the rx/tx switch
This is not the RX/TX pins you are looking for. <= Jedi trick
But do you have kattni code on it yet?
noticed on the Metro ESP32-S3 it advertises octal flash. is that a hardware builtin thing or do we have to initialize it in a specific way to use it vs qspi?
run objdump -d foo.elf on the most recent build
and lookup that saved PC
ctrl+f also helps
does circuitpython do any JIT?
then PC should always remain within .text, and any violation of that would be a bug
did you indicate you don't have objump ? ( part of gcc ) - maybe I didn't hear correctly
I love objdump -S
there is also the problem that JIT usually trades memory for speed, but in MicroPython/CircuitPython you usually want to do the opposite trade
ah yeah
can you disable the watchdog and observe 'correct' behavior ?
no catcams now it's just watchdogs
catcam is BIG ! ๐
the size reflects the importance
why is it called watchdog and not watchcat? is dog an acronym?
i mean watchcat would make some sense for linux.
were there other WDTs active - or just the one 1 second WDT?
i think the PC you saw would give most of the same info jtag would
just check the objdump
do you have an MMU or MPU?
an MMU can be configured for no-exec, so if you leave .text, it instantly has a fault
then PC can never be in the weeds
4037a3a7
got a memory map? where is ram/rom/xip?
ah, so it was valid, and i was trying to guide you thru doing it without that python script
ah yeah, thats a memory map, so your executing code from iram
you loaded code into the iram
i find objdump -t easier to read/search
map files are a mess
that 405, might be a bug in the backtrace code, it cant unwind the stack
whatever called __retarget_lock_aqu... messed up the stack
it could be the psram is corrupting data, yeah
try turning it off?
yeah, search the makefiles for that, and then see what triggers it
i notice your inside a #if block
what is the condition that sets needs tuning?
they may have fixed the code, to use the correct tuning params
yeah, i'm thinking the same thing
you would want to rebase your branch ontop of it
dynamic frequency scaling?
i'm thinking, changing freq based on cpu load
can you turn off the timing tuning in the menuconfig ?
I thought they removed the warning - different version?
1 core mode?
that could cause coherency problems between the 2 cores
and if you dont properly flush and mutex things, corruption will ensue
ctrl+r will let you search bash history
ctrl+r is part of readline, and will work in a wide range of programs
what did "deactivate" do ? ( esp idf ? )
๐
do you need BLE? maybe just turn BT off?
my error
have you found using multiple cores compiles incorrectly in the past? i've used up to 4 but was hesitant to throw more at it.
is there a text file that menuconfig uses - that is easier to search ?
makes me feel better that i'm not the only one starting to find learn guide examples breaking from recent changes.
nice bug find Kattni
since the question of locks came up before - is there a lock logic errors?
I missed the beginning, can someone post the link to the GH issue (just curious), ty !
thank you for the bug hunt on a deep dive level. seeing how debugging is done is highly informative.
Thanks for the stream !
thank you
thanks @timid plover for notes
good luck with move!
thanks Scott!
Let me know if we want to turn the notes GH actions back on @hot riverd @rapid hornet
fine by me - it's up to @rapid hornet
stream and mic are working!
Getting started a few minutes early this morning. I'm working on a web app CTF (Capture the Flag) project. You can follow along on Twitch: https://www.twitch.tv/foamyguy_twitch or YT: https://www.youtube.com/watch?v=63qA5PLAycU
a webgame i played years ago, once switched to https://captchas.net/
the idea being, you put <img src=https://captchas.net/foo?user=clever&token=123> into your page
that site then looks up the secret, and hashes secret123, then uses the bytes of the hash as the number in the image
your supposed to store the token in a session cookie, and use that with your own copy of the secret to validate the users answer
this webgame did <input type=hidden value=123> and let the user change the token.....
so essentially, it was vulnerable to a replay attack
it is generating a real captcha
it wasnt a secret, but it was a string that was meant to be constant for a session
and by allowing the user to change it, the user could reuse a previous captcha answer
so basically, when the game asked me for the text in https://captchas.net/foo?user=clever&token=123
i just go, NO!, and give them the answer to https://captchas.net/foo?user=clever&token=000 every time
and by changing the hidden input, the game just accepts it
yep
the text in the captcha, is a hash of the token and secret, so its prng
yeah, value
yep
one trick, have a register page, but store the name/pw in cookies or local storage
and then validate against that
then the user thinks its working normally
Hi Tim and all present.
that could also be a flag
the user goes into local storage, and changes the admin flag
ah, yeah
oh, the admin console for one of the services i ran years ago, it had a sql injection exploit in the username
just a user of 1 or 2 would disable password checking, lol
the original admin knew that php zend had sql parameter escaping
he wrongly assumed that it was 100% automatic
the injection, turned the login query into:
select * from user where user = 1 or 2 and password = "hunter2"
the or effectively made the 2nd half of the WHERE clause useless
yep, phpmyadmin has exactly such a wizard
phpmyadmin refuses to operate normally, until you delete the wizard.php
so you cant run the wizard a second time
yeah
there is a text file with i_agree=0 basically
and you have to change it to 1
Joining the stream a bit late โ was obsessed with my first synthio project this morning. Steep learning curve, but getting the sounds I wanted to hear. Synthio is amazing.
relative image paths, so the client is adding that /login/ yeah
the python server may not decode it
inconsistent (un)escaping is one cause of exploits
when in doubt, wireshark!
Thought someone did form passing and URL encoding (not feature complete maybe)
oh, i just remembered an ISP story i heard
to protect against sql injections, they silently stripped all special characters from all fields
including password
so the more special characters you have, the simpler your password becomes, lol
i'm checking an idea locally....
that too! lol
dang!
<form enctype="application/json" method=post action=dest.php>
that doesnt work
oh, you just gave me an idea for a new flag
if that {username} stuff is evaluating python....
and the user can upload custom files....
booo, .replace wont have exploits, lol
> escape("<script>alert('foo');</script>")
'%3Cscript%3Ealert%28%27foo%27%29%3B%3C/script%3E'
/profile/%3Cscript%3Ealert%28%27foo%27%29%3B%3C/script%3E
did you just make an html injection exploit?
ah, but if the string is not in the json, it will reject
only if you comment out the check for valid users
you didnt url encode the /'s
you copied the non-encoded form
the bottom text box, not the top one
ah, because your webserver doesnt unescape things
the browser will un-escape for display
i believe thats because the webserver cant undo url encoding
as before, wireshark cant lie, and will reveal the truth
yep
ive used burp before to mitm https from my android phone
paypal sent the name/pw "cleartext" with only https to protect it
my local bank did something more complex
yeah, when i was testing the enctype="application/json" earlier, i was going to wireshark to confirm encoding
but letsencrypt http's everything on my server
had to switch to another server that lacked LE
oh, i also know of 2 security issues with the rpi hardware
for the bcm2835 bootrom, they generate the expected signature, and use memcmp() to compare it to the provided signature
the more correct bytes you have, the longer it takes to validate
thinking about it, i can see you potentially having the same problem
if i try to login as adfff, affff, or admif
how long does the string compare and lookup in the json take?
does affff fail faster?
but the decryption will be constant time
while the string compare is variable time, based on how much i guessed right
the longer it takes, the more characters i guessed right
the same may apply to your password
but /profile/adm will fail slower then /profile/a
which acts as a hint, and speeds up your brute force
if username not in db_obj['users'].keys():
so the question then, is how does circuitpython implement username not in ["biglist"]
everything else can be ignored
lexer.c: "not",
ok, so i can start here
// must have the same order as enum in lexer.h
// must be sorted according to strcmp
STATIC const char *const tok_kw[] = {
"not",
MP_TOKEN_KW_NOT
which shows up nowhere else in the codebase
yeah
the c that makes circuitpython work
aha, i know your bug
its that escaping pr you showed earlier!
its pre-escaping all form fields, to protect you when you display them
except, your not trying to display them, so its making things worse
oh, maybe you need to decode the bytestring as ascii first?
to make it into a string
if (kind == PN_comp_op_not_in) {
EMIT_ARG(binary_op, MP_BINARY_OP_NOT_IN);
ah found it, that is how username not in ["biglist"] gets compiled
i just noticed, there is JIT support in circuitpython...
there are 2 different types of redirects via http codes
plus you can use JS or <meta> to redir
py/emitnthumb.c is in circuitpython
it looks to generate arm thumb assembly
there are variants for x86, arm, and xtensa
oh, and that doc mentioned POST
processing login
<script>
window.location = "/profile/sally/";
</script>
a simple/dumb JS redirect
plus some text for the user to stare at
the http status codes doc
so, dont use 307 or 308
301 and 302 dont mention that
discord chat is also missing from the stream
the user agent is the browser
so the browser must not change the method, with 307/308
yeah, that might work
thought it was 301/302, not seen 307/308 before
looks like 307/308 are newer to stop Method changing mid-flight
hi all btw, and thanks for the stream 
yeah, you can commit all you want without a remote
a remote is only needed for push/pull/fetch
there is a copy of the branches locally and remote
you want to make your initial commit locally, and push
dont create an initial commit in github
delete the main branch, and just push master to github
you can rename it locally before you push
git checkout -b main
git branch -D master
that will rename to main, and delete
think i even used git branch -m main
instantly renamed, and then you just push
Thank you Tim, have a nice rest of this weekend!
@smoky island after digging thru a lot of c, and some help from #circuitpython-dev
i found that db_obj['users'].keys() is using a hashmap to store the keys, and isnt vulnerable to the timing exploit i had theorized
Nice ๐! I went out for a while but am back and tinkering a little. I'm trying to get multiple cookies working. It turns out that headers being dictionary-like in the response makes it so there can't be multiple Set-Cookie headers which is how it's supposed to work if I'm understanding MDN.
yep, when i curl -I https://www.google.com/, i can see 3 Set-Cookie: headers
Just woke up after a long night. Missed your stream. ๐ฆ
I'm hacking together a solution that allows {"Set-Cookie": ["something=1;", "else=2;"]} and then knows how to parse that out and send multiple lines.
@smoky island PaulSK has added some work to your TR-Cowbell software, might be worth looking into. https://github.com/PaulskPt/My_Circuit_Python_Projects/tree/main/Boards/raspberrypi/Raspberry Pi Pico/TR Cowbell
yeah, that sounds good
i did also discover, the original question i had is far more complex
a dict can be ordered or un-ordered
the keys in a dict can be strings or qstrings
I definitely will! He's shown me some of the new features as well. Looks cool!
if the keys in the dict are all qstr's, then its effectly using ints as keys, and performs far faster
but the json parser doesnt use qstr's
if the dict is ordered, then mp_map_lookup() uses a linear search, which could leak other data
but the json parser creates an unordered dict, i think the keys are in whatever order they appear in within the json
Interesting, I had no idea there were different types "under the hood" or any that worked with qstrs.
a search for zx would be slower then a search for ax
and the relative speed as you go thru the alphabet, tells you how many users start with each letter of the alphabet
and you can then narrow down your search from there
a dict has a special flag on it, all_keys_are_qstrs
it starts as true, and goes false if you use a non-qstr as a key
and will never recover (go back to true)
ahh that's what you were talking about earlier, now i understand it. the search parameters are alphabetical, very neat find.
i did also stumble upon something i was told didnt exist
there is JIT support code in circuitpython
so in theory, it could be enabled, and give more performance, at the cost of ram
something to play with, on a device with more ram
whoa! that would be interesting to tinker with sometime. I've never seen it come up before
wasn't that a question asked on deep dive?
or was that a question in help with circuit python? i remember you asking that one.
there is a seperate emit file, for each supported arch
https://github.com/adafruit/circuitpython/blob/main/py/asmthumb.c
size_t asm_thumb_mov_reg_i32(asm_thumb_t *as, uint reg_dest, mp_uint_t i32)
here is a function that generates a single 32bit thumb opcode
awww man i missed a good episode about keys and encryption ๐ฅน
#define ASM_MOV_REG_IMM(as, reg_dest, imm) asm_thumb_mov_reg_i32_optimised((as), (reg_dest), (imm))
#define ASM_MOV_REG_IMM_FIX_WORD(as, reg_dest, imm) asm_thumb_mov_reg_i32((as), (reg_dest), (imm))
a header file then gives it a more generic name
py/emitnative.c then uses that, to generate asm
dynruntime.h:#define mp_load_method(base, attr, dest) (mp_fun_table.load_method((base), (attr), (dest)))
ahhh, and thats what this is then doing
Didn't quite make it into any encryption, but I did work on (one of) the login mechanism(s).
so, if we wanted to enable JIT, we would need to get emitnative.c into the build....
ah, and thats the problem, none of the makefiles reference it!
i assume the entire py/* came from another python engine?
and some parts are just unused dead code
Yeah i saw that as I watched. Amazing episode though!
If you're interested in a token scheme here's the one Fitbit uses to an extent. It can be highly randomized if you comment out the default scheme and uncomment the randomizer I wrote as another layer. I unnecessarily over engineered it beyond what Fitbit does and ended up archiving it. https://github.com/DJDevon3/Fitbit_CircuitPython_Token_Crypt
I ended up going with a much simplier nvm token storage scheme instead. Archived it in case someone else might find it handy someday for API token creation. ๐
Nice! Thank you. I'll take a look.
I looked into JWT tokens a little, but I'm undecided if I want to include that in this CTF. I have lots of ideas I think are interesting, but do want to get the most basic one done enough that it could be fun for people to play. I may eventually expand the repo into a series of increasing difficulty ones.
Hi, I watched yesterdays stream today, already working on fixes and improvements you mentioned
Seems like actually is base64 for Bearer, like Basic authorization header https://datatracker.ietf.org/doc/html/rfc6750#section-2.1
This specification describes how to use bearer tokens in HTTP requests to access OAuth 2.0 protected resources. Any party in possession of a bearer token (a "bearer") can use it to get access to the associated resources (without demonstrating possession of a cryptographic key). To prevent misuse, bearer tokens need to be protected from disclosur...
hey dont worry about individual server implementations, that's a whole other set of problems ๐
wonder how it translates, if \u0004 or whatever would work instead
wicked
Thanks for the stream, interesting, been a web dev for years but never done CTF
Ah, I just realized I never went back and put the DB decryption into the actual project ๐ณ . I did it in the PoC script only.
WE ARE LIVE! The Desk of Ladyada - ESP32-S3 RGB TFT Experimentation ๐ฅ๏ธ๐ก๐ https://youtu.be/-CgLnAP-sO4
We are testing ESP32-S3 TFT board prototypes. Used ESP32-S3 RGB TFT Eval with Arduino library. Trying out the OpenAI code interpreter. Using a new board with native GPIO & FPC connector. Redesigning for PSRAM's octal mode, current board displays MJPEGs! "The Great Search" Searching for replacement capacitors for old boards, especially tantalum, ...
Good evening.

this is starting to make a lot of sense with what i'm running into on the matrix portal s3.
It sounds like basically the same idea of animated gifs. just with jpegs
wonder what the file size difference would be for an animated gif vs an equivilent mjpeg?
Quick lookup was JPEG is lossy so will be smaller but lose in quality. But JPEG has more color depth vs GIF
trying to write an init for a new display is a bunch of datasheet scrolling, bit flipping, and prayer.
PT Rant โค๏ธ +1
pt rants is the only segment that doesn't have a video intro & theme song.
i get one per show as part of my contract
that was a good one, and on point as always. chatgpt is just using our code is 100% accurate. and if it's not specifically by adafruit it's going to pull something from someone's library or example in the community.
I hate having to translate format A to format B. Anything that makes that easier wins in my book
sed and awk commands are more cryptic but shorter ๐
Would love to use it someday to take an Adafruit library for Arduino and automatically convert it to Circuit Python. That would make adafruit programmers lives so much easier.
There are a couple examples I've found in Arduino that do not exist in Circuit Python yet. Ran across one today for the CPE with the proximity sensor.
yah, we might try that
wow, that would have taken me like 5 minutes to add commas at the end of every line. seeing how to use chatgpt is very informative.
some ai tools allow you to point at the api docs to "learn" too
I saw an example of someone training ChatGPT for midjourney commands that was pretty cool to help you generate better prompts
I have also forgotten how to use awk & sed. ๐
Does anyone ever remember how to use awk & sed or just look it up when they use it ha
couple charts openai made with the json file from oshwa api, this is preview from my article that goes live on monday
I still use sed from time to time
I'm not polite at all to my Alexa devices. If the future robot overloards ever get into reprisal i'll be the first on their hit list for being mean to them. ๐
but the syntax is not easy to remember for complex things
for certification dates, the most popular day of the week of the certification is friday. the most popular month is may.
how long until adafruit gets to 1,000 certifications? openai said that based on the linear regression model and the current trend, we'll reach 1,000 certifications on july 30, 2026.
openai warned me this is a "simple prediction based on current trends, and real-world outcomes may vary due to multiple factors."
and last up, out of all the 2,407 certifications, the most popular software license is the mit license, with 1,348 certifications using it.
fun to upload data and just ask it questions
I can see this being very useful for init sequences if you can feed it the display datasheet?
I was at a talk that said one of the best ChatGPT uses is for summarizing data of all sorts. Writing meeting minutes and such
most datasheets dont have the init sequence in them! they are in a separate text file usually
yerp
Hmm I think I'll run out of GPIOs on this Arduino UNO trying to program a 68HC705E5โฆ should probably go straight to a Megaโฆ (need 5V)
You could teach them to read the datasheets though, somehow?
yah, some do PDFs, totally possible
I recall seeing some online tool to process datasheets to collect pinouts for KiCADโฆ
not AI but still useful
Oh I had to use a datasheet providing the hex register values. I had to copy/paste them individually and in the exact order.
you could OCR it into a text file to upload - not sure if chatgpt can handle pdfs
My coworker now uses ChatGPT to give estimates/answer questions that he considers useless but someone won't leave him alone on. Much to my amusement
The problem with PDF is there are more than 1 order for the content, and it's not always the layout one you want.
ChatGPT is the new "let me google that for you"
Apple ][ Forever ๐ถ
unless too much current insideโฆ
some PSUs have fuse-resistors meant to blow upโฆ
There are indeed whole websites dedicated to recaping old machines ๐
Like https://recapamac.com.au/ from Branchus Creations (see the Resources menu)
This site provides details of the faults I encounter with Apple MacBooks, and the subsequent repair processes.
exponent
ugh
Oh and that brown thing on the photo wasn't leak, but some glue, and sometimes this glue can soak moisture and cause problem
through hole caps have indents on the top in case it does leak or blow it's most likely going through the top.
does a surface mount capacitor have the same kind of thing? what if it's blows out from the bottom? only way to tell is to probe it?
most of the time yeah
@sand lotus good question - not sure how they vent!
This entire episode could be fully AI... is that air you're breathing? You don't know.
no memes :/
And there's a transistor right alongside, so heat as well
tantalum is one of the most expensive metals
the tantalum capacitor on that apple board is beefy, probably not a cheap part.
Fun fact: the Mac LC-III has the -5V cap (C22) backwards from factory.
this is a very very informative episode. i just learned how to source and replace a surface mount capacitor. really great.
Thanks @open girder and good night. ๐
n8
Bye
I missed it! I had my own cap-replacing experience back in April of this year. https://octodon.social/@stylus/110967936598634331
Attached: 1 image
@adafruit@mastodon.cloud Darn, I missed this one!
I don't have much experience replacing capacitors but I had to do it for my old Xerox 820. Unfortunately the cap blew apart violently enough that its capacitance value was not readable.
I was lucky enough to find someone who had a photograph of the same board. It turned out t...
Good old RIFA ๐
@open girder cc: @haughty quiver
Just a heads up the fine details on YouTube still have the Product pick and link from 8/15 (as of 1:50pm)
Thanks and see you soon!!! 
ha brilliant, was about to shout the same. the audio bff is brilliant btw, but description links to joystick adapter.
That image is geniunely terrifying, brilliant, but messes with your mind. Mini-JPs, do you just add water and watch them grow?
thanks for the heads up @echo canopy @unreal bay fixed now
Awesome, glad to see you back JP!
some could say it need lars2C
hi there!
Hey JP we missed ya. Hope you are doing ok
welcome back JP
๐ธ๐ช ๐
Good afternoon.
Disturbing image of unknown relatives. A solid reason to avoid submitting your sequence to a DNA database.
Those are the Johns Parks
And welcome back @haughty quiver !
This is my brother Daryl and my other brother Daryl
๐
"Where's the BFF?"
except for QTPy M0. not for that one
โ๏ธโก๏ธ๐๐ฝ
need more coffee
This week @adafruit weโre talking RP2040 PropMaker Feather with special co-host Liz Clark. Also, a first look at prototyping a synth guitar with SynthIO in CircuitPython. Checking out community makes and Croc Toes designed by HBRDL for this week's Timelapse.
Learn Guides
Talking Adabot
https://learn.adafruit.com/prop-maker-feather-talkin...
good morning
Good morning.
Hello, all ๐
Hey Y'll
Adafruit Industries, Unique & fun DIY electronics and kits : Free - 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 Ha...
Today's coupon code โtalktalkโ gets you 10% off your order!
Not a free commercial for TalkTalk... ๐
How accurate is the RTC?
Hey wonderful 3d folks, there was a user mentioning their timezone (Perth) was experiencing issues with sunrise (the star sunrise/sunset project), while sunset worked fine. Was a bit of a mystery, I'll test it at some point (UK here).
Can you make things more timezone friendly in future please
(the code does "appear" to be timezone aware or at least the API is)
UTC for the win...?
@hard hollow @split gazelle Thanks. ๐
andy think someone make puppet lars
๐ธ
as some of the puppeteer controlrigs use computer so it could be fancy to move lars
Lol
that D20 look fancy now
that requirement of freefall reminds me of an old iphone app
you had to throw your iphone into the air, it would measure the height with the accelerometer, and then keep high-scores of users
apple deleted it from the app-store, for obvious reasons
Croc Toes by HBRDL
https://cults3d.com/en/3d-model/fashion/croc-toes
Every week we'll 3D print designs from the community and showcase slicer settings, use cases and of course, Time-lapses! This Week:
Croc Toes
HBRDL
https://cults3d.com/en/3d-model/fashion/croc-toes
CR10S Pro V2
Beige PLA
60mm/s
1hr 47mins
X:257 Y:180 Z:36mm
.2mm layer / .4mm Nozzle
6% Infill / 1mm Retraction
200C / 60C
8g
--------------------...
I saw some claws just then...
Different attachments for Microscope Stand and insert stand.
YouTube: https://www.youtube.com/watch?v=jy7a-z19UEQ NEW UPDATE April 8, 2016 โ Added new parts for Adafruit 2.4" TFTโฆ | Download free 3D printable STL models
talking heads.
Thanks @split gazelle & @hard hollow . See you all tonight.
Thanks for the show Noe and Liz!
Thanks, @hard hollow and @split gazelle - great show. ๐
Thank you for taking time for us.
Bye Thanks!
Thanks folsk! cya tonight!
thanks everyone!
here is the link to join show and tell: https://streamyard.com/mh5z6w3y8t
Good evening everyone.
๐
Hey Y'll
Hello everyone
good evening
Round displays are so fun
This requires a change in our fork of esp-idf:
adafruit/esp-idf#12
My test platform is https://www.tindie.com/products/makerfabs/matouch-esp32-s3-parallel-tft-with-touch-7/ [800x480 model]
The d...
I love how that clear case looks
ahh yes the crystal pepsi era
if you really want a "balanced" die you could ignore which face is "up", and pick a true random number with os.urandom ...
I made an arduino "dice" project that displays a random number when you shake it - but not die-shaped
purposely off weight so one side is always up and put a screen on it?
@nova totem or put 20 screens on it
good to see you @brazen grove ! i've been enjoying your PCB design posts on mastodon
Really neat to see a whole game in circuitpython with a board built for it
Cool critter @brazen grove
like a pegboard but it looks much cooler
holy 3d printed walls batman. that's a lot of 3d printing. nice design and pretty.
cool project gary!
wanders off to find dinner, don't do anything too cool while I'm away
Sophy!
@sand lotus Good to know I have 4 panels now and plan to do something with them "soon"
The quality of that tape recorder is great for the age of it. I do love that it requires two different types of batteries too
Oh, jelora has designed replacement spools for these bands btw, and adapters to store them in larger boxes: https://mastodon.gargantia.fr/@jelora/110951469384755993
And a tape slicer for repairs: https://www.jelora.fr/post/2022/08/10/Outil-pour-couper-coller-les-bandes-magnetiques-1-2-tape-splicer.html
Lorsque je me suis fabriquรฉ des bobines de bande vidรฉo 1/2" (article ร venir) et que je les ai chargรฉs en bande, il mโa fallu un outil pour coller plusieurs bandes les unes ร la suite des autres car une seule ne suffisait pas pour remplir une bobine entiรจre. Il existe des outils dans le commerce [...]
I can see how two of the batteries are reverse polarity from the others now too
what a neat tape recorder design.
Oh, odd, different battery sizes
funky
At least it seems quite lighter than all others I know
yes i was so lucky to find such a nice specimen!
you cam has a hard time focussing @nova totem ๐
I think this is the Make Magazine youtube channel. For tomorrow's live stream with Sophy and other makers. https://www.youtube.com/@MAKE
Make: brings the do-it-yourself mindset to all the technology in your life. Make: is loaded with exciting projects that help you make the most of your technology at home and away from home. This is a magazine that celebrates your right to tweak, hack, and bend any technology to your own will.
after going down a rabbit hole I learned that the Crystal Pepsi Era spans the years from "Baby Got Back" to "Whoomp! (There It Is)" and I am having either a midlife crisis or a nostalgia attack
ooh that's amazing, i have thinking about what i can 3d print for my new reel to reel obsession ๐
Congrats on the lightning detector! โก
@sand lotus yep, that's it, i started that channel when we started MAKE
plenty of options now ๐
@lethal lagoon I didn't know I needed a deep dive into reel to reel recorders but I thank you for sharing that
here's a link to the Make: zoom event: https://events.zoom.us/ev/AiFgP7R_e7sIMGAkEcF5GIq5mF7oExBL1l7zEOC8ftCqLKvjd6MG~AggLXsr32QYFjq8BlYLZ5I06Dg
goodnight all! โค๏ธ
It is older then the board I showed I think ๐
night! thanks Liz!
Thanks for a great show Liz and everyone!
Thanks Liz and all
Thanks to all for taking time for us
thanks
thanks folks!
Thank you for hosting @split gazelle
Thanks for the show @split gazelle
yay! so glad you enjoyed! it is a deep and really fun rabbit hole i have been enjoying digging around in ๐ have another machine coming in the mail already haha ๐
Wait until you discover wire recording ๐
I was just LOOKING at those batteries thinking "WHAT" and then you explained it perfectly
Very cool sophy. Those retro finished pieces seem timeless and your project is so clean and neat