#general-chat

1 messages · Page 57 of 1

keen sparrow
#

Hey, everybody, I am brand new to this ada fruit stuff. I am trying to build a portable retro pie handheld and I need contact audio amplifiers to give reliable sound. But I'm not sure how the boards work. How do you adjust the volume on boards like the tpa2016? I'm trying to put together a parts list, but I'm not sure what parts to buy.

#

Actually, if there was a list of products that are useful for my build, I would like to check them out. Thank you!

ebon dew
#

do you mean a transducer?

#

To adjust the volume you'd need some type of external input like a rotary encoder or 2 volume buttons.

#
# Setup your I2C bus and pins for the TPA
# Set initial gain levels
tpa.max_gain = 0
tpa.fixed_gain = 0
# volume up/down
if button1 pressed:
   tpa.max_gain -=1
if button2 pressed:
   tpa.max_gain +=1
``` something like that
#

disclaimer: not a working example, theory example only.

rain cradle
#

Could also do fancy (branch-less and 1 line shorter) with:
gain += pressed (and -=)

ebon dew
ebon dew
#

yeah they need better examples for a basic real world demo... this is disappointing to see

sick apex
#

aight so most of my menu is complete but there is one thing

#

i need to figure out

#

how can i declare the menu outside of the setup function

#

i tried to do it by just declaring it at the top

#

then i declared a pointer to one

#

and that didn't work

#

wait i might have figured it out

#

nevermind i haven't

sick apex
#

magic

#

if this OLED was 2px taller i swear

#

that would make my life so much easier

#

there is 16px of yellow

#

and 48 px of blue

#

and each of my menu items are 10px tall

#

i might make them 12 px tall so i dont have to deal with the issue

urban arrow
#

^^ I have like 4 of these. Yeah small, but love the price. Quite useful. I use my larger Ada OLEDs and TFTs for more permanent fancy projects 😀 Gotta draw the spending line somewhere...

sick apex
#

i need to figure out how to navigate the menu now

#

like i can do it already

#

i programmed navigation

#

and that works, i set it to delay 1000 then nav down

#

to test

#

but i need to figure out how to call that function on the press of a button

#

i tried an interrupt

#

but that just gave me a massive stack dump

fossil dawn
#

maybe you can't write to the screen during an interrupt

sick apex
fossil dawn
#

ah lol 😭

sick apex
#

yeah and it didn't even let me call the setup function

#

so

sick apex
#

im thinking if i digital read the pin

#

kinda like unreal engine's Do Once blueprint

#

oh also, interrupts dont let you call functions from pointers

raw jasper
sick apex
#

oh so like make it set a variable to true

#

then in the loop if the bool is true

#

set it to false

#

and move the menu

raw jasper
#

Moving menu stuff etc etc should be done outside the interrupt handler

sick apex
#

noted

fossil dawn
raw jasper
#

Only the bare minimum code should be inside an interrupt

#

Because essentially you are under a timer

sick apex
#

yeah i knew that but i totally forgot that i was drawing the OLED in that function

exotic cedar
#

Hey folks, general Adafruit question here. Recently I found when trying to log in a message saying my account is “banned until: indefinitely”. They’ve given me no methods to contest the banning.

I’ve reached out to support@adafruit.com about 3 times in the last month and it’s just a black hole. There is not a phone number on the site I can call to be like ‘yes I’m a human and no I haven’t behaved badly.” Being as my activities on their website consist 100% of reading tutorials and buying stuff I’m very confident blocking was an error.

Anyways, do any of you have advice how to get in touch with a human at Adafruit to restore an unjustly banned account?

late fulcrum
#

Does it actually "banned", or "access denied" or something else? Is there any more information on the screen?

exotic cedar
#

It says banned, just a one sentence statement.

sharp nexus
#

Can i take a function generator and reprogramm it?

sharp nexus
#

It doesnt have waves in it but the output IS perfect

sick apex
#

wdym doesn't have waves in it

#

im lost

#

someone else is probably got a better idea of what you mean

sharp nexus
#

Sine, cos and stuff like that

dusty citrus
#

Make an example, may be helpful

sick apex
#

or water

#

or radiowaves

#

lmao

sharp nexus
#

I understand

#

Basic pro function generator -

#

To show waves because somebody player with the code before

sick apex
#

is this hardware or software?

lucid arch
#

I had 2FA for a while and I go into Microsoft Authenticator app just like normal and now I put in the code and I get the error 'Invalid Authentication Token. Ensure your device's clock is accurate. ' I did change phones since I lasted logged in I think but I'm bringing up my old phone just to try it out.

Any idea or how can I resetup my 2fa

umbral phoenix
#

Adafruit? Account >>> Account Settings >>> Security & Privacy >>> Edit two-factor authentication settings

lucid arch
#

it doesn't allow me to when I put in my password it instantly ask me for my 2fa

umbral phoenix
#

maybe with your old phone, then you can change it

lucid arch
#

didn't work with the old phone auth app either

late fulcrum
raw jasper
#

ha. Looks like another gaming community successfully used "glorbo"

#

I'm surprised the bots haven't blacklisted the word yet

late fulcrum
#

I wondered what that was all about. It didn't occur to me that it's this year's Snowbonk.

#

As I am obviously not an AI, and I exhale carbon dioxide periodically like any other normal human.

glad ruin
late fulcrum
#

Quite.

#

Yeah. I repaired another scope.

rapid geode
#

seems broken still. the lines arent straight.

#

runs

late fulcrum
#

There's very little that's straight in this household...

patent hemlock
exotic cedar
rapid geode
#

possibly banned a range targetted at someone else and you got stuck. have you tried from a different computer on a different internet connection?

#

hmm

exotic cedar
rapid geode
#

yeah probably not relevant anyway, as it says this on login i assume,

tardy badger
#

ISPs sometimes reassign IPs when the do updates. It’s possible you happened to get reassigned a banned IP

#

Which would be odd

#

I remember when my parents had centurylink, any time the power in the area went out, we’d get a new IP which messed up my Minecraft servers at the time

glacial wigeon
#

for my ISP, it tends to reset if the modem is off for an hour i think

tardy badger
#

Yeah, it’s definitely not consistent

glacial wigeon
#

yeah, every ISP runs by diff rules

tardy badger
#

I definitely dislike IP based bans for this reason

blissful roost
#

Ugghh... I'll have to arrange my own internet connection when I move into this new apartment. 😦

tardy badger
#

But I suspect there’s probably something more buggy going on rather than it being a deliberate ban

blissful roost
#

I'm hoping the cable work is already done, but I neglected to check that.

tardy badger
#

Especially if they’re just benign in their overall behavior/interactions

tardy badger
glacial wigeon
blissful roost
#

Sym would be nice, but needs the download speed. 😛

glad ruin
# tardy badger I definitely dislike IP based bans for this reason

IP bans make no sense. They aren't the end-all final nuke ban that "gamers" think they are. IP assignments are dynamic unless you pay for a static IP (this used to be common if you wanted to host a website/server); but today there's no real reason not to use a dynamic DNS service.

glacial wigeon
#

the spammer even spammed an apology, then kept spamming, lol

tardy badger
#

I currently pay for 800 ⬇️/ 25 ⬆️

tardy badger
glacial wigeon
tardy badger
#

Mostly on broader scales than singular IPs though

blissful roost
#

"1130Mbps average download speed
104Mbps average upload speed"

#

Not bad.

tardy badger
#

Like geoblocking IPs from certain regions

#

I’m looking to get a 400Mbps symmetrical link that’s fiber

glad ruin
#

200/50 for me.

tardy badger
#

$70/m rather than $96 from comcrapst

#

1.2TB data cap

blissful roost
#

.... "cap" ???

#

Wassat ?

tardy badger
#

If I used more data than that, they charge me $10 per 10GB over

blissful roost
#

wut... ??

#

O_o

tardy badger
#

Yeah…

umbral phoenix
#

I pay $64/month for 5Mbps DSL with a 150GB cap.

tardy badger
#

Hence comcrapst (comcast)

blissful roost
#

Seems like a scam to me.
Someone should tell them that cables don't have a total transfer limit.

glacial wigeon
#

i think i had 600/300, plus tv and phone

#

my dad talked to the isp, and tried to cancel the tv/phone

#

they somehow talked him into getting a new cable box, 1500/1000, and half the bill

tardy badger
glacial wigeon
#

as far as i know, there is no data cap

tardy badger
#

Though their estimates are always more than what passes into my network server

#

Last month they said I was nearing my 1.2TB cap, network server said it only registered like 850GB of traffic

glad ruin
#

I didn't know ISPs actually applied data caps.

glacial wigeon
#

the problematic part, 1500mbit down, what cables can handle that? lol

glad ruin
#

CAT6

glacial wigeon
#

i think the ports on the router are only 1000mbit

glad ruin
#

Could be.

#

You'd need a router with 2.5Gbps ports.

glacial wigeon
#

an SFP module plugs directly into the router

#

and the fiber runs into that, for the WAN side

tardy badger
#

My Dream machine pro has a SFP+ port

glacial wigeon
#

the router has its own speed-test gui

tardy badger
#

10G SFP+ and 8x GbEth

#

Can do 3.5+Gbps routing which is cool

gritty galleon
#

$65/month 1Gbps symmetric over fiber, no data caps

Yeah the UDM Pro is pretty great

tardy badger
#

Though I used all the neat tools for network security so my max will be 3.5Gbps

exotic cedar
glad ruin
#

I'm going to be getting an apartment pretty soon, and am hoping to have a server there that connects to my server here at home.

tardy badger
exotic cedar
exotic cedar
tardy badger
#

Hmmm

#

I’m not sure outside of that where you could get more attention 🤷‍♂️

ebon dew
#

Just heard a nice sonic boom from the falcon booster re-entry.

lusty fossil
#

Check out this big beefaroni

late fulcrum
#

Or really expensive and fairly slow satellite internet from Hughes

tardy badger
late fulcrum
#

Given that I live in a valley, point to point wireless would be tricky. While there is an AT&T site at a peak near here, they have zero interest in dealing with small customers.

#

I do have enough land to put up a tower, and I live in the land of data centers. There's a major fiber trunk that runs across the street from me, but nobody is offering fiber hookups (due to an old political agreement that basically gives the existing providers monopoly status)

tardy badger
#

If you can find a data center willing to let you rent a space in their roof and a small chunk of bandwidth, you could set up an internet cooperative with your neighbors

late fulcrum
#

Heh, I've dealt with Ubiquiti before, I'm not eager to do so again

#

The problem is the data centers are east of the ridge, and we're west of the ridge.

south light
#

Most of the ubiquiti gear can be flashed with OpenWRT if that helps in any way

late fulcrum
#

It would probably be easier to just move to Vermont where I can get 10Gbps FTTH

#

There is a local coöperative in the process of starting up (I'm supporting them), but their first deployments won't be until next year at the earliest, and I'm probably not in their initial service area.

tardy badger
#

They are significantly better than they were

late fulcrum
#

About a year and a half ago, when I was extending wireless coverage to the yard to run security cameras. Or at least, I was trying to do so.

tardy badger
#

I’ve done that

#

Fairly straightforward with their nano beams

#

And I was doing that in 2017/2018

late fulcrum
#

I was using a NanoStation locoM2 and it really wanted to use its own nonstandard protocol.

tardy badger
#

Sorry nanostation

#

Nano station just uses a beefier 802.11ac protocol, as do most point to point setups consumer accessible

late fulcrum
#

Admittedly, it might have been easier if I was using Ubiquiti at both ends, so they could agree on their own proprietary modulation, but I had standard WiFi clients that were ... unhappy with the signal provided.

tardy badger
#

That’s not necessarily a feature of Ubiquiti but unnecessary regulations by the FCC from ye olde times of television

late fulcrum
#

My next security camera deployment will probably be a wired one.

tardy badger
#

The FCC unfortunately takes a layered approach to regulation, not really getting rid of old stuff and layering on new stuff

late fulcrum
#

If they'd only get off their duffs and regulate phone scammers. They stood up the Robocall Mitigation Database, and now require phone companies to not connect calls from networks that aren't on the database. But they're not updating the database...

tardy badger
#

Here’s one point to point Ubiquiti install

#

Did PoE pass through

#

To do the PoE pass through I had to have a Loco M5 on the camera side, and then just used an M2 on the building side

tardy badger
keen sparrow
#

Good morning, I'm building a retropie handhelds and was wondering what components to buy? I already have a pi 4 and pi pico for controls

keen sparrow
#

I did not. I will look at it

fair summit
#

there are some other Retro Pi - related guides too; worth searching

keen sparrow
#

Are those guides also on the site?

fair summit
#

there are several thousand guides on our site (not all retro pi 🙂 )

keen sparrow
#

Thanks very much!

valid marsh
#

on a side note, I really with retropie wasn't so awful from a UI perspective

#

literally every single function you need to access is on a CLI ascii program...

#

for all the effort that's gone into making an admitedly quite pretty front-end, I can't help but think a tiny bit more would have allowed that frontend to actualy be used to access all the functions it simply points to.

I know, open source, if you want beter do it yourself and contribute etc (and if I was any ghood at the frameworks that retropie uses I proabbyl would)

tardy badger
#

Biggest drop of Pi 4 8GB as of recent

#

Over 1000 units

valid marsh
#

still too pricey for my likes

#

twice the price of the 2GB for extra RAM

#

it bodes well for future supplies tho...maybe we'll finally see a 4A

violet parcel
#

I like the smirk and the in-built provocation of "Im a cat catch me if you can"

glad ruin
#

😼 owosneakycat

sick apex
#

first proper Arduino sdk project

#

headphone warning: music is playing

#

the arrow indicates a sub menu, no arrow means it's an application of some sort

sharp nexus
#

Hey guys, I need to redesign a howland current pump, any advice? 🙂

#

I need it to tolerate +-30V and output +-3mA at aby DAC 🙂

late fulcrum
#

What's your power supply voltage?

sharp nexus
#

+-24V

#

Easy, reliable and stable

late fulcrum
#

You aren't going to get ±30V from a ±24V supply

raw jasper
late fulcrum
#

While it's possible to use a boost converter, that becomes the "power supply" at that point, as far as I'm concerned.

#

I'm guessing you'd need some sort of bipolar boost converter as well, in which case it may be easier to just have a single supply powering a boost converter producing the positive and negative voltages, instead of two separate boost converters, one for positive and one for negative. But I'm less sure about that.

sharp nexus
#

Sounds amazing but back to the Basics under the situation that i have +-24V and want to convert it to +-3mA

tardy badger
#

In the context of circuits that is

#

Current = Voltage / Resistance for linear circuits.

#

But trying to go from a voltage source to a current source would not be smart.

#

It’s better to provide a set voltage like 24V and regular down to the lower voltages you need and let the circuit draw up to the current it needs.

#

Constant current sources generally are good for things like LEDs

#

Rechargeable batteries also require constant current sources

#

Unless a part specifies needing a constant current source, don’t use it

#

I highly suggest looking at learning an introductory circuit analysis course, something like Khan Academy. It’s going to provide some important fundamentals that are important for circuit design. And it will give you some tools like ohms law, kirchoffs laws on voltage and current.

keen sparrow
#

Is there a 5v power distributor pcb out there I can use for a portable pi?

tardy badger
keen sparrow
raw jasper
keen sparrow
glad ruin
#

I've said this before and I'll say it again: RPF really needs to rethink their power design. 5V over USB isn't enough over cable lengths beyond ~1m.

glacial wigeon
#

12v over usb-c, problem solved

#

but that adds to the board cost

#

oh, right, and more direct conversion...

#

the DS9121 is being used in some models to generate the cpu core voltage...

#

dang, 5.5v max input

#

the MX7704 is also used on other rails...

tardy badger
glacial wigeon
#

5.5v again

tardy badger
#

But still not great

glacial wigeon
#

so you cant just 12v->3.3v

glad ruin
#

They are drawing more power than is reasonable at 5V without sense lines to make sure there's actually 5V reaching the board.

glacial wigeon
#

yeah, i keep saying, more things need sense lines

#

but everybody is being an idiot, and just sets the psu to 5.1 or 5.4v

glad ruin
#

5.1 or 5.2V is fine. I'm pretty sure 5.4 is out of spec for USB.

#

They need to either dump USB power and use sense lines, or use USB-PD and negotiate something >5V.

glacial wigeon
#

the problem is when people just keep cranking the voltage, until the pi gets 5v

#

but when idle, it gets too much

#

just use sense lines!!

glacial wigeon
#

get your standard 4 core usb wire (power+data)

wire the data pair to the power pins!!

tardy badger
glacial wigeon
#

reuse data as sense 😛

glad ruin
raw jasper
glacial wigeon
#

if its a power brick, it had no use for data

raw jasper
#

Yeeeeah, and when the user accidentally connects their phone in

glacial wigeon
#

so you just wire both power and data, to the + and gnd at the usb-c/micro-b port

#

and boom, your now getting 5v at the connector

glad ruin
raw jasper
#

And the phone tries to negotiate with the "data lines"

glacial wigeon
#

dont connect power to the data pins

#

reuse the data WIRES for sense wires

glad ruin
#

In USB-C it's the CC lines.

tardy badger
glacial wigeon
#

at the usb connector, solder both power and "data" wires from a standard usb cable, to the power pins

tardy badger
#

350mV drop over 5m for a typical cable

glacial wigeon
glad ruin
glacial wigeon
#

if its a power brick, there is no actual data going on

#

just the resistors for normal charge signalling

glad ruin
#

Yes, but what happens when you connect a device expecting data on the data pins?

glacial wigeon
#

nothing, same as when you connect a normal charger

#

because the "data wires" are not on the data pins

glad ruin
#

Also, having additional components like that defeats the purpose of a sense network.

glacial wigeon
#

i think youve missed what i said to do

glad ruin
tardy badger
#

Texas Instruments has a application note that states 5V +/-5% for USB

glacial wigeon
glad ruin
#

That takes away a lot of versatility, plus it doesn't work for anything beside that specific brick.

glad ruin
#

The last thing anyone needs is out of spec USB hardware.

glacial wigeon
#

basically, use 4-core usb wire in this cable

#

but reuse the data pair, as a sense pair

#

now you always get perfect 5v at the connector

#

the device at the connector will notice no changes

#

the voltage will just be better

glad ruin
#

I understand what you are saying, and I disagree. If you are going to set up a connector with sense wires, it should not be USB.

glacial wigeon
#

yeah, the limit with my trick, is that its only sensing at the back of that first connector

#

so if you add extensions, it wont help

raw jasper
glacial wigeon
#

and then you need a new spec, for extending the sense wires

glad ruin
#

Or... just run at a higher voltage and regulate onboard like everyone else. Don't get me wrong, I absolutely love having sense lines, but it isn't necessary here.

glacial wigeon
#

yeah, thats just using PD to ask for 12v, and buck-regulating down

#

and assumes you can boot enough to speak PD, while on just 5v

#

or just go old-school

#

barrel jack and 12v, lol

tardy badger
#

I prefer mind powered

blissful roost
#

I built a USB PDU a few years, for my solar setup.

#

I have to supply that with 5.25v, because of the power drop.

glacial wigeon
#

linear or switching? per port or shared?

blissful roost
#

Shared, not sure about the first part. 😛

#

I'm using a DC/DC converter, to step-down from 12v.

glacial wigeon
#

12->5.25, and then exposing 5.25 over usb?

blissful roost
#

The output on the ports is only 5v

#

The input needs to be higher to compensate for the drop.

glacial wigeon
#

ah, then there must be another regulator inside that

blissful roost
#

There is a capacitor on the PDU.. I think that's causing the drop.

glad ruin
glacial wigeon
#

yeah, thats a shortcut

glad ruin
#

Regardless it's a poor design.

sick apex
#

i've just realised that all the work i've done isn't actually going to work

#

i dont think

#

can someone just confirm or deny

#

here is the menu

#

it mainly relies on pointers

#

and i want the applications to display as menus

#

so say i open up an SSID Scanner application

#

is shows each SSID it finds as a menu item

#

then i can open that menu that it generates

#

to get a list of actions i can do to that SSID

#

but when i do this ```cpp
#pragma once
#include "../../Application.h"
#include "../../../Menu/Menu.h"

namespace Wifi::SSID_Scanner {
constexpr auto Type{EApplicationTypes::Wifi};
void Run();
inline Menu* SSID_List = new Menu("SSID List", true);
}```

#

i get a core panic (store access fault)

rain cradle
sick apex
#

yes

#

anyways im not going to be able to predetermine how many SSIDs it picks up

#

so i cant just create that many pseudo item pointers to do it

#

so im always going to get the register and stack dump

#

right?

#

or is there something im missing

sick apex
glad ruin
#

It's pointers all the way down. Page tables are a thing.

sick apex
#

what are they

#

idk

#

im lost

fossil dawn
#

maybe you could dynamically generate menu items? Like when scrolling down generate the next page

raw jasper
# sick apex would that make it work

I think the esp32 has a line by line debugging facility. I'm not sure whether that'd work w/. arduino, but you could use it to troubleshoot what's going on in your code

sick apex
#

which i lack

sick apex
raw jasper
sick apex
#

so its structured like i have a generic Menu pointer

#

which is the current menu

#

so i can handle everything generically

#

to do with the menu

#

that works fine

sick apex
fossil dawn
#

maybe some callback function 🤔

sick apex
#

i've spent hundreds on equipment so far

#

and i have thousands to spend on it so if i need to buy one i'll get one

#

i dont really care, money is useless to me atm considering i dont pay rent kekwarp

#

omg you gave me an idea

fossil dawn
#

RP2040 = ❤️ because you can use a second RP2040 as debugger for only 4€

sick apex
#

yes exactly

#

what if i use one of my picos

#

to debug

#

would that work?

#

some like jtag interface binary must exist that translate jtag to the PC on the pico

raw jasper
#

If it can provide a usb to jtag bridge, it can probably do it ;)

fossil dawn
#

No idea. I've also been kinda curious (but not curious enough to actually look it up) if you can use picoprobe with other MCUs 😆

sick apex
#

well it must be able to because picos can debug other picos

#

i assume its over JTAG

#

and its interfaced with the pc over usb

sick apex
#

oof

#

that ruins my idea

#

screw it

#

amazon time

raw jasper
#

hmm

sick apex
#

i'll try this first

#

i dont have the pico sdk installed so i beg that there is a precompiled uf2

#

omg there is

raw jasper
#

I just love the photograph, with a $4 pico being used to debug a probably $1k+ Xilinx Zynq FPGA (board)

sick apex
#

ah crap

#

i dont have another micro usb cable

#

im just gunna buy a jtag debugger

raw jasper
#

hah. Looks like this board goes for ~200$

sick apex
#

😭

raw jasper
#

Cheaper than a microUSB cable?

#

:P

sick apex
#

i probably have one somewhere

#

i just dont know if i do

#

i brought one

#

when i got my first pico

#

that was it

#

now i have 3 x esp32s

#

an esp32c3

raw jasper
sick apex
#

a pico w

fossil dawn
sick apex
#

a pico H

#

i have too many

raw jasper
#

Dialect? :P

sick apex
#

but the esp32 is ARM

rain cradle
#

nop

fossil dawn
raw jasper
#

esp32 is xtensa

sick apex
#

lemme find a micro usb cable

#

oh, i have an arm compiler

rain cradle
#

XTensa and RiscV(C3 iirc)

sick apex
#

i guess they just work i guess?

#

idk

raw jasper
#

It's the new trend with chips coming from the Mainland

sick apex
#

it's times like these when i wish i had usb c micro controllers

worn elm
#

Howdy folks. I signed up for 2fa a while back but I'm not clear on what the forum wants me to do to login now.

sick apex
#

i have like 10 usb c cables

rain cradle
sick apex
#

i found one

sick apex
fossil dawn
#

that's a lot (i've read that as roman numerals)

sick apex
#

also i found a micro usb

#

i have 10!

#

lmfao 😭

fossil dawn
#

that's a lot (I've read that as factorial)

raw jasper
#

Hilbert USB port

sick apex
#

3628800

blissful roost
sick apex
#

alright so i have the jtag thingy

#

but i dont know where or how to connect things

#

i plugged everything into the pico

#

where it should be

#

ah crap

#

im using the jtag gpio pins for something

#

already

#

ugh

#

wait

#

am i

#

im confused

#

this diagram is confusing

raw jasper
# sick apex

Your board doesn't seem to be exposing the JTAG GPIOs over there?

raw jasper
#

You need GPIO12, 13, 14, 15

sick apex
#

ohhhh

#

so which pins do i connect

raw jasper
#

I don't see those GPIOs on the pinout your posted

#

Does your board have a JTAG header somewhere?

sick apex
#

ohhhhhhhhh

#

it should be gpio 10

#

but there is only one

raw jasper
#

JTAG is not a 1-wire protocol

sick apex
#

i know

#

if you look

raw jasper
#

o_o

sick apex
#

coincidentally the pins i use to navigate my menu

raw jasper
#

aaah

#

it's a esp32-c3

#

Not plain esp32

sick apex
#

yes

fossil dawn
raw jasper
#

Yeah, the pins are correct

#

lol sorry :(

sick apex
raw jasper
#

Yeah, you can't use those pins while using jtag

sick apex
#

kekwarp that was terrible

#

i'll see myself out

sick apex
#

i should be able to just

#

switch the wires elsewhere

raw jasper
sick apex
#

they're all digital read so its not like i have to use them

sick apex
#

so i cant find runtime errors that occur outside of the main menu

raw jasper
#

Why not call the function that messes things up directly?

sick apex
#

i'll just move them

fossil dawn
sick apex
#

i dont need to

#

the moment i compile with that one line of code

#

i get hit by a train of core panic

sick apex
fossil dawn
#

not sure what exactly is possible with such debuggers

#

but I think I could just set any variable to any value 🤔

sick apex
#

im using platformio, im not too familiar with the debugger

#

its openocd

#

but i dont know how to use it

fossil dawn
#

same 😆

sick apex
#

this is what i have

glad ruin
#

Gotta be careful when you do that though because it is very easy to put the entire program into an invalid state if that variable affects the execution path.

sick apex
#

then i get this

#

undefinedC:\Users\user.platformio\packages\toolchain-riscv32-esp\bin\riscv32-esp-elf-gdb.exe: warning: Couldn't determine a path for the index cache directory.

Reading symbols from c:\Users\user\Documents\PlatformIO\Projects\ESP32-C3.pio\build\esp32-c3-devkitm-1\firmware.elf...
PlatformIO Unified Debugger -> https://bit.ly/pio-debug
PlatformIO: debug_tool = cmsis-dap
PlatformIO: Initializing remote target...
Open On-Chip Debugger v0.11.0-esp32-20220706 (2022-07-06-15:48)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 5000 kHz

Info : tcl server disabled
Info : telnet server disabled

#

wait why tf is it using telnet

#

that's like the most insecure protocol ever

raw jasper
#

It doesn't matter if you only bind to loopback ;P

#

Besides, it's disabled :)

sick apex
#

i cant figure this out

raw jasper
#

Where does it err for you?

sick apex
#

i dont think it does error

#

it doesn't look like an error

late fulcrum
sick apex
#

then again

#

it hasn't init my OLED

#

oh yeah

#

because im being railed by stack dumps

raw jasper
fossil dawn
sick apex
#

which goes where

#

im lost

#

they have different names

sick apex
#

thank you

#

so i only need those 4

raw jasper
#

* four

sick apex
#
  • Thoes
  • Four
#

gramer

#

lmfao

raw jasper
#

Connect Reset too

sick apex
gritty galleon
raw jasper
sick apex
#

omfg it works

raw jasper
#

Congrats!

sick apex
#

the rst button goes to EN

gritty galleon
#

There is, it's called EN

sick apex
#

if that's what you mean

#

thats what i said

gritty galleon
#

yeah sorry I hit return between your messages

raw jasper
gritty galleon
#

EN is the opposite thing, it just means "ENable"

tardy badger
#

There also isn’t technically a “reset” pin on the rp2040. It’s labeled “run” on the pinout

sick apex
#

i was confused

tardy badger
#

But it is functionally reset

raw jasper
gritty galleon
sick apex
#

well it did work

#

until i connected rst

#
undefinedC:\Users\user\.platformio\packages\toolchain-riscv32-esp\bin\riscv32-esp-elf-gdb.exe: warning: Couldn't determine a path for the index cache directory.

Reading symbols from c:\Users\user\Documents\PlatformIO\Projects\ESP32-C3\.pio\build\esp32-c3-devkitm-1\firmware.elf...
PlatformIO Unified Debugger -> https://bit.ly/pio-debug
PlatformIO: debug_tool = cmsis-dap
PlatformIO: Initializing remote target...
Open On-Chip Debugger  v0.11.0-esp32-20220706 (2022-07-06-15:48)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.org/doc/doxygen/bugs.html
adapter speed: 5000 kHz

Info : tcl server disabled
#

error

raw jasper
raw jasper
sick apex
#

now its broken again

raw jasper
#

I guess you could restart it?

sick apex
#

im gunna clean it

#

then run a debug build

#

i just replugged the rpi

fossil dawn
gritty galleon
#

Or you can try JTAG over USB and not worry about the pi or any GPIO connections

gritty galleon
fossil dawn
#

sick apex
#

my pc fans are blazing rn

fossil dawn
#

#

🥳

gritty galleon
#

ū

sick apex
#

what this mean

gritty galleon
#

"Target disconnected.: Success" is peak computer message

sick apex
#

im lost

#

it worked

#

then i plugged rst in

#

then it broke

#

then i unplugged rst

raw jasper
sick apex
#

and now its broke again

raw jasper
#

I guess windows, the raspberry pico "JTAG Adapter" or the platformio debugging stack, or some combination of the three are unreliable

sick apex
# raw jasper

i think its because my PC doesn't have the drivers

raw jasper
#

I don't think you'd need drivers for that?

#

I wouldn't know. I do all my embedded stuff on Linux

#

🐧

sick apex
#

fair

gritty galleon
#

And if you did need drivers it would never have worked even before you connected reset

sick apex
#

oh yeah good point

fossil dawn
#

or windows installed the correct driver at the first connect. At the second connect it noticed its mistake and quickly fixed everything by installing the wrong drivers 😭 Happens to me all the time

sick apex
#

im gunna reduce the debug frequency

#

check if that works

raw jasper
#

yeah, that can help, especially with kludgy stuff like this

fossil dawn
raw jasper
#

perhaps you need to "reset" the esp32?

#

Like, plug it out and back in?

sick apex
#

done loads

sick apex
#

but its worth a shot

#

with the reset button

#

or like

#

bootsel

#

i did both

raw jasper
#

......restart your computer? Running out of ideas tbh :P

sick apex
#

maybe

#

i'll restart vs code

#

first

#

also someone needs to make a ghidra x vs code extention

raw jasper
#

Since you already have the code, I cannot imagine why you'd need ghidra

sick apex
#

its useful

#

it helps me figure out how other things work

#

i dont mean for my stuff

#

but i hate loading it

#

its ugly asf

#

i'd prefer to be able to open an exe with vs code

#

and see the asm or c code

#

like that

#

idk

#

maybe im weird

raw jasper
sick apex
#

ugly as frick

#

alright im gunna watch dave garage's video cause i know he uses platformio and he has a video on jtag debugging

sick apex
#

i have to install winusb

#

to enable ftdi

#

jtag debugging

raw jasper
#

o.o

sick apex
#

i already have them installed from a previous project

#

so it must have picked them up

#

then gone ah no this isn't a usb device

#

have no driver instead

raw jasper
#

windows is strange

sick apex
#

i agree

#

if i could i'd use linux

#

but i teach unreal engine, which does not play well with linux

#

at all

tranquil swallow
#

I keep windows around for the edge cases

sick apex
#

and i have to use my PC and i really cba to duel boot

#

i just use wsl if i need linux

tranquil swallow
#

Linux is for pleasure and Mac is for everything else

raw jasper
#

makes sense :)

raw jasper
glad ruin
tardy badger
glad ruin
#

That's still just an active low reset, unless pulling it low still preserves the system state.

tardy badger
#

Nope lol

raw jasper
#

then... it's just an active low reset...........

glad ruin
#

No, it's active high run.

sick apex
#

i have spent so long trying to make the pico work with jtag debugging again

#

and it still isn't working

#

it worked the first time

burnt pine
#

Where's the best place to submit product feedback and suggestions?

glacial wigeon
sick apex
#

but now i cant

#

and i dont think the esp32 has SWD

glacial wigeon
#

ah

#

do you have a scope or logic analyzer?

sick apex
glacial wigeon
#

a second pico?

sick apex
#

i have 2 picos

glacial wigeon
#

you can configure one pico as a logic analyzer

#

and then snoop on the jtag traffic, to debug that

sick apex
#

but only one has pins

sick apex
#

its openocd

#

that's being weird

glacial wigeon
#

ah

sick apex
#

it just doesn't connect

#

i was using dirtyjtag

#

and it worked

#

once

#

then i was told to connect a reset pin

#

i did that

glacial wigeon
#

ive always used the sysfs_gpio or rpi_gpio driver in openocd

sick apex
#

and it hasn't worked ever since

glacial wigeon
#

and just bit-banged the jtag directly from the pi

sick apex
#

even after disconnecing it

#

im just gunna give in and buy a mf esp prog

#

i swear

glacial wigeon
#

does the pico show up as a storage device, when you hold the bootsel button?

sick apex
#

yes

glacial wigeon
#

then its not cooked

sick apex
#

then i drag dirty jtag onto it

#

and it does its business

#

but what confuses me

#

is that windows doesn't give it a driver

#

i tried using zadig

glacial wigeon
#

open up device manager, and look at what device shows up, when you plug it in

sick apex
#

to install something

glacial wigeon
#

right click, properties, tags i think it was? last tab

sick apex
#

i cant figure out which driver it wants though

#

events?

glacial wigeon
#

details

sick apex
#

aight

glacial wigeon
#

what other properties are there?

#

there should be one showing a vid/pid

sick apex
#

thse are all the options

glacial wigeon
#

hardware id's i think?

sick apex
#

what does the hardware id gotta do with anything

#

its the ID of the board

glacial wigeon
#

that tells you which driver is needed

sick apex
#

it has no driver

glacial wigeon
#

yep there, 1209:c0ca

sick apex
#

yes

glacial wigeon
#

which is also what shows up in the source

sick apex
#

yes

#

what about it

sick apex
glacial wigeon
#

no

#

depending on build options, it will either show up as a single vendor device
or a vendor+serial port

sick apex
#

im installing libusbK

#

i'll see if that works

glacial wigeon
#

openocd uses libusb to just talk directly to it

#

so, you need a copy of openocd, that was build with libusb and dirty-jtag support

sick apex
#

and where would i find one of those

glacial wigeon
gritty galleon
gritty galleon
#

The only requirement is that the C3 revision is greater than 0.3

gritty galleon
#

the bootloader messages that the C3 outputs when it boots will show the revision number. You watch them in a terminal window set to 115200bps

sick apex
#

ah

gritty galleon
sick apex
#

that isn't chopped up

gritty galleon
#

why do you think you need to chop up a USB cable?

sick apex
#

i chopped one up earlier

#

but its confusing

sick apex
#

and D+ to pin 19

glacial wigeon
#

i once decapitated a usb cable, just by dropping a 12v battery on it

#

nice clean cut, looked like it was done with scissors, lol

gritty galleon
#

The USB port on your ESP32-C3 is almost certainly already wired that way

glacial wigeon
#

i'm lucky that wasnt my foot

gritty galleon
#

you shouldn't need to do anything but plug the USB cable into it

sick apex
#

then why the fffffffffffffffffffffffffff did it tell me to that

glacial wigeon
#

what said you need to do that?

sick apex
#

i've been trying to debug this little mf for about 5 hours now

#

its 4:30 am almost

#

lmao

#

i swear why is the openocd website so mf confusing

#

where the is the source code

#

to build

glacial wigeon
#

the big button that says getting openocd

sick apex
#

its weird

#

why cant it just use github

#

like everyone else

#

who tf uses sourceforge

glacial wigeon
#

because they decided to use sourceforge

gritty galleon
#

Sourceforge predates github. OpenOCD has been around for a long time. GDB even longer.

sick apex
#

then why it still on version 0.10.0

#

or whatever it said

#

tbf i wasn't paying attention that might be some other thing that said that it would let me debug my controller

sick apex
#

and apparenly there is an error

#

Teasip in their cfg files

#

C:/Users/user/Downloads/openocd-esp32-win32-0.12.0-esp32-20230419/openocd-esp32/bin/../share/openocd/scripts/target/esp_common.cfg:4: Error:
at file "C:/Users/user/Downloads/openocd-esp32-win32-0.12.0-esp32-20230419/openocd-esp32/bin/../share/openocd/scripts/target/esp_common.cfg", line 4

glacial wigeon
#

and what is the contents of that file?

sick apex
glacial wigeon
#

how did you run openocd? is the include path set to include the scripts dir?

sick apex
#

the rest are env vars i think

glacial wigeon
#

what CLI args did you launch it with?

#

openocd -s /home/pi/openocd/tcl/ -f rpi4-to-rpi1.tcl
ive ran it something like this before, so you need a -s pointing to that scripts dir

sick apex
#

exactly what it told me to

#

openocd -f board/esp32c3-builtin.cfg

#

i just deleted the catch line

#

that worked

#

other people did that too apparently

#

now i just got Error: esp_usb_jtag: could not find or open device!

#

probably because its in use atm by the serial monitor

#

nope

#

Open On-Chip Debugger v0.12.0-esp32-20230419 (2023-04-18-22:02)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : only one transport option; autoselecting 'jtag'
Info : esp_usb_jtag: VID set to 0x303a and PID to 0x1001
Info : esp_usb_jtag: capabilities descriptor set to 0x2000
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Error: esp_usb_jtag: could not find or open device!

#

its because you have to cut up a USB cable

#

i knew it

glacial wigeon
sick apex
#

you need to use pins 18 and 19 for D+ and D-

#

also it wont connect normally

glacial wigeon
#

and which website was that on?

sick apex
#

it says it in the expressif docs

#

somewhere

#

nevermind

#

im so lost

#

i followed every step

#

exactly

#

and it isn't working

timid wave
#

Hey guys 👋

so this is a power meter + logger I made using Pi Pico + INA219 current sensor + SSD1306 display +SD card holder

On display, it shows Voltage, Current and Power in first three rows
On bottom row, the first section shows time since power up, the second section shows if SD card is present or not (if SD card is present , it just shows SD as shown, if SD card is not present, it shows SD), the third section shows the battery voltage, so you get a rough idea of when to charge this thing

the time since power up/reset is the time for which data is being logged to SD card. I used Pico's on board RTC for this purpose and is accurate for upto 30 days (Which is totally not necessary 😂 )

the current sensor can measure upto 26V and plus minus 3.2A

The voltage, current and power get logged to SD card along with the timestamp

I am gonna mount everything on a prototype board. Do you guys have any suggestions as to which some feature i can add or smth ??

If you guys want , ill share my code and wiring (its really simple so idk if someone actually wants that 🤷‍♂️ )

Let me know if you have any improvement suggestions 😄

random ether
#

Hello, I have a question, I am currently using Adafruit HDMI 5" Display Backpacks - Without Touch [ID:2232] and am looking for a compatible video player. Does anyone know of one? I currently have a Sprite player, but it is not compatible and does not output video to the display.

patent hemlock
random ether
limpid sedge
#

how can i mount RFM9X LoRa? it doesnt seem to have screw holes

ebon dew
#

@limpid sedge which one? the stand alone module or breakout?

#

the feathers have mounting holes so i'll assume you mean the breakout.

#

generally, the breakout is designed for breadboard use. for permanent mounting use a 3d printed enclosure or some other type of hand made enclosure.

late fulcrum
#

There are board edge clips available

ebon dew
#

if you use the sidelaunch sma then you can drill a hole through an enclosure and the antenna becomes the mounting point

#

if you use the ufl connector to sma then throw it in a little plastic box, drill a hole, and attach the antenna.

#

the breakout is really designed to a breadboard prototype for designing your own pcb, when you have the prototype working then you order just the module and add it to your PCB

#

if that's not your goal then it's best to get the RFM95 Feather instead.

limpid sedge
#

part number 3072/3073

ebon dew
#

Yup, then my advice was on point.

rapid geode
#

keycap 3d printed parts in the mail. yaaaay.

#

haha

#

soon i will conquer the world

ebon dew
#

one keycap at a time, sounds like a plan.

limpid sedge
ebon dew
#

You can design your PCB with through holes, you can use the breakout to drop into a PCB as well, just need to ensure the through holes are correctly spaced.

limpid sedge
ebon dew
#

would be the same as stacking feathers. as long as the through hole spacing is the same you can stack them. so you'd stack the module right onto your pcb.

limpid sedge
#

good to know, and also if i want to make a final stage pcb, and end up using just the module, I need other supporting componenets right, like whatever else is on the breakout also goes on my pcb?

ebon dew
#

yes and can add whatever other peripherals you might want, that's the benefit of designing your own pcb, make it however you want.

limpid sedge
#

or do i need resistors and capicitors and other stuff

ebon dew
#

the benefit of the feather is that it's got a lot of great features already on it including lipo battery charging, ldo, lots of GPIO, stemma, etc..

#

if using the module itself you would want to replicate what the breakout schematic has at the very least for powering it safely.

#

referencing what the rfm95 feather schematic does would be a good idea too

#

because the rfm95 feather uses the module not the breakout 😉

limpid sedge
#

ok

#

good to know thanks!

#

im making prototype rn so using breakouts,

#

ideally wanna make final one smaller cause breakouts waste space

ebon dew
#

for more help with hw design i recommend asking in the #help-with-hw-design they specialize in hw design in there. 😉

tardy badger
#

I decided to revisit my SAMD51P19A board because i couldn't get it to show up before.. fresh board and now it's programmed with a USB UF2 bootloader.

#

feels good. nearly a year later

limpid sedge
#

does adafruit sell antennas to use with LORA 915Mhz radio and the side mount SMA kit?

#

915 MHz LoRa compatible antenna basiclly does adafruit sell this?

raw jasper
tardy badger
#

yes

raw jasper
#

Alright, got a datasheet. Thanks! :)

tardy badger
#

finger hit the 2 instead of a 1

#

unfortunately the chip is out till at least april next year

#

because it's the TFBGA package

raw jasper
#

oof, you managed to solder that?

tardy badger
#

yeah 🙂

#

2 layers too

raw jasper
#

it still has atmel branding. Interesting

tardy badger
#

yeah

limpid sedge
#

what is a uFL antenna that works with LORA 915mhz?

clever reef
#

so is the keeboor basically a pico but in the pro micro footprint?

sick apex
#
Serial\.(print|println)\((.*?)\);``` this regex has saved my sanity when deleting my Serial.print statements
#

