Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LEGO Technic Small Hub (45609) Firmware and FIlesystem #24

Open
gpdaniels opened this issue Aug 25, 2021 · 11 comments
Open

LEGO Technic Small Hub (45609) Firmware and FIlesystem #24

gpdaniels opened this issue Aug 25, 2021 · 11 comments
Assignees
Labels
help wanted Extra attention is needed project - filesystem For issues about the hub filesystem project - firmware For issues about the hub firmware

Comments

@gpdaniels
Copy link
Owner

gpdaniels commented Aug 25, 2021

There's now a small version of the SPIKE prime hub which probably runs a different firmware and has a different filesystem.
See: https://education.lego.com/en-us/products/lego-technic-small-hub/45609

It would be good to keep a record of these.

If you have one please get in touch!

@gpdaniels gpdaniels added help wanted Extra attention is needed project - firmware For issues about the hub firmware project - filesystem For issues about the hub filesystem labels Aug 25, 2021
@gpdaniels gpdaniels self-assigned this Aug 25, 2021
@tonyxforce
Copy link

Our school has one, and i can maybe dump it's firmware

@gpdaniels
Copy link
Owner Author

Thanks for the offer! I've got one dump so far, filesystem here: https://github.com/gpdaniels/spike-prime/tree/master/filesystem/spike%20essential%20-%20v1.0.00.0070-51a2ff4%20-%203.1.21

But it would be great to have newer versions.

@tonyxforce
Copy link

Currently the only problem seems to be that we only have windows (10) laptops at our school, maybe i can try booting into a live enviroment but if i remember correctly i've tried and failed

Is there a way to dump the firmware on windows?

@gpdaniels
Copy link
Owner Author

I suspect the dfu-util from https://dfu-util.sourceforge.net/ will work.
With the file from that I can reformat the file to match the others easy enough, it's just this step that I can't do without the actual hardware:

dfu-util --alt 0 --dfuse-address 0x08000000:1048576 --upload firmware.bin

@tonyxforce
Copy link

tonyxforce commented Jun 21, 2024

--upload firmware.bin

wouldn't this write to the hardware?

@gpdaniels
Copy link
Owner Author

I thought that when I first started using it too, but for dfu-util upload means from device to computer.

Usage: dfu-util [options] ...
  -h --help			Print this help message
  -V --version			Print the version number
  -v --verbose			Print verbose debug statements
  -l --list			List currently attached DFU capable devices
  -e --detach			Detach currently attached DFU capable devices
  -E --detach-delay seconds	Time to wait before reopening a device after detach
  -d --device <vendor>:<product>[,<vendor_dfu>:<product_dfu>]
				Specify Vendor/Product ID(s) of DFU device
  -p --path <bus-port. ... .port>	Specify path to DFU device
  -c --cfg <config_nr>		Specify the Configuration of DFU device
  -i --intf <intf_nr>		Specify the DFU Interface number
  -S --serial <serial_string>[,<serial_string_dfu>]
				Specify Serial String of DFU device
  -a --alt <alt>		Specify the Altsetting of the DFU Interface
				by name or by number
  -t --transfer-size <size>	Specify the number of bytes per USB Transfer
  -U --upload <file>		Read firmware from device into <file>
  -Z --upload-size <bytes>	Specify the expected upload size in bytes
  -D --download <file>		Write firmware from <file> into device
  -R --reset			Issue USB Reset signalling once we're finished
  -s --dfuse-address <address>	ST DfuSe mode, specify target address for
				raw file download or upload. Not applicable for
				DfuSe file (.dfu) downloads

@tonyxforce
Copy link

Ah thanks, i will be next there in monday and i'll try getting the firmware but i can't promise anything

@tonyxforce
Copy link

So i ran the command you gave me and it gave me an error, but after installing the winUSB driver it completed successfully

I can't upload files here directly so i will upload it to my website and link it here

@tonyxforce
Copy link

Sorry for taking too long, we were at the WRO competition

so i dumped 2 large and 1 small hub's firmware, and the links for them are:
https://tonyxforce.hu/hub/smallhub_firmware.bin
https://tonyxforce.hu/hub/largehub1_firmware.bin
https://tonyxforce.hu/hub/largehub2_firmware.bin

@gpdaniels
Copy link
Owner Author

There's no rush. Running the rest of the steps to process the files I get these hashes:

largehub1 = 109c3e2589c8171f244ec740338b9df3
largehub2 = 0f07e0609371ae308687a63ed5aa5fb7
smallhub  = f086fc1f95f6c8dda4dd4467641519d3

Interesting that the two large hubs have different versions.

It would be really handy to have the filesystems to go with them, these can be dumped using rshell (which can be installed using pip).

@tonyxforce
Copy link

tonyxforce commented Jul 2, 2024

the problem is that i don't think i'll ever have access to these hubs anymore, for some reasons so getting any more info from these aren't really possible

maybe, maybe i can get to school in the summer but it's not really probable

maybe the hubs create the filesystem on boot, if that's the case the FS can maybe be regenerated with recreating some of the hardware and hoping for the best

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed project - filesystem For issues about the hub filesystem project - firmware For issues about the hub firmware
Projects
None yet
Development

No branches or pull requests

2 participants