Has anyone got an idea?
Posts made by MK
-
RE: Omega 2S+ "No Space Left on Device" after Ethernet connection errorposted in Omega Talk
-
Omega 2S+ "No Space Left on Device" after Ethernet connection errorposted in Omega Talk
Hi Community,
I'm experiencing a really strange issue. Only with some devices in combination with some Ethernet networks (I have no details regarding these networks).
For some unknown reason, a some random usage point, ethernet connexion will fail (Omega is acting as a device and not as a router). After some random delay (mostly several ours), my custom script will run into a "No Space Left on Device" error. This error always occurs during a command requiring space on /tmps partition. For example a "print()" or os.system() statement in my python script. As once the error occurs, the device is not usable anymore (ssh connection is not possible anymore), I need to reboot the device. However, once device is rebooted, I cannot see any storage issue....
I guess during the ethernet error, some internal Omega/OPenWRT process is just filling some log files in /tmps like crazy, but I couldn't reproduce the issue in my lab.
Any thaughts what this might be?
-
Onion bricked? SQUASHFS error...posted in Omega Talk
HI community,
I have this onion working for a while now under nominal conditions without any issue. Suddendly, nothing worked anymore (no external influence). Unable to connect via Wifi, Ethernet. I tried to connect via Serial and get this output, which is permanently repeating. Any idea what the issue is?
Thanks,
MK
Board: Onion Omega2 APSoC DRAM: 128 MB
relocate_code Pointer at: 87f60000
Software System Reset Occurred
flash manufacture id: ef, device id 40 19
find flash: W25Q256FV
*** Warning - bad CRC, using default environment============================================
Onion Omega2 UBoot Version: 4.3.0.3ASIC 7628_MP (Port5<->None)
DRAM component: 1024 Mbits DDR, width 16
DRAM bus: 16 bit
Total memory: 128 MBytes
Flash component: SPI Flash
Date:Nov 18 2022 Time:19:21:40icache: sets:512, ways:4, linesz:32 ,total:65536
dcache: sets:256, ways:4, linesz:32 ,total:32768
CPU freq = 575 MHZ
Estimated memory size = 128 Mbytes
Resetting MT7628 PHY.
Initializing MT7688 GPIO system.
wifi mac address = 881E59033478.
- Hold Reset button for more options *
Boot Linux from Flash NO RESET PRESSED.
Booting image at bc050000 ...
Image Name: MIPS OpenWrt Linux-4.14.81
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 1617567 Bytes = 1.5 MB
Load Address: 80000000
Entry Point: 80000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
No initrdTransferring control to Linux (at address 80000000) ...
Giving linux memsize in MB, 128
Starting kernel ...
[ 0.000000] Linux version 4.14.81 (root@4bebe08665b4) (gcc version 7.3.0 (OpenWrt GCC 7.3.0 r0+7504-8c8c87ef8f)) #0 Mon Sep 9 15:48:40 2024
[ 0.000000] Board has DDR2
[ 0.000000] Analog PMU set to hw control
[ 0.000000] Digital PMU set to hw control
[ 0.000000] SoC Type: MediaTek MT7688 ver:1 eco:2
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] CPU0 revision is: 00019655 (MIPS 24KEc)
[ 0.000000] MIPS: machine is Onion Omega2+
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 08000000 @ 00000000 (usable)
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x0000000000000000-0x0000000007ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000000000-0x0000000007ffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
[ 0.000000] random: get_random_bytes called from start_kernel+0x8c/0x474 with crng_init=0
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 32512
[ 0.000000] Kernel command line: console=ttyS0,115200 rootfstype=squashfs,jffs2
[ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Writing ErrCtl register=00000d5e
[ 0.000000] Readback ErrCtl register=00000d5e
[ 0.000000] Memory: 124580K/131072K available (3708K kernel code, 207K rwdata, 920K rodata, 212K init, 205K bss, 6492K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS: 256
[ 0.000000] intc: using register map from devicetree
[ 0.000000] CPU Clock: 580MHz
[ 0.000000] timer_probe: no matching timers found
[ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6590553264 ns
[ 0.000012] sched_clock: 32 bits at 290MHz, resolution 3ns, wraps every 7405115902ns
[ 0.007674] Console: colour dummy device 80x25
[ 0.011931] Calibrating delay loop... 385.84 BogoMIPS (lpj=1929216)
[ 0.073506] pid_max: default: 32768 minimum: 301
[ 0.078194] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.084537] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.098565] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.108060] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.114006] pinctrl core: initialized pinctrl subsystem
[ 0.119579] NET: Registered protocol family 16
[ 0.155797] mt7621_gpio 10000600.gpio: registering 32 gpios
[ 0.161480] mt7621_gpio 10000600.gpio: registering 32 gpios
[ 0.167004] mt7621_gpio 10000600.gpio: registering 32 gpios
[ 0.173624] i2c-mt7621 10000900.i2c: clock 100 kHz
[ 0.183175] clocksource: Switched to clocksource MIPS
[ 0.195418] NET: Registered protocol family 2
[ 0.200550] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.207297] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.213400] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.219661] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.225294] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.231587] NET: Registered protocol family 1
[ 0.250227] Crashlog allocated RAM at address 0x3f00000
[ 0.257008] workingset: timestamp_bits=30 max_order=15 bucket_order=0
[ 0.269313] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.274933] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 0.295037] io scheduler noop registered
[ 0.298769] io scheduler deadline registered (default)
[ 0.304811] Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
[ 0.312153] console [ttyS0] disabled
[ 0.315653] 10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 28, base_baud = 2500000) is a 16550A
[ 0.324376] console [ttyS0] enabled
[ 0.324376] console [ttyS0] enabled
[ 0.331370] bootconsole [early0] disabled
[ 0.331370] bootconsole [early0] disabled
[ 0.340170] 10000d00.uart1: ttyS1 at MMIO 0x10000d00 (irq = 29, base_baud = 2500000) is a 16550A
[ 0.349844] 10000e00.uart2: ttyS2 at MMIO 0x10000e00 (irq = 30, base_baud = 2500000) is a 16550A
[ 0.359359] cacheinfo: Failed to find cpu0 device node
[ 0.364606] cacheinfo: Unable to detect cache hierarchy for CPU 0
[ 0.371578] spi-mt7621 10000b00.spi: sys_freq: 193333333
[ 0.393129] m25p80 spi0.0: w25q256 (32768 Kbytes)
[ 0.398004] 5 fixed-partitions partitions found on MTD device spi0.0
[ 0.404459] Creating 5 MTD partitions on "spi0.0":
[ 0.409325] 0x000000000000-0x000000030000 : "u-boot"
[ 0.415310] 0x000000030000-0x000000040000 : "u-boot-env"
[ 0.421514] 0x000000040000-0x000000050000 : "factory"
[ 0.427562] 0x000000050000-0x000001f80000 : "firmware"
[ 0.522787] 2 uimage-fw partitions found on MTD device firmware
[ 0.528835] 0x000000050000-0x0000001daedf : "kernel"
[ 0.534810] 0x0000001daedf-0x000001f80000 : "rootfs"
[ 0.540616] mtd: device 5 (rootfs) set to be root filesystem
[ 0.547867] 1 squashfs-split partitions found on MTD device rootfs
[ 0.554210] 0x000000970000-0x000001f80000 : "rootfs_data"
[ 0.560619] 0x000001f80000-0x000002000000 : "user"
[ 0.567391] libphy: Fixed MDIO Bus: probed
[ 0.583243] rt3050-esw 10110000.esw: link changed 0x00
[ 0.590119] mtk_soc_eth 10100000.ethernet eth0: mediatek frame engine at 0xb0100000, irq 5
[ 0.598818] i2c /dev entries driver
[ 0.604268] NET: Registered protocol family 10
[ 0.613114] Segment Routing with IPv6
[ 0.617020] NET: Registered protocol family 17
[ 0.621581] 8021q: 802.1Q VLAN Support v1.8
[ 0.632048] VFS: Mounted root (squashfs filesystem) readonly on device 31:5.
[ 0.640427] Freeing unused kernel memory: 212K
[ 0.644964] This architecture does not have kernel memory protection.
[ 1.291638] SQUASHFS error: xz decompression failed, data probably corrupt
[ 1.298650] SQUASHFS error: squashfs_read_data failed to read block 0xd968a
[ 1.305720] SQUASHFS error: Unable to read fragment cache entry [d968a]
[ 1.312426] SQUASHFS error: Unable to read page, block d968a, size 1525c
[ 1.319261] SQUASHFS error: Unable to read fragment cache entry [d968a]
[ 1.325977] SQUASHFS error: Unable to read page, block d968a, size 1525c
[ 1.332784] SQUASHFS error: Unable to read fragment cache entry [d968a]
[ 1.339500] SQUASHFS error: Unable to read page, block d968a, size 1525c
[ 1.346320] SQUASHFS error: Unable to read fragment cache entry [d968a]
[ 1.353022] SQUASHFS error: Unable to read page, block d968a, size 1525c
[ 1.359848] SQUASHFS error: Unable to read fragment cache entry [d968a]
[ 1.366563] SQUASHFS error: Unable to read page, block d968a, size 1525c
Error loading sh[ 1.373739] SQUASHFS error: Unable to read fragment cache entry [d968a]
ared library lib[ 1.381627] SQUASHFS error: Unable to read page, block d968a, size 1525c
ubox.so: I/O err[ 1.389877] SQUASHFS error: Unable to read fragment cache entry [d968a]
or (needed by /s[ 1.397965] SQUASHFS error: Unable to read page, block d968a, size 1525c
bin/init)
[ 1.406178] SQUASHFS error: Unable to read fragment cache entry [d968a]
[ 1.413824] SQUASHFS error: Unable to read page, block d968a, size 1525c
[ 1.420630] SQUASHFS error: Unable to read fragment cache entry [d968a]
[ 1.427345] SQUASHFS error: Unable to read page, block d968a, size 1525c
[ 1.434166] SQUASHFS error: Unable to read fragment cache entry [d968a]
[ 1.440869] SQUASHFS error: Unable to read page, block d968a, size 1525c
Error loading shared library libubus.so: I/O error (needed by /sbin/init)
[ 1.577031] SQUASHFS error: Unable to read fragment cache entry [d968a]
[ 1.583820] SQUASHFS error: Unable to read page, block d968a, size 1525c
[ 1.590628] SQUASHFS error: Unable to read fragment cache entry [d968a]
[ 1.597343] SQUASHFS error: Unable to read page, block d968a, size 1525c
[ 1.604155] SQUASHFS error: Unable to read fragment cache entry [d968a]
[ 1.610859] SQUASHFS error: Unable to read page, block d968a, size 1525c
[ 1.617675] SQUASHFS error: Unable to read fragment cache entry [d968a]
[ 1.624390] SQUASHFS error: Unable to read page, block d968a, size 1525c
Error loading sh[ 1.631492] SQUASHFS error: Unable to read fragment cache entry [d968a]
ared library lib[ 1.639443] SQUASHFS error: Unable to read page, block d968a, size 1525c
blobmsg_json.so:[ 1.647655] SQUASHFS error: Unable to read fragment cache entry [d968a]
I/O error (need[ 1.655746] SQUASHFS error: Unable to read page, block d968a, size 1525c
ed by /sbin/init[ 1.663961] SQUASHFS error: Unable to read fragment cache entry [d968a]
)
[ 1.672038] SQUASHFS error: Unable to read page, block d968a, size 1525c
[ 1.679105] SQUASHFS error: Unable to read fragment cache entry [d968a]
[ 1.685822] SQUASHFS error: Unable to read page, block d968a, size 1525c
[ 1.692631] SQUASHFS error: Unable to read fragment cache entry [d968a]
[ 1.699346] SQUASHFS error: Unable to read page, block d968a, size 1525c
Error loading sh[ 1.706432] SQUASHFS error: Unable to read fragment cache entry [d968a]
ared library lib[ 1.714400] SQUASHFS error: Unable to read page, block d968a, size 1525c
json_script.so: [ 1.722626] SQUASHFS error: Unable to read fragment cache entry [d968a]
I/O error (neede[ 1.730696] SQUASHFS error: Unable to read page, block d968a, size 1525c
d by /sbin/init)[ 1.738915] SQUASHFS error: Unable to read fragment cache entry [d968a][ 1.747002] SQUASHFS error: Unable to read page, block d968a, size 1525c
[ 1.753980] SQUASHFS error: Unable to read fragment cache entry [d968a]
[ 1.760682] SQUASHFS error: Unable to read page, block d968a, size 1525c
[ 1.767505] SQUASHFS error: Unable to read fragment cache entry [d968a]
[ 1.774220] SQUASHFS error: Unable to read page, block d968a, size 1525c
Error loading sh[ 1.781225] SQUASHFS error: Unable to read fragment cache entry [d968a]
ared library lib[ 1.789254] SQUASHFS error: Unable to read page, block d968a, size 1525c
gcc_s.so.1: I/O error (needed by /sbin/init)
Error loading shared library libgcc_s.so.1: I/O error (needed by /usr/lib/libjson-c.so.2)
Error relocating /usr/lib/libjson-c.so.2: __nedf2: symbol not found
Error relocating /usr/lib/libjson-c.so.2: __unorddf2: symbol not found
Error relocating /usr/lib/libjson-c.so.2: __floatdidf: symbol not found
Error relocating /usr/lib/libjson-c.so.2: __fixdfsi: symbol not found
Error relocating /usr/lib/libjson-c.so.2: __ledf2: symbol not found
Error relocating /usr/lib/libjson-c.so.2: __ltdf2: symbol not found
Error relocating /usr/lib/libjson-c.so.2: __muldf3: symbol not found
Error relocating /usr/lib/libjson-c.so.2: [ 1.855106] random: fast init done
__floatsidf: symbol not found
Error relocating /usr/lib/libjson-c.so.2: __gtdf2: symbol not found
Error relocating /usr/lib/libjson-c.so.2: __fixdfdi: symbol not found
Error relocating /usr/lib/libjson-c.so.2: __sync_val_compare_and_swap_4: symbol not found
Error relocating /usr/lib/libjson-c.so.2: __gedf2: symbol not found
Error relocating /sbin/init: ulog: symbol not found
Error relocating /sbin/init: avl_strcmp: symbol not found
Error relocating /sbin/init: avl_init: symbol not found
Error relocating /sbin/init: uloop_timeout_cancel: symbol not found
Error relocating /sbin/init: avl_insert: symbol not found
Error relocating /sbin/init: uloop_process_add: symbol not found
Error relocating /sbin/init: blobmsg_check_attr: symbol not found
Error relocating /sbin/init: uloop_run_timeout: symbol not found
Error relocating /sbin/init: ulog_open: symbol not found
Error relocating /sbin/init: uloop_timeout_set: symbol not found
Error relocating /sbin/init: uloop_init: symbol not found
[ 1.973273] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00
[ 1.973273]
[ 1.984126] Rebooting in 1 seconds.. -
RE: Uart 2 always goes back to gpioposted in Omega Talk
@crispyoz : Thanks for this. Didn't really want to change rc.local as this is for me a "production file". Changing something in production isn't really easy from a process point of view

