Here's an update on the work we're busy finishing this Winter. Our Dev Team is working closely with a significantly expanded group of TREG users to catch and resolve details, to ensure that TextBlade's new advances can be used everywhere, and enjoyed by everyone.
We'll cover some engineering and technical info about the work we've completed in the sections below. We settled many fine points in areas like Bluetooth, keymaps, battery life, durability, the TextBlade companion application, and its help content. We have most of these items resolved, and we're seeing reduced reports of new items. We're hopeful there won't be a lot more user reports on our list for General Release. If the list doesn't get longer, we've got a shot at finishing the firmware at the end of winter.
First, some big picture perspective on the change that's unfolding for TextBlade users.
Levers of Change
"Even one hair has a shadow."- Publilius Syrus, 46 BC
This Latin proverb remains true today. You may not recognize the author, but you'll find his work even in the name of the band the Rolling Stones. His shadow proverb endures because of its rich layers of meaning, like those unpacked below.
Big changes to the landscape often start with one spark. Small things can have surprising power to set massive change in motion. These catalysts are like levers, that pry away our old limits, and free us to find a better way forward.
In the realm of keyboards, a lever of change is in play right now, and the scene above depicts it. The photo comes from a TextBlade user in the Land Down Under, whose story is emblematic of what's happening. Glenn M. is an Australian developer, and because of his work, he spends a lot of hours each day, typing. He's also surrounded by a lot of machines - a Mac, an iPad, an iPhone, and one or two more PCs, and they each demand subtle differences in typed characters. At the center of this scene, and at the center of change ... is a TextBlade.
Glenn jumps between all his different devices from one TextBlade. It knows the differences in modifier keys between his Windows and Mac systems, and it makes the changes for him, automatically. His physical labor of typing is dramatically reduced, and has a consistent, satisfying feel no matter which machine he's typing on.
His TextBlade desktop footprint is no bigger than his hands, and he gets back the workspace that was once wiped out by a 2 foot long board. And when he's on the road, Glenn can operate any of these machines remotely from his 64 bit mobile workstation - an iPad, SwiftPoint mouse, and TextBlade.
The New Workstation
For a long time, if you wrote a lot of prose, or code, you were tied to your PC. No more. Now, even developers who work on many different hardware platforms, can work over the cloud from a phone or tablet. In our user community there's now active discussion of new apps like Jump Desktop, which lets an iPad user link into any machine, whether physical or virtual, to build their code whenever or wherever they may be, just as if they were sitting in front of their target device. This new freedom is compelling.
But to really make this work, there was a crucial lynchpin. Users who produce high volume typing must have a professional keyboard they can count on, in a go-anywhere form factor. TextBlade has unlocked this door.
Prompted by receipt of their TextBlade shipments, we now see users organically changing to this new workstation paradigm. They're even buying new iPad Pros and SwiftPoint mice so they can finally shed several pounds of laptop, and produce more, weightlessly.
Like the proverb, TextBlade is that small thing, that crucial lever. It lets loose a torrent of change, and makes many new benefits possible. Because of this, users inherently expect and depend upon it to do everything they need, all day, every day, and everywhere. This is why, more than may be apparent, the details really matter. This is why we put all the effort into following up on each user request, so all of you can simply do the diverse things you want to do, and it just works.
Technical Details and Engineering Work
Winter has been a very busy season for our Dev Team. There were many refinement points surfaced by users that we've now resolved. Each of the items we've worked on was prompted by very detailed TREG user input.Most of these reports affected about 5 percent of users. For these users, they'd see these issues intermittently, so it took several iterations to capture full logs. However, whenever an item did present, users would notice it fairly quickly because of how much they use the functions of their TextBlades.
The areas of engineering work are summarized below, so you can get a good idea of what we focus on. They are organized into the main themes under separate headers. We've made over two hundred internal software builds since our previous status update article. We usually release about one of every ten internal builds to our TREG user base for evaluation. Through the work of these releases, we've resolved most of the items listed below.
Bluetooth's foibles are well known, and independent of TextBlade. However, because TextBlade is all-new technology, users often assume any interruption of the link is caused by the new keyboard, even when it's actually a Bluetooth issue. As a result, we've had to do a lot of work to improve defenses against Bluetooth outages. We've also had to help some users debug Bluetooth problems that were actually inside their host hardware or software.
One issue was with USB3 ports. When installing our Air-In Bluetooth dongle into certain PC towers, some intermittency was observed. After some extensive debugging and research, we determined that this was due to high RF noise on USB3 ports for PC's manufactured during certain years. The noise can disable many brands of Bluetooth mice and keyboards on these machines. This problem is wide-spread in industry, and Intel even published a white paper documenting the effect. The solution was to identify some extender cables and ferrite noise suppression rings to allow Bluetooth devices to connect to those ports without interference. After those corrections, their TextBlades and PC's connected fine.
Another issue was with the Bluetooth software stacks of some host machines. The machine would link to TextBlade fine for long periods, and then suddenly stop displaying characters even though the radio link was still operating. It required a reset of the host Bluetooth stack logic to restablish the flow of characters on screen.
After much debugging between our TREG users and our engineers, this was found to be a flaw in the way iOS or macOS handles Bluetooth Low Energy devices. Once confused, their stacks forget how to accept the characters they are receiving from the connected BLE keyboard. A stack reset does cure it, but that's an inconvenience, so we have filed detailed bug reports with Apple. The scope of this debug work was extensive and time consuming for both our team and the users who helped trap the bug (many thanks to Paul H.).We recorded logs in the TextBlade app and on the native Mac logger to prove that the characters were indeed received but not processed.
For good measure, we verified that the same problem affected other brands of BLE keyboards, like the Microsoft folding keyboard. We even shipped samples of the Microsoft device to help TREG users make direct A-B comparisons in the field. The user results were the same, and proved that the problem was in fact in the host-side OS Bluetooth services.
Again, because we're the new technology, the presumption is usually that there's a bug with our firmware, so we had to do a lot of work to figure out where the problems were with the OS vendor's Bluetooth software stack. We're hopeful Apple will correct this soon. It's great to get these issues sorted before we've scaled to 1000X more users in general release.
There are several other Bluetooth details we've handled as well, which are listed below.
- Handling for case where advertising has timed out. Recovers without reboot.
- Improved firmware immunity for high RF noise environments.
- Improved retry timing to decrease load and improve recovery following link intermittency.
- Improved character resend timing for faster lag recovery.
- Additional code to help resist unintended alteration of the BT program image.
We had one TREG user's unit that wouldn't pair with Macs, even though it worked fine with iOS and other hosts. We got it back for analysis and could reproduce this on Mac's in our labs. This is likely a one-off hardware damage issue with one of the parts around the SpaceBlade Bluetooth core.
We're also testing some alternate BT stacks in the TextBlade BT core to see if they perform differently from our current stack on diverse hosts. Their performance seems comparable so we're not altering our stack now.
We submitted several bug reports and logs to Apple regarding Bluetooth connection issues for BLE devices issues on iOS and macOS.
- Speed optimizations to improve throughput under sustained load of heavy typing.
- Fix for rare case where timestamps for auto-adjudication may get altered.
- Timestamp was root cause of spurious symbol, macro, fn modes, + lost spaces.
- Remove specialized logs for timestamp validation, and restore normal logs.
- Correct a memory bank access issue in speed-optimized assembly code.
Jumps and Keymaps
- New jump management system for improved reliability of jump action.
- Improved operation of jump slot erase function.
- Fix to improve responsiveness of jump slot 6.
- New logic to validate map integrity after every jump.
- New retry logic automatically heals improperly transferred maps.
- Addition of map status to notification displays and reports.
- Jump slot 6 erasure protection locking system. In progress now.
- Prevent visual confusion when mode displays overlap with pairing displays.
- Improved control logic to make animation displays subtly smoother.
System and Flight Recorder
- Upgrades to inter-CPU communication to improve error recovery and reliability.
- New protection to prevent a case where FlightRecorder could keep TextBlade awake past the 30 min automatic sleep timer.
Battery and Charging
- Refined algorithm for faster charge, and more accurate state-of-charge display.
- Enhanced factory battery profiler to screen lithium polymer cells and detect latent anomalies. In progress now.
We had a few field reports where some individual batteries had run times less than spec. To identify any of these hardware units before shipping, we're now building a more extensive battery profiler for both factory and field use. It can detect even subtle signs to predict potential latent battery anomalies. Most of the code modules are now working, and we're currently in debug of the integration. Once this more extensive profiler is operational for factory test, we'll then add a new app page later to let users access the same profiler to check their batteries in the field. Although this issue is relatively rare, the objective is to screen all units at the factory for potential latent battery anomalies, and to also support remote validation of any battery already in the field.
TextBlade App 465
- New map editor menu strip to accommodate latest iPhone X screen switcher controls.
- Eliminated white bands at top of menu caused by recent Xcode compiler changes.
- Updates to conform to recent iOS 11 app approval requirements.
- App refactored and compiled under under latest Xcode release.
- Add 'Enter' (⌤) to map editor, as distinct from 'Return'.
Mechanical and Cosmetic
Faster release is preferable, but one upside of the longer test release period is that we've already gotten very good data on longer term wear characteristics. Overall, TextBlade has proven pretty sturdy and stood up well even under heavy daily usage.
We've serviced a few reports of mechanical wear which some users had logged after several months of daily operation. These are being addressed primarily with process adjustments. No design changes have been required so far.
A silicone rubber foot on the SpaceBlade steel base on some units could begin to delaminate. This was likely due to an overly snug fit of the NanoStand case, which gradually pried up a corner as it was repeatedly stowed for travel. It's not common, but adjustments to the mold clearances are being made to reduce the incidence of this.
On some units, the SpaceBlade paddle fulcrum had jumped its rail, likely due to inertial impact events. In most cases, users could simply snap them back in place to restore normal motion. We're analyzing one unit where it had reduced travel even after snapping it back. This is a rare case, and was handled with a replacement, but we'll determine if further assembly adjustments would be desirable after we have our analysis results.
New test protocols have been added following a report of one key that was not fully snapped in place. The user snapped it on in the field and it worked properly afterward. We were able to model what likely occurred, and believe a post-assembly cleaning step inadvertently detached the key. The new protocol rechecks the key mounting after the cleaning step, to eliminate this possibility going forward.
The favorable long-term performance of TextBlade has increased confidence in our production tools and process, and this helps reduce the probability of service needs during general release, which is a very good thing.
Previous Items Resolved
A Bluetooth security update on Android platforms made some BLE peripherals like TextBlade hard to see in the pairing process. Working with Google engineers, our Dev Team was able to update our Bluetooth advertising messages to restore full service to all our Android customers.
Our developers also updated our internal BladeComm network that connects all the blades, to increase resilience against unintended key-repeat scenarios, and a host of other subtle but important refinements. With hundreds of TextBlades in diverse user environments, they're getting daily pounding for hours a day, over several months of use. These intensive use cases are highly effective at proving TextBlade's reliability in harsh real-world conditions, and race-proving it for General Release.
Jumps is one of TextBlade's defining capabilities, and it's made possible by a unique new combination of qualities:
Key feel superior to others, yet in a size that goes anywhere.
Once you use TextBlade, you quickly realize how integral the value of Jumps becomes. We've continued to expand our Test Release Group users, and they are giving Jumps a serious workout daily.
It turns out that Jumps is also a super effective way to shake out any quirky use cases. Jumps is sort of the extreme stress test for everything TextBlade can do, and every (sometimes crazy) thing we might want to do with a keyboard.
Jumps darts from one Bluetooth connection to another at very high speed, and frequently. It whisks you over from one host operating system to another. It gives you 6X more reasons to pair, and many good reasons to install diverse key maps. It recognizes gestures to know when you want to jump, and it even prompts TextBlade to translate keystrokes automatically, so you can use the same commands even when your host machines are quite different.
If there's any kind of latent issue in a nook or cranny, chances are Jumps will help find it. In this quarter we've continued to comb through the logs sent in by our TREG users, looking for hints of odd behavior when TextBlade is asked to do all these tasks in rapid succession, and across diverse machines and OS environments.
Most of our users are now reporting smooth performance across their different systems, but there's still a meaningful incidence of peculiar scenarios. We've gotten through many of these, and are checking off more each week.
We can't list all the little oddities we've fixed, but here's a few recent examples of where we're focused: 1. We found that in a few cases, all of the combined activity can occasionally put TextBlade into a "La-La state" (credit to user Trace R.), where it gets confused and needs a reboot; and 2. We see some residual Bluetooth link interruptions in particular combos of OS's and sometimes other Bluetooth peripherals concurrently hooked up.
To diagnose the Bluetooth quirks, we've had to significantly amp up our test and monitoring firmware. We now have deep diagnostic logging capability right inside the Bluetooth core, inside the actual Bluetooth stack. This industrial strength monitoring capability had to be custom made by our Dev Team, and all the data is transported up to our App so users can easily send it to us to analyze. This is very powerful, and when any user gets a log of a particular state, we can pretty confidently knock it out. We'll be continuing to settle these kinds of points over the coming weeks, and see what users report after our updates.