Ather Energy started with the vision to develop world-class hardware in India, and braided into that was the idea to let engineers be engineers—solving complex problems, irrespective of whether they are at Ather or outside. Unlike software development, which thrives on easily available and customisable computational resources, hardware development is often hindered by a critical bottleneck: the inaccessibility of the right tools. Frequently, these essential instruments are not locally available and must be imported at a significant premium; in other cases, they may not even exist, compelling innovators to first build the tool before building the product. This challenge applies to a wide spectrum of equipment, from simple dataloggers to complex, high-fidelity cell cyclers.
At Ather, we confronted this reality firsthand, rarely any infrastructure existed for building electric vehicles. Undaunted, we went on solving problems as they cropped in our way. We want to share some of these with the broader community, enabling others to bypass the initial hurdles and accelerate directly into building hardware products. Ultimately, our dream is to foster a vibrant community of developers in India dedicated to creating newer, improved tools, thereby dismantling the barriers to hardware development and sparking a wave of rapid innovation.
Two of the important problems we tried to solve apply to almost all automotive and even most industrial hardware. Typically, they consist of multiple subsystems communicating over a CAN bus, with each subsystem driven by one or more Microcontroller Units (MCUs). The fundamental role of these MCUs is to sense electrical signals and control actuators, which requires a mastery of peripherals like PWM, Timers, ADCs, and GPIOs. This requires significant time investment, and does not directly result in any usable feature. Furthermore, to truly understand system dynamics, an engineer must be able to observe CAN bus traffic and inject messages to test responses. Tools to interface to a CAN bus are not easily available; PeakSystem CAN loggers are sometimes prohibitively expensive. We wanted to attack both problems to make Firmware development easier.
ASDK: Application Software Development Kit
The Application Software Development kit (ASDK), fully open source SDK from Ather, is an attempt to lower the barrier to firmware development. Although Arduino and ESP32 have leveled the playing field for embedded programmers, sparking creativity, they are typically good only for POCs and ad-hoc systems. Work is yet to be done on general purpose, mass market MCUs for mass production. We realised just like high level languages abstracted out the processor instruction set and the associated assembly language, thus sparking a revolution in computer programming, we need to abstract out the lower level details of MCUs in an efficient manner to quickly enable feature development. Often, the most time-consuming and error-fraught barrier to real innovation is this initial step: learning the unique "language" of each MCU, a language that differs not only between vendors but also across distinct families from the same manufacturer. A standard set of API that works on any underlying hardware, much like Arduino has successfully proven in the broader developer community, could significantly reduce this barrier. The first version of ASDK has been written for the CYT2G series of MCUs from Infineon; work on the C2000 series from TI is in progress.
For example, development of Battery Management System (BMS) application code with different microcontrollers (MCUs) would earlier need complete redevelopment of the entire application, as each MCU came with its own SDK (typically provided by vendors). Any field update for a fleet of vehicles consisting of BMS with different MCUs would then need updating the application for all different MCUs. The ASDK helps in abstracting out the underlying hardware, and therefore lays the path for a single, unified application code independent of the MCU. This is depicted in Fig 1.
The power of the ASDK has been tested live in two versions of the ByteBattles competition, where contestants could directly write code and develop features on Ather vehicles within the span of a single day, without knowing any underlying details of the microcontrollers controlling the ECUs. Thus, it encourages people to think of the vehicle in terms of human-understood systems like switch on/switch off, read temp sensor and send a CAN message to actuate the brakes, as opposed to GPIOs with pull-up/ pull-down, Analog to Digital Conversion and details of controller area network.
ACAN: Ather Controller Area Network Logger Tool
Having defined a suitable language for abstracting out the MCU, we next focused on building an affordable tool which can help us interact with the CAN bus. We indigenously developed a CAN to USB converter and associated logging and visualisation SW. The Ather CAN (ACAN) is a result of this effort. In fact, the ACAN is based on the CYT platform itself, and it utilises the ASDK that we built around CYT. All the ECAD and MCAD files are available so that a working version can easily be obtained. As shown in Fig 2, the form factor is deliberately kept similar to the logger available from Peak System.
Invoker Tool: Viewer for ACAN
The Invoker tool allows one to use the ACAN hardware on Windows, Linux and MAC for live/logged data visualisation, analysis and manipulation. It is developed in Python to view time-series data captured from csv and CAN formats. The program has been created to ease workflow of viewing, analysing and exporting CAN logs. Data can be exported easily into csv, images and pdf format. It includes an inbuilt python terminal for advanced interactions with dataframes using python libraries.
File formats viewable are not limited. If one can decode it, then one can view it: Custom functions can be added to view format of choice.
Analysis
Data can be analysed quickly using region of interest bands and analysis windows
Math output of analysis can be customised from source code to suit your workflow
We strongly believe that if we have built something good, the best thing to do is to give it to the world to make it great. We did this with the Ather charging connector, which has now become the national BIS standard for AC+DC charging. Therefore, it is befitting that we open-source our Application Software Development Kit (ASDK), the very language for MCUs, for any engineer to use, along with ACAN and Invoker tool. Anyone is free to add to this language and the tool, modify them, making them collectively more powerful with each passing day. We are confident that both ASDK and ACAN will accelerate hardware dev in India.
Both ASDK and ACAN are available with all the associated design files on our tech community page under ASDK and under ACAN. The Invoker tool is also available with all Python source code. Equipped with both a universal language to speak to any MCU and an easily available, affordable device to watch and manipulate the CAN bus, a firmware engineer can bypass tedious signal-level troubleshooting and focus directly on the crux of development, enabling them to innovate on features rather than being mired in foundational setup. We hope that ASDK and ACAN, would encourage many more to develop meaningful hardware and delightful features for both India and the world.










Nicely put. I have the same comment as Ratheesh K. I could not locate the source code of invoker tool. Is it not open source?
Great work, but i could not locate the source code of invoker tool?