However, I guess DTS are compiled somewhere in the Firmware....so making a change here won't be easy either.... I'll probably then go for the change in rc.local and hope it won't mess up things in production

-
Uart 2 always goes back to gpioposted in Omega Talk
Hi Community,
I recently bricked a couple of omegas (was clearly my fault as we used rubish power supplies which just stopped working during firmware Update).....Omega does not like this

However, I loaded a new firmware onto the devices via USB and by fiddling a fancy FTDI serial converter onto the device in order be able to enter some commands.
Everything is fine now, except that the UART2 output is by default set to GPIO (and I need it to be a serial port). Using omega2-ctrl gpiomux set uart2 uart works, but this will revert at the next reboot....
Before the manual firmware Update, UART2 was set by default to UART, now it is set by default to GPIO.
How can I set the default back to UART?
Thanks,
MK
-
RE: How to debug python code?posted in Omega Talk
Hi,
I never really found an alternative to just run the code directly on the Omega and use "standard" debugging techniques like "print". We try to work as follows:
- Create a python script which can be mainly tested on the dev machine (PC, Linux, Mac...whatever you are working with)
- Ensure a good logging mechanism in the script in order to be able to write debug infos into log file (always a good thing even once your in production and need to debug a device)
- Once your script is done to 90%, finish debugging on device.
If you find a better solution, I'll be glad to ear from you :-).
Best,
-
RE: Max date in OpenWRTposted in Omega Talk
@crispyoz Thanks for the return of experience. But I understand you are using your own OS images and not the ones from Onion. The latest firmware (up to November 2024) was 0.3.4 based on OpenWRT 18.06 and now they made a jump to OpenWRT 23.05. Correct?
-
RE: Max date in OpenWRTposted in Omega Talk
@luz : Thanks for this. I'm running the firmware version 0.3.4 (running OpenWRT 18.06) which is the latest version before the newest OpenWRT 23.05 released by Onion in October this year. I do not wan't to switch to 23.05 as according to the docs quite relevant changes have been made, and I do not wan't to affect my firmware.
So basically, I can either run a OpenWRT Version 18.06 with the date issue or switch to 23.05 which will be a huge hassle....Any idea?
-
Max date in OpenWRTposted in Omega Talk
Hi Community,
Came accros this interesting phenomenon:

Setting a date doesn't work after 2038. This is not sooooo far away, and there is a good chance, some devices going into the field today will still be working in 15 years.
What might happen, when this point is reached? Couldn't find anything related to this issue.
-
RE: Interesting New Onion Omega2 Product on Crowd Supplyposted in Omega Talk
Nice! This can indeed save some dev time!
@Lazar-Demin : I'm for PoE as well. Lot's of my applications need connectivity without having power availability. It's much easier to install a simple RJ45 cable than a new wall socket...@crispyoz : I have a PoE board (with a bunch of other features you probably do not need: RTCC, Touch screen interface, RFID reader etc...), don't hesitate to get in touch if you're interested. Other features can be stripped away.
-
OnionOS userposted in Omega Talk
Hi Community,
Has anybody figured out if it is possible to grand the access to the OnionOS to another user (other than root)?
Thanks,
MK
-
RE: PoE 802.3af Dockposted in Omega Talk
@crispyoz : Sorry for the delay. Haven't been very active on the forum for a few weeks. We did integrate a POE hardware into our device which can be found here: https://community.onion.io/topic/5050/omega-and-capacitive-touch-screen
So, it's not just a POE dock. It's a complete PCB integrating a bunch of other functions. But still....POE works on it.
Moreover, here is an older post:
https://community.onion.io/topic/2968/omega-poe-dock -
RE: spidev code for MCP3202 12-Bit A/D converter only reads 252 valuesposted in Projects
@Kazooie : Hadn't time top check the datasheet in depth, but you should indeed get values up to 4096 if Vin = Vdd (check p.13 of datasheet).
What is you Vdd and Vin to wich you get 252 (which is a very strange value by the way).
You could connect the analog input to you Vdd. The converter should output 4096.
-
RE: Omega and capacitive touch screenposted in Projects
@Lazar-Demin : Thanks a lot. It took us some time to finalize this dev :-). Correct: The MicroSD only is accessed by the display controller. However, over serial commands from the Omega to the display controller, you can interact with the display itself. I'm pretty fond of this, as just dumping some serial commands really is easy.
I therefore have two MicroSD slots on the board. One is reserved for the display controller and only accessed by it. The second one is connected to the Omega2S+ and serves as memory extension.
If this can be an interesting solution for you, don't hesitate E-mailing me. I'll send you a proto board.
Best,
MK
-
Omega and capacitive touch screenposted in Projects

Hi Community,
I've been developing a new device embedding an Onion Omega 2S+ with the need of a small (3,5") touch screen. First, I had a look at the Omega Dash (which seems to be the first choice as many functions are already integrated). However, I ran into 2 main issues:
- First: As I'm much more comfortable using Python than C, I had some issues really getting the hang of LVGL.
- Second: The resistive touch screen, didn't really quite fit my requirements regarding "quality". A capacitive touch would be much nicer.
I had a look at several posts from this forum, and noticed many people where looking for touch solutions. However, I didn't find anything regarding capacitive touch....
I therefore went on the hunt of a capacitive touch solution which I could handle with the Omega. Requirements are as follow:
- 3,5" capacitive touch (not resistive)
- Cover Lens Bezel
- Reasonable price
- Drivable with some Python code
After a lot (I really mean a lot) of research, I finally tested a solution from 4D Systems: https://4dsystems.com.au/products/. This Australian company offers quite a lot of different screens and controllers. I finally chose a 3,5" touch screen which can be driven by their diablo 16 controller: https://www.mouser.fr/ProductDetail/4D-Systems/DIABLO16?qs=0lQeLiL1qybL%2FKx9ffo26w%3D%3D
This solution needs quite a bit of custom PCB design, but as my device anyway needs a custom PCB, it wasn't a real hastle integrating the diablo 16 onto the board. The nice thing here is, all the heavy lifting is done by the controller, which directly interfaces with the Omega with a simple serial connection. So once the hardware is done, just get out the Diablo 16 documentation and start writting serial commands....nice.....

Here are my conclusions to this project:
Advantages:
- Super easy to use, once the hardware is integrated. Just write a simple code in the language of your choice (Python in my case) and start talking with the Diablo16 via UART!!!
- 4D Systems offers a free IDE called 4D Workshop enabling a drag and drop style interface in order to design your screen. Again this is super easy and terribly reduces dev time!
- The result is great! The look of the screen and the touch interface are really excellent. The touch response is really fast and gives the user a good experience.
Disadvantages:
- You do need to make a custom hardware. However, I think 4D also offers some intelligent displays directly integrating the controller. This will also require some hardware dev but probably less complexe as directly integrating the controller onto your board.
- All the static data (images, fixed texts, screen layout etc....) is not stored on the controller. The controller accesses this data on an external MicroSD card. This implies two things: You need to integrate this onto your board and you need a high quality industrial grade MicroSD card if you want your product to last.
- As the screen layout is directly written onto the controller and the MicroSD, you cannot perform any remote updates.
- For a final system, you need: Screen + Controller + MicroSD Card + a bunch of other passive components... All this adds up to a certain sum $Ā£ā¬.
Not sure this will meet the requirements for other projects, however for my purposes, this was a great solution enabling a really nice looking device, development simplicity at a reasonable cost. I tried to attach a small video of the screen interaction, this however failed in this post...sorry.
My device as such bundles some other features:
- Ethernet connectivity
- POE (This is really cool as sometimes I need to deploy this device where there is no AC access, and deploying a simple Ethernet cable is wayyyyyy easier than a 220V power line :-))
- 13,56MHz RFID reader (Serial connection with CR95HF controller from ST)
- RTCC chip (MCP7951X from Microchip) with minimum 3 days backup power storage. This is in case power and internet connection would fail simultaneously. The chip is connected to the Omega via SPI.
I'm a little short on time, but I'll try to post some more infos regarding these other features.
Best,

-
RE: Onion Memory structureposted in Omega Talk
Hi Community,
Just an update on this. Thanks to @crispyoz , I had A LOT of really interesting documentation to read. So this is how I would summarize my investigations:
-
Point 1 was that after dumping a 2,967MB file into /root, the du -h command showed a total additional storage usage of 5,8MB (3MB in /root and 2,9MB in /overlay). As I understand, the overlay FS is a union of 2 filesystems. In OpenWRT the two filesystems will be /rom containing the rootfs and /overlay which will be the actual storage space. As in my understanding /root is uncluded in /overlay, this explains why the du command counts the used storage as double.
-
Point 2 was that the df command however only returns an additional storage usage of 0.8MB after dumping my 2.967MB file. I couldn't find any explanation for this in the OpenWRT specific flash layout. However, some dark memory popped into my mind regarding JFFS2 and compression. Following Stackoverflow post seems to confirm my thoughts:
https://stackoverflow.com/questions/31622039/jffs2-filesystem-storage-usage-inconsistent-with-real-file-size
To conclude:
1 - It seems du and df commands do not calculate storage the same way. du seems to add the individual file sizes, whereas df seems to take into account the "real" used flash storage taking into account JFFS2 compression algorithms.
2- This makes it quite difficult to evaluate remaining storage. For my projects I think I'll go over to practical use cases with max file sizes (+ some safety) in order to make sure my applications do not run out of storage.Open Points:
1 - Does anybody know where I could find the Omega specific flash layout (just out of curiosity in order to cross check it with the standard OpenWRT flash layout found here: https://openwrt.org/docs/techref/flash.layout#explanations)?
2 - I think the Omega Flash in of NOR type. I however was unable to find any official datasheet confirming this. Does anyone have this kind of ressource? -
-
RE: Onion Memory structureposted in Omega Talk
@SpiderKenny
Thanks for your reply.
My app will write quite a lot. The device is intended to collect external data (every minute or so) and transfer the data to an MQTT broker. However, the device will always keep an internal Database (sqlite) in order to backup the sent data. Database will be about 2MB at it's maximum size.
Not sure the internal flash really is an issue with frequent writings. I always understood sd cards are more prone to errors over time. My device has a built in sd card slot if needed. If really really necessary I could therefore switch to the sd card. However, if possible, I'd like to avoid this.@crispyoz
Thanks for the link. This is exactly what I was looking for. I'll dive into this content.