A few months ago, I published my first article introducing Teltonika-Go:
Introducing Teltonika-Go: A Go Package for Parsing and Communicating with Teltonika Devices
At the time, the goal was simple:
Build an open-source Go library to simplify communication with Teltonika GPS tracking devices.
The project started as a side project inspired by my experience working in vehicle tracking and telemetry systems. I wanted a reusable package that developers could easily integrate into their own fleet management, IoT, and GPS tracking platforms.
Since then, the project has grown significantly.
What Has Changed?
The initial version focused primarily on AVL packet parsing and the most commonly used codecs.
Today, Teltonika-Go supports:
AVL Data Codecs
- Codec 08
- Codec 8E
- Codec 16
Command & Response Codecs
- Codec 12
- Codec 13
- Codec 14
- Codec 15
Additional Features
- AVL packet decoding
- AVL packet encoding
- Command packet encoding
- Command response decoding
- TCP support
- UDP support
- IMEI handling
- CRC validation
- Timestamp utilities
- Extensive unit testing
Repository:
https://github.com/danieljvsa/teltonika-go
One of the biggest milestones was expanding support beyond AVL data packets and implementing command-related codecs.
This transformed the library from a parser into a more complete communication toolkit for Teltonika devices.
Why This Matters
Many GPS tracking systems eventually need more than just location data.
Real-world deployments often require:
- Sending commands to devices
- Receiving command responses
- Managing remote configurations
- Supporting multiple Teltonika device generations
- Handling both TCP and UDP communication
Supporting these additional codecs makes it easier to build complete integrations without having to implement protocol handling from scratch.
Lessons Learned
Protocol Specifications Matter
The most challenging aspect of the project was never the Go code itself.
The difficult part was ensuring protocol correctness.
When working with binary protocols, small mistakes can break communication completely.
Issues such as:
- Incorrect packet lengths
- CRC calculation errors
- Wrong byte ordering
- Timestamp conversion mistakes
can result in devices rejecting packets without providing much information about what went wrong.
Most development time was spent validating behavior against protocol documentation and testing edge cases.
Testing Became Essential
As support for more codecs was added, the importance of testing increased dramatically.
Adding new functionality without introducing regressions became a priority.
Today, the project includes a growing suite of tests that helps ensure stability when adding features or improving existing implementations.
Open Source Is About Iteration
One thing I enjoy about open source is that projects rarely remain in their original form.
The first release is simply the starting point.
Since publishing the original article, I've received feedback, discovered new use cases, and identified areas where the library could be improved.
Each iteration has made the project more complete and more useful.
Building with Modern AI Tools
This project was also an interesting opportunity to explore modern AI-assisted development.
I used tools such as:
- Claude
- OpenCode
- DeepSeek
- Qwen
to accelerate development tasks including:
- Boilerplate generation
- Test creation
- Documentation improvements
- Code reviews
- Refactoring suggestions
The biggest lesson was that AI works best as an accelerator rather than a replacement for domain knowledge.
Understanding GPS tracking systems, binary protocols, and Teltonika specifications remained essential for validating the generated code and ensuring correct behavior.
What's Next?
There are still several improvements planned for future releases.
Some areas I'd like to focus on include:
- More real-world examples
- Complete TCP server examples
- Improved documentation
- Better pkg.go.dev support
- Additional protocol utilities
The goal remains the same as when the project started:
Make Teltonika device integration easier for Go developers.
Final Thoughts
Looking back at the original article and comparing it with the current state of the project, it's satisfying to see how much it has evolved.
What started as a simple parser has grown into a much more complete Teltonika communication library supporting multiple codecs, command handling, and packet generation.
If you're working with Teltonika devices, GPS tracking systems, or telemetry platforms, I'd love to hear your feedback.
Feel free to check out the repository, open an issue, or contribute to the project.
Happy coding 🚀
Repository:
Top comments (0)