TMC is an independent, primarily volunteer organization that relies on ad revenue to cover its operating costs. Please consider whitelisting TMC on your ad blocker or making a Paypal contribution here: paypal.me/SupportTMC

Programming for Software Improvements

Discussion in 'Model S: User Interface' started by wk057, Nov 10, 2014.

  1. wk057

    wk057 Senior Tinkerer

    Joined:
    Feb 23, 2014
    Messages:
    4,723
    Location:
    Hickory, NC, USA
    So, I'm a software dev. Have been for many years. I've branched into software dev for embedded systems and other tech, as well as hardware dev these days. I'm quite experienced in the field.

    That said, I'm confused by continuous lack of inclusion of what appear to be very basic software features for the Model S in the OTA updates. Something as simple as shuffle in the media player, for example, I can pretty much guarantee I personally could code, bench test, field test, and finalize such a thing in a matter of a couple hours max, by myself.

    Presumably Tesla has a team of software engineers working on the interface. While I'm sure there are some large priorities, I think there have been some mistakes made. Personally, I don't think naming the vehicle should have been a feature before media shuffle... but that's just me.

    I'm honestly just a bit confused. A lot of the requested features I hear about around the forum appear like they would require next to zero development time, yet they haven't been done. I'm just curious what the reason for this could be. It is not like no one has made a media player with shuffle before. It's not like this is a complex feature to program from scratch...

    I keep using shuffle as an example because it is a highly requested feature that is likely only a few dozen lines of code to make a 'dumb' shuffle feature, and a couple hundred lines for a 'smart' shuffle feature... neither of which should consume more than one work day worth of even the laziest developer's time.

    I'm sitting here thinking to myself, "If I had access to do so, I could make this the most awesome interface ever, loaded with every feature you could imagine." It wouldn't take me years to add shuffle. That'd be one commit to the code, and a bullet on the release notes as soon as it were suggested.

    Shuffle? Valet mode? Settings PIN? Bluetooh pairings with driver profiles? Any other simple software-only feature that is missing?

    I'm serious, these things should literally be virtually no work for a developer to add to this already fleshed out setup. The hard work is already done, adding these features is dead simple.

    Why aren't they? I don't know. I'm all ears.

    In the mean time: Tesla, I offer my services, free of charge, to help improve the Model S UI. I will happily dedicate a substantial amount of time to coding and testing whole lists of feature requests if you will allow me to do so. I'll happily sign NDA's and whatever else is needed to make this happen, as well as grant you full rights and ownership to any relevant code I write for the Model S. Whether you accept my offer or not, just please do not make everyone wait an eternity for such simple software-only features.
     
  2. Cosmacelf

    Cosmacelf Active Member

    Joined:
    Mar 6, 2013
    Messages:
    3,399
    Location:
    San Diego
    Well, Elon recently confirmed that the Model S undergoes dozens of physical hardware changes every month. Given that they rely so much on software to do routine hardware things (like even blinking the turn signals), I can imagine what a challenge it is to have a single release that deals with 10,000 or so subtly different cars. Even the processor the software runs on has changed. If I was a betting man, I would bet that the software can't even rely on being able to determine what hardware is in each car.

    For instance, the position and receive strength of the key fob antenna has no doubt changed about five times (at least). It is very possible there is no way the car software can test what kind of antenna a given car has. So, somewhere there must be a detailed database of VIN to car components. The database is also probably known (to the programmers) to not be 100% accurate.

    On top of all this, I know that the car monitors it's own hardware to anticipate future hardware outages. 12v battery, charging cables, and tire pressure monitors are three that I know the car monitors, I'm sure there are many more.

    So I suspect that the car's programming team is, quite simply, overwhelmed. The more cars they sell the more programmers they need to keep up with all the hardware changes they keep making.

    I don't think they have come to terms with what this means, although we on the outside certainly see it when we get underwhelming software releases that are way late.

    I realize that the autopilot team is no doubt a separate development team, but I suspect the integration of the autopilot software with the rest of the software will be error prone and problematic. In other words, expect big delays for autopilot too.

    As far as those trivial software changes, yeah, I agree. I would task one programmer to make them, but again, software integration testing is a bear...
     
  3. wk057

    wk057 Senior Tinkerer

    Joined:
    Feb 23, 2014
    Messages:
    4,723
    Location:
    Hickory, NC, USA
    Well, I know for sure that many of the hardware options are needed to be configured in the software by Tesla. Even large hardware changes like single or dual chargers requires a setting change. This stuff, however, seems pretty trivial once it is implemented.

    Changes to hardware like this would just be a matter of throwing in the appropriate configuration options into the hidden software settings.

    As for code running on different hardware, it is known that they utilize Linux already. This makes it pretty trivial to migrate to new hardware.

    While they're certainly making changes all the time, it stands to reason not 100% of the "hardware" changes they make require software changes. By hardware, I refer to things like the recently mentioned improved head room in the rear and things of the like.

    Still interesting that Tesla's software team does not tackle the relatively simple additions that would make for great release notes.
     
  4. markwj

    markwj Moderator, Asia Pacific

    Joined:
    Apr 10, 2011
    Messages:
    3,665
    Location:
    Hong Kong
    I suspect that they are so overwhelmed with the 'big stuff' that they are just not getting round to the smaller stuff you mention.
     
  5. steve841

    steve841 Active Member

    Joined:
    Jan 17, 2010
    Messages:
    1,398
    Location:
    Ft. Lauderdale, FL
    Tesla really needs to put some extra effort into the interface development...

    2 years in and a calendar and traffic based nav - oh and the location based suspension, are hardly major accomplishments.

    Tesla gets a D+ to date.
     
  6. majorlance

    majorlance Member

    Joined:
    Sep 22, 2014
    Messages:
    202
    Location:
    Bethesda, MD
    I really wish they would add shuffle. And Apple lossless support...
     
  7. donv

    donv Member

    Joined:
    Jul 15, 2013
    Messages:
    573
    Location:
    Lake Jeanclia, OR
    It would be interesting to know how their engineering is organized. I wouldn't think the guy who works on the media player would be the same guy who does the interface to the air suspension, but I suppose I could be wrong. As has been previously noted, the calendar is most likely there because Tallulah requested it... you just need her to request shuffle in the media player as well.

    That's what you get when you have a company run by one crazy genius!

    Also, on a more serious note, anyone who has shipped commercial software products understands that it's one thing to hack something together, another to actually test, integrate, and ship a product, or even a revision to a product. Sure, an engineer could write this quickly, but does Tesla have the QA resources to properly test it? Do they want those QA resources working on shuffle, or something else?
     
  8. wk057

    wk057 Senior Tinkerer

    Joined:
    Feb 23, 2014
    Messages:
    4,723
    Location:
    Hickory, NC, USA
    Shuffle isn't even something that needs to be hacked together. It's shuffle. Seriously, it's not rocket science.
     
  9. bob_p

    bob_p Member

    Joined:
    Apr 5, 2012
    Messages:
    939
    Tesla does have complexity in their software environment, with multiple onboard devices using software/firmware, frequent changes/upgrades to the hardware in production (increasing the number of supported configurations), and localization required to support the car in multiple countries & languages. Anyone of these complexities can make it difficult to deliver software - and the combination only makes it more challenging.

    HOWEVER, what Tesla is doing is not unusual - something other companies have been managing. While the hardware in the Model S is innovative and market leading in multiple areas, the software continues to underperform. Tesla seems to be content to provide basic functionality and has not yet met owner expectations of providing updates to bring functionality up to levels available in other vehicles (even to match what's offered in much lower priced or much older cars). Their software testing process still misses major problems, causing start-stops when they distribute releases. And the software releases are distributed in a seemingly random sequence over an extended period. [I've had to go to the local service center twice to get recent software updates - and I still haven't received the promised "annual" map update.]

    Tesla can do much better - and should be investing now in making the improvements needed to accelerate bringing new features to market, improving the functionality of their onboard software to at least meet and preferably exceed that of other cars on the market, and to improve the quality of the software distributed to owners.

    Adding more people isn't necessarily the solution - it might take a combination of architectural improvements to how their software is designed, an improved software process, coupled with a much better software testing methodology (which could be a combination of increased automated testing plus adding more owners to their beta tester pool) - and possibly some additional software staff (developers and/or testers).

    Among Tesla's owners, there are a number of us who have considerable experience in leading and managing complex software products - who would likely be willing to support Tesla in making these changes, or at least could provide significant assistance through more qualified beta testing.

    And if they don't fix this soon, Tesla is going to risk increasing customer dissatisfaction, especially when they start ramping up to delivering 500,000 cars per year...

    It's (past) time for Tesla to start doing better on their software - and start delivering functionality Tesla has discussed but not yet delivered - such as the App Store, greatly improved navigation, improved browser, 3rd party software (android emulator?) in addition to new features such as improved smartphone (Apple/Android/...) integration and the new autopilot features.

    For a company with Silicon Valley ties, shouldn't software be one of the strengths of the Model S??? (Especially since Tesla is nowhere near fully leveraging the potential of the onboard hardware - the continuous Internet connectivity, the large 17" touchscreen display and the software configurable dashboard)
     
  10. Cosmacelf

    Cosmacelf Active Member

    Joined:
    Mar 6, 2013
    Messages:
    3,399
    Location:
    San Diego
    Btw, FWIW, Tesla did already come out with an improved browser in the last few months. It might have been with 6.0. It's just that the new and improved browser still sucks. The speed increased, better compatibility, better touch registration, but still tons of bugs, and still too slow.
     
  11. SteveS0353

    SteveS0353 Member

    Joined:
    Aug 23, 2014
    Messages:
    357
    Location:
    San Diego, CA
    While I agree that the Model S software is lacking in many aspects, some simple defaults are just plain silly. In the energy app, having it default to display the instantaneous range estimate, for example, is silly. I almost always, first thing, touch the "Average" button on that display. It would be a simple change to make the default "Average" instead of "Instant", or better yet, make the default the last setting from the previous session. I've seen that request in the fora multiple times.

    It occurred to me that making the Model S code "open source", like Linux itself, and having the savvy Tesla community contribute to the development of the code would significantly increase the cadence for improving the software. The major issues with a truly open development environment like that are obviously around vehicle safety, with technical issues related to dealing with the myriad variations of hardware in the wild. I can foresee all sorts of safety, regulatory and legal issues in making that a reality, but they are not insurmountable.
     
  12. yobigd20

    yobigd20 Well-Known Member

    Joined:
    Oct 28, 2012
    Messages:
    5,793
    Location:
    Skaneateles, NY
    I think Tesla's software team is understaffed and missing some key elements, like quality control and experienced developers (judged by the number and type of bugs each release has contained). They are also very underpaid (I looked), so top talent is going to go elsewhere. Competitive pay needs to get fixed first.
     
  13. donv

    donv Member

    Joined:
    Jul 15, 2013
    Messages:
    573
    Location:
    Lake Jeanclia, OR
    I have a feeling this is the explanation.

     
  14. SteveS0353

    SteveS0353 Member

    Joined:
    Aug 23, 2014
    Messages:
    357
    Location:
    San Diego, CA
    I think some of this situation also extends to the electronic hardware team. The vampire drain when the vehicle is idle could be improved immensely. To give you some idea of the magnitude of the vampire power consumption, assuming the quoted 1% drain per day (Owner's Manual), and my personal experience is a bit higher -- it's roughly 1kWh per day, the power you would consume running a 40W light bulb continuously. For a high technology implementation, there are certain subsystems which need to run all the time, but frankly, 40W is enormous! BTW, a 40W continuous load (~3.3A essentially from the 12V battery which has to be topped off by the DC/DC converter from the HV drive battery) will stress the 12V lead-acid battery too.

    My career (before semi-retiring) was developing implantable medical electronics -- pacemakers and the like, which run on 10µW continually for 10 years of more. While there are obviously vast differences in the technologies between pacemakers and automobiles, there are common electronic hardware design techniques that could be used to significantly reduce the vampire power drain and not impact the functionality of the vehicle. Many of these techniques can be implemented in the software as evidenced by the addition of functions like "Stay Connected" in Power Save mode. It takes a holistic view of the intended function, across hardware and software, to engineer a near optimal power implementation. Experience counts.
     
  15. Todd Burch

    Todd Burch Electron Pilot

    Joined:
    Nov 3, 2009
    Messages:
    4,737
    Location:
    Smithfield, VA
    The slow pace of software development on the Model S has been my biggest disappointment with the car.

    I started a thread similar to this one 2 years ago. Sadly, the situation still hasn't changed.
     
  16. SteveS0353

    SteveS0353 Member

    Joined:
    Aug 23, 2014
    Messages:
    357
    Location:
    San Diego, CA
    I realized early on in my career that I had to take a holistic view of engineering, not separate hardware and software, if I was to arrive at a near optimal overall power solution in a fast-paced development environment. Both disciplines, operating independently, can do things to harm the power profile. Clocking the CPU at too high a frequency wastes power. Not duty cycling the radios wastes power. In a battery powered project (albeit a HUGE battery in the case of the Model S), every engineer (HW and SW) has to think about power, and talk to each other often to make the best decisions quickly. The more time everyone spends up-front with the specification, HW & SW partitioning and design / test verification the better.
     
  17. DITB

    DITB Charged.hk co-founder

    Joined:
    Nov 13, 2012
    Messages:
    1,568
    Location:
    Hong Kong
    I agree on these points above.

    I don't need the shuffle in particular, but there are other things. Like access to my iPhone contact faves - and have thousands of contacts - ok, I checked, 2125 at the moment, and I have neither access to favourites, nor a text based function. I know I could use the voice control, but "call peter" is a bit useless when I have 29 Peters in my contacts. Often it is not a "Peter" or a "Mark" I need to call, but a more unique name. Still, I have to browse quite a bit to find it using the screen, while on the phone I just use the search function and type in a few letters.

    I also want the energy to stay on "Average" as mentioned above, just make it stay where it was last.

    Speaking of energy, if Tesla doesn't make it, I want to make (or have made) a feature that will calculate the actual performance on range, and compare it to distance to destination. It should come up with a number which is simply an estimate of how much range is left when you get to your destination. If not using the built in navigation, I should be able to enter remaining miles, and it will decrease those as I eat up the miles (eh, km). If it would be smart enough, a route in nav would make a simple comparison between current and destination elevation, and add/subtract accordingly to the range estimate. No fun to see 30 miles estimated at destination, if the last part of the trip turns out to be up a mountain (in case one didn't know the area beforehand).
     
  18. bob_p

    bob_p Member

    Joined:
    Apr 5, 2012
    Messages:
    939
    Yes, it would cost Tesla more right now to start making the badly needed improvements to their software process, development staff, and the software itself.

    But the longer they wait to do this - the harder it will get - and the longer it will take. And if they don't do something soon about this, the situation could be much more challenging when they're shipping 500K cars per year.
     
  19. rdrcrmatt

    rdrcrmatt Member

    Joined:
    Jun 27, 2013
    Messages:
    551
    Location:
    Milwaukee
    I couldn't agree more with just about everything in this thread.

    Why can't I change charging rate via the app?
    Turn range mode on / off via app or while charging?
    Smarter headlights and day/night mode - learn the drivers habits or just allow adjustable threshold for switching
    TPMS by tire

    This kinda stuff brings me back to the issue we are all facing, we can't service / modify / work on these cars. Tesla is giving us no information about it and it is a problem.
     
  20. wk057

    wk057 Senior Tinkerer

    Joined:
    Feb 23, 2014
    Messages:
    4,723
    Location:
    Hickory, NC, USA
    Charging rate I understand not being in the app. You want someone to be able to accidentally bump you up over a personal limit, say 35A at an old campground to prevent breaker popping? Seems dangerous....
     

Share This Page