Cardano transactions on embedded SoC

Name:
Smart Power Distribution

Description:
I’m an electrical engineer with ~15 years of experience in PCB design and firmware. So I’m much better versed in low level C code and embedded systems rather than high level software like the stuff Cardano developers talk about. However, I have been thinking about a smart power distribution system for a while now and the accounting/financial transaction autonomously has been the big missing piece. As an EE I really like the idea of building a module that can receive power from something like commercial solar panels and output this energy in one or more ways that others could use. Along with this, the smart power module could run a software stack (possibly and this is where I need help) to process transactions for users that need to either buy or sell this electricity to their neighbors or a neighboring village.

I got this idea because I saw a documentary of a guy who built a simple prototype to do this in a poor village. He did a good job, but I’ve been thinking of really trying to improve on this and adding a payment system is a huge improvement.

The short of this is that I’m contemplating building a smart power box that can take in solar power (and maybe other interfaces to support other generation methods) and distribute it along with an automatic payment system that gives users a wallet and allows them to sell electricity to one another.

The problem:
I don’t know if it is possible to run a Cardano wallet that can send and receive ADA on an embedded device. I think embedded Linux could be a good option here as these units (hardware boxes) need to be cheap and run a light weight software stack. My question → is it possible to run the software required for transferring ADA on an embedded device that runs embedded linux?

Conclusion/Questions:

  1. Is there a light weight way to execute ADA transfers between wallets?
  2. Roughly what might be required to run this wallet/ADA software if it is possible to transact on embedded systems. (Java, Python, other frameworks??)
  3. In general, is it possible to run the ADA required software on embedded Linux at all?
  4. Is it possible to fund something like this through Catalyst? I really only see high level software projects on catalyst. To me as a hardware firmware guy maybe I could help the community by working on lower level hardware stuff like distributed power in this case allowing poor people the energy and management to access technology like Cardano etc…

Thanks for any feedback. I’m quite new and not really a software dev so I’m a little out of my element here.

1 Like

In order to submit a transaction you will need an internet connection.

If you want to do as little as possible on the embedded device, you could set up a node running on a reliable server and have the embedded device just contact this server to do everything. The embedded device could then just make simple requests to the server like: “Pay 10 units worth”. The server software authenticates the embedded device and knows which account it owns and which account to pay to. The server software calculates the amount to pay based on current cost per kWh, does the transfer, and sends back a confirmation.

As for running the entire software stack required in the embedded device: It is possible to run cardano-node on a raspberry pi. But you still need an internet connection in order sync the node and submit transactions. Furthermore, you will some decent bandwidth.

Ok, assuming the internet connection is there I can have the embedded devices just act as relays basically offloading the computation to a server and the server actually executes the transaction.

So what software stack would need to be run for the embedded devices to relay this information back to a server? Or would it just be a custom non-cardano protocol telling a server what the transaction is and the server does the actual cardano stuff? Would the server just need to be a machine running daedalus or would it need to be an actual cardano stake pool or something serious like that?

Just relaying the info to a server running a wallet like daedalus doesn’t sound too bad if thats the case.

I think the difficult bit here is only the authentication and setting up a secure connection. This problem is quite separate to anything Cardano. Eg: For a really secure setup, you could use wireguard. This would provide authentication and encryption over UDP. The difficulty is in getting wireguard running on your embedded device. I would look to see if anyone has got wireguard running on Arduino.

You could then create a basic messaging service to send messages from the embedded device to the server over the wireguard link.

Ok thanks that is very helpful!