-
-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New Hardware documentation #78
Comments
Hi, I'm not familiar to the Particle build system? Thank you. |
I'm just getting started, and don't have a functional patch just yet. I also do not have a lot of details on what needs to be changed, but I'm working on it. No luck just yet. In fact, it is both, a new HW platform (Particle) and they have a custom FreeRTOS based build system that presents as Arduino compatible. So, I need to get both going at the same time, though for the time being, my goal is to only to support the FeatherWing OLED solution on the Argon. There isn't a good reason why once in place, this lib couldn't be used with the Photon or Boron as well and the variety of OLED devices the library supports. The challenge I face is that the SH1107 is not well supported in this space, and no current library (lcdgfx, u8g2, Adafruit_GFX) that does support the SH1107 builds for Particle devices. The following commits to my repo are my first pass at what I think I needed to get started on the integration side. I'll post the most recent build issues below. I plan to get back to this tomorrow or Tuesday as time permits and see what progress I can make. https://github.com/buelowp/lcdgfx/commit/f35b7cc6368132221c1d4137cac9fc9771726476 I wasn't able to do much this weekend, so the current error is probably stupid, but I haven't had time to look into it. If you can tell me if I'm on the right track at least, that might help. I will keep hacking away at it, and see what I can do. Yes, Particle is Arduino compatible and the Argon is an nRF chip. Most Arduino libraries tend to work, but he more complicated ones generally need some help. I've done a few ports before, and there are others who do the same (https://github.com/rickkas7). I was a bit surprised the Adafruit library isn't supported yet, but I think I like your system better, so I'm going to try to get this working first. Generically, Wire exists, and my idea was just to copy the Arduino hal in lcd_hal to a new particle folder, as it should work as is, minus some include files. I've been bumping around with that for a bit yesterday, and got as far as below. Whatever I did isn't quite right though, as it's mixing C and C++ somehow. I'll need to sort that out. You can find the specific device I'm trying to use here Thanks for any help if you can give it. Current status
Current source
|
Since the authors of the Particle system claim, that they support Arduino libraries, the lcdgfx doesn't need heavy changes. However, it is still required from the Particle system to support |
Where you able to get it to build? I can ask on the community about whitelisting, but I'd be curious to know how you got it to build and what I did wrong? |
I didn't build it because |
You can build against a library without uploading. The challenge with uploading libraries to particle is that it consumes the library namespace, and it's hard to clean that up. Once it's ready to publish, it will consume that namespace forever if anyone uses it as a dependency. That's fine for public libs, you don't want two with the same name. Private libs don't consume public namespace, but it's still a bit of a pain if you need to change something dramatic in your local library namespace. A better option if you have time, would be to use the vscode project creation to create a test project. Then just add your library to the project/lib directory (symlink works great in Linux/Mac). Then update the project.properties to add
A new project setup this way will allow to build your setup with a local library. No upload or library changes needed to make sure it works first. The first big issue you will face is PROGMEM isn't defined for src/canvas/fonts/fonts.h which is easy to fix
although I suspect there is a more elegant fix that I haven't gotten to yet. Then, there is no avr/interrupt.h available, so it fails in io.h then when you simply #include <Arduino.h> at the top of your .ino file. I'm still researching that one. I'd be happy to get you the parts to test this if you are willing to add support. I'm going to keep working on it for now too, but will get sidetracked this week as I actually will have to go into the office some and as a result, will have less time for coding at home due to commute and kids. What was the error you got uploading? I haven't tried just yet as I'm not ready to consume that library name. I will ask on the community board about .inl files and uploads when I can. |
The problem here is that
To make the build system to compile the project locally it is required to recreate all build commands calls and all required defines manually. I don't think that this is the right way. If the |
Let me work on whitelisting then. I'll let you know. EDIT |
Ok, the .inl problem is related to some code directly in the particle binary. Nothing to do with the library.properties. I guess for now, it's just what it is. I'll keep trying to do it locally and see where I get I suppose. |
OK, after much haggling with this, the display is still rotated and offset. I don't seem to be able to make this display start in the right place. I'm OK if you close this. I did fork and my fork has the changes to compile and run, even if it doesn't look very good. Maybe someone else can figure out why it's offset so weird. |
I would like to contribute a port to the Particle build system. Is there documentation somewhere, or can we work some documentation out, for how to add a new folder in lcd_hal for particle? I expect it wouldn't be too difficult.
I've forked the repo for the time being so I can hack away at it when I have a bit of time. If I can get it quickly enough, we can talk about the additional documentation which I would be happy to help with. It would be your choice to include said support in the original repo I suppose.
My goal is to support the SH1107 Featherwing from Adafruit for use with the Particle Argon for a project I'm getting started.
Thank you.
The text was updated successfully, but these errors were encountered: