I recently purchased an Artemis nano for the next prototype of a system I am designing.
I have had a few issues and questions in my process getting my application to work on the board.
I am trying to run a few addressable LEDs with the board off a LiPo. It won’t send data to the LEDs which work fine with my ESP32 Thing. So I tried to simplify and just power up a simple blue LED, and still nothing. I have tried different pins, double checked all connections and code, verified the LED works. I can’t seem to figure out what’s going on. My best guess is it has something to do with the current source settings for the pins.
I would love to hear if you have any suggestions. I am really stoked on this new device and want to make it the core of a product I am developing.
I have a deadline for the next edition to be ready on Oct 12th for inclusion in a fashion show and have to verify this element of the circuit before I can design the PCBs.
I really want to base the design around Artemis, but am considering going back to ESP32 if I can’t figure this out soon.
PS. I am trying to create a custom profile for a BLE device. I see the example of how to interface with existing services but am having a hard time finding any documentation on adding a custom GATT service. Should I look at the edge board and loading code with the Ambiq SDK? Or can this be done just with some modification to the BLE LED Arduino sketch? I would be down to write a tutorial for this up if I can get some clear guidance.
Thanks so much for your help.
Hi kelsnein
What software are you using to control the LEDs? Currently Artemis does not have FastLED support - though it is something we want to eventually develop. So for the time being you will need to write your own driver that is able to take RGB data and push it out to the LEDs (then you could use FastLED to generate the data and simply push it out with your own function)
Also, which style of addressable LED are you using (3 wire or 4 wire? WS2812 or APA102? Or other?) I ask because generating the timing for 3-wire LEDs will be a little more difficult. Still possible of course. We’ve discussed LED drivers on the Adafruit NeoPixel repo. LInks:
https://github.com/adafruit/Adafruit_Ne … issues/204
https://github.com/adafruit/Adafruit_NeoPixel/pull/205
Long story short if you are using 4-wire LEDs then the SPI library will do 99% of all the heavy-lifting. If you are using 3-wire LEDs then you could choose one of several approaches (bit-banging or using a dedicated peripheral like a CTimer or generating the needed signal with creative use of the SPI peripherals)
As for creating a custom GATT service - yes, this is possible. All functionality of the SDK is also available in Arduino IDE so you may use either according to your preference. (P.s. you can use the Ambiq SDK with any Apollo3 based board, not just the Edge) I am trying not to over-promise here but our main development effort is centered around supporting the ArduinoBLE (https://www.arduino.cc/en/Reference/ArduinoBLE) API. When (no promises on timeframe) that is done it will be a lot easier to create your own GATTServer. TO reiterate, though, it is possible to do it now. I would start by studying the AmbiqSuite SDK BLE examples - they are dense but manageable.
I have done some work on BLE GATT that could be off help : https://github.com/paulvha/apollo3/tree … tp_arduino