goebish / nrf24_multipro

nRF24L01 multi-protocol RC transmitter
GNU General Public License v3.0
472 stars 195 forks source link

build: add Makefile for arduino-less environment #37

Open paulfertser opened 6 years ago

paulfertser commented 6 years ago

Hello goebish,

First of all, thank you for making this project free software!

Let me explain my motivation behind this proposal. I would really like to be able to build your firmware without the Arduino IDE (cloning a copy of their libraries is not a problem). I assumed that you're targetting arduino nano board (with atmega32u chip) so I wrote a suitable Makefile. As you can see, treatment of .ino files is a bit hackish, and I had to make some minimal changes to the codebase to make it compile. I would prefer to convert all .ino files to .cpp properly and get rid of the "prototypes.h" hackery, so if you say you might accept such a proposal, I can prepare it shortly.

My next step is to port the code to the "bluepill" stm32f103 board, and I have already managed to build it (with PPM decoding commented out). And then I'm planning on trying to merge this with https://github.com/paulfertser/stm32-tx-hid functionality to be able to use any simple toy Tx to control models.

Please let me know what you think.

If you prefer to contact me via e-mail or IRC, please feel free to.

Have a nice day and happy hacking.

paulfertser commented 6 years ago

(Of course, I meant arduino micro, the one with hardware usb, not nano. If you actually use nano, I'll change the makefile accordingly)

goebish commented 6 years ago

It's meant for the pro mini, so atmega328p ;) I'll check that there is no problem with your changes during the week end.

paulfertser commented 6 years ago

Ok, I'll change the Makefile and push the updated version today. Please advice me on whether you can in theory be interested in me converting ino files to cpp, if that is acceptable to you (afaik arduino IDE won't have any problems compiling them).

paulfertser commented 6 years ago

BTW, with LTO enabled the resulting binary:

$ avr-size nRF24_multipro.elf 
   text    data     bss     dec     hex filename
  20548     470     517   21535    541f nRF24_multipro.elf