Skip to content
Libre Computer
Platform

Your bench

Your board and how to work with it

Everything about the board in front of you that the modules assume: what it is, how to reach its serial console, the rules that keep it alive, and how to bring it back when it will not start.

Your board: Das Frite

123444456789101112131S805X system-on-chip2DDR4 memory3SPI NOR flash (underside)4Buck regulators5Linear regulator624 MHz crystal7Boot select switch840-pin header9USB Type-C10HDMI11Ethernet12USB 2.013Composite video

Your board

Das Frite AML-S805X-AC-V2

  • Amlogic S805X: 4 × Arm Cortex-A53 at 1.416 GHz, Mali-450 GPU
  • 512 MB DDR4 on a 16-bit bus, one memory chip
  • 16 MB SPI NOR flash holding the UEFI boot firmware
  • No microSD slot: the OS boots from a USB drive or an eMMC module
  • USB Type-C for power and USB device mode, one USB 2.0 Type-A, Fast Ethernet, HDMI, composite video
  • Serial console on 40-pin header pins 3 (board receives) and 5 (board transmits), ground on pin 6

Wiring the serial console

Das Frite: the console is on the 40-pin headerUSB-to-UART adapter3.3 V logic40-pin headeron the boardGNDRXTXpin 6: GNDpin 5: TX (board sends)pin 3: RX (board receives)adapter RX ← board TXadapter TX → board RXLeave the adapter's power pin unconnected. 115200 baud, 8 data bits, no parity, 1 stop bit.
Your serial console: three wires, crossed, and never the adapter's power pin.

Your board: Solitude

123444456789101112131415161617171S905D3 system-on-chip2LPDDR4 memory3SPI NOR flash4Buck regulators5Linear regulator6Crystal7Boot select switch8microSD (underside)9Gigabit Ethernet PHY10USB 3.0 hub1140-pin header12Serial console header13USB Type-C14HDMI15Ethernet16USB 3.017Camera and display

Your board

Solitude AML-S905D3-CC

  • Amlogic S905D3: 4 × Arm Cortex-A55 at 2.016 GHz, Mali-G31 MP2 GPU, 1.2 TOPS AI accelerator
  • 2 GB or 4 GB LPDDR4 on a 32-bit bus
  • 16 MB SPI NOR flash holding the UEFI boot firmware
  • MicroSD slot and an eMMC module socket
  • USB Type-C for power and USB device mode, four USB 3.0 Type-A, Gigabit Ethernet, HDMI, camera and display connectors
  • Serial console on its own 3-pin header: pin 1 ground, pin 2 board transmits, pin 3 board receives

Wiring the serial console

Solitude: the console has its own 3-pin headerUSB-to-UART adapter3.3 V logic3-pin UART headeron the boardGNDRXTXpin 1: GNDpin 2: TX (board sends)pin 3: RX (board receives)adapter RX ← board TXadapter TX → board RXLeave the adapter's power pin unconnected. 115200 baud, 8 data bits, no parity, 1 stop bit.
Your serial console: three wires, crossed, and never the adapter's power pin.

Rules that keep the board alive

  • The header is 3.3 V. Never put 5 V on a GPIO pin; it is the one mistake that damages the chip for good. Power sensors and modules from a 3.3 V pin. The 5 V pin powers only a load switched through a MOSFET that draws under about 200 mA, such as lab 6's motor or a relay coil; anything larger gets its own supply, sharing only ground with the board. A servo runs from its own 5 V supply, sharing only ground with the board; only its control signal comes from a pin.
  • Never run a motor, relay or solenoid from a GPIO pin. A pin gives a few milliamps; switch the load with a MOSFET, with a flyback diode across the load's coil, stripe to the positive supply.
  • Power off before you rewire. Shut down with sudo poweroff and wait for the console to show the board has halted, then unplug the USB Type-C supply, change the wiring, check it, and power on. Pulling the plug on a running board can corrupt its boot media.
  • Never connect the USB-to-UART adapter's power pin. Ground, transmit and receive only; the board has its own supply.
  • Cross the serial lines. The adapter's transmit goes to the board's receive, and the adapter's receive to the board's transmit.
  • Use only a 3.3 V USB-to-UART adapter. The console lines are at the board's 3.3 V logic level.

Writing an image

Write the course's image, the one your instructor chose for the term, unless a lab names another.

Use the Libre Computer app for Android: put the boot media in the board first (on Das Frite the USB drive in a USB Type-A port, on Solitude the microSD card in its slot), then connect your phone to the board's USB Type-C port, and the app identifies the board and writes the checksum-verified image you pick from the libre.computer catalogue.

Without an Android phone, use a desktop imager on the bench PC, such as Raspberry Pi Imager or balenaEtcher, with the image file kept on the bench PC (the lab network has no internet): write a USB drive for Das Frite or a microSD card for Solitude. Either way, check the image's SHA-256 against the value your instructor recorded, the one published with it on libre.computer downloads.

Reading while you work

The lab network joins your board and bench PC, not the internet. Open the GPIO, layout and power viewers, the schematics, datasheets and the kernel's documentation on your own laptop or phone, or on a bench PC that your instructor has also connected to the campus network. Datasheets for the station's parts are also kept as files on the bench PC, and each station has a printed map of your board's 40-pin header.

When it will not boot

Recovering a board is part of the course: every embedded engineer breaks a boot sooner or later. Work down the list, and tell your TA if you reach the last row.

StepDo thisIt fixes
1Watch the serial console while it starts, and note the last line it printsTells you which stage stopped; the modules explain each one
2Swap in your station's spare boot mediaA damaged root filesystem or a broken boot configuration
3Re-write the boot media with the app or the bench PC imager. Re-writing erases everything on it: first copy your own files off, from the board with scp if it still boots, or from the media in the bench PC's card and drive readerAny USB drive or card that is physically fine
4Tell your TA: they start the board over USB and restore its firmware (module 3 explains USB boot)Boot firmware that was overwritten or no longer starts
5Hand the board to your TAHardware damage, most often 5 V on a GPIO pin