Close
0%
0%

HaLiTerm mini

Pocket sized cyberdeck based on the NanoPi NEO Air and RP2040

Similar projects worth following
This is a tiny serial terminal with a memory in pixel display and a built-in NanoPi NEO Air.

This device is a serial terminal based on the RP2040 microcontroller.  The NanoPi NEO Air is connected over UART to the RP2040. The display is a Sharp memory in pixel LCD display connected over SPI. Although the datasheet specifies a 1 MHz clock frequency, visual artefacts appear only at 8 MHz. To improve framerate, the RP2040 drives the screen at 6 MHz .

The battery can be charged over the USB-C connector, which can also be used to program the RP2040 in bootsel mode. The maximum battery charging current is configured at 1A, maximum voltage at 4.2V, minimum voltage at 3V. An ADC pin of the RP2040 is connected to the battery using a voltage divider. An RGB led gives feedback about the battery state. With WIFI turned off idle battery time is over 5 hours using a 1100mAh LiPo battery.

 A 3.5mm headphone and a USB-A connector are available to use with the NanoPi NEO Air. A DM3231MZ real time clock is connected over I2C to the SBC. The board has a CR1216 coin cell holder.

The display has a 400x240 pixel resolution and it displays text with a 5x10 Pixel font providing 80 columns and 24 lines. The fontmaker.py tool provided with the source code was written in order to conveniently create the custom font. It saves the font directly as a c compatible array. The terminal supports normal and bold ASCII characters, Latin-1 supplement, box- and block-drawing character sets.

The keyboard buttons are made of 2 3d-printed parts and are held in place by slots in the front PCB. I used a Monoprice Mini Delta 2 to print the buttons. It required a lot of tweaking and experimenting to get usable results. The provided FreeCAD models might need adjustments with a different printer. The labels were printed with a Canon Selphy CP1300. The 3 PCBs and the NanoPi are held together by soldered-on brass standoffs and screws. 

The RP2040 pin configuration is on the inside of the back PCB.

HaLiTerm mini is marked with CC0 1.0. To view a copy of this license, visit https://creativecommons.org/publicdomain/zero/1.0/

haliterm-mini-button.zip

x-zip-compressed - 30.79 kB - 08/08/2024 at 20:02

Download

haliterm-mini-src.zip

x-zip-compressed - 21.43 kB - 08/08/2024 at 19:59

Download

haliterm-mini-kicad.zip

x-zip-compressed - 23.21 MB - 08/08/2024 at 19:57

Download

  • 1 × BH-127A-1 Single-cell battery retainer
  • 1 × C1005X5R1E225K050BC 2.2 µF ±10% 25V Ceramic Capacitor X5R 0402 (1005 Metric)
  • 1 × CL05A106MP6NUN8 10 µF ±20% 10V Ceramic Capacitor X5R 0402 (1005 Metric)
  • 9 × NMC0402X5R105K10TRPF 1 µF ±10% 10V Ceramic Capacitor X5R 0402 (1005 Metric)
  • 2 × CC0402GRNPO8BN150 15 pF ±2% 25V Ceramic Capacitor C0G, NP0 0402 (1005 Metric)

View all 46 components

  • 1
    Configuring the RTC

    To use the DS3231 RTC first add "i2c0" to overlays= in /boot/dietpiEnv.txt without quotes and separated by a space, for example:

    overlays=usbhost2 usbhost3 i2c0

     Create a systemd service to sync the system time automatically during the boot process. Create /etc/systemd/system/add-rtc.service and add the following:

    [Unit]
    Description=Sync system time to RTC
    Requires=sysinit.target
    
    [Service]
    Type=oneshot
    ExecStart=/usr/bin/bash -c 'echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device'
    ExecStart=/bin/sleep 2
    ExecStart=/sbin/hwclock -f /dev/rtc1 -s
    
    [Install]
    WantedBy=sysinit.target

     Enable the service:

    sudo systemctl daemon-reload
    sudo systemctl enable add-rtc

     Use dietpi-config to disable the fake hardware clock and set time synchronization to custom.

View all instructions

Enjoy this project?

Share

Discussions

jehan60188 wrote 08/19/2024 at 14:26 point

Looks neat; what would this be used for?

  Are you sure? yes | no

Balazs wrote 08/19/2024 at 15:31 point

I use it as a very impractical RSS reader. Its main purpose is to remind me that I was able to make it. Also, it looks nice.

  Are you sure? yes | no

Trevor Flowers wrote 08/12/2024 at 01:22 point

Kudos on a solid visual design and a fun form. How does the little keyboard feel when you're thumb-typing on it?


I make 1:3 scale reproductions of the original DEC VT100 keyboards and I love to see that others are also making small keebs.

  Are you sure? yes | no

Balazs wrote 08/12/2024 at 15:36 point

Thank you! The keyboard feels like the volume buttons on a phone, but a little lighter.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates