-
• #2
The firmware on those is completely different native code, not Espruino. We do have Espruino running on it but I used SWD pins to install it. OTA is too complicated as you also need to downgrade softdevice and install different bootloader. see topic
https://forum.espruino.com/conversations/388395/?offset=25#17473535 -
• #3
if it's not really an official Pixl.js
Yes, it's 100% not an official Pixl.js :) It's one of those things - I've sold around 1500 Pixl.js in the past 6 years - I imagine they've sold orders of magnitude more than that.
Just FYI I'll move this to the other boards section of the forum.
If you have the OLED version I'd be pretty sure the display isn't compatible with the one used on the official Pixl.js - but you could at least flash the MDBT42 Espruino variant on there and then just configure the LCD using JS
-
• #4
So, am I understanding they reflashed their own firmware onto a Pixl.js, then built their own hardware to run that firmware, and still call it a Pixl.js and in fact it's the 2nd hit for "Pixl.js" now? um lol.
But then what is the line at the top of solosky's README.md "The pixl.jx project is a forked version of the original Pixl.js." with a link back to the Espruino Pixl.js...that's kind of confusing, I don't understand how it's a fork then. I looked through his repo and maybe I missed it but, I couldn't find any Espruino code if it's in there.
Indeed, I was wondering if the OLED display would be supported as looking into this gizmo further I was starting to suspect that this wasn't in fact an official version of the HW. So I guess I would have to backport their driver or try Gordon's suggestion -- I've got no idea how the screen is connected but maybe SPI, and I assume they might have documented this HW version somewhere over in their project.
I also haven't been able to connect to it yet with the normal Espruino IDE -- their web app shows it as a "Pixl.js" and also shows my (real) Bangle.js as an offer to pair so there's obviously some overlap there -- and I can see it in the Espruino IDE if I navigate to the "BLE file share" option in the interface, but then the connection only sort of "half works", it shows some connecting steps in the bottom banner like normal, I get some garbage in the console and then nothing more and no REPL.
Guess I need to take it apart and see what exactly I've got. I haven't done so yet because...the case is just a little plastic cube with a screen in the front and a barely visible seam near the screen. Hopefully they didn't glue this thing as it's kinda pretty, so far anyway.
Or maybe I'll just dig into their code, and see if I can find a way to hack into it first.
-
• #5
I think someone made a prototype of this amiibo NFC+BLE functionality with real pixl.js but then went for own similar hardware and custom software and kept the name
I also haven't been able to connect to it yet with the normal Espruino IDE
makes no sense, as already explained - The firmware on those is completely different native code, not Espruino.
I've got no idea how the screen is connected but maybe SPI, and I assume they might have documented this HW version somewhere over in their project.
pinout is in https://github.com/solosky/pixl.js/tree/main/fw/application/src/boards
Guess I need to take it apart and see what exactly I've got.
you also need to take it apart to reflash it over SWD, unless you make softdevice+bootloader downgrade OTA package that may or may not work and if not you need to take it apart anyway
-
• #6
It does offer to pair though if you select the "BLE File Transfer" option in the Amiibo FW. Obviously it's not gonna actually do anything, but it's interesting to me as it showed that they might have used the same UUIDs or similar UART code or something, possibly speaking to the Pixl.js history - but I didn't look into the code to confirm that.
I'm confident that with some work I have everything I need to make custom firmware for it - and I was able to build Solosky's FW with some negligible text changes just to prove it was different and rather riskily flash it OTA - I'm not sure where the board file comes from to build Espruino though?
Also I think I saw somewhere to use a STM32 programmer to flash it, is that right even though it's a Nordic chipset? I haven't worked with the STM32 before so I'd need to get one. Or, in the Bangle docs it recommends the nRF52 DK which makes sense to me. I do have the 'nRF52840 Dongle' dev board. I haven't found any step-by-step instructions for building for the Amiibo devices, so I'm putting it together based on the others.
My friend sent me a Pixl.js in a nice case with OLED screen that has had solosky's "AmiiboLink" or "Pixl.jx" firmware loaded on it. This is a forked Espruino that appears to only be intended to run one app for Nintendo Switch gamers.
I assume the developers of that project probably messed with .bootcde or something like that to get their app to take over at boot. So I haven't tried yet, but I may be able to just connect like normal and restore that file, although I expect the Espruino version may be quite out of date on this thing and I'd rather just run normal FW anyway.
I'm just curious if anyone has tried this on these devices and whether or not this is really fully just a Pixl.js with some funny software on it, or, if it's not really an official Pixl.js, whether they have hardware differences that would make it potentially problematic to just flash a stock Espruino FW update OTA.