Gateway device
-
@axillent said:
on board minimum 4k EEPROM (integrated or on board)
Not SPI flash? We will probably need a external flash if we want to have secure OTA. The alternative is to have a larger bootloader.
-
@Anticimex we can add whatever we want)
explain me please the need of external eeprom
do you mean a support of OTA for sensor nodes or OTA for gateway itself?@axillent Signing backends takes up some program memory. If we want a secure OTA solution we have two options.
- Bootloader has full signing capability and protocol management (bootloader gets larger)
- Bootloader is kept as is today (as in how it works with @tbowmo s other board, and dumps new FW from external flash to internal on demand)
Option 2 is in my opinion the best way because it means not hacking around in the bootloader more than necessary. Updates in the protocol does not affect bootloader as well. Instead it is the "MySensor" library that manages signing and protocol for receiving FW, verifying it and programming the external flash. Once done it informs the bootloader of the new FW and reboots. A caveat is that this obviously means a sketch has to be downloaded to the device by wire initially, but I think that is acceptable. Especially in this case where FTDI and such already is in place (I would assume). Then again, the need for OTA on this type of device could be discussed further, but if we go for it, the mechanism should be identical/similar to the other "official" boards.
This is for OTA to gateway. -
@axillent Signing backends takes up some program memory. If we want a secure OTA solution we have two options.
- Bootloader has full signing capability and protocol management (bootloader gets larger)
- Bootloader is kept as is today (as in how it works with @tbowmo s other board, and dumps new FW from external flash to internal on demand)
Option 2 is in my opinion the best way because it means not hacking around in the bootloader more than necessary. Updates in the protocol does not affect bootloader as well. Instead it is the "MySensor" library that manages signing and protocol for receiving FW, verifying it and programming the external flash. Once done it informs the bootloader of the new FW and reboots. A caveat is that this obviously means a sketch has to be downloaded to the device by wire initially, but I think that is acceptable. Especially in this case where FTDI and such already is in place (I would assume). Then again, the need for OTA on this type of device could be discussed further, but if we go for it, the mechanism should be identical/similar to the other "official" boards.
This is for OTA to gateway. -
@Anticimex what is a minimum external flash size is needed to support OTA for 128k MCU?
-
My initial fiddlings with schematics, I have already included a footprint for a JEDEC compatible spi eeprom/flash :) It's the same footprint, regardless if it's 512Kbit (as the one in my other board) or it's 4Mbit..
Regarding populating connectors or not, during assembly. I think that we only have the footprint for the different modules/radio technologies, that is no connectors are mounted! We could ship them in a kit, so the users have to solder them in by them self. This will allow the end user to assemble the connectors that they want to use for the specific application.
Another thought.. I propose that we add a standard micro usb connector, which can be used for power. People can then use a leftover phone charger wallwart to power the device. We could add a FTDI chip on board as well, and use the same USB connector for configuration. this of course depends on costs of the ftdi chip. (FTDI could also be a prolific usb <-> serial device, I am not locking us down to ftdi).
About the atsha204, the price is low, so I would add it. We are going to mounting it on the Micro sensor, so people can start using it. So why not on the gw? :)
I haven't looked at prices for different subsystems yet (like the usb to serial chip etc.) but might throw some hours at it tonight, trying to get an indication on stuff..
-
Is 16Mhz really a must have? The reason for my question, is that it seems that it would be more advisable to run the entire thing at 3.3V supply, as most of the peripherals that I have found, is running at that supply level.
That goes with : nrf24, SPI flash, wifi module, etc. So considering the peripherals I would suggest to run everything on 3.3V. However, this also means that we might have to lower the crystal frequency slightly, to 12Mhz, instead of 16Mhz, to keep it inside the specs.
Anyways, just a question. while browsing datasheets :)
-
Is 16Mhz really a must have? The reason for my question, is that it seems that it would be more advisable to run the entire thing at 3.3V supply, as most of the peripherals that I have found, is running at that supply level.
That goes with : nrf24, SPI flash, wifi module, etc. So considering the peripherals I would suggest to run everything on 3.3V. However, this also means that we might have to lower the crystal frequency slightly, to 12Mhz, instead of 16Mhz, to keep it inside the specs.
Anyways, just a question. while browsing datasheets :)
-
I agree. It is the center of the sensorweb. I think it pays to keep it running on full steam. And even if it is running of mains, and certainly is not suitable for battery powered operation, it still will draw a fraction of a lightbulb so hunting milliwatts makes little difference in the long runt I think. Besides, it will be bitter if we end up with performance limitations when we now "solve" the memory limitations.
-
well the reason to shift to 3.3v was that it would make things a whole lot easier, when interfacing with the different peripherals. It is not for hunting mA's.
But I'll dump some simple level shifting in there then.
@tbowmo ethernet/wifi/nordic at least are tolerant mostly to 5V
the only complication is to have two supplies
taking into account many different required things two supplies is not a major complication
while keeping arduino & atmel....but if shift to something else (stm32 for example) 3.3V are sufficient even for 72MHz
-
well the reason to shift to 3.3v was that it would make things a whole lot easier, when interfacing with the different peripherals. It is not for hunting mA's.
But I'll dump some simple level shifting in there then.
@tbowmo I see. But a simple stab to get 3.3V should be fairly cheap. And also "safe". I found that I could not get reliable RF on my Ethernet GW, so I threw in a LE33 just to power the radio (I use the PA-pimped one which is a bit more nitpicky on the supply). Have not had power issues since. So it could be that regulating the RF will be required anyway since I assume that PA-pimped radios will be part of the "offering".
-
It's more the external SPI flash, I haven't been able to find any that works above 3.6V, where they specify abolute maximum voltage on any pin to be 4.1V. I haven't looked at the datasheet for ethernet / wifi modules yet, so there also might be some problems there with maximum ratings on input signals.
@Anticimex
I have already thrown in a 3.3V supply for the radio, and what else is needing 3.3V to operate.Anyways, I have thrown in a resistor / diode "matrix", to do level shifting on SPI signals now..
-
@tbowmo Did you consider using a ESP8266 WIFI Module?
You can easily program it and get the atmega off the part's list.How to directly program an inexpensive ESP8266 WIFI Module @ Hackaday.com
-
I fear that it will take too much time, if we have to port the library to the esp8266 cpu core. But you are more than welcome to dig in to it, if you feel for it :)
Currently the focus is (more or less) on arduino compatible platforms.
-
After finish my rpi gateway i think i will focus on the esp. I just wait for some local sellers to drop their prices(Easter, etc)
-
I've started using KiCad for this project.. Still it's far from completed (things are progressing more slowly with this one, than the last, as it's a bit more complex and I don't have that much time at hand now..
Anyway, I have created a github repository of it, if anyone wants to have a look, https://github.com/tbowmo/MySensorGW
Current schematics are here (PDF file)
MySensorsGW-schematic.pdfIt's still a Work In Progress.. A lot of stuff needs to be ironed out..
-
I've started using KiCad for this project.. Still it's far from completed (things are progressing more slowly with this one, than the last, as it's a bit more complex and I don't have that much time at hand now..
Anyway, I have created a github repository of it, if anyone wants to have a look, https://github.com/tbowmo/MySensorGW
Current schematics are here (PDF file)
MySensorsGW-schematic.pdfIt's still a Work In Progress.. A lot of stuff needs to be ironed out..
-
There will eventually be footprints on there for wifi / ethernet modules.. And Yes I2C should go to a pinheader. SPI is already at a pinheader (kindof). As it's connected to the ISP header :)
I'm trying to get a grip on my thoughts, and create some parts for wifi/ethernet modules.. :)
-
So decision time..
For wired ethernet, it seems that we have 2 options:
- w5100
- enc28j60
I haven't got that much experience with theese devices, so which one should we go ahead with?
Wireless, I think that I am settled with esp8266, but if there are anything else out there, that might be better, then please let me know..
At the moment I can't really decide which one is better :) So need some help from the community.
-
I use the W5100 on my current gateway, and I have not had any significant issues with it (apart from the infamous SPI issue, which is resolved by controlling the SPI_EN signal to the W5100. Apart from that I am happy with it, and it is intelligent enough to allow the necessary software to fit an Arduino Nano. Unfortunately not with DHCP enabled (and signing support enabled). But if the enc28j60 does not require more software, and handles SPI(?) "properly" perhaps it would be the better alternative?