Recent Posts

1
New Product Ideas / Re: Butterfly
« Last post by Sooqa on July 08, 2020, 04:22:39 AM »
Up one for me too!
2
New Product Ideas / Re: TinyMegaDuino
« Last post by Sooqa on July 08, 2020, 04:22:01 AM »
Up one for me too!
3
New Product Ideas / Re: Stackable Modular case
« Last post by Sooqa on July 08, 2020, 04:21:12 AM »
Sounds good
4
General Discussion / Re: "Best" way to send sensor data via BLE?
« Last post by Tacca on July 05, 2020, 10:54:26 AM »
Hello Réna, thanks for the reply.

Now that you mention it, I had discarded the idea of a SD Card because I didn't want to have the runner plugging-unplugging the sd card for processing.
BUT... giving it another thought, it might be possible to just store (at a fast rate) and sync the data (at a safe rate) using SD card... this would imply in a little delay for the data showing on the device, but, the data amount would be good enough, solid and accurate.

I will probably order it since it might solve the problem.

Thank you again.
5
General Discussion / Re: "Best" way to send sensor data via BLE?
« Last post by lennevia on June 22, 2020, 02:02:56 PM »
Hello Tacca,

Have you considered using a Micro SD Card TinyShield? You would be able to save all of the necessary data with timestamps to be able to process it later.

I am curious about the range of Bluetooth on a runner.

TinyCircuits is in the process of designing a new processor board that includes a newer Nordic BLE module that may support the Data Length Extension you have mentioned.

Hope that helps give you some ideas on what you can do. In the future, I may have more time to look into the code you are currently developing to give better insight.

Thanks,
Réna
6
General Discussion / Re: "Best" way to send sensor data via BLE?
« Last post by Tacca on June 17, 2020, 08:22:18 PM »
Hello Réna, thanks for the help.
The code I was working with is available at:
https://github.com/brunotacca/knee_kinematic_sensor/blob/master/SensorCoreApp/SensorCoreApp.ino

I kinda mixed both the examples found at tinycircuits learn section.
This: https://github.com/TinyCircuits/TinyCircuits-TinyShield-Sensor-ASD2511/tree/master/examples/9-Axis_TinyShield_example
And this: https://github.com/TinyCircuits/TinyCircuits-TinyShield-BLE-ASD2116/tree/master/examples/STBLE/examples/UARTPassThrough

It's still a bit of a mess with a lot of commented code since I am still at the beginning of my research.

The idea I had was to have a concatenated String with the data I need, as you can see in this part:
Code: [Select]
      String msg = "";
      msg.concat("C");
      msg.concat(sampleCount);
      msg.concat("S0");
      msg.concat(accelData.x());
      msg.concat(accelData.y());
      msg.concat(accelData.z());
      msg.concat(gyroData.x());
      msg.concat(gyroData.y());
      msg.concat(gyroData.z());
      msg.concat(compassData.x());
      msg.concat(compassData.y());
      msg.concat(compassData.z());
      msg.concat("F");
      msg.concat(fusionData.x());
      msg.concat(fusionData.y());
      msg.concat(fusionData.z());
      msg.concat("#");

      sendMessage(msg);

And then, send it all truncating it in chunks of 20 bytes.
Code: [Select]
#define buffer_size 19

void sendMessage(String msg)
{
  uint8_t sendBuffer[msg.length() + 1] = {};
  msg.getBytes(sendBuffer, msg.length() + 1);

  uint8_t sentLength = 0;
  int sizeSendBuffer = sizeof(sendBuffer);

  while (sentLength < sizeSendBuffer)
  {
    int arraySize = buffer_size;
    if ((sizeSendBuffer - sentLength) < buffer_size)
    {
      arraySize = (sizeSendBuffer - sentLength);
    }

    uint8_t sendBufferTruncated[arraySize] = {};
    uint8_t sendLength = 0;

    while (sendLength < arraySize)
    {
      if (sendBuffer[sentLength] != 0)
      {
        sendBufferTruncated[sendLength] = sendBuffer[sentLength];
      }
      sendLength++;
      sentLength++;
    }

    lib_aci_send_data(PIPE_UART_OVER_BTLE_UART_TX_TX, (uint8_t *)sendBufferTruncated, sendLength);
    SerialMonitorInterface.print("SENT> ");
    SerialMonitorInterface.println((char *)sendBufferTruncated);
  }

}

About the accuracy and the data I need... I do need the more messages I can get per second, and at least, all the sensor data (except for the fusion data maybe). I will be tracking knee movements each steps, so average runners cadence falls at 160ish steps per minute, I will be tracking only one knee so, 80ish steps per minute, which means 1.3 steps per second, a step each 650ms.

With the rate and model I have now, I need like around 60 to 80 bytes of data per full message, which means 4 truncated messages and I had a kind of a stable measurement at 120 ~ `130ms per message (4 messages, so it would send a message each 30ms). A full message per 120ms would mean 5,4 messages per step, this is not good enough for what I had in mind.

This considering I am using only 1 sensor. Since I plan to use 2 wirelings, the data length would double and I would get only 2,7 messages per step.

During this meantime, I found some possible workarounds:
1 - Maybe tinycircuits have a BLE 5.0 available? (the Data Length Extension feature would kinda solve my problem)
2 - Implement all my research in Cpp (which is not my strongest haha) and data fusion in the device itself, sending only my own fusion data.

I appreciate any thoughts you may have.
Thank you in advance.
7
General Discussion / Re: Another Beginner Question
« Last post by lennevia on June 15, 2020, 12:35:13 PM »
Hello Bernhard,

For the bootloader flasher, we use a standard Atmel ICE programmer (the ATATMEL-ICE https://www.digikey.com/product-detail/en/microchip-technology/ATATMEL-ICE/ATATMEL-ICE-ND/4753379), but really any Atmel JTAG / ICSP programmer would work.

You'll need all of the JTAG connections from the programmer to be connected to the same pins on the TinyZero, so you would need a proto board with SPI connections, or we could look for the parts and assemble an ICSP TinyShield here for you to use.

Let me know!

Thanks,

Laveréna
8
General Discussion / Re: Another Beginner Question
« Last post by flatztastisch on June 10, 2020, 05:20:50 AM »
HI Rena,

wow, thx a lot for the fast quality answer!  :) Great!!

i read on the www that many people use therefore an Arduino uno, for flashing, do you build something different? I know you are open-source company but i want to give y something back, so is it possible for you to sell your flasher (hardware software)?

Additionally if this is ok for you, please let me know what I have to implement on my pcb for connecting to your "flasher"

for my project, i will use TinyZero, TinyShield_GPS and ASD2201 microSD card schematic and also EPROM

HUGS from Austria,
Bernhard
9
Tiny Arcade / Re: Tiny Arcade Menu freezes on certain games
« Last post by lennevia on June 08, 2020, 05:47:55 PM »
Hello,

I've got to admit that I have never heard of an issue like this. So it could be the SD Card mixing up some things, the file transfer got mixed up, or the menu is acting up for some reason.

Here are some suggestions you can try in order:

1. Use the troubleshooting section of the Uploading Games to SD Card section to re-format the SD card you are using (this will clear anything on the SD card, so make sure anything you need is removed)

2. Get a fresh download of all of the Arcade games from our site, and copy these onto the formatted SD Card

Try testing the unit now for any lockup issues, if still getting lockups:

3. Reload the Tiny Arcade menu using the Arduino IDE: https://learn.tinycircuits.com/Help/Tiny-Arcade-DIY-Kit_Menu-Update/

I hope that helps! Let me know if you are still having any problems!

Thanks,

Réna
10
General Discussion / Re: Another Beginner Question
« Last post by lennevia on June 08, 2020, 05:08:22 PM »
Hello Bernhard,

1. We flash all of our SAMD21 products for use with the Arduino platform. You could do this yourself if you have all the necessary hardware, as well as an ability to solder a fixture using a protoboard. We do not currently have the software publicly available anywhere, but we are an open-source company and I would be happy to share whatever it is that you are interested in :)

2. As for the crystal, it may be difficult to spot on the schematic since the area with the part is a little cluttered, but there is a 32.768 number indicating that the oscillator is 32.768kHZ.

Hope that helps you in building a GPS system to spy on your cat   ;)

Let me know if you have any other questions, or need any clarification.

Thank you,

Réna

SMF spam blocked by CleanTalk