Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
axillentA

axillent

@axillent
Mod
About
Posts
355
Topics
18
Shares
0
Groups
1
Followers
9
Following
0

Posts

Recent Best Controversial

  • Looking for a good platform to programm webserver linked to webservices
    axillentA axillent

    @scalz thanks a lot for comprehensive recommendation. Will take a look, all is new for me

    My Project

  • Looking for a good platform to programm webserver linked to webservices
    axillentA axillent

    My iot network is requiering development a management console based on web interface
    To control, analyse and configure

    Access to network is throuth webservices

    Any ideas of simple to start platform for this project?
    My basic idea is php with some libraries
    But may be a specially designed framework exists

    My Project

  • AC-DC at own
    axillentA axillent

    @jeremushka I do have this footprint in altium but the library is big. do you know how to export a single element?

    Hardware

  • Concept of a flexible but simple smart network
    axillentA axillent

    Linux Router https://github.com/axillent/swi_appserver

    General Discussion

  • Concept of a flexible but simple smart network
    axillentA axillent

    just published my libraries
    anyonw is welsome on review and comments https://github.com/axillent :

    • list item stavrp C++ multiplafrom suport library, platforms are at different level of support

    • list item smartletsp C++ smart devices network

    • list item swilib and integration of above two libraries with arduino framework

    General Discussion

  • Concept of a flexible but simple smart network
    axillentA axillent

    also from last
    byteorder handling is build in
    library allows to choose any order
    I select bigendian because this is natural to my major MCU - STM8
    on little endian platforms (like STM32, ESP8266 and ARM64) data is automatically translated

    General Discussion

  • Concept of a flexible but simple smart network
    axillentA axillent

    for esp8266 i made an universal bridge application
    it can be used for both:

    • single node, esp8266 is running a final application. on the photo above my thermostats to measure room temperature, report it and to send ON/OFF commands to heaters

    • bridge. can be used to connect other type networks wirelessly to application server. UART is used for this + json translation. currently this is implemented to connect heating controllers located on each floor

    0_1542367097091_swi.png

    main and failover servers can be configured
    also each node is configured to handle from one to a few network segments. this allows simple routing from application server back to node
    esp8266 is using ArduinoOTA and zero hardcording.
    after fresh programming esp creates AP and smartphone can be used to preconfigure a node
    any updates are keeping configuration except major updates there stored structure can be affected

    application server is also support MQTT translation
    etc. it looks like a routing between my network and MQTT server
    RX/TX adresing are mapped to MQTT topic while message is translated into JSON:
    0_1542367488414_b02f627d-a80b-4837-9c39-335bcb337667-изображение.png

    General Discussion

  • Concept of a flexible but simple smart network
    axillentA axillent

    made a few steps forward

    launched ESP8266 node & bridge and STM32 bridge and TCP/IP router based on linux (orangepi)
    bellow is my working example
    list of supported platforms:

    • STM8S/IAR
    • STM32F0/Keil - draft
    • ATMEL/Atmel studio - draft
    • Arduino ESP8266
    • Arduino STM32
    • Linux/g++

    i;m working on 2 libs. first is to handle platform dependant things. second is platform independant smart devices network
    regardless platform and regardless communication hardware the framework allows to transfer messages using RX/TX notation with 16 bit global addressing.
    Addressing is organized as 4096 segments where 4094 are 15 node segments each and 2 segments are for broadcadsting

    framework allows to connect potentially absolutelly different communication hardware
    currently i'm running:

    • simple one wire (1 wire signal + 2 wire power) network
    • wifi based nodes
    • twisted pair connected ethernet devices

    bridge between different types of network is organized on TCP/IP application server running currently on linux
    etc. potentially allows to connect network segments regardless physicall location, only internet connection is required

    why i'm doing this? mostly for fan but also to implement 2 principles:

    • application layer to be independant from hardware and transport. message format is universal and is the same regardless platform and communication hardware. Addressing is also universal. Application should not take care about intermediate specific, this is handled by other components
    • avoid a central unit. each device can communicate with each device. the only central component is application server. but is is very simple, robust and reliable. failover is supported

    My example:
    0_1542366195599_swi_network_example1.png

    General Discussion

  • What did you build today (Pictures) ?
    axillentA axillent

    bridge from single wire (my w3p manchester based) to UART. will be used to bridge single wire network with Ethernet throuth ESP8266 or STM32 + Wiznet

    second photo - development stand with w3p bus

    0_1541265182919_Фото 03.11.2018, 20 01 08.jpg
    0_1541265206374_Фото 03.11.2018, 20 01 00.jpg

    General Discussion

  • What did you build today (Pictures) ?
    axillentA axillent

    esp8266 based thermostat for heating system
    1_1541182358775_Фото 02.11.2018, 21 10 39.jpg 0_1541182358775_Фото 02.11.2018, 21 07 09.jpg

    General Discussion

  • Reliable 5v buck converter recommendations?
    axillentA axillent

    @zboblamont said in Reliable 5v buck converter recommendations?:

    Surprised no recommendations offered, so trial and error it will have to be...
    Ordered up two XL4015 5A capable 5v boards before Trump modifies free postage ;) . $3 for two (one as a spare), doubt I could build even one at that price, just the 2 week/months slow boat to wait for.
    The general idea for the UPS being followed is per link text, the PSU, case and battery are easy enough local sourced, and plenty of time to decide whether USB or direct wiring is the choice of powering up the Pi..

    XL4015 will work for you. It is not the best performer but it will do a job.
    If I got your question correctly you do need a module to step down from acis battery (nominal 13.2V maximum 14.6) to 5V up to 3A contineous. Right?

    Best performers in steping down are so called synchronous rectifiers. The eseest to find as a modules is a module based on MP2307. Also a good selection will be a modules based on MP2315. Both are 3A maximum.

    General Discussion

  • Your best advice on buying components?
    axillentA axillent

    @fredswed I think to care too much about selecting source of items.

    I also tried different ones including ebay, mouser, farnel, sparkfun etc. end up to use only (mostly) ali.
    Spending time to analyse goods presented you will find that most sellers are providing same goods.
    The only difference between them is price and quality of service.

    Finally I refused to keep track on a particular sellers. Each time I need something I do search for best price and most sells and looking into ratings and customers feedback refuse worstest ones. Each such search requires just a few minutes to end up with purchase.

    In practice using such approach in most cases you will purchase from a small set of sellers. But there is no need to depend on them. In case of mistake in selecting seller you will call for your money.

    All this for DIY purpose. Time is not a critical issue.
    If you are about doing some commersial staff it is always a different story

    General Discussion

  • Your best advice on buying components?
    axillentA axillent

    @flopp In my understanding all this DIY shops are managing whemselves. So wharegousing strategy is up to concrete store.
    From my experience I'm getting some parcels from EU, many from Latvia, some from Finland and some from others.

    General Discussion

  • Concept of a flexible but simple smart network
    axillentA axillent

    just to illustrate how translation is working
    you do not need direct logic match between abstract layer and the layer of used interface

    here is how translation is working between my network and MQTT broker:

    0_1541172446514_91ed42fc-c745-43ba-a897-c7cca1244feb-изображение.png

    bellow is initialization of 2 different nodes attached to 2 different interfaces, one to TCP/IP network, other to MQTT broker
    it is a code from linux application server

    //-----------------------------------------------------------------------------------------
    // Nodes
    //-----------------------------------------------------------------------------------------
    // --- inet
    typedef Smartlets::Common::RouteTableFile									RouteTable;
    typedef STAVRP::Linux::TCPDrv<0>											TCPDrv;
    typedef Smartlets::Interface::Translator::INet<Message, TCPDrv, RouteTable>	TranslINet;
    typedef Smartlets::Interface::P2P<Message, TranslINet, 16, 16>			InterfaceINet;
    typedef Smartlets::Node::NodeBasic<Message, InterfaceINet, ApplInet>		NodeINet;
    
    // --- mqtt
    typedef Smartlets::Interface::Translator::Mqtt<Message>				TranslMqtt;
    typedef Smartlets::Interface::P2P<Message, TranslMqtt, 16, 16>			InterfaceMqtt;
    typedef Smartlets::Node::NodeBasic<Message, InterfaceMqtt, ApplMqtt>		NodeMqtt;
    

    Inside Translator:Mqtt the following is used for example inside TX method (sending message):

    	static bool TX(const Message& msg) {
    
    		char key[128];
    
    		if( msg.header.tx.IsBroadcast() )
    			sprintf(key, "/%s/bc/o/%d/%d/%d/%d", data.swi_domain.c_str(), msg.header.tx.GetBroadcastID(), msg.header.rx.GetNetSegment(), msg.header.rx.GetNetDevID(), msg.header.type.type);
    		else
    			sprintf(key, "/%s/m/o/%d/%d/%d/%d/%d", data.swi_domain.c_str(), msg.header.tx.GetNetSegment(), msg.header.tx.GetNetDevID(), msg.header.rx.GetNetSegment(), msg.header.rx.GetNetDevID(), msg.header.type.type);
    
    		std::string	payload = json_ext::FromMessage(msg);
    		data.drv.TXPut(STAVRP::Linux::MqttEntry(key, payload));
    
    		return true;
    	}```
    
    and this is how it is finally bridged between:
    
    
    while(1) {
    
    	//---------------------------------------------------------------------------
    	// loop inet
    	//---------------------------------------------------------------------------
    	if( NodeINet::Loop() ) {
    
    		Message msg = NodeINet::RX();
    
    		Logger::root() << log4cpp::Priority::DEBUG << "inet-> tx=" << msg.header.tx.id;
    
    		NodeINet::CommitRX(false);
    
    		// --- routing
    		if( NodeINet::TX(msg) ) {
    			Logger::root() << log4cpp::Priority::DEBUG << "inet->inet TX OK";
    			// delayed queue
    		} else {
    			Logger::root() << log4cpp::Priority::ERROR << "inet->inet TX failed";
    		}
    
    		if( NodeMqtt::TX(msg) ) {
    			Logger::root() << log4cpp::Priority::DEBUG << "inet->mqtt TX OK";
    		} else {
    			Logger::root() << log4cpp::Priority::ERROR << "inet->mqtt TX failed";
    		}
    
    	}
    
    	//---------------------------------------------------------------------------
    	// loop mqtt
    	//---------------------------------------------------------------------------
    	if( NodeMqtt::Loop() ) {
    
    		Message msg = NodeMqtt::RX();
    
    		Logger::root() << log4cpp::Priority::DEBUG << "mqtt-> tx=" << msg.header.tx.id;
    
    		NodeMqtt::CommitRX(false);
    
    		if( NodeINet::TX(msg) ) Logger::root() << log4cpp::Priority::DEBUG << "mqtt->inet TX OK";
    		else Logger::root() << log4cpp::Priority::ERROR << "mqtt->inet TX failed";
    
    	}
    
    	sleep(1);
    
    }```
    
    General Discussion

  • Concept of a flexible but simple smart network
    axillentA axillent

    @kimot the main idea of all my project is to manage network abstraction layer regardless hardware
    only translation + driver layers are hardware related, but them allow to transfer logical layer data throuth any physical hardware
    my 16bit addressing could be translated to addresses used by your hardware to keep handle communication based on hardware advantages.

    I just launched a network with translation throuth Ethernet/TCP with application server running on orangepi
    Working pretty well. On logical level it is always 16bit addressing with broadcasting support.
    developing device you should not take care how message will reach another device
    this is handled while developing appropriate translations/drivers on bridge side.

    bridge - a device connecting 2 or more different physycal layers.

    it is also allows to crate a building blocks.
    For example I'm running ESP8266 with TCP interface to network on one side and UART&JSON interface on other side
    attaching MCU to ESP by UART a can connect any kind of network to my network

    General Discussion

  • Concept of a flexible but simple smart network
    axillentA axillent

    @zeph yes and no. it is very very simple hardware, similar to LocoNet. allows to transfer a few kbit/sec on single wire (w3p - 3 wire VCC + Signal + GND) using 1 npn transistor + 4 resistors at absolute minimum

    General Discussion

  • DIN Rail LEGO
    axillentA axillent

    wifi router got a firmware and box

    0_1537305846920_Фото 19.09.2018, 0 15 47.jpg

    can be cloned as many as needed, one per simple network segment
    it is managing automated routing between segments

    Hardware

  • AC-DC at own
    axillentA axillent

    @jeremushka said in AC-DC at own:

    Thanks for the answer. i will play with this LNK component. never used it before. I am curious to know the performances of it.
    for your design, you have added others functions on your PCB ? such as DC-DC converter ... etc.. ?

    my DIN desing is universal. it is for the set of different devices with common 12V power
    dc-dc is used to feed MCU from 12V

    Hardware

  • AC-DC at own
    axillentA axillent

    @jeremushka said in AC-DC at own:

    some questions regarding the schematics:

    1. does TVS diode 600W 5V is efficient enough? or absolutely need cut off at 160V such as 600W 160A ?
    2. for the Fuse, a slow fuse 10A is enough i think, isn't it?

    TVS need to be for 120-160V in case you supply 230V AC. You can refer to linkswitch designer for your specific needs.
    The purpose of this TVS is to be a snubber because of inductive load. Instead of TVS an RC snubber could be used.

    it is 3Watts supply, 0.5-1A slow fuse is fine

    Hardware

  • AC -DC transformer sourcing
    axillentA axillent

    a few examples without transformer

    0_1536473904000_livolo-2wire.png

    0_1536474055292_2wire_switch.png

    0_1536474067832_example-capacitor-mcu-triac-2wire.jpg

    Hardware
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular