Atomic pi

This looks pretty interesting, seeing that it has an x86 processor for $34 before shipping costs:

https://dlidirect.com/products/atomic-pi

Comments

  • Yes, that's an interesting board and concept. I can only wish for something like that with a P2 for hard real time tasks though, depending on how that XMOS is connected, the XMOS can be an excellent RT proc but nowhere as easy to use as either the P1 or P2.
    The difference between theory and practice is that, in theory, there is no difference between theory and practice, but in practice, there is.
  • jmgjmg Posts: 13,535
    EE351 wrote: »
    This looks pretty interesting, seeing that it has an x86 processor for $34 before shipping costs:

    https://dlidirect.com/products/atomic-pi

    Interesting, I like a beefy looking heatsink ;)

    It says this TTL serial debug and expansion serial ports up to 3.6Mbps which seems a little slow ?
    Unclear if that 3.6M is a hard (HW) limit, or a Kernel support ?
    RaspPi HW can support I think 16MBd UART and 128MHz SPI

    Looking at the GPIO lists, it looks to have 56 gpio's

    UARTn UART1/UART2 with RTS/CTS
    UART Debug
    FST_SPI_xx - looks to be QuadSPI with 4 CSn
    SPI1 - Another SPI port
    I2Cn - I2C0..I2C6 - plenty of i2c :)
    I2C_NFC - Near field reader ?
    JTAG - maybe for debug/pgm/board test ?
    MF_PLT ? - 6 Clocks, grouped with PWM ?
    SDMMC2 SDMMC1..3 CLK, D0..D3
    MF_HDA_xx - SPI like ?

    AAEON board GPIO information 12/20/2018
    
    Example to talk to the GPIO pins from root (sudo -s pawd=user)
    echo 346 > /sys/class/gpio/export    // creates a "gpio346" folder under gpio
    echo out > /sys/class/gpio/gpio346/direction  // sets the direction (in or out)
    echo 0 > /sys/class/gpio/gpio346/value   // drives the pin low
    cat /sys/class/gpio/gpio346/value    // reads the pin back (when used as an input)
    346 is on the north pins, base = 341, offset = 5, connected to the VOL DOWN pin.
    Get the offset from the list below, the number after the opening parenthesis.
    UARTs seem to be programmed as UARTs and not usable as GPIO upon power up.
    
    LIST OF GPIO PINS, most not on headers etc.
    static const struct pinctrl_pin_desc southwest_pins[] = { // BASE = 414    56 gpio's
     PINCTRL_PIN(0, "FST_SPI_D2"),
     PINCTRL_PIN(1, "FST_SPI_D0"),
     PINCTRL_PIN(2, "FST_SPI_CLK"),
     PINCTRL_PIN(3, "FST_SPI_D3"),
     PINCTRL_PIN(4, "FST_SPI_CS1_B"),
     PINCTRL_PIN(5, "FST_SPI_D1"),
     PINCTRL_PIN(6, "FST_SPI_CS0_B"),
     PINCTRL_PIN(7, "FST_SPI_CS2_B"),
    
     PINCTRL_PIN(15, "UART1_RTS_B"),   // UART addresses not verified
     PINCTRL_PIN(16, "UART1_RXD"),   // UART1 26 pin ->16, screw terminal ->1, addr = 430
     PINCTRL_PIN(17, "UART2_RXD"),   // UART2 26 pin ->23, screw terminal ->8, addr = 431
     PINCTRL_PIN(18, "UART1_CTS_B"),
     PINCTRL_PIN(19, "UART2_RTS_B"),
     PINCTRL_PIN(20, "UART1_TXD"),   // UART1 26 pin ->15, screw terminal ->2, addr = 434
     PINCTRL_PIN(21, "UART2_TXD"),   // UART2 26 pin ->22, screw terminal ->7, addr = 435
     PINCTRL_PIN(22, "UART2_CTS_B"),
    
     PINCTRL_PIN(30, "MF_HDA_CLK"),
     PINCTRL_PIN(31, "MF_HDA_RSTB"),
     PINCTRL_PIN(32, "MF_HDA_SDIO"),
     PINCTRL_PIN(33, "MF_HDA_SDO"),
     PINCTRL_PIN(34, "MF_HDA_DOCKRSTB"),
     PINCTRL_PIN(35, "MF_HDA_SYNC"),
     PINCTRL_PIN(36, "MF_HDA_SDI1"),
     PINCTRL_PIN(37, "MF_HDA_DOCKENB"),
    
     PINCTRL_PIN(45, "I2C5_SDA"),
     PINCTRL_PIN(46, "I2C4_SDA"),
     PINCTRL_PIN(47, "I2C6_SDA"),
     PINCTRL_PIN(48, "I2C5_SCL"),
     PINCTRL_PIN(49, "I2C_NFC_SDA"),
     PINCTRL_PIN(50, "I2C4_SCL"),
     PINCTRL_PIN(51, "I2C6_SCL"),
     PINCTRL_PIN(52, "I2C_NFC_SCL"),
    
     PINCTRL_PIN(60, "I2C1_SDA"),
     PINCTRL_PIN(61, "I2C0_SDA"),
     PINCTRL_PIN(62, "I2C2_SDA"),   // BNO055 I2C - SDA, addr = 476
     PINCTRL_PIN(63, "I2C1_SCL"),
     PINCTRL_PIN(64, "I2C3_SDA"),
     PINCTRL_PIN(65, "I2C0_SCL"),
     PINCTRL_PIN(66, "I2C2_SCL"),   // BNO055 I2C - SCL, addr = 480
     PINCTRL_PIN(67, "I2C3_SCL"),
    
     PINCTRL_PIN(75, "SATA_GP0"),
     PINCTRL_PIN(76, "SATA_GP1"),
     PINCTRL_PIN(77, "SATA_LEDN"),
     PINCTRL_PIN(78, "SATA_GP2"),
     PINCTRL_PIN(79, "MF_SMB_ALERTB"),
     PINCTRL_PIN(80, "SATA_GP3"),
     PINCTRL_PIN(81, "MF_SMB_CLK"),
     PINCTRL_PIN(82, "MF_SMB_DATA"),
    
     PINCTRL_PIN(90, "PCIE_CLKREQ0B"),
     PINCTRL_PIN(91, "PCIE_CLKREQ1B"),
     PINCTRL_PIN(92, "GP_SSP_2_CLK"),
     PINCTRL_PIN(93, "PCIE_CLKREQ2B"),
     PINCTRL_PIN(94, "GP_SSP_2_RXD"),
     PINCTRL_PIN(95, "PCIE_CLKREQ3B"),
     PINCTRL_PIN(96, "GP_SSP_2_FS"),
     PINCTRL_PIN(97, "GP_SSP_2_TXD"),
    };
    static const struct pinctrl_pin_desc north_pins[] = {  //BASE = 341  59 gpio's
     PINCTRL_PIN(0, "GPIO_DFX_0"),
     PINCTRL_PIN(1, "GPIO_DFX_3"),
     PINCTRL_PIN(2, "GPIO_DFX_7"),
     PINCTRL_PIN(3, "GPIO_DFX_1"),
     PINCTRL_PIN(4, "GPIO_DFX_5"),   // WiFi enable, addr = 345 (not verified)
     PINCTRL_PIN(5, "GPIO_DFX_4"),   // VOL DWN, on 3-pin header, addr = 346
     PINCTRL_PIN(6, "GPIO_DFX_8"),
     PINCTRL_PIN(7, "GPIO_DFX_2"),   // VOL UP, on 3-pin header, addr = 348
     PINCTRL_PIN(8, "GPIO_DFX_6"),   // Audio reset, addr = 349 (not verified)
    
     PINCTRL_PIN(15, "GPIO_SUS0"),
     PINCTRL_PIN(16, "SEC_GPIO_SUS10"),
     PINCTRL_PIN(17, "GPIO_SUS3"),   // BNO055 interrupt pin, addr = 358
     PINCTRL_PIN(18, "GPIO_SUS7"),
     PINCTRL_PIN(19, "GPIO_SUS1"),
     PINCTRL_PIN(20, "GPIO_SUS5"),
     PINCTRL_PIN(21, "SEC_GPIO_SUS11"),
     PINCTRL_PIN(22, "GPIO_SUS4"),
     PINCTRL_PIN(23, "SEC_GPIO_SUS8"),
     PINCTRL_PIN(24, "GPIO_SUS2"),
     PINCTRL_PIN(25, "GPIO_SUS6"),   // BNO055 reset pin, addr = 366
     PINCTRL_PIN(26, "CX_PREQ_B"),
     PINCTRL_PIN(27, "SEC_GPIO_SUS9"),
    
     PINCTRL_PIN(30, "TRST_B"),
     PINCTRL_PIN(31, "TCK"),
     PINCTRL_PIN(32, "PROCHOT_B"),
     PINCTRL_PIN(33, "SVIDO_DATA"),
     PINCTRL_PIN(34, "TMS"),
     PINCTRL_PIN(35, "CX_PRDY_B_2"),
     PINCTRL_PIN(36, "TDO_2"),
     PINCTRL_PIN(37, "CX_PRDY_B"),
     PINCTRL_PIN(38, "SVIDO_ALERT_B"),
     PINCTRL_PIN(39, "TDO"),
     PINCTRL_PIN(40, "SVIDO_CLK"),
     PINCTRL_PIN(41, "TDI"),
    
     PINCTRL_PIN(45, "GP_CAMERASB_05"),
     PINCTRL_PIN(46, "GP_CAMERASB_02"),
     PINCTRL_PIN(47, "GP_CAMERASB_08"),
     PINCTRL_PIN(48, "GP_CAMERASB_00"),
     PINCTRL_PIN(49, "GP_CAMERASB_06"),
     PINCTRL_PIN(50, "GP_CAMERASB_10"),
     PINCTRL_PIN(51, "GP_CAMERASB_03"),
     PINCTRL_PIN(52, "GP_CAMERASB_09"),
     PINCTRL_PIN(53, "GP_CAMERASB_01"),
     PINCTRL_PIN(54, "GP_CAMERASB_07"),
     PINCTRL_PIN(55, "GP_CAMERASB_11"),
     PINCTRL_PIN(56, "GP_CAMERASB_04"),
    
     PINCTRL_PIN(60, "PANEL0_BKLTEN"),
     PINCTRL_PIN(61, "HV_DDI0_HPD"),
     PINCTRL_PIN(62, "HV_DDI2_DDC_SDA"),
     PINCTRL_PIN(63, "PANEL1_BKLTCTL"),
     PINCTRL_PIN(64, "HV_DDI1_HPD"),
     PINCTRL_PIN(65, "PANEL0_BKLTCTL"),
     PINCTRL_PIN(66, "HV_DDI0_DDC_SDA"),
     PINCTRL_PIN(67, "HV_DDI2_DDC_SCL"),
     PINCTRL_PIN(68, "HV_DDI2_HPD"),
     PINCTRL_PIN(69, "PANEL1_VDDEN"),
     PINCTRL_PIN(70, "PANEL1_BKLTEN"),
     PINCTRL_PIN(71, "HV_DDI0_DDC_SCL"),
     PINCTRL_PIN(72, "PANEL0_VDDEN"),
    };
    static const struct pinctrl_pin_desc east_pins[] = {  // BASE = 314  24 gpio's
     PINCTRL_PIN(0, "PMU_SLP_S3_B"),
     PINCTRL_PIN(1, "PMU_BATLOW_B"),
     PINCTRL_PIN(2, "SUS_STAT_B"),
     PINCTRL_PIN(3, "PMU_SLP_S0IX_B"),
     PINCTRL_PIN(4, "PMU_AC_PRESENT"),
     PINCTRL_PIN(5, "PMU_PLTRST_B"),
     PINCTRL_PIN(6, "PMU_SUSCLK"),
     PINCTRL_PIN(7, "PMU_SLP_LAN_B"),
     PINCTRL_PIN(8, "PMU_PWRBTN_B"),
     PINCTRL_PIN(9, "PMU_SLP_S4_B"),
     PINCTRL_PIN(10, "PMU_WAKE_B"),
     PINCTRL_PIN(11, "PMU_WAKE_LAN_B"),
    
     PINCTRL_PIN(15, "MF_ISH_GPIO_3"),  // 26 pin ->18, screw terminal ->3, addr = 329
     PINCTRL_PIN(16, "MF_ISH_GPIO_7"),  // 26 pin ->20, screw terminal ->5, addr = 330
     PINCTRL_PIN(17, "MF_ISH_I2C1_SCL"),
     PINCTRL_PIN(18, "MF_ISH_GPIO_1"),  // 26 pin  ->25, screw terminal ->10, addr = 332
     PINCTRL_PIN(19, "MF_ISH_GPIO_5"),
     PINCTRL_PIN(20, "MF_ISH_GPIO_9"),
     PINCTRL_PIN(21, "MF_ISH_GPIO_0"),  // 26 pin  ->24, screw terminal ->9, addr = 335 
     PINCTRL_PIN(22, "MF_ISH_GPIO_4"),  // 26 pin  ->19, screw terminal ->4, addr = 336 
     PINCTRL_PIN(23, "MF_ISH_GPIO_8"),
     PINCTRL_PIN(24, "MF_ISH_GPIO_2"),  // 26 pin  ->26, screw terminal ->11, addr = 338
     PINCTRL_PIN(25, "MF_ISH_GPIO_6"),
     PINCTRL_PIN(26, "MF_ISH_I2C1_SDA"),
    };
    static const struct pinctrl_pin_desc southeast_pins[] = { // BASE probably 228  55 gpio's
     PINCTRL_PIN(0, "MF_PLT_CLK0"),
     PINCTRL_PIN(1, "PWM1"),
     PINCTRL_PIN(2, "MF_PLT_CLK1"),
     PINCTRL_PIN(3, "MF_PLT_CLK4"),
     PINCTRL_PIN(4, "MF_PLT_CLK3"),
     PINCTRL_PIN(5, "PWM0"),
     PINCTRL_PIN(6, "MF_PLT_CLK5"),
     PINCTRL_PIN(7, "MF_PLT_CLK2"),
    
     PINCTRL_PIN(15, "SDMMC2_D3_CD_B"),
     PINCTRL_PIN(16, "SDMMC1_CLK"),
     PINCTRL_PIN(17, "SDMMC1_D0"),
     PINCTRL_PIN(18, "SDMMC2_D1"),
     PINCTRL_PIN(19, "SDMMC2_CLK"),
     PINCTRL_PIN(20, "SDMMC1_D2"),
     PINCTRL_PIN(21, "SDMMC2_D2"),
     PINCTRL_PIN(22, "SDMMC2_CMD"),
     PINCTRL_PIN(23, "SDMMC1_CMD"),
     PINCTRL_PIN(24, "SDMMC1_D1"),
     PINCTRL_PIN(25, "SDMMC2_D0"),
     PINCTRL_PIN(26, "SDMMC1_D3_CD_B"),
    
     PINCTRL_PIN(30, "SDMMC3_D1"),
     PINCTRL_PIN(31, "SDMMC3_CLK"),
     PINCTRL_PIN(32, "SDMMC3_D3"),
     PINCTRL_PIN(33, "SDMMC3_D2"),
     PINCTRL_PIN(34, "SDMMC3_CMD"),
     PINCTRL_PIN(35, "SDMMC3_D0"),
    
     PINCTRL_PIN(45, "MF_LPC_AD2"),
     PINCTRL_PIN(46, "LPC_CLKRUNB"),  // Debug UART TXD on 3-pin con., addr = 274 (not verified)
     PINCTRL_PIN(47, "MF_LPC_AD0"),
     PINCTRL_PIN(48, "LPC_FRAMEB"),  // Debug UART RXD on 3-pin con., addr = 276 (not verified)
     PINCTRL_PIN(49, "MF_LPC_CLKOUT1"),
     PINCTRL_PIN(50, "MF_LPC_AD3"),
     PINCTRL_PIN(51, "MF_LPC_CLKOUT0"),
     PINCTRL_PIN(52, "MF_LPC_AD1"),
    
     PINCTRL_PIN(60, "SPI1_MISO"),
     PINCTRL_PIN(61, "SPI1_CSO_B"),
     PINCTRL_PIN(62, "SPI1_CLK"),
     PINCTRL_PIN(63, "MMC1_D6"),
     PINCTRL_PIN(64, "SPI1_MOSI"),
     PINCTRL_PIN(65, "MMC1_D5"),
     PINCTRL_PIN(66, "SPI1_CS1_B"),
     PINCTRL_PIN(67, "MMC1_D4_SD_WE"),
     PINCTRL_PIN(68, "MMC1_D7"),
     PINCTRL_PIN(69, "MMC1_RCLK"),
    
     PINCTRL_PIN(75, "USB_OC1_B"),
     PINCTRL_PIN(76, "PMU_RESETBUTTON_B"),
     PINCTRL_PIN(77, "GPIO_ALERT"),
     PINCTRL_PIN(78, "SDMMC3_PWR_EN_B"),
     PINCTRL_PIN(79, "ILB_SERIRQ"),
     PINCTRL_PIN(80, "USB_OC0_B"),
     PINCTRL_PIN(81, "SDMMC3_CD_B"),
     PINCTRL_PIN(82, "SPKR"),
     PINCTRL_PIN(83, "SUSPWRDNACK"),
     PINCTRL_PIN(84, "SPARE_PIN"),
     PINCTRL_PIN(85, "SDMMC3_1P8_EN"),
    };
    
  • jmgjmg Posts: 13,535
    pmrobert wrote: »
    Yes, that's an interesting board and concept. I can only wish for something like that with a P2 for hard real time tasks though, depending on how that XMOS is connected, the XMOS can be an excellent RT proc but nowhere as easy to use as either the P1 or P2.

    The GPIO lists are promising, and it might connect well to P2, as I doubt the quoted 3.6M is all the Serial IO is good for. Faster should be possible.
    What life-time do they give on this module ?
  • OK - Runs on 5V. Typically 4-15 Watts. Heat up my Coffee!!! and... Drain my Battery !!!
  • Is its CPU free from Spectre, Rowhammer, Meltdown, ... problems?
    ◁ propeller-wiki ▷ ◁ FastSpin ▷ ◁ DK-E ▷ ◁ :-D ▷ ◁ Stay OmmmmmmPtimistic! ▷ ◁ No Source – No Go! ▷ ◁ Help Spin at RosettaCode.org ▷ ◁ Why Asimov's Laws of Robotics Don't Work ▷ ◁ DNA is a four letter word. ▷
  • Just went to the site, and all items are sold out. It sort looks like an interesting product, maybe a replacement for a Raspberry Pi. Since there is a SimpleIDE Linux version still available, install that so you could program from a small Linux configuration. Or if you have extra cash laying around, Win 10 Pro - $150, install that, then you could install SimpleIDE Windows version, and be running some relatively up to date software. Just some thoughts.

    Ray
  • The Atomic Pi is listed on Amazon but shows unavailable with no idea when they will more. However, in the comments, it seems the vendor states that Amazon has 500 to sell. That is unless they sold out already.

    I get a bit weary with these board since they never perform to the specs the vendor shows and they tend to go out of production rather quickly. Although it does have an Intel Atom processor, give Intel's history with similar dev boards (Galileo, Edison(Atom Processor) , Arduino 101), I would not put my money on this.

    They claim to be a RasPi killer, but since the Atomic Pi only has a 26 pin GPIO header, I wonder if that comparison is with the older Raspberry Pi 1 A or B and not the current RasPi 3 B+ which has a 40 pin GPIO header.

    Personally I would like to see more of the spec on the GPU and see what the OpenGL-ES support looks like. The RasPi has built libs for OpenGL-ES but only supports up to OpenGL-ES 2.0, so something like 3.0 would be interesting.
  • JonM wrote: »
    They claim to be a RasPi killer, but since the Atomic Pi only has a 26 pin GPIO header, I wonder if that comparison is with the older Raspberry Pi 1 A or B and not the current RasPi 3 B+ which has a 40 pin GPIO header.

    How many people actually use the GPIO on the Pi though? Sure, if you're using it to build something, you use it. But the majority of Pis seem to sit in people's cupboards and host their IRC bouncer or whatever.
  • jmgjmg Posts: 13,535
    JonM wrote: »
    They claim to be a RasPi killer, but since the Atomic Pi only has a 26 pin GPIO header, I wonder if that comparison is with the older Raspberry Pi 1 A or B and not the current RasPi 3 B+ which has a 40 pin GPIO header.

    Worse, that 26 pins is nothing like a RaspPi pinout !?
    I cannot find a rear board image, as the SW DOCs suggest more IO, but maybe on some fine-pitch SMD connector or not even routed to a connector ?

    There are other Pi Intel clones, like this ?
    https://up-shop.org/
  • Wuerfel_21 wrote: »
    JonM wrote: »
    They claim to be a RasPi killer, but since the Atomic Pi only has a 26 pin GPIO header, I wonder if that comparison is with the older Raspberry Pi 1 A or B and not the current RasPi 3 B+ which has a 40 pin GPIO header.

    How many people actually use the GPIO on the Pi though? Sure, if you're using it to build something, you use it. But the majority of Pis seem to sit in people's cupboards and host their IRC bouncer or whatever.
    I suppose there are some that buy a Pi for the novelty, but I know plenty of folks that use it for its GPIO capability. There are a ton of Pi Hats such as the PiFace line and the more recent Matrix Creator and such that use the GPIO interface quite nicely.
  • jmg wrote: »
    JonM wrote: »
    They claim to be a RasPi killer, but since the Atomic Pi only has a 26 pin GPIO header, I wonder if that comparison is with the older Raspberry Pi 1 A or B and not the current RasPi 3 B+ which has a 40 pin GPIO header.

    Worse, that 26 pins is nothing like a RaspPi pinout !?
    I cannot find a rear board image, as the SW DOCs suggest more IO, but maybe on some fine-pitch SMD connector or not even routed to a connector ?

    There are other Pi Intel clones, like this ?
    https://up-shop.org/

    Well, I am just going by what is present on the Atomic Pi currently and their claim.

    I believe a better comparison for the Atomic Pi would be to the Up Board which does have an Atom as well and is pretty much a mimic of a RasPi including the 40 pin header.
    https://up-board.org/up/specifications/

    The LattePanda boards are Intel Atom based as well.
    https://lattepanda.com/products

    Even the ASUS Tinker Board is a mimic of the Pi board layout and sports a Rockchip RK3288 and a ARM-based Mali™-T764 GPU.
  • jmgjmg Posts: 13,535
    JonM wrote: »
    Wuerfel_21 wrote: »
    JonM wrote: »
    They claim to be a RasPi killer, but since the Atomic Pi only has a 26 pin GPIO header, I wonder if that comparison is with the older Raspberry Pi 1 A or B and not the current RasPi 3 B+ which has a 40 pin GPIO header.

    How many people actually use the GPIO on the Pi though? Sure, if you're using it to build something, you use it. But the majority of Pis seem to sit in people's cupboards and host their IRC bouncer or whatever.
    I suppose there are some that buy a Pi for the novelty, but I know plenty of folks that use it for its GPIO capability. There are a ton of Pi Hats such as the PiFace line and the more recent Matrix Creator and such that use the GPIO interface quite nicely.

    Yes, the question is less what is the mix of Pi use, as there are literally millions of them, and more what can you use Pi for.
    The GPIO expansion eco-system, is massive and growing, and those board determine what you can use Pi (or anything that has a Pi Connector !) for.
  • jmgjmg Posts: 13,535
    JonM wrote: »
    The LattePanda boards are Intel Atom based as well.
    https://lattepanda.com/products

    Nice boards, but Lattepanda seem to have a 24 pin header, that is not Pi Compatible, so cannot easily tap into the Pi connected eco-system :(
    JonM wrote: »
    I believe a better comparison for the Atomic Pi would be to the Up Board which does have an Atom as well and is pretty much a mimic of a RasPi including the 40 pin header.
    https://up-board.org/up/specifications/

    Yes, that looks nice, uses a MAX CPLD as the IO shuffling, to manage pin mapping and resource. It does look to have cloned Pi pinouts.
    No mention of MHz but looks to have UART/SPI/i2c/i2s/PWM to some level of function.
    Overall Price and CPU sits above RaspPi.
    JonM wrote: »
    .... and the more recent Matrix Creator and such that use the GPIO interface quite nicely.
    That has a lot of extra silicon on that module, quite impressive.

  • Back in stock at amazon for under $36 including free shipping for prime members:

    https://www.amazon.com/gp/product/B07N298F2B/ref=ox_sc_act_title_1?smid=A3D4241373L385&psc=1
Sign In or Register to comment.