Prism is a smart charging station for your electric vehicle.

Similar projects worth following
Prism is (arguably) the best way to charge your EV. Built with security and safety in mind, it's fully customizable and easy to talk to: it runs Linux, speaks MQTT and has CAN and RS485. But more importantly, it's efficient and it can help saving the planet by charging only when solar power is available, making you 100% independent from the grid and petrol lobbies. You can also connect to services like to throttle your car charging power when the grid is overloaded, to avoid firing up coal power plants. Speaking MQTT, it's easily integrated with OpenEnergyMonitor for control and monitoring.

I will not stress you with the usual catastrophic global warming stuff, you can read plenty about that online (here's a great article). However it's no coincidence that my love for electronics and efficiency drove my career straight into one of the fields that was promising a huge impact on that front: Electric Mobility.

This is the story of a journey that started a few years ago, when I and a friend with this same passion started a company to be part of this revolution, with big ideas for the future and small pockets. 

But you have to start somewhere, so we tackled one of the most annoying problems we had as EV drivers: charging. You can charge your vehicle at home with an EVSE cable, but that's only a temporary solution as the charging rate is very slow (~10km/h) and it's usually not very safe as plugs in Europe are not designed for that kind of continuous load. This solution is also ugly and dumb because you can't control the charging rate and you easily trip the main circuit breaker if you use other loads in the house. Reducing the charging current when other loads are connected is a very basic feature, but at that time the only device offering it was the OpenEVSE. Even today, only a few brands offer this feature, and it's usually a quite expensive optional. 

And while we're at it, why can't we also sync with our solar inverter and charge only when the sun is shining, if we're not in a hurry? Again, only an OpenEVSE connected to an OpenEnergyMonitor can do this. That's a very important feature as it reduces the overall pollution in the lifecycle of the vehicle, makes the user totally independent from oil companies and helps reducing the load on the grid, making transition to EVs easier for everyone.

So we built ourselves an OpenEVSE, and we were happy for a while. But oh, there's so much to improve! It doesn't have ethernet (WiFi in the garage was very flaky), it was only single phase, and it looked (and still looks imho) too much like an hobbyist project.

We also had the chance to test some commercial products, and when one exploded on us we decided it was time to make things right. And the idea of Prism was born.

Other great and unique features that set Prism apart from the competition:

  •  Based on OpenWRT Linux:
    • high security and constant updates
    • easy development in any language (C, LUA, Python, PHP...)
    • WiFi Access Point feature: very important to keep your car connected if your garage is underground
    • Integration with Vehicle API, to customize charging based on vehicle state of charge
  • Open and easily and "modularly" customizable: you can play with any part of it, e.g. if you're not comfortable messing with high voltage stuff, you can just play around with the cover module that still has access to all data and customize the user interface, or redesign only the Linux module to use your own SOC, or just code new features in any language without touching the hardware.
  • One single prism can charge one or two vehicles at the same time
  • Advanced energy monitoring can give unique insights into the EV charging system - especially useful for makers playing with this component
  • Extra safety with integrated Ground Fault protection for both AC and DC residual current
  • Oversized contactor for extra safety

General specifications are:

  • up to 22kW charging power (3 phase)  or 7.4kW (single phase)
  • 400V AC (3 phase)  or 220V AC (single phase)
  • IP54 case (but by design we should be able to achieve IP64 or even IP67)

Here's the latest image of the prototype in its case:

Status of the project:

  • The electronic modules are going into production - we received the first prototypes and we're testing them
  • We finished the plastic case molding and will manufacture...
Read more »

View all 6 components

  • An idea to improve safety and security

    Mastro Gippo10/28/2019 at 16:02 0 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.

    Read more »

  • emove360 and Maker Faire Rome!

    Mastro Gippo10/28/2019 at 15:16 0 comments

    It's been a crazy week, as I visited emove360 in Munich and the Rome Maker Faire netting 2000km in 5 days!

    Read more »

  • Security, OpenWRT and storage

    Mastro Gippo10/08/2019 at 09:31 2 comments

    Tales of security woes over the years made me a bit paranoid about the various vulnerabilities I could expose my users to, so in the development of Prism I wanted to make everything as secure as possible without breaking the bank.

    Read more »

  • A quick recap

    Mastro Gippo10/01/2019 at 12:43 0 comments

    Today is the deadline for the Hackaday Prize contest, and that's a great chance to write a recap article about Prism.

    Read more »

  • OpenEnergyMonitor, Node-Red, MQTT

    Mastro Gippo09/30/2019 at 18:43 0 comments

    All that effort to build a connected charging station brought its first victory as we were finally able to regulate charging based on the solar energy available. Since we had issues with our solar installation (panels are installed, but we're still waiting for the bureaucrats approval and meter installation to activate them), we went to a friends house to experiment with his installation.

    Read more »

  • Front cover protection and dealing with suppliers

    Mastro Gippo09/29/2019 at 17:55 0 comments

    At the end of the front cover post I mentioned that we were working with a plastic sheet supplier to design an adhesive protector for the cover. I was pretty excited when I got the package today, but that excitement quickly turned into rage and frustration as soon as I opened it: the parts that should have been transparent are red instead.

    Read more »

  • Board testing: it's fun, they said

    Mastro Gippo09/26/2019 at 11:59 0 comments

    This post is written by my friend (and now colleague/intern :) ) [Michele], who worked on the test board. I assigned him this task as it's the best way to learn about the boards and get up to speed with the project. It also seemed a great way to test the really interesting Exclave project from [bunnie], but -spoiler alert- we'll have to wait for that.

    After manufacturing the boards, we need to test them to make sure that the assembly house built them correctly. This is my first time designing a nail bed, however the task seems quite simple. I have to test the following:

    • Short circuits
    • Voltage levels from the various power supplies
    • Current consumption
    • Communication (RS485, I2C, SPI ...)
    • Other signals to and from the board

    Being this my first time, Mastro Gippo explained me very well what he has in mind for this testing device. It will consist of two pieces: one double-stacked board with pogo pins and clamps to secure the device under test (DUT for short) and another board with all the logic and the supply to do the testing. The logic board will be divided in two parts, one for testing the high voltage side of the DUT, which is attached to the mains power, and another part for the low voltage side (12V max). All looked very clear to me, so let's get started!

    Read more »

  • Prism Core boards

    Mastro Gippo09/25/2019 at 19:06 0 comments

    Now that I tested and improved the proof of concepts for power, energy measurement, control and car interfacing, I can merge everything in a single block that fits in a nice box. As discussed in the enclosure post, I choose to use a 3DIN standard box so I looked around for options.

    Read more »

  • My 2 cents for Linux

    Mastro Gippo09/24/2019 at 11:28 2 comments

    Image result for tux chip linux

    While I am definitely a hardware guy, I also really like to write software, either as the firmware for the devices I build or as quick hacks to improve my daily routines. I've always been a Windows guy because all electronics development software was only available for that platform until recently, and I have a love/hate relationship with Linux: I tried many times to use it as my main OS, but I always had to revert to windows for one reason or another (but mostly laziness, I must admit). 

    Read more »

  • RCM direct current sensing - how it's done

    Mastro Gippo09/16/2019 at 18:24 0 comments

    This post is written by my friend (and now colleague/intern :) ) Michele.

    Our target users for Prism are mostly hackers and passionate people playing around with EV technology; for this reason we strive to make Prism as safe as possible even for the most edge cases.

    Read more »

