Mike Fiore
Forum Replies Created
-
AuthorPosts
-
February 9, 2017 at 11:11 am in reply to: Multitech Conduit Gateway 8 Radio Channels Configuration #16865Mike FioreBlocked
for AEP Conduit:
for mLinux Conduit:
Mike FioreBlockedYogesh,
Take a look at the mbed 2 and mbed 5 memory models.
mbed 2: https://developer.mbed.org/handbook/Memory-Model
mbed 5: https://docs.mbed.com/docs/mbed-os-handbook/en/latest/concepts/memory_model/
Cheers,
MikeMike FioreBlockedYogesh,
You’re allocating the stack for your worker thread off the main thread’s stack. As soon as your main thread attempts any other operations that require stack, it’ll overflow its stack.
You need to new() your work thread stack from the heap or allocate it statically in the global space before main.
Cheers,
MikeMike FioreBlockedWhen compared to mbed 2, yes. I don’t think the standard stack sizes have changed between mbed 5 versions.
Cheers,
MikeMike FioreBlockedCorrect, stack sizes changed from mbed 2 to mbed 5, but the mDot continues to use the standard mbed 5 stack sizes.
I’m not sure why SPI transactions in one thread work. Debugging the lockup with GDB would definitely help you to figure out what’s going on. It’s possible some kind of error condition is being encountered and the system is sitting in a while(1) loop somewhere.
Cheers,
MikeMike FioreBlockedYogesh,
I don’t believe the mDot has smaller than normal stack sizes. You might be thinking of the xDot, which does.
We haven’t used the EventQueue, so we can’t speak to any compatibility issues with the mDot library at the moment. Do you see any RTX error messages when the hang occurs? Usually if there’s a stack overflow or the system runs out of memory (new() fails, etc), you’ll see an error message come out the debug port.
Can you debug the issue and see exactly what is causing the mDot to hang? We have some info about setting up debugging on the our mbed wiki page.
https://developer.mbed.org/teams/MultiTech/wiki/Using-Eclipse-and-mbed-5-for-MTS-Devices
Cheers,
MikeMike FioreBlockedKiran,
The mbed-cli tools automatically prepend the bootloader to applications built for the Dragonfly. When you export to an IDE or compile through an IDEs GUI instead of using mbed-cli, you don’t get the bootloader.
It’s possible to configure a post-build process to prepend the bootloader, but it would be easier to just use mbed-cli. It is possible to configure mbed-cli to compile using the ARM toolchain used by uVision.
https://github.com/ARMmbed/mbed-cli#toolchain-selection
Cheers,
MikeMike FioreBlockedChad,
I’ve reproduced the issue. Versions don’t seem to matter – even a simple blinky led program fails to build.
I’ll be escalating this to our ARM contacts immediately.
In the meantime, you can develop offline using mbed-cli tools if you’d like.
https://github.com/ARMmbed/mbed-cli
https://developer.mbed.org/teams/MultiTech/wiki/Using-Eclipse-and-mbed-5-for-MTS-DevicesCheers,
MikeMike FioreBlockedChad,
Are you using the online compiler? What version of the mbed-os library were you using? What version of libxDot-* and any other libraries were you using?
Cheers,
MikeMike FioreBlockedSuraj,
In EU868, the extra channels to use (besides the 3 default join channels) are sent down to the endpoint in the join accept message. Our gateways support choosing a center frequency for the extra 5 channels.
Cheers,
MikeJanuary 27, 2017 at 8:15 am in reply to: How can I program for mdot models that are without programming header? #16494Mike FioreBlockedMike FioreBlockedAjay,
Unless you have SW to emulate the I2C peripheral, you must use the proper I2C pins. You should be able to use the mbed I2CSlave code.
Cheers,
MikeMike FioreBlockedPete,
See chapter 3. http://www.multitech.com/documents/publications/manuals/s000612.pdf
Cheers,
MikeMike FioreBlockedMike FioreBlockedKaz Ola,
We have a developer guide for the xDot which contains information about putting xDots on your own boards and programming them (chapter 13). It’s on the MTS xDot page.
http://www.multitech.com/brands/multiconnect-xdot
http://www.multitech.com/documents/publications/manuals/s000645.pdf
Cheers,
MikeMike FioreBlockedAndrew,
AFAIK there is no I2C code specific to the mDot – it simply uses the I2C driver for the STM32F4 family. All mbed library source is on GitHub: https://github.com/ARMmbed/mbed-os/
There are release branches for mbed-os-5.1, mbed-os-5.2, and mbed-os-5.3 while master is bleeding edge development. Obviously you’ll want to look at the same version you were testing.
The STM32F4 cmsis I2C code is in the mbed-os/targets/TARGET_STM/TARGET_STM32F4/device directory.
Cheers,
MikeMike FioreBlockedJohn,
If you ordered a US915 MTDOT, you’re not normally able to change it to AU915. The Frequency Band setting is saved in the MTDOT’s configuration and is not normally controlled by the firmware.
Please open a case at http://support.multitech.com to get assistance.
Cheers,
MikeMike FioreBlockedPete,
It’s possible that the mDot-DK is trying to source more current than your Surface can put out over the USB port. Do you have a PC environment you can test with?
I don’t think we’ve tested against tablet environments like Surface, iPad, etc.
Cheers,
MikeMike FioreBlockedPete,
You usually don’t need to unplug the DK each time you flash. What OS are you using?
I run Ubuntu 14.04 and I usually remount the device via the command line when I’m going to flash it because Ubuntu doesn’t correctly detect that the “USB drive” isn’t really filling up.
Most other operating systems handle this properly though.
Cheers,
MikeMike FioreBlockedKen,
Usually the device gets named based on what driver picks it up. On Linux you have vizzini, exar, and others. Running the lsmod command will show you what drivers are loaded, but if the driver is compiled into your kernel, you won’t see it in the list.
The data is coming base64 encoded, so it will need to be decoded. I found an online tool that will do this for you (https://www.base64decode.org/) but you can also do it in software, perhaps in your node-red app (http://stackoverflow.com/questions/6182315/how-to-do-base64-encoding-in-node-js).
When the xDot is in maintenance mode, the firmware you drag and drop gets programmed into the interface chip on the DK, not the xDot processor. The xDot firmware you tried to program was rejected because it wasn’t built for the interface chip.
Glad you’re back up and running!
Cheers,
MikeMike FioreBlockedKenneth,
I suspect /dev/ttyACM0 will be your debug port and /dev/ttyXRUSB0 will be your AT command port.
Cheers,
MikeMike FioreBlockedChad,
That is strange. Can you post or link to code that demonstrates the issue? It would also be good to know some more about your setup:
* is your xDot an xDot-DK or on a custom board?
* how is it getting powered?
* what’s hooked up to the analog input?
* anything else you think might be helpfulCheers,
MikeMike FioreBlockedChad,
Try deleting the AnalogIn object before going to sleep and creating a new one after waking up.
Cheers,
MikeMike FioreBlockedM25P16.
Cheers,
MikeJanuary 9, 2017 at 11:36 am in reply to: Pinmap not found for peripheral when using "libmDot-dev-mbed5" #16256Mike FioreBlockedAjay,
Please take a look at page 39 of the STM32F411RE datasheet. Pin PC_13 is not connected to the ADC module, which is why it can’t be used as an analog input.
You will see these runtime errors usually for one of two reasons:
1) The pin you’ve selected cannot be used the way you’re trying to use it. Examples of this are trying to create a Serial object where one or both pins aren’t connected/can’t be muxed to one of the uarts on the processor, trying to create an AnalogIn object with a pin that isn’t connected/can’t be muxed to the ADC module, etc.
2) There’s a bug or missing pin mapping in the platform’s PeripheralPins.c file.Hope this helps.
Cheers,
MikeJanuary 9, 2017 at 8:06 am in reply to: Pinmap not found for peripheral when using "libmDot-dev-mbed5" #16250Mike FioreBlockedAjay,
I will see what I can do to get a 2.0.16 build released for mDot. Worst case will be the next planned release – date for that is unknown at the moment.
What are you trying to do with pin PC_13? According to the STM32F411RE datasheet, it has no alternate functions. You should also take a look at 2. on page 46.
Cheers,
MikeMike FioreBlockedWill,
Are you referring to the Dragonfly Filesystem Example program?
https://developer.mbed.org/teams/MultiTech/code/Dragonfly_Filesystem_Example/
The Dragonfly has a 2MB external flash connected via SPI.
Cheers,
Mike
Mike FioreBlockedMatt,
Currently the lowest supported resolution using the RTC is 1s. I will note this as a feature request.
Cheers,
Mike
January 3, 2017 at 8:07 am in reply to: MTSLog log info not showing up on the debug com virtual port. #16188Mike FioreBlockedAjay,
Do AT commands still work? What version of AT firmware did you flash? Was it downloaded from multitech.net or did you build it offline or on mbed?Did you configure your AT firmware to run the debug port at a baud rate other than 115200? That could explain why you’re not seeing the message.
Cheers,
Mike
Mike FioreBlockedMatt,
Please note that libxDot-mbed5 and libxDot-dev-mbed5 are not generated with debug symbols, so you won’t be able to step through any calls into the library.
For mbes-os-5.1.x, you’ll use the “-o debug-info” option to generate debug symbols instead of the “–profile …” option. If you’re going to use the production build of libxDot, you’ll need to use the version of mbed-os that matches the comments in the libxDot-mbed5 commit message. For revision 7 (the latest ATM), you’d use mbed-os-5.1.5. Using other versions of mbed-os might cause problems.
Does that configuration work for you?
One thing you can do to make sure Eclipse configuration isn’t the problem is to build and debug from the command line instead of through Eclipse. Once you have that working, then go back and get it working in Eclipse.
Cheers,
Mike
-
AuthorPosts