hopefully it will be useful to everyone else aswell

#

if you're using vscode anyways you can find and replace with regex

#

replace all and boom

raw jasper
#

Would you like to learn about our lord and savior, vim? :P

sick apex
#

i'll stick to vscode

#

lmao

#

i tried vim

#

i couldn't get out of it

#

now i know how to

#

but still

#

i was stuck in vim for like an hour

#

lmfao

raw jasper
#

It's really powerful if you get the hand of it

sick apex
#

fair

#

im still stuck

#

with that one thing

#

i cannot figure it out

#

for the life of me

raw jasper
#

Have you tried taking a break? ☕

sick apex
#

but thank you

#

you inadvertantly gave me an idea

#

i have a Menu pointer which is defined in the menu class

#

instead of creating a new menu

#

what if i just

#

take the current menu

#

wait actually

#

im gunna need your expertise here

#

to tell me if this will break or not

#
Menu* CurrentMenu;
#

i have that

#

then say i want to create a new menu

#

my menu takes a pointer to a menu

#

so if i did this

#
CurrentMenu = new Menu("menuName" (bool)DisplayHeader, CurrentMenu);```
#

would that break

#

or would it pass the pointer to what current menu is currently pointing to

hard estuary
sick apex
#

is it possible to brick the bootloader on an esp32

#

first off actually, is it possible to modify the bootloader

gritty galleon
#

The first stage bootloader on an ESP32 is in ROM. It is not possible to brick it or, in general, an ESP32. It loads the second stage bootloader from flash. It's easy to damage the second stage bootloader, but if you do you can just re-flash it. What the second stage bootloader does and how you do that completely depends on the system you're working with (in CircuitPython it's a UF2 loader that makes the ESP32 appear as a flash drive to the host computer; in Arduino and ESP-IDF it's a stub that loads a bigger application from flash).

You can damage an ESP32 in a variety of mechanical and electrical ways, but not through software. You can permanently program an ESP32 to only run applications that are cryptographically signed, but you're probably more likely to spontaneously change into a cat than do that accidentally.

raw jasper
#

(I mean, you can also do that with UEFI, but it's kinda more involved, and I think it isn't possible in some systems?)

gritty galleon
#

You burn an RSA-3072 public key into the ESP32 using efuses. The ESP32 verifies the second stage bootloader using the key. You generate the key yourself (pretty sure Espressif provides a utility to do this for you)

#

I've only encountered one device in the wild that was using this - Amazon's "Smart Air Quality Monitor"... unfortunately it by default disables JTAG. Folks at my hackerspace were hoping to run their own code on it, but no such luck. I'm sure others do use it but I can't see hobbyists going anywhere near it.

#

(to be honest I've never calculated the odds of spontaneously turning into a cat... 😉 )

raw jasper
gritty galleon
#

yeah!

raw jasper
#

Thanks for the info. I can't see me using it any time soon, but it's nice to know

#

(I don't even own any esp32 :P)

glacial wigeon
#

bcm2711/rpi4 secure-boot is a bit dumber

you can create your own rsa2048 key, but that public is stored in external SPI flash
the sha256 (512 bits) of that public key is burned into fuses

the 2nd-stage loader, is then signed by a different rsa2048 key (RPF's key)

gritty galleon
#

I have a whole bucket of various ESP32s, most of my embedded controller work is with them mostly because they're so cheap and easy to get and have built-in wifi

glacial wigeon
#

so, the rom validates the 2nd-stage with a 3rd-party key

that 2nd stage then verifies the user key via a hash in fuses
the 2nd stage then verifies the next stage with the user key

gritty galleon
glacial wigeon
#

yeah

#

from what ive seen, the biggest feature of the esp32 lineup, is the MMU before the XIP

#

so you can store 2 conflicting binaries in flash, and the MMU maps them to whatever addr they are compiled for

#

allowing you to do an A/B boot setup

raw jasper
#

Since it has an MMU, you could technically run some sort of UNIX on it.....

gritty galleon
#

it's not much of an MMU

#

pretty sure someone did get a really stripped down kernel running on one though

glacial wigeon
#

hey, ive ran nommu linux on a treo 650 before!

#

an mmu isnt required!

raw jasper
gritty galleon
raw jasper
#

ha. Minix runs everywhere

#

(thanks intel me!)

gritty galleon
glacial wigeon
gritty galleon
#

uhhhh someone wrote a RISC V emulator for the ESP32 and booted RISC V linux in it 🤣

glacial wigeon
#

so, if you want secure-boot, you must use the closed-source 2nd-stage binary

#

but by default, the rsa validation is disabled
and only hmac-sha1 validation is used

raw jasper
#

I mean, if you seek secure boot, using the closed-source binary probably is not your concern :P

glacial wigeon
#

its trivial to dump the hmac keys, and then sign your own binaries

raw jasper
#

Now they can try doing it natively on the new esp32! :P

glacial wigeon
#

for the current rpi4 firmware, the 2nd row (all of the .bin files) is verified with hmac-sha1 by default, but those keys are easily dumped

gritty galleon
glacial wigeon
#

there is a fuse to flip on rsa2048 validation, and 4 fuses to independently revoke the 4 rsa2048 public's in the rom

#

the 0th key was used to sign blobs that lack secure-boot, so the official directions say to revoke that key

#

when an official bootcode.bin detects that rsa validation is enabled, it will then enforce the rest of the security chain
validating the user rsa2048 hash against fuses, and that you have a signed boot.img + boot.sig on your fat partition

#

and all future files, are loaded from boot.img (fat32, in a file, on fat32, lol)

raw jasper
glacial wigeon
#

but internal files (from SPI flash), like bootmain.elf, have the expected hash baked into the bootcode.bin binary

#

if you modify them, the hash is invalid
and if you fix the hash, the signature becomes invalid

raw jasper
#

so, in other words, the rpi has to have some closed blobs in it for it to function

glacial wigeon
#

yep

#

ive been working on replacing those blobs

#

and i can boot linux on the pi2/pi3 without any blobs present

raw jasper
#

Well, how are you going to bypass secure boot?

glacial wigeon
#

on the pi0-pi3 range, validation isnt enabled by default

#

so unsigned binaries just work

#

on the pi4/pi400, only hmac-sha1 validation is enabled by default
its a symetric algo, the signing key is the validation key

just dump the bootrom, decompile, and theres your key

#

the entire family, pi0-pi400, all use the same hmac-sha1 algo

a 20 byte constant in the bootrom (unique to each model) gets xor'd with a 16 byte per-device key in fuses

#

however, RPF decided to use the same "per-device" key on every device in a model

#

so all that security has just gone out the window 😛

#

that serious lack of security, makes me think they wanted a checksum, not a signature

#

but they didnt want to re-spin the bootrom

raw jasper
#

that sounds like a quick way to get dmca'd

#

(at best)

glacial wigeon
#

thats why i havent posted the keys anywhere

#

but that only works on certain revisions of the boot rom

gritty galleon
#

Espressif uses some closed source blobs on the ESP32 line - the wifi and Bluetooth drivers are closed source, the first stage bootloader is too. Maybe some other stuff. But they also don't make a big deal about being open source (though they do a decent job with their development system)