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

  • Security, OpenWRT and storage

    Mastro Gippo6 days ago 0 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 »

  • Front cover​

    Mastro Gippo08/30/2019 at 18:30 0 comments

    We thought a lot about the user interface for our charging station. After ditching the infinite mirror idea, we wanted something simple and elegant, inspired from the Tesla wall charger, so we started experimenting with RGB LEDs strips. 

    The first version of the cover for the plastic case was a laser-cut polycarbonate sheet, with a LED-strip taped to the back:

    This plastic sheet can be easily UV printed for customization, but it's a bit expensive to manufacture in big quantities. I was also a bit skeptic of this solution, as that kind of plastic is not very strong, especially on the thin borders around the screws. And we know that electricians installing this would drive the screws to death, cracking the cover and resulting in expensive returns.

    Turns out, as the law of the instrument states, if you only have a hammer all problems look like nails, and my hammer is electronics. And, uhmmm, what item do I daily use that is a strong, thin, semi-transparent sheet, that is also cheap, widely available, easily customizable for design and color, embeds a metal shield to better comply with emission requirements (or can be etched to become an antenna!) and can host electronics easily? You guessed it: a PCB!

    This is the first prototype of that idea. The "PRISM" logo is still gold-plated copper, but with the solder mask removed. I really like the matte black/gold combination. The two slots for LED strips and the MODE button are just the bare fiberglass base, with no copper and solder mask on both sides. There's copper around the Mode button and near the LED slots for a touch button and touch sliders, controlled by a Silicon Labs CPT112S chip.

    On the back, we have space for a connector to drive the LEDs and the I2C touch sensors. Here I connected it to an Arduino to test the look and feel of this solution:

    I soon prepared another revision, adding another Mode button (but without the text) and testing a bunch of different colors. The red soldermask is looking really nice as it brightly shows the copper layer underneath!

    Here's the back side and a video demo:

    With the basic principles defined, we decided to improve the design by ditching the touch sliders and simplifying the lines:

    With no need for complex Touch ICs, I simply switched to a cheap CAP1203. Having three separate inputs, I connected the central copper areas of the "P" and "R" letters in PRISM to the spare touch input pins; the idea was to use a combination of the main and the "R" buttons to reset the device and/or to trigger easter eggs.

    Instead of two separate LED strips and two additional LEDs for the buttons, I used a single central strip, hiding the second LED from the bottom to avoid having to solder many separate pieces of strip like in the early prototypes. It's a waste of a LED, but it dramatically improves assembly time and it's well worth the few cents, at least for the first small production batch.

    I also added an ATmega328P to control everything: while the initial idea was to have just the LED strip controlled by the main board, this allows for greater flexibility and a nice gateway to start getting confident in reprogramming Prism. Even if you're a newbie and you're scared of playing with dangerous high voltage, you can still easily and safely customize the front panel with the familiar Arduino IDE. And we have a lot of ideas for that! Like making a Supercar themed version with a horizontal LED strip, a Larson scanner and cool black/gold graphics, or a HAL9000 version with a NeoPixel ring and a speaker to creep you out every time you plug your EV :)

    But here comes a big fail: the CAP1203 touch IC doesn't work with a wet sensor, and Prism will be installed and operated outside under any weather condition! We're still discussing about the usefulness of that button (Prism is plug and play) anyway.

    ... Read more »

  • Enclosure hell

    Mastro Gippo08/18/2019 at 16:12 5 comments

    Before going on with the electronics, I'd like to write a bit about the most painful and stressful part of building a product: the enclosure.

    Read more »

View all 16 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?



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

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