first impressions of the Lego smart brick, before I do any actual tearing down: wow, I forgot how good they are at working with plastic. the injecton molding remains impeccable, at least for this specific piece (I know about their recent QC issues elsewhere)

it's hard for me to look at the positively microscopic (I am literally using a microscope to look at it) "Li-Ion" lettering and think of anything but "showing off!"

(treehouse doesn't let me attach the full size images, you can grab them here: front, side)

on the side, there are microscopic openings for the speaker to move air through. I would have really liked to be a fly on the wall in a meeting with the mold engineer who had to make this happen

original

I'm not yet sure how I'll open it up. I don't have a hacksaw (somehow... I should fix that), so my options are somewhat limited: it's either cracking or melting plastic. from what others have done I know I there's plastic welding all around the joined region.

okay I've decided on an idea: I will heat up the plastic to make it pliable and then cut it with a knife

as a knfe girl, this is my professional obligation.

here's a video that shows in more detail the moldwork in the transparent plastic part
if you've never heard of anybody opening welded plastic this way, i can now tell you why: because it's a bad idea. until you heat ABS to the point where it flows (which you don't want here, as it'll make later teardown even worse), it acts rubbery. imagine cutting hot rubber. doesn't work

it did however let me lop off the top of it easily

this is I think a 2.4G antenna?

next step is sanding

yep that did the thing. probably should've started with sanding at the beginning.

it was somewhat more destructively than i wanted, but that's ok: i was trying to challenge my (incorrect) belief that sanding is always a tedious pan in the arse

took it apart. there's a sort of a plastic "carrier" that gets manufacured first, then inserted into the final package that's welded shut
okay, i've extracted the firmware-bearing parts. this is a tiny 45 mAh battery. (part of the lettering was torn off by the glue it was attached with)

close-ups of the component side (well, the side with more components)

originals: 1 2

EM9305 is an em|bleu microcontroller in QFN
it has over half a megabyte of flash!
ok so this would be the JTAG pins
also, here's a close-up of the markings on the tiny WLCSP between the BGA and QFN

decided the next thing to do would be to dump the presumed Winbond flash WLCSP

here it is mounted on a SOIC-8 pinout with a tiny bit of UV epoxy, like a particularly exotic dead bug

connected half of the pads

this is my first time soldering a 0.3mm pitch WLCSP, so it took me a bit to set up the workspace the way that makes it possible, but it's not too bad

finally done. no shorts and (as far as i can tell under mag) no opens
complete success
contrary to everything i've seen online, this is a Winbond W25Q16JWBY part (but one person got the closest, they thought it is a W25Q16JVBY. the difference is major: one is 3.3V, the other is 1.8V)

NotImplementedError: quad enablement SFDPJEDECQuadEnableRequirements.Reg2Bit1_Read35h_Write05h not implemented yet

ah yes. i remember why i hate SPI flashes now

tried using dual mode and the SFDP tells me to transmit half a byte

once i dump it this flash is definitely going into the naughty pile (of unit tests in glasgow)

here's how the flash was mounted in its natural environment, in absence of feline predators

the SPI bus seems to be shared with something else & they're definitely using ViP

alright let's dump the ARC chip now

not my best work but it should do the trick

feat. comically big q-tip

@whitequark hey @zhuowei does this match anything you found in the LEGO Smart Brick app? Or does the app have a newer firmware version?
@nicolas17 @whitequark @zhuowei for everyone else who got invested now, I think you're referring to this thread: https://notnow.dev/objects/cccfc047-da57-444a-be6f-63a5a766bcf7
Zhuowei Zhang: “The Lego Smart Assist app is out: https://play.google.com/store/apps/details?id=com.lego.smartassist I expect homebrewers to run Doom on the Lego Smart Brick at 1x1 resolution, a week before its of...”

Zhuowei Zhang (@[email protected]): “The Lego Smart Assist app is out: https://play.google.com/store/apps/details?id=com.lego.smartassist I expect homebrewers to run Doom on the Lego Smart Brick at 1x1 resolution, a week before its of...”

@whitequark Just in case, others want to dig deeper: I cut out the binary starting from offset 0x105000 and can confirm, that I can parse the unencrypted, uncompressed read-only file system (ROFS) there:

https://codeberg.org/maehw/SmartBrickToolkit/src/branch/main/kaitai/smart_brick_decompressed_rofs_segment.ksy + other parts in the repo

I guess that the remaining parts are meta data... and probably also diagnostic data which are collected by the brick and may be transmitted to TLG via their companion app.

@whitequark Help in finding checksum or hash algorithms... timestamps or whatsoever in the data structure is more then welcome. Happy to get pull aka merge requests on Codeberg.

Edit: Also let me know if there should be a more proper "getting started" or "what am I doing here" guide in the README.md. Also planning to give a talk.. an intro to Smart Play/ Smart Brick. Maybe in German... unless there's interest here -- then it could be in English.

@whitequark What are you using to dump the chips?
Glasgow Interface Explorer

A highly capable and extremely flexible open source multitool for digital electronics

@whitequark @drwho oh boy i want one so bad, shame i don't have the time of day to use it though
@whitequark This is wonderful :)

