[riot-devel] Trial to enhance the porting guide
Hello RIOT developers, I have now made some experience with RIOT-OS and I'm working on a port to the STM32L073. My problem is sometimes to understand the relationship between the OS parts. The source code documentation via Doxygen is nice, but not sufficient to get a real understanding about the architecture of RIOT and I'm a unhappy to find out how some parts are working by "surfing" through the source code. Therefore I will try to enhance the porting guide and therefore I will ask you (maybe) some silly questions.but I think the questions I will ask are somehow unclear to a RIOT newbie. The first question I have is about the xtimer. What is the "official" purpose of this timer. What should be realised via the xtimer and what should be realised by the other timers. The second question - which event triggers the thread context switching? Scheduled by timers? Best regards Bernhard Best regards, Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
[riot-devel] Long time sleeping of the microcontroller
Hello RIOT-enthusiasts, I'm searching for a good way to bring a RIOT-system to lowest power modes for several minutes. As far as I understand the function of the xtimer is designed to provide the timebase for thread/task switching and providing short low-power-delays. It is therefore not designed to support slow clock timers inside low-power microcontrollers. Is this true? Can you give tell me your opinion about using the slow-clock timer simply inside the application? The idea is to bring the peripherals to lowest power mode, then stop all threads except the main thread, mask interrupts und stop then the microcontroller under the control of the application. The wakeup could happen by using an interrupt from the slow-clock-timer inside the CPU. Is this a way which could work? Best regards, Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
[riot-devel] UDP travic between RIOT device and Raspberry PI 6LoWPAN seems not to work
Dear malo, thanks a lot for your used modules. No, I haven't got a sniffer up to now. I think this is the next step for me - set up a sniffer to find faults in the radio transmission. At the moment I'm lucky because UDP transfer works at the moment. It was just a quick check and real testing is the next step but getting it running was a big success this weekend. By the way: I have also a Beaglebone-Green running with a 4.1.14 mainline kernel and a Microchip MRF24J40MA radio device and it works as well. Wonderful! Thank you very much! Best regards, Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
Re: [riot-devel] UDP travic between RIOT device and Raspberry PI 6LoWPAN seems not to work
Hello Martine, thank you for the hint about the missing header compression. I have added the module and now UDP data traffic works between a UDP-server application on Raspberry PI and a UDP client application on the RIOT side. Thank you very much! Best regards, Bernhard P.S.: Sorry about the misspelling of traffic in the mail header - really terrible ;-) ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
Re: [riot-devel] UDP travic between RIOT device and Raspberry PI 6LoWPAN seems not to work
Hello Martine, thank you for that hint. Is it sufficient to enable that modul in the Makefile.dep file in the main-folder, or should I add this to the Makefile in my example//Makefiles? Are there any changes needed elsewhere? Thanks a lot, Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
Re: [riot-devel] Bringup procedure of a real device
Hello malo, I love you! That was the missing link - I had totally forgotten the hardware address (MAC). Everything seem now to work well - I have tested ping6 and udp - what a wonderful world! Thanks, thanks, thanks! Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
Re: [riot-devel] Bringup procedure of a real device
Hello Malo, thank you for this hint. What else has to be changed in an IPv6 network? Up to now I have only worked with IPv4 under Linux and there the only thing which was necessary to change was the IP-address Thanks a lot, Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
Re: [riot-devel] Bringup procedure of a real device
Sorry, I have forgotten to post the forked theads: ps pid | name | stateQ | pri | stack ( used) | location 1 | idle | pending Q | 15 | 256 ( 148) | 0x2298 2 | main | running Q | 7 | 1536 ( 792) | 0x2398 3 | pktdump | bl rx_ | 6 | 1536 ( 256) | 0x20001924 4 | 6lo | bl rx_ | 3 | 1024 ( 468) | 0x20001f38 5 | ipv6 | bl rx_ | 4 | 1024 ( 420) | 0x2e60 6 | udp | bl rx_ | 5 | 1024 ( 296) | 0x200026e4 7 | at86rfxx | bl rx_ | 3 | 1024 ( 412) | 0x29f0 | SUM || | 7424 ( 2792) > Thanks for any hint! Best regards, Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
[riot-devel] Bringup procedure of a real device
Hello everybody, I try to bring up a wireless connection between two identical boards, both equiped with the at86rf233 module. At first everything seems to be good - the source was compiled without failure, the process list shows all the threads needed for a working interface, but when I try to get a contact from one board to the other nothing happens. Is there anyone who can give some hints about the best way to bring up a wireless connection with RIOT? Here is what I have done: First I flash the gnrc_networking example on both boards. The command showed exactly the same on both boards: > ifconfig Iface 7 HWaddr: 30:02 Channel: 26 Page: 0 NID: 0x23 Long HWaddr: 88:77:66:55:44:33:22:12 TX-Power: 0dBm State: IDLE max. Retrans.: 3 CSMA Retries: 4 AUTOACK CSMA MTU:1280 HL:64 6LO RTR IPHC Source address length: 8 Link type: wireless inet6 addr: ff02::1/128 scope: local [multicast] inet6 addr: fe80::8a77:6655:4433:2212/64 scope: local inet6 addr: ff02::1:ff33:2212/128 scope: local [multicast] so far so good. Then I altered the ip-addresses on one board to: > ifconfig Iface 7 HWaddr: 30:02 Channel: 26 Page: 0 NID: 0x23 Long HWaddr: 88:77:66:55:44:33:22:12 TX-Power: 0dBm State: IDLE max. Retrans.: 3 CSMA Retries: 4 AUTOACK CSMA MTU:1280 HL:64 6LO RTR IPHC Source address length: 8 Link type: wireless inet6 addr: ff02::1/128 scope: local [multicast] inet6 addr: fe80::8a77:6655:4433:2214/64 scope: local inet6 addr: ff02::1:ff33:2214/128 scope: local [multicast] then I tried to ping from one board to the other: > ping6 fe80::8a77:6655:4433:2214 result: no output - the shell output stucks and I have to reboot A ping to the own address delivers this output, but then the shell stucks again: > ping6 fe80::8a77:6655:4433:2212 12 bytes from fe80::8a77:6655:4433:2212: id=83 seq=1 hop limit=64 time = 4.892 ms Is this the normal behaviour of RIOT that the command don't come back to the shell? When the board stucks and I stop it with the debugger it seems the it cycles through the Idle-State. Can anyone give me some hints what I'm doing wrong? How could it be found out that there is some traffic in the air? Thanks a lot and best regards, Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
[riot-devel] xtimer - usleep - minimal CPU-frequency
Hello everybody, have you got any idea what the minimal CPU-frequency is to use the xtimer_usleep? Today I tried to configure the xtimer to work with a correct time. I traced through the code and I think that this jumps throught the functions cost many CPU-cycles. I guess that it's not possible to get a 1us time if you have a slow MCU. For example if you have 16MHz clock frequency you have only 16cycles to fire up the timer. I think all network-drivers use usleeps. Do you agree that this is a problem? Best regards, Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
Re: [riot-devel] Minimal MCU-Core Frequency for using 6LoWPAN Protocol
Hello developers, what is the best way to find out that a given core-frequency isn't sufficient for carrying 6LoWPAN protocol? I guess if the cpu-frequency is too low it just won't work no hint from the OS side - is this true? Best regards, Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
Re: [riot-devel] Documentation: Syntax of the ifconfig command with example
Hello Cenk, I have found the "ifconfig help" but nevertheless I was doing something wrong. Why not giving just a simple example? I have worked with ifconfig a long time under Linux but not with IPv6. "ifconfig ..add" worked well - as expected. Best, Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
[riot-devel] Documentation: Syntax of the ifconfig command with example
Hello everybody, today I tried to find out how I can set an IPv6 address for the network interface. In all examples and readme's you can read how to show the settings for the network interface, but I can't find any example how an IP address is set for a given interface. I tried several styles of setting an address and the only thing I got was "syntax error". I took a look to ifconfig in Linux but the syntax here seems different. Please give me just one example like "ifconfig 7 set addr_long .." that works. Thank you very much! Best regards, Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
[riot-devel] auto_init_at86rf2xx - discovering valid devices
Hello everybody, I have seen in the auto_init_at86rf2xx.c file a loop which tries to find valid devices. The loop-counter is used for discovering spi-busses and also for the device descriptor ("i" in the code). I think this is not a good idea because what happens if you have only ONE device sitting on the SECOND spi-bus? The device will not be found. I think you need two counters - one for numbering the spi-bus and one for the device descriptor. Do you agree? //for (unsigned i = 0; i < AT86RF2XX_NUM; i++) { unsigned i = 1;/* Number of SPI bus */ unsigned k = 0;/* Number device descriptor */ DEBUG("Initializing AT86RF2xx radio at SPI_%i\n", i); const at86rf2xx_params_t *p = _params[k]; int res = at86rf2xx_init(_devs[k], p->spi, p->spi_speed, p->cs_pin, p->int_pin, p->sleep_pin, p->reset_pin); if (res < 0) { printf("ERROR"); DEBUG("Error initializing AT86RF2xx radio device!\n"); } else { gnrc_nomac_init(_nomac_stacks[k], AT86RF2XX_MAC_STACKSIZE, AT86RF2XX_MAC_PRIO, "at86rfxx", (gnrc_netdev_t *)_devs[k]); } //} Regards, Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
Re: [riot-devel] Networking Module does not appear in process list
Hello malo, the output of ps show at me the same as you have posted it here with the exception that there is no at86rfxx. The at86rf2xx driver is compiled - I see it there. And I have no hint - no error message or something like that why it isn't loaded. It seem for me, that at86rf2xx_init is not executed - that auto_init_at86rf2xx was not inivolved in the init-phase. I will check this tomorrow with the emulator... If so - which action/module invokes the execution of auto_init_at86rf2xx? As far I have seen this are gnrc-netif modules? Thanks a lot, Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
Re: [riot-devel] Networking Module does not appear in process list
Hello Peter, thank you. Just for your understanding - I just tried to make everything exactly as shown in the Iotlab-M3 board but I get not the result which is listed in the readme files or the other documentation. One remark - I think most new RIOT users would resolve their problems by themself if they have some documentation about the relationship between the modules. It would be also nice to now where it is the right place for adding a module (makefile in the board directory / makefile in the project directory / makefile in the top directory e.g.). Where is the correct place to invoke auto_init (I guess the Makefile in the project directory)? Is it necessary to load the radio module driver manually or will it be loaded automatic (by the make utility)? You see - a newbie has totally different questions than an implementer who works with RIOT since for a long time. ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
[riot-devel] Networking Module does not appear in process list
Hello everybody, today I tried to get the at86rf2xx working with my board. I have the following statement in the board's Makefile: ifneq (,$(filter gnrc_netif_default,$(USEMODULE))) USEMODULE += at86rf233 USEMODULE += gnrc_nomac endif I tried all the networking examples but no example shows the at86rf2xx networking module when I list the threads. I see all networking threads but not the driver. I tried to include (USEMODULE) the Module in the project makefile and then i tried to invoke the auto_init mechanism on serveral places -> no success. Can you please tell me what I have to do to load the radio module driver? I think it would be a good idea to write down how it should go in a tutorial. It's not very nice for newbies to grep through the source code to find out how it should work and what might go wrong (it a little bit like beeing Sherlock Holmes but without having fun). Question 2 - ifconfig: ifconfig help usage: ifconfig [] From where do I get the if_id ? I think you will get it if you invoke ifconfig without parameters (when you have a network module thread running). Is this true? Thanks a lot! Regards, Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
Re: [riot-devel] Support for Microchip MRF24J40 Radio Module
Hello everybody, today I started to port the AT86RF2XX driver for the MRF24J40 radio module. Hier I have 2 question: 1. At the module initialization I found the following comment: /** * @brief Set the transmission power of the given device [in dBm] * * If the device does not support the exact dBm value given, it will set a value * as close as possible to the given value. If the given value is larger or * lower then the maximal or minimal possible value, the min or max value is * set, respectively. * * @param[in] dev device to write to * @param[in] txpower transmission power in dBm */ void at86rf2xx_set_txpower(at86rf2xx_t *dev, int16_t txpower); How should the txpower be coded? A int16 value in dBm ??? I don't understand this. The Atmel AT86RF231 has a tx-power range from -17dBm to +3dBm and the MRF24J40 has a range from -30 to 0dBm. How fits this together with that comment above? 2. From where could I get as fast as possible some OpenLabs 802.15.4 modules (delivery should be in 2-3 days, prefered in Germany)? At the store of OpenLabs there is mentioned a delivery time from about 2 weeksthis is to long for my purpose. Best regards Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
Re: [riot-devel] netdev2 - some hints about the relationships between the 6lowpan protocol
Hello everyone, that sounds not goodonly one device in master und one not yet merged!? Best regards, Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
Re: [riot-devel] netdev2 - some hints about the relationships between the 6lowpan protocol
Hello everyone, today I compiled the example/gnrc_minimal with the nrf24l01p module included in the boards Makefile.dep file (Riot Release package RIOT-2015.12) . The compile process was successful and the compiler output show the the driver for the radio module was compiled. But when I searched with the debugger for driver subroutines, it seems that they are not really linked into the result. Is there anyone who can explain me where I have to include the driver in the makefile-structure (USEMODULES +=) that it will be involked by the example-application? In the board makefiles? In the application makefiles? Auto-Init? Wherelse? Thank you very much! Best regards, Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
[riot-devel] Support for Microchip MRF24J40 Radio Module
Hello Tobias, is it possible to get you code for helping on bringing the driver forward? This would avoid doing redundant work. As far as I have seen it is not yet in the repository. Best regards, Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
[riot-devel] Implementation of a real low power timer for sleep/stop mode (idle thread)
Hello everyone, the STM32L053 has a low power timer which could be configured to be clocked by an internal 37kHz oscillator. For real low power applications it would be a good idea to use this timer during sleep/stop mode (for the idle tread). As far as I know the context switching is performed by the xtimer which needs a 1MHz clock in its configuration. Would it be possible to use such a slow clock for this purpose? Best regards, Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
[riot-devel] Documentation of the RIOT-OS
Hello everybody, I've worked the whole weekend to understand where you have to add the makefile statements to get a new network device running. It is really aweful to hop from one example to the other / from one sense-less tutorial to the other to understand the behaviour of the system. Is there no central information available, where you have to add things to get for example a new driver running? There is a missing link - no information how the parts stick together. A real porting guide - a real driver implementation guide... I think not only the technical aspects of such a nice software is important - also the ease of use. At the moment I need the information how to get the sixlowpan stack running with a real network-radio device. Have you got a hint, where I find the most useful description? Thank you very much! Best regards, Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel
[riot-devel] Minimal MCU-Core Frequency for using 6LoWPAN Protocol
Hello, I want to port the RIOT-OS to the STM32L0 microcontroller series for using the 6LoWPAN protocol. Do you think that 8MHz core clock is sufficient for utilizing the 6LoWPAN stack of RIOT-OS? Best regards, Bernhard ___ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel