Giter Club home page Giter Club logo

apollo3's Introduction

Artemis / Apollo3 examples

===========================================================

Different examples for the Apollo3 processor.

Getting Started

In the different folders are different programs with a readme file. Also check the .odt files which can be read with nearly any word processor.

Prerequisites

Linux/Raspberry PI

Some examples have an optional Bluetooth client that requires Bluez bluetooth stack : http://www.bluez.org/download/

Arduino

ArduinoBLE and (optional) BME280 Apollo3 Sparkfun library version (at least) 2.2.1

Software installation

Obtain the zip and install like any other for the Arduino CHeck the extras directory for client software information

Program usage

Program options

Please see the description in the top of the sketch For the Linux client software use the --help or -h option

Versioning

version 3.21 / January 2024

  • add precompiled library

version 3.20 / May 2023

  • update to SoftwareSerial

version 3.19 / April 2023

  • added IOS (Apollo3 working as peripheral on SPI or I2C)

version 3.18 / March 2023

  • Updated MicroSD filemanager to support MicroMod Input and display board

version 3.17 / March 2023

  • added detailed information and sketch about deepsleep V1.x and V2.x

Version 3.16 / January 2023

  • update ArduinoBLE_special for V1.2.3
  • added Memory Dump sketch
  • updated Qwicc filemanager 1.4 (with support for ESP32)

version 3.15 / November 2022

  • updated Qwicc filemanager 1.3
  • added printf (solution to floating point printf)

version 3.14 / November 2022

  • updated BLE for version 1.2.3 (ArduinoBLE_P)
  • added Ubuntu central for BLE (ArduinoBLE_P)
  • added fast analog in Analog Special

version 3.13 / April 2022

  • updated MicroSD Filemanager for more MicroMod processors

version 3.12 / March 2022

  • updated Artemis Filemanager for MicroSD
  • added Qwicc Openlog filemanager

version 3.11 / March 2022

  • added Artemis microSD Filemanager

version 3.10 / February 2022

  • added MBED-BLE

version 3.09 / december 2021

  • added document on deepdive on I2C and QWIIC button

Version 3.08 / december 2021

  • added OneWire on Uart

version 3.7 / November 2021

  • added MLX90614 PWM mode

Version 3.6 / November 2021

  • added MLX90615 and info about SMBUS compliance

version 3.5 / May 2021

  • added APgpio for extended control of GPIO

version 3.4 / April 2021

  • added HB01B0 for Version 2.0.6

version 3.3 / April 2021

  • added BLE for version 1.2.1 (ArduinoBLE_P)

version 3.2 / April 2021

  • added SoftwareSerial for Library 2.0.6

version 3.1 / december 2020

  • update to amdtp-client and amdtp-server on Arduino
  • update to amdtc on linux to work with Bluez 5.55 and stability

version 3.0.1 / November 2020

  • added example Update_Apollo3_bdaddr (READ REMARKS in the TOP of Sketch)

version 3.0 / November 2020

  • added files crc.c/crc.h

Version 3.0 / October 2020

Based on the complete change in version 2.0.1 the following changes have been made:

  • Removed BLE_button, batt_temp, btble (they are not compatible anymore and obsolete)
  • moved amdtpc to amdtp-client and changed to run on top of ArduinoBLE.
  • moved amdtps to amdtp-server and changed to run on top of ArduinoBLE.
  • update to the linux client to work with amdtp-server.

Version 2.1 / June 2020

  • added BLE button

Version 2.0 / March 2020

  • updated the BLE-amdtp between Apollo3 board and Linux
  • added BLE-amdtp between 2 Apollo3 boards
  • updated amdtps, amdtpc Apollo3 and amdtpc Linux
  • tested on Apollo3 version 1.0.30

Version 1.0.1 / January 2020

  • added batt_temp tested on the edge board but should work on any Apollo3
  • batt_temp will read local battery level, temperature and set battery load resistor
  • batt_temp is NOT using the standard analogRead(), but intializes the ADC module it self

version 1.0 / January 2020

  • Initial version tested with the edge board
  • btble : will read battery level, temperature and set battery load resistor
  • btble : contains an optional client that has been tested on Ubuntu and Raspberry Pi
  • btble : tested on the orginal version from Sparkfun voor Apollo3 (1.0.23)

Author

License

This project is licensed under the GNU GENERAL PUBLIC LICENSE 3.0

Acknowledgements

Make sure to have the Apollo3 datasheet from https://cdn.sparkfun.com/assets/learn_tutorials/9/0/9/Apollo3_Blue_MCU_Data_Sheet_v0_9_1.pdf

apollo3's People

Contributors

paulvha avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

apollo3's Issues

Software Serial

Hi Paul,
Not entirely sure about this but, does the software serial library support SERIAL_8E1?
In SoftwareSerial.cpp found a //TODO on parity check inside the method void SoftwareSerial::rxEndOfByte()

Will really appreciate if you could clear my doubts on this.

Thanks in advance

about ArduinoBLE_P

Many thanks for bringing bluetooth to the Apollo3 :) . I am considering to start using it in a project.

A few questions:

  • is this fully functional? I.e. does it allow simple back and forth transfer of data?
  • any caveats / know problems or bugs?
  • do you personally consider it usable / "production-ready"?
  • would it be possible to / if not any reason why not pushing it to the sparkfun apollo3 repo? :)

Build error with ble_amdtp_raspPi

I got the following error when I try to compile ble_amdtp_raspPi with bluez-5.50 or bluez-5.5:

compiling source files
  amdtc
amdtc.c: In function ‘parseNotification’:
amdtc.c:171:27: error: ‘amdtpCb_t’ {aka ‘struct <anonymous>’} has no member named ‘ACK_handle’; did you mean ‘TX_handle’?
     if (handle == amdtpCb.ACK_handle)
                           ^~~~~~~~~~
                           TX_handle
amdtc.c: In function ‘events_handler’:
amdtc.c:234:39: error: ‘amdtpCb_t’ {aka ‘struct <anonymous>’} has no member named ‘RX_handle’; did you mean ‘TX_handle’?
                 if (handle == amdtpCb.RX_handle ) g_print("(data)\n");
                                       ^~~~~~~~~
                                       TX_handle
amdtc.c: In function ‘enable_comms’:
amdtc.c:447:22: error: ‘amdtpCb_t’ {aka ‘struct <anonymous>’} has no member named ‘RX_handle’; did you mean ‘TX_handle’?
     handle = amdtpCb.RX_handle + 1;
                      ^~~~~~~~~
                      TX_handle
amdtc.c:452:22: error: ‘amdtpCb_t’ {aka ‘struct <anonymous>’} has no member named ‘ACK_handle’; did you mean ‘TX_handle’?
     handle = amdtpCb.ACK_handle + 1;
                      ^~~~~~~~~~
                      TX_handle
amdtc.c: In function ‘read_characteristics’:
amdtc.c:493:21: error: ‘amdtpCb_t’ {aka ‘struct <anonymous>’} has no member named ‘RX_handle’; did you mean ‘TX_handle’?
             amdtpCb.RX_handle = range->value_handle;
                     ^~~~~~~~~
                     TX_handle
amdtc.c:498:21: error: ‘amdtpCb_t’ {aka ‘struct <anonymous>’} has no member named ‘ACK_handle’; did you mean ‘TX_handle’?
             amdtpCb.ACK_handle = range->value_handle;
                     ^~~~~~~~~~
                     TX_handle

Raspberry Pi 3 with:
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

Software Serial read not proper

Using RS485 with software serial at 19200

Sending 0xAA being received as 0xD5.

Pulses on oscilloscope are fine.

Sender:
MicroMod (rx = G4, tx = G1)

Receiver:
RedBoard(rx =D2, tx = D5)

Could not match all handles . Service handle mismatch !!

I try to communicate between sparkfun edge as amdtp_server and RaspPi 3 as client. The application teminates unexpected in funktion read_characteristics. Code is unchanged except the activation of logging.

Arduino log:

19:49:42.062 -> Starting Bluetooth
19:49:44.163 -> 
fm: amdtps_init, file: C:\Users\admin\AppData\Local\Temp\arduino_build_466064\sketch\amdtp_common.c, line: 97
19:49:44.217 -> 
Bluetooth device active, waiting for connections...
19:49:44.217 -> local address 56:77:88:23:ab:ef
19:49:44.217 -> local name Artemis AMDTP BLE
19:49:47.067 -> 
Connected event, central: b8:27:eb:7:f5:19
19:49:49.723 -> 
Disconnected event, central: b8:27:eb:7:f5:19
19:49:49.723 -> 
fm: amdtps_init, file: C:\Users\admin\AppData\Local\Temp\arduino_build_466064\sketch\amdtp_common.c, line: `97

RasPi log:

./amdtc -b 56:77:88:23:ab:ef -I -v 2
Trying to Connect
Starting mainloop (waiting on connect)
connect_cb
Connected
read_all_primary
listen_start
extract_all_primary
attr handle = 0x0001, end grp handle = 0x0005 uuid: 00001800-0000-1000-8000-00805f9b34fb
attr handle = 0x0006, end grp handle = 0x0009 uuid: 00001801-0000-1000-8000-00805f9b34fb
attr handle = 0x000a, end grp handle = 0x0012 uuid: 00002760-08c2-11e1-9073-0e8ac72e1011
read_handles
FOUND AMDTP service start handle = 0x000a, end handle = 0x0012 uuid: 00002760-08c2-11e1-9073-0e8ac72e1011
read_characteristics
Could not match all handles
. Service handle mismatch !!

crc32 library

Can you please tell which crc32 library (crc32.h) you are using in amdtp_common.c

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.