An idea to improve safety and security

A project log for Prism

Prism is a smart charging station for your electric vehicle.

Mastro GippoMastro Gippo 10/28/2019 at 16:020 Comments

At this point I should really be wrapping up everything and start delivering the first units, but as I was preparing the front cover files for the factory I couldn't help adding a nice new feature.

---------- more ----------

Basically, to encourage people to play with Prism, I separated the system in different blocks:
- any developer can easily write software for the Linux core, in many common languages like C++, PHP, LUA and Python, without any knowledge of electronics. Even if they don't want direct access to the internal system, they can easily develop on their own server using MQTT. There only risk here is to brick the Linux board, but it shouldn't be a problem as long as you don't try to flash a new firmware.
- Firmware developers can develop their own firmware for the internal STM32F103 that talks with the car, or for the Atmega328 on the front cover. For the STM32 there is a slight risk of damaging Prism, and a risk of damaging the electrical system if the current checks are disabled, but this shouldn't be a problem if the electrical system is built correctly (the breaker controlling that line should trip before any damage can be done).
- Electronic designers can cheaply build new front covers (5 pieces from JLCPCB are 20$) with additional electronics like NFC readers or custom displays, or experiment with creative new designs like a HAL9000 version with a LED ring, or a Supercar version with a horizontal LED strip playing the Larson scanner and the silhouette of K.I.T.T. etched on the copper layer.
As long as you play with the software only, there is no health risk - everything can be reprogrammed without even touching Prism.
Only replacing the cover would be dangerous for the users, so to reduce this risk I added this tiny QRE1113 IR proximity sensor on the back:

This will sound an alarm from the piezo when the cover is removed, to remind the user that there's still voltage inside the box, but other than improving safety it can be used to improve security too: we can send the user a notification, and even delete all keys and passwords if someone gets physical access to Prism! Then it's just a matter of securing the electrical box to make sure a potential thief/cracker can't remove power without being noticed.