@whitequark its...

a brick

with an arm core, wifi and speakers?

@whitequark someone had identified it as a Winbond SPI flash (to be confirmed, I guess).
@maehw lemme dump this flash then
@whitequark yeah, I'd love to see that being done. What's your plan of how to do it? I think you'd need to un-power or desolder the Bluetooth SoC as this one connects the the CS signals and hence should be the bus master. Or desolder the flash? It's so teeny tiny... I can't do it. You could have it from my second PCB.
@maehw oh i'll just desolder and mount it manually
@whitequark Great to see that you got yourself a #LEGO #SmartBrick. Curious to know what set you got yourself. And eben more curious if you can get JTAG working... or find the relevant test pins. Yesterday, I started sniffing the SPI bus. Unfortunately, the ASIC Chip Select pin was not identified in the test pad matrix when I last looked up published schematics.
@whitequark
The nick on the battery 😨
It always gives me goosebumps when opening devices with glued / soldered batteries.
@Andres this is a tiny battery, i'd be fine
@whitequark
I know, I'd made worst, but still 
@whitequark content of the data matrix code
@claudius Can you point me to the tool(s) you used to get to this decoded view of the DMC? I could use that for a totally different use case I have where I need to reverse-engineer DMCs

@Musicaloris this is what "binary eye" QR-Code/Barcode/Datamatrix/... scanner shows you after recognizing a code.

Neat thing: you can throw a static image at it, not just live camera view!

https://f-droid.org/de/packages/de.markusfisch.android.binaryeye/

Binary Eye | F-Droid – Freies und quelloffenes Android-App-Repository

Einfach ein weiterer Barcode-Scanner

@claudius Thanks so much! I even have that app already installed, just never got around to using it apparently 😁
@whitequark 32Ω 0.7W? interesting choice of driver specs, but i guess it is easier to drive a higher impedance one given the power constraints.
probably made at the same plant as many headphone drivers and similar. wonder if it's an off-the-shelf part though?
@NULLderef it looks exactly like every smartphone driver ever
@whitequark do you have a hot wire?
@bob i don't have any nichrome at hand and i'm pretty sure i'd give myself burns if i tried

@whitequark @bob

8-year-old me discovered copper works just fine when attached to a sufficiently large transformer.

much older me is banned from hot tools.

@whitequark @bob

8 year olds should be allowed nowhere near these. https://dfarq.homeip.net/all-about-the-lionel-zw/

doubly so, two of them, with the knowledge you could run them back-to-back to do interesting things.

All about the Lionel ZW

The Lionel ZW transformer is one of Lionel's most iconic products. Lionel ZW instructions can be hard to find online. Here's what you need to know about it.

The Silicon Underground
@whitequark somewhere I got a little saw blade for my rotary cutter. It isn't a Dremel brand blade, and I've never seen it again, but it is perfect for stuff like this.
@danlyke yep. but I don't have any rotary cutter atm, had to get rid of 90% of my tools when moving to the UK
@whitequark That certainly matches my experiences of working with ABS!