Saphe T - nrf54L15 pixl.js like device with swd port on the back (and DOOM port) #8023
Replies: 3 comments 19 replies
|
Oh nice - thanks for the update! Hope you have some success getting it going! The situation with building for Zephyr isn't great at the moment, so if you manage to improve things (getting it building/flashing using |
So I have received 2 pieces. It is pretty small, a bit smaller and thinner than Magic 3 smartwatch (see photo below, Magic 3 on the top). I can actually imagine that with some 3d printed frame this device could be used as a smartwatch basically as is. So I unlocked it, built doom from https://github.com/atc1441/saphe-t_DOOM source, installed pylink https://github.com/square/pylink and used it to first flash waduploader hex file, then used python script that is using pylink python code to upload wad file over RTT and then flashed the doom hex file itself and it was a success. I now have first custom firmware on my device :-) And BTW at first I used spring-loaded pogo pins but then realized the Bangle 2 USB cable pins are same width so with usb-a female adapter it is working over this cable too :-) (photos with bangle 2 cable here https://ibb.co/album/q7RLgz) Now I can look into running espruino on it. |
|
Another update. The initial video So I have tried something similar to test it too without prior experience. I have installed opencode on spare linux machine, created opencode user for it without sudo permissions. The machine already had basic ubuntu 22.04 and python 3.10 but no pip. I gave it no sdk or arm compilers. I registered with Deepseek, topped up the account with US$2 (minimum suggested/possible), configured opencode to use it and put the OTA file to empty folder and started asking questions like: here is nrf54L15 OTA file for device I have, I want to write my own firmare for it, give me GPIO pinout and list of hardware it uses, give me initialization data for the hardware (display, touch, acelerometer), let me know what other hardware suport is there ... it had no issues getting stuff done and after some time I had it nicely documented, it also figured out which exact zephyr/nordic sdk was used and with what configuration, documented partition layout on external flash and what it is used for and after spending $0.69 it had all answers to my questions inluding writing zephyr driver sources for the hardware I asked for (screen, touch, accelerometer, flash). Then I told it to build mcuboot bootloader with version and settings suitable for the original firmware so I could upload it back after the device was erased - and it worked. I could flash the bootloader and the app via swd and it worked. Then after few fixes the app could accept OTA update over bluetooth, stored it to external flash and my build of mcuboot could replace it. I was at $1.18 spent. Then I told it to make example zephyr app I could upload over OTA that would still have the OTA feature and used those drivers from 1st step and should show something on screen - accelerometer data and draw dots where touched. After some tries it worked and I have the example working and can update the device over BLE with it and then restore original firmware back over OTA again. Total cost $1.75 after also doing random stuff like tuning slow OTA speed in the example, fixing starting advertising again after connection etc. I did not give it jlink swd access (usb permissions) but it built tools needed for me for doing OTA update over BLE and it did use it few times by itself when told. Overall I am surprised how easy and cheap it was. it was very competent in solving issues like downloading needed stuff without pip or sudo to old ubuntu and getting stuff building and working. Also it was quite sensible in giving me right instructions like flashing the device over swd or getting Segger RTT logs from the apps and the bootloader to fix some misconfigured stuff. So for me this is great help and saves a lot of time. I was always hesitating to use zephyr earlier because of learning all the differences from older nordic sdks but this makes it far less painful to get into it. So now I have quite a lot of ideas that can be easily possible with it like: Letting it analyze Bangle 2 agps data and those Chinese docs so we can get the GPS data from the device to make this agps file or even create it from other sources available. letting it analyze the HR binary libraries and generating source that is working in the same way or better let it try adding nrf54L15 hardware support to old nordic SDKs next to nrf52 and porting its BLE code to use the new binary softdevice from the baremetal sdk so that we would build espruino in mostly the same way without zephyr trying again to refactor the banglejs library with lot of watch specific code to allow more devices or even letting it maintaining several copies for several devices with much less pain if refactoring is not possible But the question is - @gfwilliams did you think about how to aproach it for Espruino project? will you accept PR with code made directly by AI or indirectly with a help of AI? should the PR be marked that AI was used and how? I am not up to speed if there are any standards for this already. |





Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Just a heads up, there is nice ~29EUR (or 42EUR for two pieces) easily hackable nrf54l15 device with OLED touch display, audio, accelerometer, light sensor, 4MB spiflash, big battery, magnet and charging dock/power bank with another bigger battery. It is available on Amazon and ebay.
Since Bangle3 will be using same or similar chip it is a good 'devboard' to run Espruino. The pinout is known and swd pins are hidden under sticker next to charging pins (see the video).
More info here https://github.com/atc1441/saphe-t_DOOM
I have ordered 2 pieces, if anyone is interested I'll post more details when I get it.
All reactions