Custom made ethernet gateway based on atmega128
I need to have 4-5 ethernet gateways for my two installations (one for the apartment and one for the house)
for this I'm developing a custom hardware
it is a PCB with AC power supply, atmega128A, step-down for 5V (for atmega128), step-down for 3.3V (for radio and ENC28J60) ,
4 leds (powe, error, TX, RX), ISP connector, 3.5mm jack to connect Serial, connector for NRF24L01 and connector for ENC8J60
to use atmega128A a have to adjust Arduino configuration using some presets from the Internet.
currently I'm running a standard Ethernet Gateway 1.4.1
The plan is to add menu style configuration from the Serial connection for ethernet network parameters and for MySensors parameters.
The plan is to propose a patch to MySensors to support Gateway ID - this will add support to the project to have multiple gateways without need of a hack. Otherwise devices from different gateways will conflict on the air.
@axillent You are one talented dude.. Nice job...
What is the advantage here?
regular arduina with atmega328 on board is too limited in the size of programming memory for the powerful and configurable ethernet gateway. Especially in case of using ENC28J60
mega board is too big.
the advantage is to have compact and powerful design. It is even more important if you need a future design like this one http://forum.mysensors.org/topic/887/future-network-topology-for-discussion. With my multi-gateway installation I'm going to test this concept. This one on the photo is a prototype. As soon as it will succeeds I will made 3-4 more.
Have you made mysensors compliant with ENC28J60 ?
I'm using a standard sketch from 1.4.1 version of the Mysensors library
what i'm going to do is to add flexibility for multi-gateway setup
Nice. On the topic of flash usage of ethernet gateways, I also struggle with fitting signing support to an ethernet GW. I will eventually succeed, but it will leave virtually no room for other additions (at least with DEBUG enabled). So my question to you is: will you make your additions to the GW software (if any) switchable (if they add to the codesize)?
Or will you simply state that a Ethernet GW with "multi gw support" is not supported on a vanilla Arduino Nano?
@Anticimex as such multi-gateway do not requires code size increase but will need a hardcoding : IP, MAC, radio channel or BASE_ADDRSS. You have to use different parameters for different gateway nodes, Otherwise it will be a conflict on Air or on Ethernet
My list of additional futures will require more flash and atmega128 is very sufficient for this:
I plan a serial terminal with a configuration menu. It will work like BIOS on any PC. The "BIOS" will be activated by a button pressed during power on circle. By connecting a computer to the serial connector (I'm using audio 3.5mm stereo jack) you will be able to interact with the "BIOS" menu.. Menu will allow to:
- switch between DHCP/no DHCP
- to see assigned IP
- to assign a MAC
- to assign an IP
- to set radio channel
- to set BASE_ADDRESS
- to display current configuration
- to test ethernet and radio
- to see statistics
- to switch ON/OFF serial debug
Ah, I see. It makes sense that the routing logic updates are to the controller(s) in that case. I like it. Especially since nothing prevents existing gateways to be added to this topology without modification
it got been print-cased)
this is in progress the development of gateway #2
instant made PCB is ready to be soldered
Great Job! What are you using for the power supply?
on the photo you can see a black square part, it is a transformer
after transformer i have a bridge rectifier, one step-down based on MP2359 to get +5V
and other step-down base on NCP1529 to get 3.3V from the +5V
@axillent I just noticed 2 push buttons in the schematics? Is one a reset?
@ServiceXp atmega128 provides 53 I/O pins, I had to use at least some of them)))
I have no exact application for both buttons but probably will use them somehow in extended version of the Ethernet Gateway
why not use a photon ? it is $19 and already has the wifi ?
@epierre cortex is a nice thing but currently not supported by Mysensors. Do you want to add the support?
we are looking for the gateway based on ESP8266, it is just $4 board including WIFI and powerful MCU
@axillent I'm currently supporting my scripts on both arduino and spark.io to avoid everybody reinventing the wheel. Hopefully spark.io is more a hardware provider, meaning they design and implement hardware of their own they afterward sell, or sponsor through indiegogo. They also already have a could cum IFTTT already working.
Currently mysensors is too much linked to the vera although it is opening up. With a gateway that would be automatically wifi or wired, as you plan to do, that would change this.
I understand the approch for a cheap board, but I guess that you would need more components in you BOM that just the ESP8266 plus some soldering on a board ? (I don't speak of this nice russian transformer but that would kill many people in between just soldering, no ?
@epierre nice value arduino provide is that you can do nice things with low entry barrier and without soldering
Mysensors is intend to use this value as much as possible.
"Solder or not solder" is a personal decision and mostly subject of the fan.
At least for me it is fan
as for device from this topic it is not share of the schematics, it is just share of a fan)
russian transformer is part of it (i have a german one but it is too weak for this particular application)
as for ESP8266 - 4$ is the cost of a ready to use module. The only missing thing is radio, you will need to connect 5 wires to radio,
your BOM is simple - ESP module, nordic module and power supply
should be simple even without a special Mysensors board.
I see a good potential here
also I see a good potential on a future network topology discussed in a separate thread, I'm going to test myself an installation with multi hardware layer multi gateway MySensors network
@axillent which is something I actually do with all deversing into domoticz (vera, mysensors, spark core, webcam), and have an uniformized access through imperihome.
I'm very interrested about the wifi capacity if we cannot achieve some level of security within rf24.
I got an idea to improve my gateway by adding 433MHz receiver
I'm succeeded by adding it into the same dimension
As discussed with @hek it will be other version of EthernetGateway sketch able to handle both NRF24 and RF433 reciever
Just a small change to schematic
@epierre About security within rf24 we are close. I have implemented and verified HMAC-SHA256 signing. I just need some more time to implement support for a pure software-alternative to the ATSHA204 as well and my "offering" will be complete. Check the security thread (I will post my update there once finished).
@Anticimex This is good news, that would make us a bit safer... next step will be two ways SSL encryption
@epierre ha! Well, whoever wants encryption, feel free to do it I see no need so I'm skipping that though. I am fine with somebody potentially reading the sensor values and instructions I transmit. What concerns me is if somebody could fool my system and inject their own commands. But with my signing, I challenge anybody to try (and I publish full sources)
I made a version with RF433 receiver, I'm able to fit it into the same size PCB & same size box
will work on the new code to support RF433 sensors. The idea is to use ID=254 for the single node which will holds all RF433 sensors as it's children. I will need to manage a special inclusion for RF433 sensors. I have two buttons and 3 leds. This probably will be used to select & indicate sensor type during inclusion. Sensor type and child ID will be stored in gateway EEPROM. For the controller sensors will behave as regular motions / fire / door / water leakage / etc. sensors
I have all this sensors connected to simple GSM alarm system. The advantage to connect the, to mysensors is a reuse. All sensors will be working simultaneously with alarm and mysensors
@axillent Were did you get those screw inserts?
@axillent Were did you get those screw inserts?
all were purchased on aliexpress
@axillent Would you happen to have links?
M3 & M2
Could you upload the source code of your gateway?
You use another slave that?(Type of This gateway send a RF to anther module and control de lamp?)
If Yes could you post the schema and de souce code?
@DanielD sorry, did not get your question
my gateways are using standard ethernet gateway sketch
Hmm, you use the ethernet gateway sketch:),
Okay,I will do the question again, because it was a bit confusing.
This getway control another things? For exemple "Smart Plug" Module?
If yes, how you control this Plug?
@DanielD my gateways are not doing other things for now
i have two issues with my gateways 1. it is hard to manage multi-gateway network, you need to use hardcode 2. NRF24 is not the single network I plan to integrate to mysensors
there is an idea to redo class structure of the MS library to create a simple way of embedding drivers other than NRF24
as soon as this will be developed we can do a new driver for RF433
the idea on how to integrate RF433 is simple, bud without class restructuring it will be a deep hardcode
DanielD last edited by DanielD
Okay, I understand
Sorry my silliness, but what do you mean hardcore 2?
I will do this sketch today(Ethernet Getway), but my big problem will do sync the getway to this sensor(Plug) or another sensor and control via web/cellphone
This post is deleted!
You modified the code base, alright?
Could you send me the new code?
@DanielD 2 is stands for the second issue )
before class restructure I will recommend you to use sensor sketch as a gate between RF433 and mysensors
Okay, I will try
The sketch of the Plug, I will see that do many challenges, but let's go.
I was reading the code the Ethernet getway, but i learn how i sync it with another sensor.
Thx for your help