Problem downgrading 3.4.5
-
As the newer versions of DWC doesn't support old IOS versions before 10 I thought I should downgrade my Duet 2 wifi from 3.4.5 to 3.0, start from there and upgrade to the last working version with IOS 9.3.5.
I wiped the SD card and copied my old 3.0 backup to the SD Card.
I used M997 S1 but 3.4.5 will not disappear. When running M115 I have this:
16/03/2023, 14:14:31: M122: === Diagnostics ===
RepRapFirmware for Duet 2 WiFi/Ethernet version 3.4.5 (2022-11-30 19:36:12) running on Duet WiFi 1.02 or later
Board ID: 0JD0M-9K662-MG5TD-6J1F2-3SD6K-KUKLZ
Used output buffers: 1 of 26 (26 max)
=== RTOS ===
Static ram: 23836
Dynamic ram: 73720 of which 428 recycled
Never used RAM 14096, free system stack 186 words
Tasks: NETWORK(notifyWait,14.4%,237) HEAT(notifyWait,0.0%,388) Move(notifyWait,0.0%,363) MAIN(running,85.5%,512) IDLE(ready,0.1%,30), total 100.0%
Owned mutexes: WiFi(NETWORK)
=== Platform ===
Last reset 00:03:47 ago, cause: software
Last software reset at 2023-03-16 12:45, reason: User, GCodes spinning, available RAM 14024, slot 1
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
Error status: 0x04
Aux0 errors 0,0,0
Step timer max interval 0
MCU temperature: min 31.8, current 32.2, max 32.5
Supply voltage: min 1.6, current 1.7, max 1.8, under voltage events: 0, over voltage events: 0, power good: no
Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
Events: 0 queued, 0 completed
Driver 0: ok, SG min n/a
Driver 1: ok, SG min n/a
Driver 2: ok, SG min n/a
Driver 3: ok, SG min n/a
Driver 4: ok, SG min n/a
Driver 5:
Driver 6:
Driver 7:
Driver 8:
Driver 9:
Driver 10:
Driver 11:
Date/time: 2023-03-16 14:14:29
Cache data hit count 4294967295
Slowest loop: 28.09ms; fastest: 0.13ms
I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
=== Storage ===
Free file entries: 10
SD card 0 detected, interface speed: 20.0MBytes/sec
SD card longest read time 0.4ms, write time 45.4ms, max retries 0
=== Move ===
DMs created 83, segments created 0, maxWait 0ms, bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== AuxDDARing ===
Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== Heat ===
Bed heaters -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
=== GCodes ===
Segments left: 0
Movement lock held by null
HTTP is idle in state(s) 0
Telnet is idle in state(s) 0
File is idle in state(s) 0
USB is idle in state(s) 0
Aux is idle in state(s) 0
Trigger is idle in state(s) 0
Queue is idle in state(s) 0
LCD is idle in state(s) 0
Daemon is idle in state(s) 0
Autopause is idle in state(s) 0
Code queue is empty
=== Network ===
Slowest loop: 176.96ms; fastest: 0.09ms
Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
HTTP sessions: 1 of 8
= WiFi =
Network state is active
WiFi module is connected to access point
Failed messages: pending 0, notready 0, noresp 4
WiFi firmware version 1.23
WiFi MAC address 48:3f:da:4f:bf:b7
WiFi Vcc 3.48, reset reason Power up
WiFi flash size 4194304, free heap 24536
WiFi IP address 192.168.1.101
WiFi signal strength -47dBm, mode none, reconnections 0, sleep mode modem
Clock register ffffffff
Socket states: 0 0 0 0 0 0 0 0How do I downgrade to an older version to be able to use my old iPads and iPhones with DWC?
-
@Stout DWC 3.4.5 should support iOS 9 and newer, it's DWC 3.5 and later that will no longer support old iOS versions and Internet Explorer. But I must admit I've never tested if it actually works with those deprecated versions. Is it not possible to install a modern browser on old iOS versions?
PS: You probably forgot to upload the DWC bundle, M997 just updates the firmware and not the web interface. You can find a list of DWC builds here: https://github.com/Duet3D/DuetWebControl/releases
-
Thanks for your reply.
No, no "new" browsers are supported. The last Chrome vesion is 63.0.3239.73
i think I've tried everything with every bundle from 3.0 and up. Copied them to the SD card, installed from the web browser. I now have this after installing Duet2and3Firmware-3.1.0.zip and DuetWebControl-SD.zip
![alt text](image url)No, IOS 9.3.5 is not supported since a long time. See my post from May last year and it's still marked as unsolved.
-
@chrishamm said in Problem downgrading 3.4.5:
Is it not possible to install a modern browser on old iOS versions?
Up to now, Apple insists on the use of WebKit, which itself is part of iOS. Browsers on iOS (notably: not macOS) are all based on this browser engine, despite their brand. On older iOS hardware which isn't upgradable any longer, you are thus stuck with an outdated WebKit API which in turn limits the capabilities of any app.
-
@infiniteloop said in Problem downgrading 3.4.5:
WebKit API
That's the new "green" world we live in, unfortunately. Throw away functional electronic equipment and buy new because the software say so.
Well, I thought I should be able to use the ipad as a touchpad/pendant my new built CNC for which I use a Duet 2 wifi. I suppose I have to buy new functioning electronics then (not a new ipad but controller board). Pity when everything is ready for a test run.
-
By the way. Is it possible to downgrade wifi from 3.4.5 to whatever? I simply get no respond from the firmware.
-
@Stout you could try downgrading just DWC and leave the firmware at 3.4.5.
-
@Stout Sorry to hear, it's a shame you cannot use modern browsers on old iOS devices. I'll check if I can get an older OSX working in a VM, maybe I can figure out what the old WebKit version doesn't like then. I haven't had a test environment for it yet. If I can get it working, I'll make sure to incorporate that fix in v3.4.6 that we will release sometime soon.
-
@chrishamm That sounds that there is hope.
-
@Stout Can you give me a hint what in v3.4.5 doesn't work with old Safari versions? I've got an OS X High Sierra test setup with Safari 11.1.2 and my v3.4 dev copy starts up correctly there. The code editor shows up as well.
-
@chrishamm said in Problem downgrading 3.4.5:
@Stout Can you give me a hint what in v3.4.5 doesn't work with old Safari versions? I've got an OS X High Sierra test setup with Safari 11.1.2 and my v3.4 dev copy starts up correctly there. The code editor shows up as well.
I am not using Duet on old MacOS (well.. using Big Sur as latest version which makes it old too but have never had problems on earlier MacOS's) only on old IOS versions as they can't be updated anymore.
I am sorry, I can't give you any hint except that the webpage is loading and then immediately gives a white screen.
None of the browsers accept DWC on Ipad or iPhone pre-IOS10 which is very annoying as the hardware hasn't changed, only the browser software. All installed apps are normally working fine although sometimes slow, but they are working. Even Amazon Prime and Netflix on IOS 9.3.5. I can browse the internet on Safari, Chrome and Firefox but have no access to DWC!
EDIT: Addition. I tried to downgrade DWS to earlier versions in hope to get a view on the ipad but the same whing occur. A white screen.
The strange thing is that it used to work with earlier versions of DWS and as I am not able to update the old ipads or iphones since DWC stopped working, there must be something else going on with the software/DWC. -
I just tried to look up some facts to give a little more context. To begin with, I was unable to find a comprehensive list of features per WebKit release. In my eyes, @chrishamm’s only chance to help @Stout ist to install old WebKit versions and test against these. He told us that he has a macOS X "High Sierra" setup, which dates from September 2017.
Time to dig a bit into Apple history:
@Stout Given that you can’t update your iOS above 9.3.5, your iPad must be more than 10 years old. Apple released the original iPad in January 2010, the iPad 2 in March 2011, and iPad 3 in March 2012. Up from the iPad 4, released October 2012, you can at least update iOS to a 10.x release.
A corresponding Safari on MacOS should roughly date from 2012 or earlier - that’s "Lion" or possibly "Mountain Lion". However, the capabilities of WebKit are not guaranteed to match 100% the feature set on iOS. So for @chrishamm, that’s like digging in the dust.
The iPad hardware might be an additional hurdle: the iPad 3 (2012) came with 1 GB RAM, iPad 1 and 2 had even less (512 kB). I’m not sure whether the ever growing RRF object model would even fit into that.
The real question is: does it make sense to invest a considerable amount of work into backward compatibility with a (more than) ten years old tablet? To make things worse: that’s still a 32-bit device.
@Stout With iOS devices, you can rely on backward compatibility for 3-5 years. In practice, they reach EOL after 8+ years (which is pretty much compared with android tablets, BTW). Be lucky that it still works as a mobile Prime and Netflix TV! Many (dynamic) web pages are no longer accessible or appear scrambled., you are stuck with severely outdated apps. It’s really time to look for a new (or used) iPad. Or get a cheap Android tablet instead.
Sources:
Apple hardware facts can be looked up at everymac.com.
The (English) Wikipedia lists the Safari versions (iOS and Mac) with their corresponding WebKit releases.
The WebKit Feature Status overview is available here. -
@infiniteloop Thanks, I'll give it another try with a stock Lion installation. If it works there, I'm afraid I can't put much more effort in this topic. DWC 3.4 targets iOS >= 9 in the browser list, so I assumed it would work already on that particular device.
-
I'm afraid I can't put much more effort in this topic.
Right, and IMHO you shouldn’t. My shed is densely populated with ancient Macs, and I hate to recommend someone to trash his device just because it has been coming to age. OTOH, to actively support 10 year old machines is developers hell. My moderately recent Xcode simply blocks all such efforts.
DWC 3.4 targets iOS >= 9 in the browser list
Just now, I’m sitting in front of an iMac 27" from 2011, which maxes out on macOS "High Sierra". So I really appreciate your efforts to maintain backward compatibility. However, I don’t know of a single 10 year old iOS device in my customer base. Admitted, I still possess an original Newton, but I would never urge you to support DWC for this old sweetheart.
So, don’t waste your resources on obsolete devices. That’s bad for @Stout, but, as I wrote above, such old handhelds have become extremely rare. @Stout: keep your iPad in honour just as I keep my Newton running. Were darn good devices at their times.
-
@infiniteloop I just installed OS X 10.8 Mountain Lion and discovered that not even the Apple welcome page is displayed correctly any more! I believe in Safari DWC fails to load because that WebKit version doesn't support lamda functions yet - I get
Unexpected token '>'
there. Unfortunately, I haven't found a way to get Babel to output ES5/Safari 6-compatible JS chunks yet. -
I just installed OS X 10.8 Mountain Lion and discovered that not even the Apple welcome page is displayed correctly any more!
IIRC, Apple stopped to bundle Java with macOS around that timeframe. But some JS support existed in Safari back then. I can’t help you much with this, as I’m anything but a web dev. Some bare-bone HTML and JS with TextEdit, that’s it.
Just found this here on StackExchange:
macos - How to use Java Plugin in Browser with JDK within Mountain Lion OSX
… but I think, it’s time to mark these macOS and iOS veterans as deprecated.
-
@infiniteloop Java is not JavaScript. JavaScript is integrated in the browser whereas Java is a separate application framework. It's just the use of newer JavaScript features that break DWC/Apple's start page in old Safari versions AFAICS.
-
Java is not JavaScript.
Sure. What I don't know is whether Safari's JavaScript implementation at that time relied on the presence of Java - up to "Lion", Java was part of the macOS distribution. This changed when Oracle got their hands on Sun.
-
The "old handhelds" are not rare. People put them on the shelf because the software developers eager to not make their software backward compatible, which is a shame. If someone made an app for these "old handhelds", I am 100% sure that they will start using them again as they are actually still working. If that happen they will probably be hot stuff on the used market and shoot of in price like old mobile graphics cards did when someone found out that you can swap an old iMac 2011 graphics card with a newer and get a decent computer for peanuts.
I also have an Imac 2011 27" i7 3.2Ghz with a"new" graphics card, and it's absolutely stellar in 2023 when it comes to average usage. I use it all day for all 3D-printing work/apps. It's not much (if any) difference to my newer iMac's when it comes to this.
In the day when I was a programmer (read 1983-1999) and used assembler, system code, fortran, pascal, C or whatever there were never a problem because the application was stand alone and would always work. But it was of course suited for a particular task and there were only one or two platforms which made it easy. Those were the days
I am still frustrated not be able to use a fully functional iPad for such an easy task as running an internet browser with DWC.
-
the software developers [are] eager to not make their software backward compatible, which is a shame.
Don’t blame @chrishamm on this. Developers rely on frameworks, and these develop over time. Some of the older frameworks won’t run on modern hardware, so, in order not to ignore current machines, we simply have no option than to limit backward compatibility.
I am still frustrated not be able to use a fully functional iPad for such an easy task
If you consider a 12 year old iPad fully functional (what about battery life?), feel free to use it with contemporary software. If you find a DWC version which runs on your iPad, that’s fine. Consequently, you then have to revert to a matching RRF version, too.