Internet of Things is the new hot in tech
Internet of Things (IoT) is a popular buzzword in the tech/gadget community. The concept is that all the devices in our everyday life can be online/connected to the Internet 24/7, and thereby help to improve and make our lives more efficient.
This includes our light bulbs, kitchen appliances, TVs, alarm and heating systems etc. All our "things" should be able to communicate with each other and be controlled from everywhere in order to achieve a more efficient and convenient world for us to live in.
Ideas for the connected car
Why should it not also include your car? Major tech companies have already started a built-up within this field, such as Tesla, Google and Uber.
But where does that leave us, who cannot afford an expensive luxury car with the latest tech gadgets or a Tesla with an autopilot?
Different attempts to solve this have been made earlier. Most attempts have been made using the OBD2 port of the car, and thus reading out telematics from the CAN bus of the car, with a goal to have a connected car.
Common for all these previous systems is that their platform was locked for modifications and alterations by the users.
This puzzled us and we decided to try to build our own system. We wanted a system that everybody could change, update and modify to their liking.
We wanted a system that was always online and available. We did not want a system that was dependent on an internet connection through a mobile phone. We wanted a true IoT platform in the car.
Our requirements were:
Online even when friends or family members use the car
Not dependent on a mobile phone
Open for programmable changes
But also configurable without programming experience
Extensible with external systems
Built on a well known hardware platform
An IoT platform built on the Raspberry Pi Zero
We quickly realized that products from The Raspberry Foundation were very suitable for our project. We ended up deciding to use the Raspberry Pi Zero as the heart of our hardware telematics unit.
The Raspberry Pi is a widely used, affordable and proven micro computer. It runs a high-level operation system and has a large backing community.
We decided to build a HAT (Hardware Attached on Top) for the Raspberry Pi Zero, containing the needed IOs. We included:
4G LTE modem
OBD connection to the car
GPS + A-GPS
A more comprehensive description of the AutoPi TMU device can be seen HERE
All the pinouts from the Broadcom BCM2835 processor are available through the SODIMM DDR2 interface on the Compute Module.
This gave us a lot of possibilities during the design phase of the AutoPi and therefore the Compute module was an obvious choice for us as a main processor.
The status of the prototype development at that time, was that the hardware development of the AutoPi was almost done. The prototype consisted of two custom boards for internal components and functions.
Together with the Compute Module, the prototype contained 3 separate PCB’s with components on both sides.
The Compute Module was connected to the rest of the system through a SODIMM DDR2 connector mounted on one of the custom PCB’s.
The complete system was working and we were developing software for the device and backend.
On November 26th 2015 the Raspberry Pi Foundation announced its release of their new Raspberry Zero . While we were almost complete with the design of the AutoPi with the Raspberry Compute Module, this needed further investigation.
The Raspberry Zero is priced at only 5$ (4£) and just because of this it was much more interesting than the Compute module priced at 20$.
Also a lot of the functions provided by our custom boards were already build into the Zero, such as HDMI and USB connection. A negative side was that the Compute Module used a build in 4GB eMMC RAM for memory, while the Zero relied on an external SD card for memory.
A closer look at the specification for the Zero, revealed that all of the needed functions for the AutoPi was covered by the outputs on the Zero.
The design changes needed to include the Zero was few, so it was decided to use the Raspberry Zero as main processor for the AutoPi.
A full description of the final design of the AutoPi hardware platform, can be seen HERE
A software platform built for IoT
We created a hardware platform that matched our initial requirements, but our vision was not complete. We wanted to connect our car and hardware telematics unit to an IoT software platform .from where we could easily manage and update the entire system.
We wanted the platform to include a fully customizable dashboard, where each user could set up their own widgets.
We wanted it to be easy to install new features from a community driven platform:
But we wanted to make sure that the user still had full possibility to interact, configure and program their Raspberry Pi and car directly from our IoT Platform:
AutoPi is famous for its advanced Raspberry Pi car projects. A more detailed overview of the AutoPi IoT platform can be seen here We ended up with an open and versatile system with some unique key features:
The AutoPi is not dependent on a connection to a mobile phone and is therefor online no matter who is driving the car
Advanced code modules can be programmed, uploaded and tested directly from the built-in editor.
Dashboard, triggers and add-ons are available for easy configuration and does not require programming experience.
With built-in WiFi, Bluetooth and USB it is easy to extend the system with other subsystems and extend the possibilities of the system.