Notices by Erin 💽✨ (erincandescent@akko.erincandescent.net)
-
Embed this notice
Erin 💽✨ (erincandescent@akko.erincandescent.net)'s status on Saturday, 12-Jul-2025 04:06:28 JST Erin 💽✨
@azonenberg @whitequark @dalias @mcc @becomethewaifu hang on - why would you need absolute coordinates to drag things between windows? -
Embed this notice
Erin 💽✨ (erincandescent@akko.erincandescent.net)'s status on Saturday, 12-Jul-2025 04:06:26 JST Erin 💽✨
@azonenberg @dalias @mcc @whitequark @becomethewaifu you do know relative positions though, as long as the mouse is inside your window, which it would be when starting that fresh
There is the problem of making the new window at the drag target location of course, which is what the extension is for. But none of this needs absolute positioning -
Embed this notice
Erin 💽✨ (erincandescent@akko.erincandescent.net)'s status on Friday, 11-Jul-2025 05:23:04 JST Erin 💽✨
@hikari France has the same cultural thing going on as the UK, whereby theres lots of cool things going on but it all has links to immigrants or places outside of Paris and thereby is Not French according to the stuffy rich white guys who run the Government.
-
Embed this notice
Erin 💽✨ (erincandescent@akko.erincandescent.net)'s status on Sunday, 06-Jul-2025 05:25:13 JST Erin 💽✨
@whitequark @rygorous What’s this DMA you speak of? Laughs in 8051
-
Embed this notice
Erin 💽✨ (erincandescent@akko.erincandescent.net)'s status on Sunday, 06-Jul-2025 05:25:12 JST Erin 💽✨
@whitequark @rygorous (the plus side of it being a 1T 8051 of course is that a uart interrupt probably only costs like 10 cycles, so it doesn’t matter that much. but probably what I should do is just max out the BRG at like 3mbaud and hook it up to my Glasgow)
-
Embed this notice
Erin 💽✨ (erincandescent@akko.erincandescent.net)'s status on Sunday, 06-Jul-2025 04:59:47 JST Erin 💽✨
@rygorous no
-
Embed this notice
Erin 💽✨ (erincandescent@akko.erincandescent.net)'s status on Sunday, 06-Jul-2025 04:59:44 JST Erin 💽✨
@rygorous busy waiting but it probably wouldn’t have helped to put a fifo in front because the log volume would very quickly have swamped the buffer
(I was logging every byte received in hex and my laptop was impatiently spammig a lot of messages at me)
-
Embed this notice
Erin 💽✨ (erincandescent@akko.erincandescent.net)'s status on Sunday, 06-Jul-2025 04:38:41 JST Erin 💽✨
:drgn_scream_angry: FUCK.
Well, at least this explains why the voltages I’m seeing on the CC lines are so fucky.
Time for a bodge wire >_<
-
Embed this notice
Erin 💽✨ (erincandescent@akko.erincandescent.net)'s status on Sunday, 06-Jul-2025 04:38:39 JST Erin 💽✨
Bodge applied and suddenly the USB CC lines read in ways the specification says they should :drgn_tooth: -
Embed this notice
Erin 💽✨ (erincandescent@akko.erincandescent.net)'s status on Sunday, 06-Jul-2025 04:38:38 JST Erin 💽✨
Also next time I'm quadrupling the resistor on the power LED -
Embed this notice
Erin 💽✨ (erincandescent@akko.erincandescent.net)'s status on Sunday, 06-Jul-2025 04:38:37 JST Erin 💽✨
Chat, Erin spent her entire day trying to figure out why the USB PD controller’s interrupt was never firing.
The answer turned out to be that Erin forgot to clear the interrupt pending flag on her 1kHz timer…
-
Embed this notice
Erin 💽✨ (erincandescent@akko.erincandescent.net)'s status on Sunday, 06-Jul-2025 04:38:36 JST Erin 💽✨
The none interrupt code in this project does so little I never realised that it was executing like 1/100th the time >_>
-
Embed this notice
Erin 💽✨ (erincandescent@akko.erincandescent.net)'s status on Sunday, 06-Jul-2025 04:38:35 JST Erin 💽✨
My PD reception buffer now contains
SOP' 8f10 01a000ff a4450272Which looks like (Remember in the followig all fields are little endian
- 8F10 - USB PD Rev 3.x, 1 data object, vendor defined message
- 01a000ff VDM header
- 00ff - USB PD Standard ID
- 01a0 - Structured VDM, v2.x Command = Discover Identity
- a4450272 CRC32
Which seems quite cromulent for my laptop to be sending to the cable (SOP’ = addressed to the cable not the device)
-
Embed this notice
Erin 💽✨ (erincandescent@akko.erincandescent.net)'s status on Sunday, 06-Jul-2025 04:38:33 JST Erin 💽✨
OK restricting things just to SOP messages (i.e. messages addressed to me and not the cable I’m plugged into) I see
a1112c910137d58b9189 a111 LE -> 11a1 -> 1 extended data object, -> Sent by power source -> Revision 3.x -> Sent by data-DFP -> Data message type 01 Source_Capabilities 2c 91 01 37 LE -> 3701912c -> 00 Fixed supply PDO -> 1 Dual role port -> 1 USB suspend supported -> 0 !Unconstrained power -> 1 USB communications capable -> 1 Dual Role Data -> 1 Unchunked Extended Messages supported -> 0 !EPR capable -> 0 Reserved -> 00 Peak Current = No overload capability -> 0001100100 Voltage = 100*50mv = 5V -> 0100101100 Max Current = 300*10ma = 3A d58b9189 -> CRC32Which is very much the first message the spec says a source should have sent me, so I think I’m in a good place to draw the rest of the owl
-
Embed this notice
Erin 💽✨ (erincandescent@akko.erincandescent.net)'s status on Sunday, 06-Jul-2025 04:38:31 JST Erin 💽✨
Previously, my device was receiving PD messages but doing nothing with them, so the host was treating it as a dumb PD-unaware device and powering it with the default port vSafe5v.
However I’ve now implemented enough of the stack to start sending messages to the host (but just GoodCRC so far). This means the host is treating it as a PD device which doesn’t ask for power, which means quite promptly it gets its power turned off.
This is mildy inconvenient.
I should probably assemble one of these boards with the MCU not Vbus powered for reduced frustration…
-
Embed this notice
Erin 💽✨ (erincandescent@akko.erincandescent.net)'s status on Sunday, 06-Jul-2025 04:38:30 JST Erin 💽✨
So the basic USB PD sequence is
- Source: Source_Capabilities { 5V3A, other possible capabilities}
- Sink: Request { 5V1.5A }
- Source: Accept
- Source: PS_Rdy
I spent the entire day trying to work out why the source (my laptop) didn’t like my Accept message. It was bitwise identical to what I saw other hardware sending, so I didn’t understand why it disliked it. I added all sorts of debug logging to track it down.
The problem turned out to be that my stack was too slow, on account of all of the debug logging. A good old embedded systems classic.
-
Embed this notice
Erin 💽✨ (erincandescent@akko.erincandescent.net)'s status on Sunday, 06-Jul-2025 04:38:29 JST Erin 💽✨
Timer Interrupts 3%
Protocol Stack 2%
Waiting for UART 92%
Printf 3%
someone who is good at optimization please help me budget this. my microcontroller is dying -
Embed this notice
Erin 💽✨ (erincandescent@akko.erincandescent.net)'s status on Wednesday, 02-Jul-2025 23:57:02 JST Erin 💽✨
Putting OpenTelemetry tracing information in one of the private use fields of a Mastercard authorisation message, as one does.
-
Embed this notice
Erin 💽✨ (erincandescent@akko.erincandescent.net)'s status on Thursday, 26-Jun-2025 07:08:05 JST Erin 💽✨
@ryanc honestly having my editor be sarcastic with me when working with linux kernel code would massively improve my day.
-
Embed this notice
Erin 💽✨ (erincandescent@akko.erincandescent.net)'s status on Thursday, 26-Jun-2025 05:31:28 JST Erin 💽✨
@hokaze Most of them are i686 (Debian included), which IMO is stupid because the 32-bit x86 chips that are relevant in 2025 are DMP Vortex86s and AMD/National/Cyrix Geodes which are generally i586 not i686 CPUs!
If you’re still using a Pentium 3 or Athlon XP you can pick up some literal trash that’s faster, smaller, has more memory, and consumes 1/20th the power.