This tutorial will show you how to generate new boards and components that can be used in Iron Coder. Do you have a board that is missing from the board menu? Or maybe you want an LED with a specific color? Generate your new component by following these steps!
Navigating to the Generate Boards Window
Navigate to the generate new boards window by clicking add components. Scroll to the bottom of the menu to click the generate new boards button.
Filling out the Component Information Form
Fill out the following form with information about your new component. All fields must be filled out to proceed. To cancel, press the X in the top-right corner.
Component Name: Give your new component a name! You are not allowed to create a board that already exists with that name.
Manufacturer: Who created your component?
Board Type: Is your component a main board, peripheral device, or discrete component.
Main Board Examples: Feather RP2040, Arduino Uno
Peripheral Device Examples: LCD Screen, LED Array, Speaker
Discrete Component Examples: LED, Resistor, Capacitor
Fields for Main Boards: (the following fields are only accessible for Main boards)
Standard: Available options are Arduino, RaspberryPi, Feather, ThingPlus, and MicroMod. If your board does not fit any of these, select None.
CPU: Your board’s CPU
Flash: The amount of flash memory in kilobytes that your board has
RAM: The amount of RAM in kilobytes that your board has
Required Crates: Crates that are required for development with your board.
Examples: embedded-hal, embedded-time, panic-halt
Related Crates: Crates that are related to development with your board.
Examples: smart-leds
Select an Image for Your Component
There are three options for selecting an image for your component.
The default image button will select the following image for the new component.
The SVG button will prompt the user to select an SVG file for the image. A file dialogue will appear that is filtered by SVG file types. Therefore, only SVG file types can be selected, and other files will be greyed out.
The PNG button will prompt the user to select a PNG file for the image. A file dialogue will appear that is filtered by PNG file types. Therefore, only PNG file types can be selected, and other files will be greyed out.
If there is an error loading the provided SVG or PNG file, the user will be brought to the following screen.
The specific error message will be displayed, and you will be able to select between the 3 image options again.
Designate Pinouts
Upon successfulling select an image option for your new component, you can designate pins for your new component.
First, enter pin names in the Pinout Information Form. You can group pins by pinouts. Click “Add Pinout” to add a new group of pins.
For each pinout group, there are three types of information that you need to provide.
Pin Names: Press “Add Pin” to add an empty slot for a new pin
Interface Type: None, GPIO, ADC, PWM, UART, I2C, SPI
Direction: Unknown, Input, Output, Bidirectional
Example Pinout Information Form:
Designating Pins
Adding Pins:
Select A Pin Name: To add a pin you must select a name for the pin first! Add a pin name to the pinout information form on the righthand side, and then select a name from the “Pin Name List.”
Place Pin: Left-Click anywhere on the image
Deleting Pins: Right-Click an existing pin
Changing a Pin’s Name: Select a name from the “Pin Name List.” This new name will be applied when you left-click an existing pin.
Changing Pin Sizes: Select a number on the “Pin Radius” slider. This will change the size of all the pins on the image.
Generate Board: Click done.
To generate a board you must…
Designate at least one pin on the board
Have no blank fields in the pinout information form
Otherwise, error messages will appear indicating that the user must do these two actions.
Example of Designated Pin:
This screen will appear if your component creation was successful. Otherwise, you will receive the same screen with an error message. Upon closing the window, you will return to the component menu where you will find your new component!
Now you know how to automatically generate your own boards and components for use inside the editor!