Rotary Un-Smartphone
DEVELOPMENT SUPPLEMENT
EDITED 5/22/23
Known issues (firmware)
Problem: When ISP not connected, debug console stops showing AT commands passings after a short time.
Workaround: Lorum ipsum
Planned fix: Lorum ipsum
Known issues (mechanical)
Problem: Dial return can stall.
Reason: Hole in reduction gear bearing pad is tight; Clock spring likely anemic. The Long Spacer and Mallet Clamp Collar should be 0.3mm taller.
Workaround: Trim the hole in the reduction gear bearing pad with a hobby knife. Add brass washers to the Long Spacer and Mallet Clamp Collar to act as spacers.
Planned fix: Increase height of spacers, increase depth of casing by .2-.4mm to accommodate, possibly increase thickness of Clock Spring.
Problem: Lambda and Fn button sometimes get stuck depressed with casing fully tightened.
Reason: Not entirely clear, but extraneous tab features on button assembly is possible, especially on Fn button. Additional complicating factor may be overall thickness of front casing.
Workaround: Manually trim Lambda and Fn buttons with hobby knife
Planned fix: New mold tooling for lower buttons. Increasing depth of casing also possible
Problem: Bell hammer assembly is annoying.
Reason: Hammer mount is combined with a critical spacer between the motherboard and daughterboard.
Workaround: May add spacers during assembly to help set Motherboard-Daughterboard separation.
Planned fix: New spacer design in progress.
Problem: Side window doesn’t fully seat in rear casing.
Reason:
Workaround: It’s arguably good enough as is.
Planned fix:
Problem: Epoxy needed to glue magnets to finger stop for hall sensor.
Workaround:
Planned fix: Next run of finger stops will include cutout for a single neodymium magnet. May still need a potting process, which would be done in-house.
Flashing firmware via the Arduino IDE
Note to self: remove FreeMono18pt7b.h from ./Firmware/RUSP/
NOTE: If you’re on Linux they have you download the AppImage package, but it’s generally available in the apt repositories and runs faster as a conventional binary.
*For me, boards.txt is in ~/.arduino15/packages/MegaCore/hardware/avr/2.1.3.
In this, edit the 1280 running at 16MHz to have an upload speed of 11520, like so:
>1280.menu.clock.16MHz_external.upload.speed=115200
To add this, download it as a ZIP file (link here) and in the Arduino IDE go to Sketch>Include Library>Add .ZIP Library. Select the ZIP file and press OK. That’s it for that.
Using the debugging console
Lorum ipsum
SIM ordering and account activation process for various carriers
Consumer Cellular:
Useful AT (Hayes) commands
== Do in general ==
1. Turn on verbose error reporting: AT+CMEE=2
2. Turn on network registration URCs: AT+CREG=1
3. Turn on call URCs: AT+UCALLSTAT=1
4. First time only, enable autoconfiguration of the Max9860 Codec: AT+UEXTDCONF=0,1 and then reset with AT+CFUN=16
*Issueing +UEXTDCONF saves to NMV automatically, so this will be the default on every startup. If phsysically restarting, CFUN=16 not necessary.
== Audio gain, volume, path ==
* Read audio path settings: AT+USPM? //
* Speaker gain: AT+CLVL
* Codec gain: AT+UVGC (Not for TOBY-R2)
=<component ID (0 for Maxim),<gain ID>,<gain value>
* AT+UEXTDCONF is used for CODEC configuration
== To Make a call ==
* Optional, Enable voice call URCs: AT+UCALLSTAT=1 // 1,0=call active, 1,2=dialing, 1,3=ringing for remote party (i.e. alerting), 1,4=ringing, 1,5=waiting, 1,6=disconnected 1,7=connected,
1. Set the service class to voice: AT+FCLASS=8 //0=data
2. Make a call: ATD6319653409
== To receive/answer a call ==
1. Answer: ATA
2. See data about incoming call (caller ID): AT+CLCC
== To read an SMS ==
1. Switch to text mode: AT+CMGF=1 //0=PDU mode
2. List messages: AT+CMGL //Garbled but some text comes through in text mode
3. Read a message AT+CMGR=<n> //<n> is message number
== To check signal strength ==
* AT+CESQ. AT+CSQ is old/not reccomended.
t
== Network activity, registration, etc. ==
* AT+CREG? --check network registration status. First digit is network URC status (0=0ff, 1=on). For second, 0=not registered, not searching, 1=registered on home network, 2=not registered but searching, 3=registration denied, 4=unknown, 5=roaming, 6=SMS-only, home network, 7=SMS-only, roaming
* To shut down, first issue AT+CPWROFF, then turn off power.
* To deregister from network: AT+CFUN=0
* To make sure the SIM isn't locked out and needing PIN entry, do "AT+CPIN?". A response of READY means it's all good. A response of SIM PIN means it needs to be set.
* AT+GSN --get the device IMEI
* AT+CCID --get SIM card ICCID
* To check or confirm registration data and Radio Access Technology, do "AT+COPS?" The last digit indicates weather it's LTE, etc. LTE is 7.
* Or maybe better, AT+URAT? 3=LTE and 7=LTE Cat M1
== Misc ==
* AT+CFUN=<function number> --Sets the module function (e.g. 4 = airplane mode)
* Ensure in normal mode (not airplane mode or such): AT+CFUN=1
== Audio parameter tuning relevant to TOBY-R2 ==
* AT+CLVL: MAIN VOLUME, called "Downlink speech level". Doesn't affect mic gain.
* AT+USTN: Sidetone gain. In this context, the sidetone is the part of one's own speech audio that gets fed back through the speaker for self-perception.
* AT+USGC: Speaker gain.
- To set: AT+USGC= <downlink_path_num> <SPK_analog_gain> <HS_analog_gain> <scal_rec> <Mix_afe> <Gain_Out>
- For the TOBY-R2: <always 1> <not used> <not used> <0-32767> <0-32767> <not used>
- To check: AT+USGC? //same output params as above but reported for each <downlink_path_num>
- Good value: AT+USGC=1,1,1,10000,16384,1
* AT+UMGC: Mic gain.
- To set: AT+UMGC= <uplink_path_num> <analog_gain> <digital_gain>
- For the TOBY-R2: <always 1> <not used> <0-32767>
- To checl: AT+UMGC? //like +USGC
- Good value: AT+UMGC=1,1,32000... need for sensitivity. Mic problem?
* AT+UI2S: Configure I2S parameters for audio codec.
- Defaults seem like the best and I can't seem to change it anyway
* AT+UDBF: Downlink biquad filters. Looks complicated to optimize.
* AT+UUBF: Uplink biquad filters. Same, looks complicated.
* AT+UHFP: Spech enhancement system (SES): Complicated.
* AT+UTGN: Tone generator (affected by <Scal_Rec> digital gain in AT+USGC)
* AT+UPAR: Tone and MIDI melodies (affected by <Scal_Rec> digital gain in AT+USGC)
* AT+CALA: Alarm tone (affected by <Scal_Rec> digital gain in AT+USGC)
* AT+USPM: Audio path, but useless on TOBY-R2
* AT+UDCONF: Selects audio codec for speech calls, but does not apply to VoLTE. So, who cares.
== MAX9860 Codec configuratoin ==
* First time ever used, issue autoconfigure command AT+UEXTDCONF=0,1 or no audio
== Audio testing ==
* On LARA, datasheets say to use use AT+UPAR=2,0,0 to play an audio test file from <audio_resource>, but after much hair-pulling I think <audio_resource> is in fact empty
* Can use AT+UTGN=1000,1000,100,0 to play a test tone at 1000Hz (first parameter) for 1s (second parameter).
Radio Technology
LARA-R6 versions:
Band frequencies:
Band | Uplink (MHz)| Downlink (MHz)
1 = 1920 – 1980 | 2110 – 2170
2 = 1850 – 1910 | 1930 – 1990
3 = 1710 – 1785 | 1805 – 1880
4 = 1710 – 1755 | 2110 – 2155
5 = 824 – 849 | 869 – 894
7 = 2500 – 2570 | 2620 – 2690
8 = 880 – 915 | 925 – 960
12 = 699 - 716 | 729 - 746
17 = 704 – 716 | 734 – 746
19 = 830 – 845 | 875 – 890
20 = 832 – 862 | 791 – 821
28 = 703 – 748 | 758 – 803
Comments: Band 5 is global. Band 7 is everywhere except Japan. Bands 1, 3, and 5 are everywhere except N. America.
Edited 12/19/22