umdbpp / balloonduino Goto Github PK
View Code? Open in Web Editor NEWLibrary for basic functions of Balloonduino (Arduino Mega with onboard sensors)
License: MIT License
Library for basic functions of Balloonduino (Arduino Mega with onboard sensors)
License: MIT License
Make sure names the user can see are self-explanatory and don't need documentation to understand. Long names are fine if it gets the point across.
Implement functionality for the Adafruit BME280 combined temperature, pressure, and humidity sensor.
We will use the stock Adafruit library for now, but also try optimize our fork so that it will fit onto the board with everything else.
Reference this tutorial for wiring instructions.
When compiling, many errors appear with the same general format:
(.text+0x0): multiple definition of `<handle>'
This indicates multiple library instantiation or something. The error at the end reads:
Multiple libraries were found for "SD.h"
Full error from Arduino IDE below:
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':
(.text+0x0): multiple definition of `IMULogFile'
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here
c:/program files/windowsapps/arduinollc.arduinoide_1.8.10.0_x86__mdqgnx93n4wtt/hardware/tools/avr/bin/../lib/gcc/avr/4.9.2/../../../../avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':
(.text+0x0): multiple definition of `PWRLogFile'
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':
(.text+0x0): multiple definition of `ENVLogFile'
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':
(.text+0x0): multiple definition of `ssc_enable'
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':
(.text+0x0): multiple definition of `ads_enable'
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':
(.text+0x0): multiple definition of `bme_enable'
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':
(.text+0x0): multiple definition of `mcp_enable'
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':
(.text+0x0): multiple definition of `bno_enable'
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':
(.text+0x0): multiple definition of `rtc_enable'
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':
(.text+0x0): multiple definition of `xbee_enable'
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':
(.text+0x0): multiple definition of `PWR_STAT_APID'
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':
(.text+0x0): multiple definition of `ENV_STAT_APID'
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':
(.text+0x0): multiple definition of `IMU_STAT_APID'
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':
(.text+0x0): multiple definition of `HK_STAT_APID'
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.ino.cpp.o (symbol from plugin): In function `balloonduino':
(.text+0x0): multiple definition of `CMD_APID'
C:\Users\Zach\AppData\Local\Temp\arduino_build_750939\sketch\Balloonduino.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
Multiple libraries were found for "SD.h"
Used: B:\Workspaces\Arduino\libraries\SD
Not used: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.10.0_x86__mdqgnx93n4wtt\libraries\SD
I tried to do this with a bool useBME280 variable and surrounding the initialization and sensor read code with #if useBME280 #endif, but I highly doubted that was good code so I request help with templating
We will need the TCA9535 IO Expander by Texas Instruments for pin interrupts, to expand available pins for a larger number of sensors.
This code will need to be written in AVR instead of Arduino, because the individual sensors of Balloonduino will use unused pins invisible to the Arduino language.
Aim for a comment each time hardware changes, explaining what changed and how it fits into the grand scheme of things.
Implement functionality for the U-Blox MAX-7Q GPS unit.
Currently, the logging function only prints to the serial monitor. Write code so that the logging function also writes to the SD card.
By hiding the sensor libraries behind a class, the user is stuck with what it provides them. What if they want to put the device into sleep mode? What if they want quaternions instead of Euler angles? We can't write wrapper functions for all those things - that compounds the heck out of the code size issue. The user should have direct access to the libraries if they want it.
The "if they want it" part is tricky, and I'm not sure what the best way to go about that in particular would be yet. I'm beginning to think C-style straight functions in a Balloonduino namespace will be a better solution than an OOP object.
Implement functionality for the ADS1015 12-bit Analog to Digital Converter by Texas Instruments.
We will use the stock Adafruit library for now, but also try optimize our fork so that it will fit onto the board with everything else.
Implement functionality for the DS1307 Real Time Clock.
We will use the stock Adafruit library for now, but also try optimize our fork so that it will fit onto the board with everything else.
Reference this tutorial for wiring instructions.
Implement functionality for the Adafruit BNO055 Orientation Sensor.
We will use the stock Adafruit library for now, but also try optimize our fork so that it will fit onto the board with everything else.
Reference this tutorial for wiring instructions.
Implement functionality for the MCP9808 digital temperature sensor.
Reference this tutorial for wiring instructions.
Perhaps add functions or just comments to help demystify the whole packet sending process for the end user who will be reading the code to see how they can use the Balloonduino library
Currently Balloonduino.h grabs all sensor libraries. Add #ifdef statements to selectively import and initialize sensors based on the presence or value of definitions like "DISABLE_BME280" if the user wants to disable certain sensors.
Implement functionality for the SSCMNNN030PA2A3 3.3v Pressure Sensor.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.