For the RasPi, I just use C (gcc). Since it's a full Linux device, there's tons of stuff out there for free. 512MB of RAM, but a good chunk of that is for Linux. I usually have 32GB micro SD cards. I write all of my own code, except the GPIO stuff (digitalRead, digitalWrite) is thru wiringPi. It is handy, though, because I can just login to the RasPi from anywhere to do software development work, and I never need to plug-in cables, etc.
For FPGAs, I mostly use the Altera EP2C5 (25USD) , and sometimes the EPM240 (12USD). Both are available on PCBs on Ebay. The Quartus software is free for compiling the FPGA code, and I use Modelsim for simulating the FPGA code (Verilog). I do have to physically plug the JTAG programmer into the USB port on my Linux server to update the FPGA code, but I try to minimize FPGA code changes (essentially freeze the "hardware"), and make all changes thru software. Sometimes that's not possible. The RasPi + FPGA can do anything imaginable, but as I said, the main drawback is the boot time. Fortunately, our electric utility is pretty reliable, so unplanned reboots happen less than once per year. On Friday, January 10, 2025 at 2:11:03 PM UTC-8 newxito wrote: > That's the memory usage of my calculator project: > RAM: [= ] 7.2% (used 23640 bytes from 327680 bytes) > Flash: [=== ] 27.9% (used 365721 bytes from 1310720 bytes) > > Which tools and development environment do you use to program the Raspi > Zero W? > And for the FPGA? > > gregebert schrieb am Freitag, 10. Januar 2025 um 21:43:22 UTC+1: > >> I evaluated Arduino about 15 years ago and decided against it because I >> thought there was only enough RAM/ROM for very simple projects. So for a >> few years I used FPGAs, then Raspberry Pi Zero W, and now I have the >> ecosystem in-place to use FPGA, RasPi, or both. >> >> I'm curious how many lines of source code (it's similar enough to C) can >> be compiled onto an average Arduino device. >> >> >> >> On Friday, January 10, 2025 at 1:38:31 AM UTC-8 newxito wrote: >> >>> I like PlatformIO, but unfortunately, they do not support newer versions >>> of the arduino-esp32 framework which are required for newer hardware >>> (financial disagreement with espressif). >>> Since I use espressif MCUs with the arduino-esp32 framework in all my >>> nixie projects, I’m currently looking for alternatives. I found these >>> options: >>> - Arduino IDE >>> - PlatformIO using pioarduino >>> - pioarduino extension for Visual Studio Code >>> - ESP-IDF extension for Visual Studio Code >>> - ESP-IDF Eclipse plugin >>> I have not made a decision yet, but I spent some time migrating the >>> firmware of a project to the ESP-IDF extension for vscode. Maybe the >>> following will be useful for someone. It’s not a tutorial, just some >>> reformatted notes on how it worked for me. As always use at your own risk. >>> >>> Using the ESP-IDF Extension for Visual Studio Code with the >>> arduino-esp32 component >>> >>> ----------------------------------------------------------------------------------- >>> >>> + Install Visual Studio Code >>> + Install the ESP-IDF extension >>> + Click "Configure ESP-IDF extension" and select EXPRESS >>> - Set download server to github >>> - Select the latest version of ESP-IDF that supports the latest version >>> of the arduino-esp32 component >>> (https://github.com/espressif/arduino-esp32/releases) >>> - Click install >>> >>> + After installation create an ESP arduino project as follows: >>> - Click "Components Manager" or run command "Show ESP Component >>> Registry" >>> - Search and select arduino-esp32 >>> - Go to examples, select hello_world and click "Create Project from >>> this example" >>> - Build the project >>> - Close vscode and rename the project directory to the desired project >>> name >>> - Start vscode and use "open folder" to open the project folder >>> - Copy the source files (c, cpp, hpp) to the main directory >>> - Create an include directory >>> - Copy the header files to the include directory >>> >>> + Edit CMakeList.txt in the main directory: >>> - Register all c, cpp and hpp files in the directory, ignore h files >>> - Specify include directories >>> - Specify requirements >>> >>> For example: >>> >>> idf_component_register(SRCS >>> "main.cpp" >>> “driver.cpp” >>> "helper.hpp" >>> >>> INCLUDE_DIRS "." "../include" >>> "../components/Adafruit_BusIO" >>> "../components/RTCLib" >>> >>> REQUIRES arduino-esp32 >>> REQUIRES nvs_flash >>> ) >>> >>> + Manually add arduino libraries: >>> - Use command "Create New ESP-IDF Component" >>> - Enter the name of the component, e.g. RTCLib >>> - Delete everything in the components\RTCLib directory except >>> CMakeList.txt >>> - Manually copy the library code files (c, cpp, h, hpp) to the >>> component\RTCLib directory >>> - Edit CMakeList.txt file >>> >>> Example CMakeList.txt file for RTCLib: >>> >>> idf_component_register(SRCS >>> "RTClib.cpp" >>> "RTC_DS1307.cpp" >>> "RTC_DS3231.cpp" >>> "RTC_Micros.cpp" >>> "RTC_Millis.cpp" >>> "RTC_PCF8523.cpp" >>> "RTC_PCF8563.cpp" >>> >>> INCLUDE_DIRS "." "../Adafruit_BusIO" >>> REQUIRES arduino-esp32) >>> >>> If the library depends on other libraries add an idf_component.yml file, >>> for example: >>> >>> dependencies: >>> # Define local dependency with relative path >>> Adafruit_BusIO: >>> path: ../AdaFruit_BusIO >>> >>> Some sdk options: (change with the "SDK Configuration Editor") >>> >>> + Compiler options for debugging, performance and size: >>> - Assertion Level >>> - Optimization Level >>> >>> + Arduino options (not set if creating the arduino project manually >>> without using the example): >>> - Kernel >>> set ConfigTICK_RATE_HZ = 1000 >>> - TLS Key Exchange Methods >>> Select "Enable pre-shared-key ciphersuites" >>> - Arduino Configuration >>> Select "Autostart Arduino setup and loop on boot" >>> >>> + A useful terminal command: >>> - idf.py update-dependencies >>> >>> + Some useful vscode shortcuts: >>> - Ctrl-Shift-P to "Show and Run Commands" >>> - Alt-Shift-F to format code >>> >>> I used this to do a clean reinstall on windows: >>> >>> + vscode: >>> - uninstall vscode >>> - delete directory "%userprofile%\AppData\Roaming\Code" >>> - delete directory "%userprofile%\.vscode" >>> >>> + esp-idf extension: >>> - delete directory "%userprofile%\.espressif" >>> - delete directory "%userprofile%\esp" >>> >>> >>> -- You received this message because you are subscribed to the Google Groups "neonixie-l" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion, visit https://groups.google.com/d/msgid/neonixie-l/b9391c7a-52b6-47d9-9d89-2b2ae1d8f9b6n%40googlegroups.com.