View all 18 project logs

  • 1
    Install Prism Core, the five Phoenix terminals and the contactor on the DIN rail
  • 2
    Connect the five cables according to the documentation
  • 3
    Place the DIN rail inside the final enclosure

View all 7 instructions

Enjoy this project?



Mike Szczys wrote 10/22/2019 at 16:18 point

It was really cool to see Prism at Maker Faire Rome this weekend. I know the enclosure design was a painful process, but what you ended up with looks fantastic!

  Are you sure? yes | no

Mastro Gippo wrote 10/22/2019 at 16:31 point

Thanks Mike! We were lucky to get Anna's help, an awesome designer that designed the first concepts. Of course, we strive to maintain (or restore) the Made in Italy brand, by combining a nice design with great product quality :)
But really, I just try to build something I can be proud of, like all makers here. Glad you liked it!

  Are you sure? yes | no

Massimo De Marco wrote 10/19/2019 at 18:50 point

Mastro, complimenti. Ma sei in Italia o qui negli States? Possiamo connetterci?

  Are you sure? yes | no

Mastro Gippo wrote 10/22/2019 at 16:26 point

Ciao Massimo! Sono in Italia, passo di lì a Novembre per la Superconference :) Ti scrivo in privato per i contatti 

  Are you sure? yes | no

John wrote 10/01/2019 at 19:17 point

Awesome work! You really have to know a lot about everything to pull all these components together!
I've been working with the ATM90E32 for a while now, and have developed products around it that also can use EmonCMS:

  Are you sure? yes | no

Mastro Gippo wrote 10/02/2019 at 10:34 point

Thanks! :) That's a really nice project, I was thinking about making something like that to sell as an accessory for Prism! Maybe we can work on something together?

  Are you sure? yes | no

John wrote 11/12/2019 at 20:36 point

I'd be up for that!  Let me know if you have any ideas. Glad to see this is coming on Crowd Supply too. I had a campaign on there, and it went well. Good luck! 

btw, I converted your ATM90E GUI code to work with an esp32, but I can't get it to detect that I'm using an ATM90E32 (not the 36A). Is there something in the hex code that it is looking for that determines the chip type? 

  Are you sure? yes | no

Mastro Gippo wrote 11/14/2019 at 01:37 point

Thanks! Let me know when you publish the esp32 port, I'm interested! :) re the issue, I'll look into it when I get back from the Supercon, but it looks like you're on track from what you wrote on github! Maybe change the id on req. b2, and look at lines 120-123 to recalculate its checksum! :) 

  Are you sure? yes | no

2019 wrote 09/13/2019 at 05:50 point

Love it!

I live in an appartment-complex in the third floor and the car is in underground parking. We strung 90 meter cable, to get from the meter (also in the basement) to the car. I'd like to monitor the car's charging, but there is no way to get ethernet or wifi there. Can you make modules to plug in LoRA? Or Powerline Communication, because there is an electrical connection from my flat to the meter to the car.

  Are you sure? yes | no

Mastro Gippo wrote 09/13/2019 at 09:09 point

Thanks! :)
There is some space left inside the enclosure, you should be able to fit a PLC module connected to Prisms ethernet port, that would also provide WiFi connectivity to the car if needed. Of course, being open, you can also add a LoRA module to forward commands and charging status. You can go through the serial port or just connect a USB LoRA dongle and write your own software that runs on the linux module.

  Are you sure? yes | no

Rick M wrote 09/11/2019 at 21:51 point

Does it have an Ethernet port? It seems like it would, if it has a Wi-Fi access point, but I wasn't sure.

  Are you sure? yes | no

Mastro Gippo wrote 09/12/2019 at 10:16 point

Yes, it does! One of the greatest things about running OpenWRT is the focus on connectivity. I wanted to have two Ethernet ports, but doing that would have disabled other peripherals I'm using like the microSD card slot. There's space on the PCB if you want to solder the additional port though!

  Are you sure? yes | no

rhcoffee wrote 09/11/2019 at 16:13 point

Great stuff! I built two 40a Openevse units for my house over the summer. I made them tetherless units so I could keep the units indoors and plug in from the driveway; via outdoor type2 sockets.

I thought OpenEVSE's enclosure was a little too small, so I just found the company(Hawk eletronics), who makes the pretty much off the shelf enclosure, that OpenEVSE uses; and ordered a larger unit. I'm pretty glad I did

TBH the best way to combat wifi issues, is to just have mesh wifi. My main router is about 500ft from the evse wifi, but with mesh units spread around I don't have any connection issues.

  Are you sure? yes | no

Mastro Gippo wrote 09/12/2019 at 10:21 point

Nice and clean! I'll be selling Prism as a kit too, so you can install all the hardware in a standard DIN distribution box and have the plug wherever you want, for "invisible" installations :).
WiFi mesh is a great solution, but it works only for the ESP data if I understand correctly. Or you have to add more WiFi repeaters and that's not always an option... I added ethernet especially for underground garage coverage, and to provide an access point for the car if there's no GSM coverage. 

  Are you sure? yes | no

chris clark wrote 09/11/2019 at 16:10 point

An interesting project thnak you. I am signed up for the Kaluza/OVO Vehical to Grid project for my 40KWh Leaf.  I also have a Tesla 14KWh Powerwall 2 storing a 3Kw Solar.  Tesla's system is very proprietory and not easy to modify but it would be great to integrate the whole thing so I can store and draw from both places.

  Are you sure? yes | no

Mastro Gippo wrote 09/12/2019 at 10:38 point

Nice setup! :) We're getting a powerwall too, our ultimate goal is to be 100% compatible with Tesla stuff. Someone already reversed the communication protocol for the Tesla wallbox, and we're developing a special small version of Prism to install inside it and add connectivity. Prism itself is already designed to communicate with the Tesla wallbox via RS485, so they can be installed together and share loads. Prism also runs linux, and we already wrote some code to connect to the Tesla account, so it should be able to get the Powerwall data out of the box :)

  Are you sure? yes | no

chris clark wrote 09/12/2019 at 19:12 point

I ahve found this article which is for Powerwall 1  with lots of redactions which is unhelpful.  There is a web interface which can give limited info out in JSON format as well as a crude graphic display.  A Tesla update removed this functionality and never told us users or that it had been reinstated :-(  There is a third party Android app for minitoring and Tesla's own app allowing setting of charge times but as I don't have a cheap rate package that is no use to me.

  Are you sure? yes | no

Mastro Gippo wrote 09/13/2019 at 09:05 point

That's a really interesting doc, thanks! They also didn't do a great job at redacting, as you can find all the register names on page 39, LOL. You'll just have to find the formula, but it should be easy. You can also gather some basic data through the APIs:

  Are you sure? yes | no

Sophi Kravitz wrote 07/31/2019 at 14:37 point

Yessss great project idea and much needed! Does solar deliver enough power to charge the car in a reasonable amount of time? 

  Are you sure? yes | no

Mastro Gippo wrote 08/01/2019 at 10:20 point

Well, it depends on how big your solar installation is! Usually even the smallest is enough to get 10km/h free charging, or about 50km daily range. Most daily commuting is less than that, and in case of clouds or emergency you still have the grid :)

  Are you sure? yes | no

Mastro Gippo wrote 08/01/2019 at 10:21 point

Also, you probably spend 8 hours a day in an office/factory, that definitely should have solar panels installed!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates